Both vectors define the up and right axis of a Cartesian coordinate system respectively. Most of the realtime demos listed at the top of this post are true ray tracers. The probably to draw direction A is the same than the probability to draw direction B, C, D, etc.
But the principle stays the same. Of course trying to cover the surface of an object with points is not practical neither possible. I started with the image below: The basic idea of a reflection map is that when a ray bounces off an object in to the background, instead of showing empty dark space, we calculate where it hit on the inside of an imaginary sphere that is "wall-papered" with our image.
The effect in both cases is the same: Approach 1: The weighting is applied to the amount of light reflected per ray, resulting in many of the rays carrying very little contribution.
Add the result of the indirect diffuse calculation to the total illumination of the shaded point and multiply the sum of the direct and indirect illumination by the object albedo of course. In a raster setup, it would probably involve creating a "glowing" surface for the lamp glass and then "faking" a light source coming from outside the lamp itself.
Here is an example of a scene with a texture map used for the lettering on the blocks and for the marble table surface, working along with the lighting, reflections, and ambient occlusion of the ray tracer. Bullet penetration — The distance a bullet travels within a target material.
This is how diffuse surfaces reflect light. Of all the work I did on this project, I am most satisfied with the AO work because I started with the math, did my own implementation in Cand ended up with visuals that match what I see in commercial products like 3D Studio Max.