OpenGL超级宝典笔记(一)数学基础与基础变换

创建更多图形

批量三角形

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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值