I think this is one of the most important part when you write a physically-based renderer.

The solution I came up with is to put a sphere to the scene with a constant background radiance. Solve the rendering equation analytically for constant radiance which you have chosen. There will be no recursion in the integral since the rays will not bounce more than one. After that, compare result of the rendered image and the analytic solution. Does this make sense?

Are there any ways to this more effectively?

  • 1
    $\begingroup$ This question reminds me of a paper about verifiable visualization that tries to accomplish exactly that (ieeexplore.ieee.org/abstract/document/5290733). Although it talks about a different topic (verification of isosurface extraction), the approach is smiliar to the one you suggest: finding analytic solutions for some simple cases and verifying if the implementation converges to that very same solution. I believe that the main point here would be to define which parameters should be accounted for in order to be able to state that the implementation is correct. $\endgroup$ – Christian Pagot May 15 '18 at 2:23
  • 1
    $\begingroup$ When you talk about "constant background radiance", are you referring to something similar to the "furnace test"? I'm not so sure if it would be a good setup in this case because we would not be able to check viewpoint dependent phenomena. Maybe a different setup would be more effective in this sense (but I have not clue about that right now). $\endgroup$ – Christian Pagot May 15 '18 at 2:23
  • $\begingroup$ You are right. Glossy surfaces could be a problem. Even if the procedure is done for a particular outgoing direction, it does not prove that the model is correctly implemented for the other outgoing directions. Also, I am surprised that I couldn't find a useful resource or a question when I google it. $\endgroup$ – Mustafa Işık May 15 '18 at 11:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.