Emissive material not handled properly

I am porting the optixPathTracer sample that came with OptiX 7.2 SDK to my framework.
There is something wrong with the way the ceiling light (emissive material) is painted.
What should I check for this?


There is a known bug with the emissions inside the OptiX path tracer example which can be easily fixed.
See this thread: https://forums.developer.nvidia.com/t/trivial-bug-i-guess/196124

Thank you for your response.
I was inquiring what might be the reason(s) mine paints the emissive source differently

Yes, and I explained that there is an issue with the emission calculation inside the currently released optixPathTracer examples which can result in varying brightness visible on light surface when the path hits the light and reaches the miss program which would only be visible directly when looking at the image in HDR or using light intensities smaller than 1.0.

Since your image is a lot darker, I was assuming that your light intensity is lower, so that could be one of the effects you’re seeing if you used the same code and didn’t fix the miss program.

Questions of the type “I did something and it’s not working.” are hard to answer, so taking wild guesses here what could go wrong:

  • Missing initializations of the per ray payload data before an optixTrace call.
    You need to consider what values you’re expecting when programs inside closest hit or miss domains are not reached.
  • Incorrect hit program on the light geometry.
  • Since your scene is darker, it could be missing calculation of either the explicit light sampling or implicit light hits.
    If the hit program on the light geometry is incorrect, you’re missing the implicit lighting calculations.
  • The optixPath Tracer is not using multiple importance sampling, but if a renderer is using that and there is a brightness difference between brute force path tracing (no direct lighting) and direct lighting, that normally indicates an error in the probability density functions of the light calculations.

BTW, there are some more capable OptiX 7 examples which implement different materials, importance sampled spherical environment and parallelogram lights, multiple importance sampling, and a lot more here: https://github.com/NVIDIA/OptiX_Apps

One of the simple scene descriptions there actually builds a Cornell Box. Looks like this:
Cornell_Box