The website of Lei Chen

Sunshine and rain of a developer

Gamebryo Frame Rendering System Reading Notes

Posted by hide1713 on October 21, 2009

Let’s look into Gamebryo frame rendering system. The documentation is located in:

Gamebryo Document->Programmer Level-> Core Runtime -> Frame Rendering System

The propose of the frame rendering system is to make rendering code portable.  Applications that use the frame rendering system do all their configuration work up front. The complex effects can be performed automatically at render time.

Render Frame(NiRenderFrame) represents an entire rendering process. It must be set up during initialization and displayed each frame. It has many render steps and iterates through the rend steps telling them to hook callback function to a frame.

Render Step(NiRenderStep) is a single rendering effect. It does the actual rendering work. It can be turned on/off to control the final effect. One Rend Step usually performs one or more rendering passes via render click objects.

Render Click(NiClickRenderStep) is a complete rendering pass. It can be easily enabled or disabled by 1) application in every frame 2) a render click validator according to some criteria. 3) pre/post callback function.

Render View(NiRenderView) objects provide a certain type of render click with an array of geometry to render. They can do this by culling a scene graph against a camera or by using some other algorithm to determine which geometry objects need to be rendered.

Render List Processor(NiRenderListProcessor) ,During rendering, the processor is passed an array of geometry objects that need to be rendered and passes back an array of objects that still need to be rendered. By controlling that output array, the render list processor can modify the geometry array, such as rendering some geometry objects immediately and deferring rendering of a sorted list for later.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>