Heckbert devised a classification of light scattering events along the path the light traveled from light source to eye, which has the form of "L(S|D)*E" (Luminaire, Specular, Diffuse, Eye). Veach added Glossy and Transmission.

I read that Kajiya's path-tracing is classified as "E[(D|G|S)+(D|G)]L". But then I read in the Siggraph 2001 course "State of the Art in Monte Carlo Ray Tracing for Realistic Image Synthesis" the following: "Distributed ray tracing and path tracing includes multiple bounces involving non-specular scattering such as E(D|G)*L. However, even these methods ignore paths of the form E(D|G)S*L; that is, multiple specular bounces from the light source as in a caustic."

On the other hand, even the most simple path-tracing like "smallpt" seem to render caustics correctly and IIRC there was a picture many years ago rendered with distributed ray tracing showing a metallic ring with a concentrated light spot inside of it (kind of like a lens).

So my question is: the path-tracing classification and the Siggraph course seem to contradict each other, what is correct take on this?

PS: I see that apparently "E[(D|G|S)+(D|G)]L" cannot consume "EDSSSL" because of the last "(D|G)" group is missing, but EDSSSDL seems to describe multiple specular events just well.

PPS: "[]" means "one of", "+" means "one or more". Do it even do anything to stick "+" inside "[]"? I mean, "one of" of "one or more" is always just "one", isn't it?

The only type of light paths that a forward path tracer cannot sample is E(D|G)*S+L, where L is a light source whose definition involves a delta distribution, either in the directional emission or the positional. Examples are point lights and directional lights. Such paths can be described using Veach's extended notation for luminaires and sensors, see section 8.3.2 in his thesis.

Something a bit off topic...all that letter talk reminds me of geometric optics. (ck-trrnce is D*F*G) if you get the most realistic microshadowing function, just rinse and repeat it for so many bounces then im imagining you couldnt be defeated, your first bounce you get with one compute per pixel, then after that add a million and get the second half of the effect.

Ive been flipping the normals on this equation for about a week now and i just dont know which may is the correct way to go yet, so im just leaving it as an idiots experimentation function. I guess in a couple of months ill finally know whats going on, i dont care about learning so quickly all the time. But sometimes i do.