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.

Well emission has nothing to do with lights, and absorption creates shadows and obscures what's behind, but does not shine under light. So scattering is the only one affected by attenuation.

I found where the problem is in the code.

FunctionMediaFunction::ComputeOneMediaSamplecalculates the light colour by callingTrace::TestShadowThis function then callsTrace::ComputeOneLightRaywhere you see the comment'for full area lighting we apply distance- and angle-based attenuation to each "lightlet" individually later'

but TestShadow function never does that (never goes recursively into full area lighting, it treats the area light as a single point source). A simple solution is to just add attenuation in TestShadow after calling the ComputeOneLightRay function. Basically, two lines of code must be copied from ComputeOneLightRay into TestShadow. Or a more long term solution, Ray object should have a flag that signals that it is meant for media calculation. This flag can then be tested in ComputeOneLightRay.

Do we want area_illumination to apply to scattering media? It should not be default, because this would make area_illumination extremely slow. But it could be the user's choice.

This will not affect anything else. Trace::TestShadow is ONLY USED FOR SCATTERING MEDIA - it appears nowhere else in the code.