Stack Rendering

Dec 28, 2010 at 4:11 PM
Edited Dec 28, 2010 at 4:24 PM

 I was looking at another 3d engine for Silverlight and they used a concept, I can’t quite remember the name, Stack Rendering or something similar.

 I notice in Balder that you have multiple triangle renders based on various options of the material and other factors.

Instead of completely different rendering engines, what if you had the concept of a stack. The first layer is required and handles some basic calculations and are needed in ALL cases. Then you start stacking on components to add functionality. You’d have a layer for bilinear filtering of textures, you’d have a layer for actual textures. You could have a lighting layer and a layer for lighting type, such as flat or none. Some layers wouldn’t make sense together and you’d run into trouble if you just combine all possible layers of course.

 This could solve two problems.

1) You wouldn’t need so many specialized triangle rendering parts (where only one can be applied). Just a stack that falls from one to the next layer in the stack, each adding their own take on the rendered pixel.

2) This could be open to users of Balder. They could make their own stacks to handle various features Balder does not support. Similar to pixel shaders for example.

And you know… now that I think on it.. this might be a waste of time since is the part of Balder that might go to the new SL5 3D rendering engine. Since I don’t fully know what that will support perhaps this still may have a place?

NOTE: I found it, it's  and they call it StackShading  It's in the FAQ.  It's a neat idea and if I understand it correctly, solves some issues with having multiple renderers. They also offer a demo here

Dec 29, 2010 at 5:17 AM


its a great idea - thanks for the input. I'll be sure to research it a bit more to see if its possible. 

I've been thinking about creating the rendering more like modern video cards does it, which would mean one could write shaders. As for bilinear filtering, that is a cross cutting concern, which would be placed on the Texel provider and controlled by flags telling it to provide texels with or without filtering.

SL5 has been promised to give an immediate API for accessing the hardware, and I guess both pixelshaders and vertexshaders would be part of that. From that point of view, stacking might not be good - but rather provide a similar way in software that the hardware would provide when SL5 hits the market.