rendering
I’ve been chipping away at the OpenGL tutorials, today I implemented (and actually understood every aspect of) a rotating cube with a reflection in the floor. It involves the depth buffer, stencil buffer, depth-testing and stencil-testing. I could record a video, convert it to gif and put it here, but I’m lazy so I’ll just post a screenshot instead:
I started playing around with Horde3d a while back. I even made my own fork of it and messed about a bit with it. But then I realized that I don’t actually have any idea about how it renders stuff internally, and the whole point of picking it over an existing engine was so that I could modify its innards whenever I pleased. So, I decided to sit down and properly learn OpenGL.
Well, over the past few weeks I’ve been working on-and-off on migrating Ogre’s Deferred Shading demo to my own application code (well, to be perfectly honest, the whole thing took about two days. The first day was the day I started two weeks ago, and the second day was yesterday. I just tend to get distracted easily, so I explored Unity, Unigene, Cryengine modding, Witcher 2 modding and Google’s NaCl in the other 12 days).
For a detailed and excellent description of what deferred shading is, check out this paper.
(Note that I’ve used the terms “deferred rendering” and “deferred shading” interchangeably in this article. That’s because I think of it as deferred rendering, but wikipedia and some articles call it deferred shading, so the parts written when I was thinking about what I’ve learnt have “deferred rendering”, while the parts where I was actually focusing on what I was writing have “deferred shading”)