• Register
PhysicsOverflow is a next-generation academic platform for physicists and astronomers, including a community peer review system and a postgraduate-level discussion forum analogous to MathOverflow.

Welcome to PhysicsOverflow! PhysicsOverflow is an open platform for community peer review and graduate-level Physics discussion.

Please help promote PhysicsOverflow ads elsewhere if you like it.


PO is now at the Physics Department of Bielefeld University!

New printer friendly PO pages!

Migration to Bielefeld University was successful!

Please vote for this year's PhysicsOverflow ads!

Please do help out in categorising submissions. Submit a paper to PhysicsOverflow!

... see more

Tools for paper authors

Submit paper
Claim Paper Authorship

Tools for SE users

Search User
Reclaim SE Account
Request Account Merger
Nativise imported posts
Claim post (deleted users)
Import SE post

Users whose questions have been imported from Physics Stack Exchange, Theoretical Physics Stack Exchange, or any other Stack Exchange site are kindly requested to reclaim their account and not to register as a new user.

Public \(\beta\) tools

Report a bug with a feature
Request a new functionality
404 page design
Send feedback


(propose a free ad)

Site Statistics

205 submissions , 163 unreviewed
5,064 questions , 2,215 unanswered
5,347 answers , 22,734 comments
1,470 users with positive rep
818 active unimported users
More ...

  Lambertian surfaces and Monte-Carlo

+ 1 like - 0 dislike

I'm writing a ray tracer (actually to learn rust).
During this project I'm learning a lot about optics/physics.

Here is a problem for which I have no nice solution:

Take a plane surface and assume it reflects lambertian ("diffuse", AOI independent).
Question: What is the probability distribution function (psd) of the reflected light? How does it integrate?


Assume that the surface is the x-y-plane and that light incidences from above.
Then light is reflected by the cosine-law, and hence the scattered intensity is given by cos(theta)*sin(theta) (where the cosine is the lambertian reflectance and the sin is due to spherical coordinates).
So a reflected ray is generate as follows:
phi is uniform distributed between 0 and 2pi.
theta is given by asin(sqrt(a)), where a is a uniform random number between 0 and 1
(integrate to get the cfd (cumulative distribution function), then invert)

If I try to do the same thing for an inclined surface - even for easy examples like with normal (1/sqrt(2),0,1/sqrt(2)) - then I fail at integrating the psd to get the cfd.
The psd is given by the inner product between a sample ray and the surface normal (set to 0 if it's negative - the plane reflects only to one side) - of course multiplied with sin(theta) (to correct for spherical coordinates.

Thanks for your help.

asked Dec 9, 2016 in Computational Physics by mikethespike (15 points) [ no revision ]

1 Answer

+ 1 like - 0 dislike

Here are some pointers to formulas used for diffuse ray tracing:

C.M. Goral et al., Modeling the interaction of light between diffuse surfaces, ACM SIGGRAPH Computer Graphics 18 (1984). http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S10/papers/goral.pdf

G.J. Ward, F.M. Rubinstein, and R.D. Clear. "A ray tracing solution for diffuse interreflection." ACM SIGGRAPH Computer Graphics 22 (1988):,85-92. https://eetd.lbl.gov/sites/all/files/publications/22789.pdf

T. Whitted, An improved illumination model for shaded display, ACM Siggraph 2005 Courses. ACM, 2005. https://www.cs.drexel.edu/~david/Classes/CS586/Papers/p343-whitted.pdf

X.D. He, et al., A comprehensive physical model for light reflection, ACM SIGGRAPH computer graphics 22 (1991). https://hal.archives-ouvertes.fr/file/index/docid/510144/filename/HTSG91.pdf

answered Dec 10, 2016 by Arnold Neumaier (15,787 points) [ no revision ]

thanks for your answer

embarrassingly, the upshot is:
generate the ray in a spherical coordinates relative to the surface normal instead of the z-axis

(this is also explained nicely in a book by Modest on heat transfer)

Your answer

Please use answers only to (at least partly) answer questions. To comment, discuss, or ask for clarification, leave a comment instead.
To mask links under text, please type your text, highlight it, and click the "link" button. You can then enter your link URL.
Please consult the FAQ for as to how to format your post.
This is the answer box; if you want to write a comment instead, please use the 'add comment' button.
Live preview (may slow down editor)   Preview
Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
If you are a human please identify the position of the character covered by the symbol $\varnothing$ in the following word:
Then drag the red bullet below over the corresponding character of our banner. When you drop it there, the bullet changes to green (on slow internet connections after a few seconds).
Please complete the anti-spam verification

user contributions licensed under cc by-sa 3.0 with attribution required

Your rights