081219 / GL3 Driver

previous | next

First Finished OpenGL 3.0 Driver Out

Happy holidays for OpenGL 3.0, NVidia has released fully functional OpenGL 3.0 drivers!

Screen Space Normals

Screen Space Normals, Image of the Day on Gamedev.net. Applied to voxel rendering, the idea being to skip storing the normal and compute during deferred shading. Interesting to me because I don't store normals either!

Importance of Points (ie Vector Scatter)

I think people are finally starting to warm up to this idea. ATI's Jeremy Shopf posts on his blog, "So what Imperfect Shadow Maps does is figure out a way to render hundreds or thousands of shadow maps in one draw call and with dramatically reduced amounts of geometry." And that is exactly what it boils down to. A desire to extend what can be done with illumination/shadowing/shading ultimately ends up draw call limited with classic rendering engine design. The core of rasterization is binning, is the Z buffer, Trading log based searching for linear binning is what has made the GPU. Shadowmaps, cubemaps, reflectionmaps ... *maps drawn using z buffered geometry has enabled simulation of various advanced forms of illumination. More advanced illumination requires more maps. To scale far beyond what we have now, we must leave behind the limitations of triangles and batches. Triangles need to be clipped, and can only be hardware clipped to one 2D region per batch, this limits the number of maps which can be drawn. A simpler solution is needed. In fact the simplest solution is needed, points.

One Draw Call to Rule Them All

Or rather one draw call per pipeline stage in the engine. This is core to Atom's design. Fast point rendering is critical. A texture can be split up into any number of regions when point rendering, even non-rectangular regions (like the octahedron map Atom is using). Each region can be a separate map. All maps can be fetched from given that one set of multiple render targets / textures, so no need for batches when sampling results either.

And at some point here, even triangle rasterization goes away completely. When only points are needed, all that is left is vector scatter and gather with atomic operations.