![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
So I'm continuing on my acquaintance with media. I have this scene where I have
a large sphere with sparse media which acts as atmosphere. Then, I add an oval
which contains much denser media in order to make a cloud (which is within the
large sphere, of course). I'm happy with the results of either media when used
independently, but in this picture you can clearly see the outline of the oval,
as if the oval cancels the other media with its own. Can someone help me with
this?
My current solution is to define everything as a function, and then simply add
the functions together and just have one object with a complicated media
definition. This works, but with the downside that I have to used more samples
on *everything* rather than just on the clouds which need the greater
definition. This slows the render considerably.
(The samples are not turned up very high in this render, by the way)
Post a reply to this message
Attachments:
Download 'hftester02.png' (204 KB)
Preview of image 'hftester02.png'
![hftester02.png](/povray.binaries.images/attachment/%3Cweb.47ed93dc85732dceb555cae70%40news.povray.org%3E/hftester02.png?ttop=443866&toff=3300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Kirk Andrews wrote:
> as if the oval cancels the other media with its own.
I suspect that it is indeed the problem that interiors are not
generally additive (e.g, what would it mean to have two diffent
iors) and further confusing because except for media most interior
stuff is only calculated for the surface, not volumetric. I didn't
find anything explicit in the documentation, though.
> My current solution is to define everything as a function, and then simply add
> the functions together and just have one object with a complicated media
> definition.
Have you tried using the complicated function only in the oval?
If the density of that function matches the density of the simple
atmosphere function at the oval boundary, it might help to get
rid of that effect without requiring the complicated function
for the entire atmosphere. But I suppose the boundary might
still appear due to sampling artefacts.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
I also wondered if you could fake the atmosphere by
calculating the sky blue only in a shell from 2km up,
and the local fog/humidity only in a thin layer over
the ground, and thus reserve some "vacuum" layer for
placing your clouds in.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Well, I'm finding that despite the longer render times, using more samples
overall has some distinct advantages, such as the light streaks you get in this
render. In reality, the media did not have nearly as much effect on the render
time as did the forest, once you add radiosity and AA. I'm pretty happy with
the results here, although I'd like to change the shape of the clouds a bit and
perhaps add more. The forest could use some more variety in the vegetation, as
well.
Post a reply to this message
Attachments:
Download 'valley.jpg' (396 KB)
Preview of image 'valley.jpg'
![valley.jpg](/povray.binaries.images/attachment/%3Cweb.47ee43d891cbe459a5d4a01d0%40news.povray.org%3E/valley.jpg?ttop=443866&toff=3300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Kirk Andrews" <kir### [at] tektonart com> wrote:
> So I'm continuing on my acquaintance with media. I have this scene where I have
> a large sphere with sparse media which acts as atmosphere. Then, I add an oval
> which contains much denser media in order to make a cloud (which is within the
> large sphere, of course). I'm happy with the results of either media when used
> independently, but in this picture you can clearly see the outline of the oval,
> as if the oval cancels the other media with its own. Can someone help me with
> this?
>
> My current solution is to define everything as a function, and then simply add
> the functions together and just have one object with a complicated media
> definition. This works, but with the downside that I have to used more samples
> on *everything* rather than just on the clouds which need the greater
> definition. This slows the render considerably.
>
> (The samples are not turned up very high in this render, by the way)
Nice image.
I have been dealing with the same issue for several years (as I suspect have
many others).
The problem is, roughly, as you described it: minimize the number of samples
where the media density/lighting is uniform and concentrate the sampling where
the media density/lighting is variable. (N.B. You used the expression "sparse
media" which I interpret to mean low density. While a low density can minimize
the visual impact of sampling artifacts, it is actually the instance of a
constant density v. a variable density which allow for an acceptably fewer
number of samples.)
Media parameters allow for the direct control of the number of samples, but not
the sample spacing. Generally speaking, sample spacing is indirectly controlled
by the size of the media container in conjunction with the number of samples.
This is where the idea for using separate and differently sized media
containers for atmosphere and clouds comes in. Unfortunately, as we know,
intersecting media containers become visible in the participating media. I am
guessing it might have to do with additional samples which are initiated when
the ray intersects the additional media containers and/or the manner in which
the sample "results" are combined.
One workaround is as you described it: put everything in one container and use
functions to control the different densities. Another solution (one which I
prefer) is to make a spherical shell for the cloud container, something like
//Camera is located at <0,0,0> "ground level"
#declare cloud_base_altitude=10;
#declare cloud_depth=1;
#declare cloud_shell_radius=1000;
#declare cloud_shell=
difference{
sphere{<0,0,0>, cloud_shell_radius+cloud_depth}
sphere{<0,0,0>, cloud_shell_radius}
hollow
pigment{color rgbt 1}
translate -y*(cloud_shell_radius-cloud_base_altitude)
}
The spherical shell container creates another issue. The distance that the ray
travels when it traverses the shell near the horizon is much longer than when
it traverses the shell directly overhead. In other words, that sampling density
is generally higher overhead and lower at the horizon. Also the orientation of
the sampling ray to the media (cloud) pattern changes. This often manifests
itself in choppy or shelf like artifacts in the clouds near the horizon. In
order to address _that_ issue, I've been moderately successful in defining a y
oriented cylindrical based pigment pattern which transitions from a high
contrast cloud pattern directly overhead through progressively lower contrasts,
to a uniform media at the horizon. This also seems take advantage of the method
3 sub sampling which will increase near the horizon where you need it.
Anyway, if you're a povray diehard like me, keep it up. You'll come up with a
solution which will work for you. Otherwise Terragen 2 is looking pretty good.
:-)
Abe
Afterthought: I realize that I've used the word "density" in both its general
sense and its SDL sense. I hope it's not too confusing the way I've phrased
things.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Well, here's some more tests. This one was done with samples at 20 and took
about 36 min. As you can see, there's no AA on this one, though. Even at 20,
you can still see that "shelving".
I suppose one could cut up your atmosphere into segments, and have something
like:
intersection {
sphere {0, AtmosphereSize}
box {<-Size,0,-Size>, <Size, CloudAlt, Size>}
...samples 1,1...
density {MediaFunction(x,y,z)} //all using the same function
}
intersection {
sphere {0, AtmosphereSize}
box {<-Size,CloudAlt,-Size>, <Size, CloudAlt+CloudDepth, Size>}
...samples 20,20...
density {MediaFunction(x,y,z)}
}
But I suspect that in some way the tangent surfaces would show up. Also, I'm
finding that changing the samples tends to affect the apparent density. So the
density of the background might be obviously different in the two boxes.
Post a reply to this message
Attachments:
Download 'lightinthevalley02.png' (383 KB)
Preview of image 'lightinthevalley02.png'
![lightinthevalley02.png](/povray.binaries.images/attachment/%3Cweb.47ee83c191cbe459b555cae70%40news.povray.org%3E/lightinthevalley02.png?ttop=443866&toff=3300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Are you aware that you can have multiple media blocks in the same interior? That
way the medias will add up. So the solution should be to simply copy the media
definition of the sky into the interior block of the clouds container object as
well.
Regards Roman
"Kirk Andrews" <kir### [at] tektonart com> wrote:
> So I'm continuing on my acquaintance with media. I have this scene where I have
> a large sphere with sparse media which acts as atmosphere. Then, I add an oval
> which contains much denser media in order to make a cloud (which is within the
> large sphere, of course). I'm happy with the results of either media when used
> independently, but in this picture you can clearly see the outline of the oval,
> as if the oval cancels the other media with its own. Can someone help me with
> this?
>
> My current solution is to define everything as a function, and then simply add
> the functions together and just have one object with a complicated media
> definition. This works, but with the downside that I have to used more samples
> on *everything* rather than just on the clouds which need the greater
> definition. This slows the render considerably.
>
> (The samples are not turned up very high in this render, by the way)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Kirk Andrews" <kir### [at] tektonart com> wrote:
> So I'm continuing on my acquaintance with media. I have this scene where I have
> a large sphere with sparse media which acts as atmosphere. Then, I add an oval
> which contains much denser media in order to make a cloud (which is within the
> large sphere, of course). I'm happy with the results of either media when used
> independently, but in this picture you can clearly see the outline of the oval...
Like others here, I've been grappling with this conundrum for a long time. Based
on *lots* of tests and experiments, I've come to some conclusions:
1) When there are two media objects, one inside the other (like your cloud oval
inside your atmosphere), the larger enclosing sphere's media samples value
completely overrides the smaller sphere's (and, I believe, its method and
intervals as well.) You can test this by giving your cloud media samples 1000,
and your atmosphere samples 1. It will render lightning fast--and look
terrible! Reverse the order, and BOTH spheres' media take on samples 1000. Or
more generally, both spheres' medias seem to be treated as one, samples-wise.
This has caused me grief in the past, when I actually *wanted* the smaller
sphere to have a smaller samples count, just for the look. But it can't be
done, unfortunately. As others have mentioned, the best (and only?) way of
eliminating or minimizing the small sphere's "visibility" is to keep pumping up
the samples count--in the larger enclosing sphere's media.
2) When using two or more medias in a single interior statement (in a single
sphere, of course), there is a similar limitation. Consider this:
interior{
media #1{ pattern, samples, density, etc....}
media #2 {pattern, samples, density, etc....}
}
In this case, media #2's samples completely override those in media #1. I.e.,
the final media samples override the one(s) before it. But on the upside, there
is no 2nd sphere shape "outline" to have to worry about. And the two medias can
be translated within the sphere relative to each other, to a degree. With
appropriate color_maps for each media's density, and some media translations,
you might be able to get both your cloud(s) and atmophere this way, in one
sphere. Certainly not as easy as using two spheres, though!
Ken W.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
That is a learned and intelligible piece of information, Kenneth. Thank you
indeed.
I have been experimenting with atmosphere and media clouds, but not to the
extend of you or Abe, Roman or Kirk, and mostly following the directives of
others, so my understanding is limited. Could you tell me if all this is
also related to media boxes placed one behind the other (without surrounding
atmosphere) which makes them visible (problem mentioned by Gilles Tran on
his website)?
Thomas
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Thomas de Groot" <t.d### [at] inter nlDOTnet> wrote:
> That is a learned and intelligible piece of information, Kenneth. Thank you
> indeed.
>
> I have been experimenting with atmosphere and media clouds, but not to the
> extend of you or Abe, Roman or Kirk, and mostly following the directives of
> others, so my understanding is limited. Could you tell me if all this is
> also related to media boxes placed one behind the other (without surrounding
> atmosphere) which makes them visible (problem mentioned by Gilles Tran on
> his website)?
>
> Thomas
I remembered that Bruno had done a lot of atmosphere experimentation some months
ago--did he ever post any code about his methods? If not, would he be willing
to do so now and enlighten us all? :)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |