安卓OpenGL ES——透视投影

本文通过学习《OpenGL ES应用开发实践指南》,了解透视投影并使用
代码地址

相关博文:
安卓OpenGL ES 2.0 入门
安卓OpenGL ES——正交投影

一、透视除法

1.1 透视除法介绍

  • 顶点着色器上的原始坐标通过透视除法这一步骤变成归一化设备坐标。

  • OpenGL把每个原始坐标的x、y和z分量都除以自身的w分量,即用w分量表示物体的距离,使得远处物体被移动到离渲染中心更近的地方。OpenGL使用这种方法在屏幕上呈现一个三维图像。

  • 顶点(1,1,1,1)和(1,1,1,2)做透视除法后两个坐标变为(1/1,1/1,1/1)和(1/2,1/2,1/2);同理当w很大的时候(x/w,y/w,z/w)趋近于(0,0,0),即在渲染中心

1.2 添加w分量创建三维图

绘制一个矩形,只用到x和y分量,z和w保持默认

顶点数据:

private static final float[] VERTEX = {
            //Triangle 1
            -0.5f, -0.8f,
             0.5f,  0.8f,
            -0.5f,  0.8f,

            //Triangle 2
            -0.5f, -0.8f,
            0.5f, -0.8f,
            0.5f,  0.8f
}

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值