OpenGL中的坐标变换

关于OpenGL中渲染管线的输入与输出?

①对于顶点着色器的输出:输出就是在裁剪空间上的坐标(Clip Space)。

②由GPU自己实现由裁剪空间到NDC(标准化设备坐标)的映射,也即是直接除以裁剪空间坐标的w分量(是一个负值分量)即可

③为什么叫裁剪坐标,因为②除以一个负的分量的结果,会把三个xyz坐标映射到[-1,1]范围内,不在范围内的坐标就会被裁剪

④由于在原本的裁剪空间是标准的右手系,由于除以一个负的分量后,变为了标准的左手系

⑤对于片元着色器的输入是什么?不是裁剪空间的坐标,也不是经过了NDC变换后的标准设备坐标。而是将NDC坐标在经过视口变换(view port)转换为了屏幕坐标(window space)(screen space)

⑥对于片元着色器的输入的屏幕坐标,他的范围就在定义的可视平面的范围内。即

以x轴为例,变换只是将NDC的[-1,1] 线性映射到[x, x+width]范围内。

z轴则会从NDC的[-1,1]映射到[nearVal, farVal]内(默认near=0,far=1)

现在对于NDC坐标的描述也就清楚多了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值