Question: Why does my object interact with the simulated rays at all?
Background: I want to create a material that allows perfect specular transmission in one direction and no transmission or reflection in the other direction. I built the following BRTD function and .cal file for this purpose:
To validate this material I rendered the following:
And this resulted in the following test mesh results:
However, when I ran the simulation without the material present I got results roughly 15% higher:
Since any rays that pass through the material should only receive a factor of 1, why does the presence of the material reduce the energy on the test mesh by 15% and how can I remove this behavior?
Prior to posting my original post, I tried to solve this problem by repeatedly rerunning the model to empirically find a factor that would compensate for this roughly 15% energy loss. Using the test mesh maximum as the metric to match, this rerun method gave me a value of 1.1722, which I then implemented into testingBRTDf.cal as follows:
However, after re-running the simulation with the testingBRTDf.cal delevoped through model reruns, I compared its test mesh results to that of the model without the object. The results of the two test meshes did not match, and I suspect that the root cause of both this solution and the problem statement of my original post stem from a similar underlying issue.
I think the problem is that you should not be using the RdotP factor. Specular transmission and reflection are specified as a fraction from 0-1, and should not include a cosine factor.
Ah I see, much thanks! My error was that I interpreted RdotP as the variable that contained the scalar value of the intensity of a ray. Stated another way, I had thought I was writing some form of the following: