创建更多图形
批量三角形
GlTriangleBatch
可以塞进去多个三角形,用处是把重复的点剔除掉,坏处是当三角形加了太多了之后每次添加都会更慢一些。
几个关键的api如下
GLTriangleBatch b;
b.BeginMesh(200); // 200个顶点
b.AddTriangle(M3DVector3f verts[3], M3DVector3f vNorms[3], M3DVector3f vTexCoords[3]);
b.End();
b.Draw();
e.g.
创建一个不断转动的甜甜圈。
首先看ChangeSize。
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
g_viewFrustum.SetPerspective(35.0f, float(w) / float(h), 1.0f, 100.0f);
// 压栈投影矩阵到投影矩阵栈
g_projectionMatrix.LoadMatrix(g_viewFrustum.GetProjectionMatrix());
// 这是一个渲染管线,需要一个modelMatrix和一个投影矩阵
g_transformPipeline.SetMatrixStacks(g_modelViewMatrix, g_projectionMatrix);
}
frustum翻译为视体,Perspective则代表着透视。这个方法的意义是让当前的矩阵去乘以一个透视矩阵。
void SetPerspective(