|
|
> Basically I am getting artifacts from DF3 files. Alain suggested a
> possible
> solution; fill empty spaces with 1's instead of 0's. I tried it... the
> problem
> was alleviated somewhat. I am still getting severe artifacts if a voxel is
> placed EXACTLY at the corner of a media cube, so I "backed the voxel off"
> into
> the cube away from the corner a little. I'm still getting artifacts.
What is going on is that the bounding object is too close to the voxel.
Why is that so? After all, the density pattern goes from <0,0,0>
to <1,1,1>, shouldn't that mean it fits in a box the same size?
The answer is in the way that media is handled by POV.
A ray coming from the camera hits the bounding object...
then travels through the object until it exits the bounding object.
So you have a line segment, by default POV then chops that
line segement up in to 10 parts or "intervals", then tests each
interval, resulting in a color contribution for the final pixel.
So what happens when a voxel is near the edge of the
bounding object?
POV measures the first interval as a distance from the
side of the bounding object... the shape of the bounding
object is determining the geometry of the interval, so
some rays have more contribution from the lit voxel,
and it begins to take on the shape of the side.
The obvious fix is just to make the bounding object
bigger... but then you end up with intervals that are too
big. So then you need to increase the intervals to match.
camera {
location <0,3,-3>
direction z
right x*image_width/image_height
look_at <-0.5,-0.35,0>
angle 5
}
box {-1, 2
texture {
pigment {rgbt 1}
}
interior {
media {
emission 1*3
absorption 1*5
scattering {1, White*3 extinction 1}
density {
density_file df3 "ts10.df3" interpolate 0
}
intervals 30
samples 1,100
}
}
hollow
translate -0.5
rotate <0,45,0>
}
Post a reply to this message
|
|