opengl skybox shader xyww

opengl

天空盒vertex shader 中常用的一个技巧是:gl_Position = (u_MVP * vec4(a_position, 1.0)).xyww。刚开始觉得xyww挺合理,后来一想,觉得有问题,如果所有点的depth=1,如果先draw正对相机的面,再draw背对相机的面,岂不是把前面draw的覆盖了。。。但事实上大家都在用,肯定没错,为此纠结了好久。

后来在一篇文章中发现了问题,在opengl渲染管线中:
1.顺序:先裁剪,后透视除法
2.裁剪公式:裁剪公式
从裁剪公式中可以看出,所有w<0的点都会被裁剪掉,而相机背面的所有点的w都是小于0的,所以不会存在相机背面的面把相机前边的面覆盖掉的问题,所以用xyww是合理的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值