Opengl: 一个非常操蛋的bug[glGetUniformLocation()]

当一个uniform变量在着色器中不参与输出计算时,如vertexshader中的uniform未影响其输出,且fragmentshader中对应的输入变量也无关输出,该uniform可能会被优化掉。这一过程是GPU为了提高效率而进行的内部优化。
摘要由CSDN通过智能技术生成

有的博客是说一个uniform变量没有被使用时将会被优化掉,这个时候cpu上是获取不了gpu上的buffer Location;

这句话有失偏颇,真实情况应该是:如果一个变量与着色器的输出不相关的话,这个变量将会被优化掉;举个例子,在vertex shader中声明两个变量,一个uniform ,一个out,out变量将uniform传入fragment shader,uniform不参与vertex shader的输出,fragment shader中对应的in变量不参与fragment shader的输出,这个时候会优化掉vertex shader中的uniform变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值