|
|
Okay, here's a not-so-neat "feature" I found today.
If you take a look at my recent post in p.b.i, I'm working on a scene with a
sink filled with water which is running down the drain.
At some point, black dots appeared. They were on the water surface and
showed up even in reflections of the water. I figured it had to do with the
water, and experimented. It's a heightfield, based on a pattern-based
function. I know that "smooth" in a heightfield can cause weird errors
(because of a known problem with normals which will be addressed "when its
convenient and not just a dirty hack" as Thorsten once said). I'm fine with
that, got the SDL to generate me a proper heightfield with the aid of my
Mesh-Modifying-Macros.
Well, "smooth" wasn't it, and the same error showed up with my
SDL-heightfield, no matter if using smooth-triangles or not.
I then started to compare an older version of the image with the new one,
and started to delete what wasn't needed/had no effect of the polka dots.
To make it short, the end-result was that the chrome-drain in the sink had
an exponent-value other than 1 in its reflection-setup. Set it to 1,
everything is fine, set it to anything else, I get the polka dots.
Anyways, I'm not sure how that adds up. Why would I get black dots on an
object touching another object with a perfectly fine exponent setting?
Additionally, these polka dots aren't single pixels when I use
anti-aliasing. They create 2x2 blocks of some seemingly random color (though
it's black in 99% of the cases, there were some red, yellow, cyan ones,
which probably are exponential values of some other colors present in the
scene (lightsource isn't white but <1,.95,.9>, water filters some
cyan/blue).
Could anybody explain why a single black pixel grows in size with
antialiasing? I thought that antialiasing traces several rays and averages
the results. How come black spreads like that? And does POV-Ray take
neighbouring pixels into account?
I always thought it would simply trace rays into a single pixel, not take
neighbouring pixels for information. Even if it does, still doesn't explain
the black 2x2 block. Unless the "black error" crushes right through all
other rays to show up so that I, the end-user, know that something is amiss
(though who would have expected it to be the exponent value of a different
object than the one where the dots show up on?!).
Comments and insight information appreciated! :-)
Regards,
Tim
--
aka "Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Post a reply to this message
|
|
|
|
> Did you try adjusting max_trace_level?
Sure did, as it wouldn't be a surprise if it had to do with
reflection/refraction with all the water and chrome.
Had it at default level of 5 first, cranked it up to 250 to see if it's a
depth problem. Doesn't change a thing. I turn the exponent on the drain off,
everything's fine, I turn it on, I get dots.
Regards,
Tim
--
aka "Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Post a reply to this message
|
|
|
|
> I've seen transparencies and media do this type of thing a lot. Try
playing
> around with your transparency and media settings on the water.
There is no media on the water. And I tried using just filtering or just
transparency, or both, and it didn't matter. The only thing that mattered
was if the drain had an exponential reflection.
Regards,
Tim
--
aka "Tim Nikias v2.0"
Homepage: <http://www.nolights.de>
Post a reply to this message
|
|