Skip to main content
GameDev.net gamedev.net

PRO Tired of ads? Read GameDev.net ad-free and help keep the community independent with GameDev Pro — $3/month.

Rendering Notation

Rendering Notation

Jason Z
Jason Z
Chronicles of the Hieroglyph · · 2 min read
951 6

Rendering Notation

I have been wanting to spend some time to develop some way to document what a particular algorithm does from a high level. There have been many times while designing an algorithm, or even working out how someone else is pulling an effect of, that it would be handy to have a succinct but easy to understand notation that I could use to reference on how a particular effect is working. For lack of a better term, I'll refer to this as a 'rendering notation'.

Today I took just about a half hour and started writing out how a normal rendering pass works in my current DX9 renderer (I used the DX9 renderer as an example since my DX11 material system is still in the works). I basically define a symbolic representation for entities, scenes, textures, and geometry and perform rendering passes on them as either a function or an operator applied to the scene to produce some output (a render target in the case of traditional rendering or a texture/buffer if using the compute shader). The short amount of time spent on it was actually fairly productive, and I successfully documented a standard rendering pass within about 10 minutes. Then I worked out how a typical SSAO algorithm would work in my engine as well (taking the remaining 20 minutes).

All together, it is still pretty rough and there are many details to be worked out in the symbolic description of various objects (i.e. the various possible formats of a render target need to be represented). However, the notation actually gave me some additional insight into how my rendering system works, and I actually have a couple of design tweaks in mind to help smooth things out in the DX11 renderer that will be used in Hieroglyph 3. Once I develop the concept a little further I'll be sure to post my ideas here. Has anyone else done something similar, or had similar ideas?

Speaking of Hieroglyph 3 - I've decided on using the Boost license, and am actually going to host the project downloads out of this journal for a while until the project is more complete. Perhaps later on I'll consider hosting the project on one of the open source sites, but for now it will stay a single developer project [grin]. I'm basically at the point that I can update all of the file headers with the copyright notice and then I'll make the inagural posting of the engine!

Discussion

Loading comments...