2.6.1.2 Empty and Solid Objects
It is very important that you know the basic concept behind empty and solid objects in POV-Ray to fully understand
how features like interior and translucency are used. Objects in POV-Ray can either be solid, empty or filled with
(small) particles.
A solid object is made from the material specified by its pigment and finish statements (and to some degree its
normal statement). By default all objects are assumed to be solid. If you assign a stone texture to a sphere you will
get a ball made completely of stone. It is like you had cut this ball from a block of stone. A glass ball is a massive
sphere made of glass. You should be aware that solid objects are conceptual things. If you clip away parts of the
sphere you will clearly see that the interior is empty and it just has a very thin surface.
This is not contrary to the concept of a solid object used in POV-Ray. It is assumed that all space inside the
sphere is covered by the sphere's interior . Light passing through the object is affected by attenuation
and refraction properties. However there is no room for any other particles like those used by fog or interior media.
Empty objects are created by adding the hollow keyword (see "Hollow") to the object
statement. An empty (or hollow) object is assumed to be made of a very thin surface which is of the material specified
by the pigment, finish and normal statements. The object's interior is empty, it normally contains air molecules.
An empty object can be filled with particles by adding fog or atmospheric media to the scene or by adding an
interior media to the object. It is very important to understand that in order to fill an object with any kind of
particles it first has to be made hollow.
There is a pitfall in the empty/solid object implementation that you have to be aware of.
In order to be able to put solid objects inside a media or fog, a test has to be made for every ray that passes
through the media. If this ray travels through a solid object the media will not be calculated. This is what anyone
will expect. A solid glass sphere in a fog bank does not contain fog.
The problem arises when the camera ray is inside any non-hollow object. In this case the ray is already traveling
through a solid object and even if the media's container object is hit and it is hollow, the media will not be
calculated. There is no way of telling between these two cases.
POV-Ray has to determine whether the camera is inside any object prior to tracing a camera ray in order to be able
to correctly render medias when the camera is inside the container object. There is no way around doing this.
The solution to this problem (that will often happen with infinite objects like planes) is to make those objects
hollow too. Thus the ray will travel through a hollow object, will hit the container object and the media will be
calculated.
|