码迷,mamicode.com
首页 > 其他好文 > 详细

三维引擎设计-渲染层封装(Osg渲染层结构)

时间:2015-05-04 22:15:52      阅读:476      评论:0      收藏:0      [点我收藏+]

标签:

                                OSG渲染层封装

 
OpenGL_API可以大致分成这样几个部分:
     1:顶点操作(立即模式,显示列表,顶点数组,顶点缓冲区),
     2:纹理(一维纹理,二维纹理,三维纹理,天空盒),
     3:灯光(类型,光源,光照模型) ,
     4:着色器(顶点着色器,片段着色器,一致变量,属性变量),
     5:帧缓冲区(渲染缓冲区),
     6:状态(Alpha校验,Blending混合,模板测试,裁剪测试,深度测试,雾,光栅化设置), 
     7API扩展管理等。


   Osg封装了上述大部分操作。由于OpenGL是个状态机,上述API操作可视为对状态的一种改变,Osg依照这个思路,把OpenGL操作看成是渲染状态的变换,渲染状态有进一步分为渲染属性(Attributre),和渲染模式(Mode),继而渲染状态可由场景节点共享。

下面罗列下OsgOpenGL封装的类。


一:StateAttributeOpenGL状态属性)
|-AlphFunc(透明操作) 
|-BlendEquation(混合方程)
|-BlendFunc(混合操作)
|-BufferIndexBinding(缓冲区索引管理)
|-ClampColor(颜色截取操作)  
|-ColorMask(控制颜色通道绘制)
|-ColorMatrix(颜色控制矩阵)
|-Depth(深度缓冲区比较)
|-Fog(雾设置)    
|-FragmentProgram(片段着色器)
|-FrontFace(正反面设置)
|-Light(光类型封装)
|-LightModel(光照模型封装)
|-LightSource(光源封装)
|-LineStipple(点画模式)
|-LineWidth(线宽)
|-LogicOpOpenGL逻辑操作)
|-Material(材料封装)
|-Multisample(多重采样封装)
|-Point(点)    
|-PointSprite(点精灵)
|-PolygonMode(多边形填充模式)
|-PolygonOffset(多边形偏移)
|-PolygonStipple(点话模式)
|-PrimitiveRestartIndex
|-Program(着色器)
|-Scissor(裁剪)
|-ShadeModel(着色模式)
|-ShaderAttribute(着色器属性变量)
|-Stencil(模板测试)
|-StencilTwoSided
|-TexEnv(纹理环境)
|-TexEnvCombine
|-TexEnvFilter(纹理过滤)
|-TexGen
|-TexMat(纹理矩阵)
|-Texture(纹理)
|-Texture1D
|-Texture2D
|-Texture2DArray
|-Texture2DMultisample
|-Texture3D
|-TextureBuffer(纹理缓冲区)
|-TextureCubeMap(天空盒)
|-TextureRectangle(公告板)
|-VertexProgram(顶点着色器)




二: 非属性对象封装    
      |-BufferObject(顶点缓冲区对象)  
      |-FrameBufferObject(帧缓冲区对象)  
      |-PrimitiveSet(绘制原语)  
      |-Shader(着色器源码管理)
      |-ShaderComposer(着色器管理)  
      |-Uniform(一致变量)


三: OpenGLAPI封装  
      |-GLAPI头文件条件编译)  
      |-GLUGLU函数封装)  
      |-GLObjectOpenGL内部对象释放)  
      |-GL2Extensions(扩展管理)  
      |-GLExtensions(扩展管理)  
      |-GLBeginEndAdapter(绘制启始结束)



四:Image(像素操作)
             |-ImageStream
      |-ImageSequence
        |-ImageUtils







  

三维引擎设计-渲染层封装(Osg渲染层结构)

标签:

原文地址:http://blog.csdn.net/zangle260/article/details/45485247

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!