首页 > 代码库 > 三维渲染引擎设计与实践(四)
三维渲染引擎设计与实践(四)
五、绘制几何对象和文字
帧缓存(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几何元素的绘制和访问
三维渲染引擎设计与实践(四)