This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.

brilliance < 1.4 or emission > = 0 on first cylinder does not seem to duplicate the effect.any exponent < = 1 in second cylinder does not seem to duplicate the effect.multiple renders show black circles show up in random locations and sometimes do not show

The problem is not limited to radiosity, nor to negative emissions, as can be demonstrated with the following scene; there is a general problem when anything with a negative brightness is reflected in a surface with almost any exponent other than 1, causing the resulting image regions to be pitch black even if other properties of the reflecting surface would normally boost its brightness back to positive values:

exponent values that are the inverse of a natural number (such as 1/2, 1/3, etc.) appear to be safe. I suspect this is an inherent problem of the math involved, rather than an outright bug.

Note that reflection exponents other than 1.0 are anything but realistic; same goes for negative values for emission (although some particularly vivid yet still realistic colours may require individual colour components to be set to negative values, which will lead to similar problems with a non-1 reflection exponent).

I have been using v 3.62 for this project and descided to move up to 3.7. In adjusting lighting and textures to fit the new version, I went off on a tangent playing with the new features and seeing what effects would result from radical settings.

The new crackle has be pulling my hair out as it is definitely not backwards compatible with setting the version. It seems to have a different starting point in the pattern or something as using crackle as a pattern in a function has different results from 3.62

There's a conceptual question how to interpret negative light. pow(color,exponent) has no meaning for negative color and noninteger exponent (trace.cpp::ComputeLightedTexture) and returns NaN, which breaks everything. You could either copy the sign, such as pow(fabs(color),exponent)*(color>0?1:-1), or just zero out the negative components, like color>0?pow(color,exponent):0. The second option makes a bit more sense, if this feature is meant to make the bright objects reflect, but ignore darker reflections.

The choice is completely arbitrary, as this feature is completely unphysical and breaks the linearity of light transport - multiplying all the lights by some factor changes the behavior of the reflective surface. For natural scenes, this is not needed anyway, povray internally uses floating point (high dynamic range), so bright objects can be made realistically bright.