Gaming Graphics: Road to Revolution

volt

Regular
Thought this might be of interest. Still reading it

http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=139&page=1

The current leader in shading languages is Pixar's RenderMan. James Kajiya formulated rendering as a light transport problem.5 RenderMan defines three categories of shader, based on Kajiya's formula:

1. Light source shaders. Calculate the lighting term, which is the color and intensity of light emitted from a source in a particular direction.
2. Surface shaders. Calculate the integral of the bidirectional reflectance function with the incoming light distribution.
3. Volume shaders. Calculate scattering effects through participating media such as dusty air, salty water, fog, and smoke. Other participating media include translucent materials such as marble, skin, and plants.6

The current generation of hardware shaders differs from RenderMan fundamentally; RenderMan is concerned with the description of shaders and lighting, whereas hardware shaders expose the pixel and vertex processors explicitly. Nonetheless, Mark Peercy and colleagues have demonstrated hardware acceleration of Pixar's RenderMan shading system.7 The approach they describe is innovative; the OpenGL architecture is treated as a general-purpose SIMD (single instruction stream, multiple data stream) computer, and a compiler translates RenderMan into commands to OpenGL—in essence, treating OpenGL as assembly language. Computation of the shader is performed in the framebuffer directly, using framebuffer-blended copy operations as superscalar computations. Eric Chan and colleagues have another approach, using a method to translate directly from shading languages such as RenderMan to multipass hardware shaders.8
 
I disagree with his assesment of sort middle, and I totally disagree with his assesment of sort last (also it only mentions the bandwith disadvantage, not the need for far more memory ... well unless you use tiling ala pixelflow, but using both tiling and sort-last was and is insane).

Maintaining input order for transparancy in the rasterization pipelines is just as easy/difficult as it is for sort-last, and loadbalancing is not an issue if you use a relatively finegrained and interleaved subdivision of the screen.
 
The article by Peercy which is bolded in the original post is actually a few years old now. It was an interesting article and while it showed what could be done with basic OpenGL functionality the industry has gone in a little different direction.
 
Back
Top