更多对象

来源:互联网 发布:西安监测数据造假 编辑:程序博客网 时间:2024/04/29 12:59

GLTriangleBatch 类

      知道它们将三角形以更加高效的方式(索引顶点数组)进行组织,并且实际上将多边形存储在图形卡(使用定点缓冲区对象)上就够了。


---------使用三角形批次类

          void GLTriangleBatch::AddTriangle(M3DVector3f verts[3],M3DVector3f vNorms[3],M3DVector2f vTexCoods[3])

包含3个顶点数组,3个法线数组,以及一个包含3个纹理坐标的数组。


        不要担心会出现重复的顶点数据,GLTriangleBatch类会搜索重复值并对我们的批次进行优化(三角形带或三角形扇效率会更高)。



----------创建一个球体

         void gltNakeSphere(GLTriangleBatch& sphereBatch,GLfloat fRadius,GLint islices,GLint iStacks);


----------创建一个花托

         void glMakeTorus(GLTriangleBatch & torusBatch ,GLfloat majorRadius,GLfloat minorRadius,GLint numMajor,GLint numMinor);


----------创建一个圆柱或圆锥

            void gltMakeCyliner(GLTriangleBatch & cylinderBatch,GLfloat baseRadius,GLfloat topRadius,GLfloat fLength,GLint numSlices,GLint numStacks);


----------创建一个圆盘

           void gltMakeDisk(GLTriangleBatch & diskBatch,GLfloat innerRadius,GLfloat outerRadius,GLint nSlices ,GLint nStacks);


          指定一个内部半径来创建一个类似垫圈的形状,也可以让这个值保持为0来创建一个实心圆盘。








0 0