OpenGL ES之glFrustum函数

本文详细介绍了OpenGL中glFrustum函数的使用方法,包括其参数、描述、注意事项及常见错误,帮助开发者正确理解并应用该函数进行透视投影。


分类: iOS Android 157人阅读 评论(0) 收藏 举报

名称:

glFrustum—— 使用一个透视矩阵乘以当前矩阵


函数原型:

void glFrustumf(GLfloat left,  GLfloat right,  GLfloat bottom,  GLfloat top,  GLfloat near,  GLfloat far);

void glFrustumx(GLfixed left,  GLfixed right,  GLfixed bottom,  GLfixed top,  GLfixed near,  GLfixed far);


函数参数:

left,right         指定左边和右边垂直切面的坐标

bottom,top    指定下边和上边水平切面的坐标

near,far         指定近端和远端深度切面的距离


描述:

glFrustum描述了一个产生透视投影的透视矩阵。这个矩阵乘以当前矩阵的积,将代替当前矩阵,当glMultMatrix以如下参数被调用时:

通常,矩阵模式是GL_PROJECTION, 假设眼睛的位置在(0,0,0), (left, bottom, -near) 和 (right, top,  -near)指明了近切面的点,并且被映射到窗口的左下角和右上角。-far指明了远切面的位置。near 和 far都必须是正数

使用 glPushMatrix 或 glPopMatrix来保存或恢复缩放前的坐标系统。

注意:

深度缓冲区的精度受到指定的near和far值的影响。far和near的比例越大,区分临近表面的有效深度缓冲区就越少。如果,

那么,将有大概位的深度缓冲区精度被丢失。因为,当near接近0的时候,r就接近于无穷,所以near一定不要设置为0.

错误:

GL_INVALID_VALUE         如果near和far不为整数,left等于right,top等于bottom,near等于far,那么将产生GL_INVALID_VALUE错误。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值