Great and valuable design and works!

   06,21,2012


在2012-06-21,"Wang Rui" <[email protected]> 写道:

-----原始邮件-----
发件人: "Wang Rui" <[email protected]>
发送时间: 2012年6月21日 星期四
收件人: "OpenSceneGraph Users" <[email protected]>
主题: [osg-users] Ideas about a resource system, and deferred rendering framework

Hi Robert, hi all,


During the past few days, I was thinking of implementing a resource system, as 
well as a rendering structure which could support both forward and deferred 
rendering for OSG. This could help developers design complex materials and 
effects, test cutting-edge GPU techniques, and implement multi-pass / deferred 
rendering pipelines with user-friendly interfaces or even a readable script 
format. Similar work were already done in some game engines like Ogre3D, 
CryEngine and Unreal, and I now plan to work out something with the same power 
and can fit our OSG users much better. :-)


My initial thoughts are:
1. A resource system records all the resource used in the rendering pipeline, 
including textures, state attributes, shaders, uniforms, camera parameters, and 
semantics (not used in GLSL, but very useful IMHO). Resource can be referred by 
other resource, or obtained from APIs to be altered. It can be recorded in an 
XML-based format for reading/writing, and external uses.
2. A rendering framework uses one or more techniques, passes, and connect their 
inputs/outputs for complex render work. It can also be recorded by the resource 
system and is implemented as a group node in the scene graph, which performs 
actual forward/deferred rendering work.
3. Some in-built techniques and passes can help implement some complex effects 
on customized scene quickly. Common ones I planned include HDR, SSDO, godrays, 
depth of field, motion blur, lensflare, color grading and FXAA. A benchmark 
could be developed first to show how the framework works.
4. Reader/writers could be developed then to convert DAE, CGFX, or even other 
game engine scripts into OSG native rendering pipelines, which will greatly 
help migrations from other engines.


The resource system itself is actually abstract and can be extended to contain 
whole scene information later, so it could be placed in the osgDB library. And 
the new rendering pipeline, which can totally replace current osgFX 
functionlities, can be placed in osgFX and rendering resource management will 
be done here, too.


I'm glad to work with others who has interests in such an idea, and hope an 
initial version could be finished before OSG 3.2. For the first stage I will 
borrow some code from the osgPostEffects library in my experimental osgXI 
project, to quickly build the low-level APIs of the framework. But anyone who 
have better ideas, or could contribute some code or effects will be really 
appreciated.


Cheers,


Wang Rui

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to