当使用的OpenGL版本为2.0时,是否可以强制GPU在着色器中使用highp float
?我知道精度修饰符基本上是GLES的概念,但是float
似乎在默认情况下确实在我提供的用于测试的桌面上使用mediump
,这让我发疯了。
在带有GTX1070 GPU(驱动程序版本23.21.13-9135)的Win10下运行我的GL项目时,我偶然发现了这个问题。我什至没有在着色器中设置#version
,所以我希望精度会自动最大化。
AFAIK,OpenGL 2.x标准没有定义任何方法来暗示GPU:24个尾数位中至少有20个是有效的(通过浮点数传递整数,因为GL 2.0无法原生对整数进行运算),但是3年来,我第一次看到台式机GPU可以做到这一点,所以我什至从未想到过。
需要帮助。