三维渲染引擎设计与实践(四)

五、绘制几何对象和文字

帧缓存(Frame Buffer)为用户与显示设备交互的一个接口,将显示的画面抽象成一块可以进行读写操作的内存区域

帧缓存的每一个存储单元都对应显示屏上的一个像素。整个缓存空间对应当前屏幕上渲染的一帧

5.1几何元素的储存

顶点属性:空间坐标值、法线、颜色坐标、纹理坐标、雾坐标。

         点的法线是在使用Phone或Gouraud模型时计算光照使用。

立即模式(immediate mode)      顶点数组(vertex array)       显示列表(display list)

顶点缓存对象(VBO)  像素缓存对象(Pixel Buffer Object,PBO)

显示列表是大部分OSG程序所使用的默认绘制优化行为,而顶点数组则是默认的几何体构建方式。

OSG同样将几何图元的类型划分为:点(GL_POINTS)、线段(GL_LINES)、线条带(GL_LINE_STRIP)、闭环线(GL_LINE_LOOP)、三角形(GL_TRIANGLES)、三角条带(GL_TRIANGLE_STRIP)、三角扇面(GL_TRIANGLE_FAN)、四边形(GL_QUADS)、四边形条带(GL_QUAD_STRIP)以及多边形(GL_POLYGON)

OpenGL的顶点属性设置原则是:每一个顶点只能对应一个位置坐标,每个纹理单元有一个纹理坐标值;此外,每个顶点至多关联一个法线坐标,一个颜色值,以及一个雾坐标等;但是多个顶点可以对应一个法线、颜色等属性信息。

5.1.4 范例 简易房屋

 快速法线生成工具osgUtil::Smoothing Visitor

geometry:设置顶点setVertexArray

                设置纹理坐标setTexCoordArray

      设置法线setNormalArray

                 PrimitiveSet表达图元组的信息,DrawArrays和DrawElementsUInt索引

                 追加一个图元组  addPrimitiveSet

     设置纹理图getOrCreateStateSet()->setTextureAttributeAndModes        

     设置颜色setColorArray      设置颜色绑定形式setColorBinding

图元控制http://blog.csdn.net/sophistcxf/article/details/9096259

5.2几何元素的绘制和访问

原文地址:https://www.cnblogs.com/hanmolabi/p/7215303.html