有没有办法抑制GLSL中的警告?

有没有办法抑制GLSL中的警告?,glsl,Glsl,我的着色器隐式地将int转换为float,这将导致C7011警告 int i = 1; float f = i; 我不在乎,也永远不会在乎这个警告。然而,当尝试调试着色器时,我必须仔细查看这些警告以查找错误。有没有办法抑制这些警告 我试着查找“pragma”的选项,但什么也找不到 提前感谢。不确定这是否对您有多大帮助,但也许可以查看您正在使用的glsl版本的快速参考。看起来,根据4.20 GLSL快速参考表第7页,在找到,你可以使用float f=float(i),虽然我不在计算机上,但我可以

我的着色器隐式地将int转换为float,这将导致C7011警告

int i = 1;
float f = i;
我不在乎,也永远不会在乎这个警告。然而,当尝试调试着色器时,我必须仔细查看这些警告以查找错误。有没有办法抑制这些警告

我试着查找“pragma”的选项,但什么也找不到


提前感谢。

不确定这是否对您有多大帮助,但也许可以查看您正在使用的glsl版本的快速参考。看起来,根据4.20 GLSL快速参考表第7页,在找到,你可以使用float f=float(i),虽然我不在计算机上,但我可以在计算机上进行当前测试


如果这不起作用,您可能需要查看同一参考表第9页上的intBitsToFloat函数。尽管它只存在于glsl版本3.3及更高版本上,但如果您使用该版本或更高版本,它可能会为您提供所需的转换。

您是否尝试过
float f=(float)i?@dark_查理:这是GLSL,不是C。这在GLSL中不起作用。@NicolBolas它在HLSL中工作得很好,我想它也可以在GLSL中工作:)你可以在GLSL中构造一个浮点:
float f=float(I)
float(f)
有效。谢谢我曾希望有一种语法上不那么丑陋的方式来处理它。对于float-to-int,会有精度损失,但是对于int-to-float,动态范围中的一点损失似乎是编译器不应该抱怨的。我想事情就是这样。