Patent ID: 8711145

Claim:
At a computer system, the computer system including a rendering pipeline configured to represent polarized light in rendered images that include a plurality of pixels, the rendered images including at least one light source emitting light energy into other portions of the image, a method for calculating the light energy present at a specified view point within a renderable image, the method comprising: an act of accessing geometric primitive data representing a three-dimensional model, one or more first portions of the geometric primitive data representing a light source emitting light energy into the three-dimensional model and one or more second portions of the geometric primitive data representing surfaces within the three-dimensional model having polarizing effects on the light energy traveling within the three-dimensional model; an act of designating a specified view point within the renderable image where light energy is to be calculated; an act of simulating a plurality of photon packets that are to be transmitted in the adjoint direction from the specified view point back to the light source, each photon packet having a corresponding different particular orientation; for each pixel of the renderable image, calculating the resulting energy from the light source present at the specified view point, the resulting energy calculated from determining the light energy corresponding to each particle in each of the plurality of photon packets, including: for each particle: an act of simulating transmission of the particle from the specified view point back to the light source; and for each surface the particle intersects: calculating a probability of the particle continuing to travel towards the light source after being incident upon the surface, based on the corresponding particular orientation of the particle and based on the polarizing effect of the surface; randomly determining whether or not to propagate or terminate the particle, based on the calculated probability; and when it is determined to propagate the particle, updating the corresponding particular orientation of the particle in accordance with the polarizing effect of the surface; and an act of adding the light energy corresponding to the particle when it reaches the light source to the total energy present at the specified view point for the pixel, for any particle that reaches the light source; and an act of adding the resulting light energy calculated for each pixel for particles that reached the light source together to calculate the total light energy present at the specific view point.