本文参考<<osg最长一帧>>, <<OpenSceneGraph三维渲染引擎编程指南>>, <<OpenSceneGraph三维渲染引擎设计与实践>> 整理而来, 感谢大牛们的精彩著作. 相比Ogre来说, Ogre代码很规范, 只是入门资料较少,如果能在学习之前能总体上对架构有个印象就好了, 免得盲人摸象啊, 不过,还好有OSG.
场景相关: Node, Geode, Group, Transform, LOD, Camera, NodeVisitor, NodeCallback
几何图形: Drawable, PrimitiveSet, Geometry, Shape, TessellationHints, Simplifier,
DelaunayTriangulator, TriStripVisitor, SmoothingVisitor
渲染相关: StateSet, Texture, Light, Material,View, ViewerBase, State, RenderLeaf,
RenderBin, RenderState,SceneView, CullVisitor,Renderer,GraphicsContext, Text
数据加载: DatabasePager
平台相关: OperationThread, GUIEVentHandler
OSG渲染引擎的核心部件:
渲染流程1:
渲染流程2:
节点访问:
渲染状态排序1:
渲染状态树:
渲染场景视图树:
摄像机,图形设备,渲染器,场景图,场景视图之间的关系:
加载数据的过程:
两种场景结构图对比:
多线程 加载数据时所用的缓冲区:
消息事件处理流程:
图形设备抽象:
先看整体, 然后看局部, Osg的结构会了然于胸.