Trying to implement a Monte Carlo route trace, I was trapped in an easy sampling procedure.
Typically, the procedure is as follows:
- Track the beam from the camera (or from the previous point) until you reach a point on the surface.
- Once the surface point is reached, randomly create a point on the light source in the scene.
- Compute a geometric term that describes whether this light can reach the current point on the surface (this term is either 0 or 1).
- If this geometric term is 1, calculate the contribution of this light by multiplying it by the damping coefficient (how far the light is) and the BRDF of the material.
I did not mention a few details about how things are randomly selected, but this time do not pay attention (see, for example, "Selecting fixtures in the distribution ray tracing").
The problem, as I see it, is that both BRDF and the distribution of light in the light sources are not actual functions, but rather measures.
For example, the BRDF of an ideally reflecting mirror for each input angle is the delta function of the dirac in the reflected direction (i.e., a measure supported at one point, with a mass of 1 at that point). In the same way, point light (as opposed to cloudy light) is modeled by the dirac delta, in contrast to the density function.
It seems important to get the difference straight, as it allows you to choose the right selection. For example, when selecting BRDF, you can either:
, , , BRDF .
, , BRDF , , BRDF: , 1 ( BRDF , 0, , ), ( ), ! BRDF, (, , ).
: "" BRDF , , , ? " " , BRDF, ? ( , BRDF, .)
, , , ( ). , :
- BRDF (, ) .
- BRDF
- BRDF (, )
- BRDF
, BRDF, , , , , , .