Shader with perfect lambertian angle-dependent specularity, can it be made in GroIMP?

Dear all,

I am looking into light transmission through objects. By default, the setDiffuseTransparency of a shader will assume a lambertian scattering (i.e. ignoring angle of incidence of light). Though GroIMP does not do it perfectly, as lambertian scattering should have light equally scattered in all directions (Living Textbook | Home | By ITC, University of Twente). My model simulations shows this is not the case (see picture).

What I want is to be able to have a perfect lambertian transmission through a greenhouse roof (defined by e.g. parallelograms). Does anybody know how to change the shader such that a perfect lambertian scattering is achieved?

Then there is a second point, the angle of incidence also reduces transmission due to shifting specularity values (Specular reflection - Wikipedia). Does anybody know how to set the properties of a shader to be angle dependent?

I couldn’t solve it myself by looking at the documentation, so I hope somebody else has experience.

Cheers,
Maarten

1 Like

As I cannot use the edit function anymore, I will post it here. The pattern that I see in absorbed light actually does match Lambert’s cosine law - Wikipedia. So it is a Lambertian diffuser after all.

Part 2 of the original question I still do not know how to achieve. For an LED light for example you have the azimuthal and elevation angle’s to describe the emission pattern. I would like the same to be possible for applied shaders. Different greenhouse cover materials have different patterns due to coatings/structure of the glass.

Cheers,
Maarten

1 Like