Opengl GLSL颜色输出作为RGB关闭一次
在GLSL中,Opengl GLSL颜色输出作为RGB关闭一次,opengl,glsl,Opengl,Glsl,在GLSL中,outputColour=vec3(0,0,0.5)输出的RGB值为(0,0,127),而不是(0,0,128)。由GL.ReadPixels()和Photoshop滴管工具确认 目前,我正在绕过outputColour.b+=0.001的问题,但我确信这会在以后困扰我 以前是否有任何机构经历过这种情况?解决方案是什么?每当要求OpenGL时,都允许实现按自己喜欢的方式进行取整。所以,如果它想去掉小数点,那没关系 如果需要控制标准化的舍入,则直接控制它 vec4 Normalize
outputColour=vec3(0,0,0.5)
输出的RGB值为(0,0,127)
,而不是(0,0,128)
。由GL.ReadPixels()
和Photoshop滴管工具确认
目前,我正在绕过outputColour.b+=0.001的问题,但我确信这会在以后困扰我
以前是否有任何机构经历过这种情况?解决方案是什么?每当要求OpenGL时,都允许实现按自己喜欢的方式进行取整。所以,如果它想去掉小数点,那没关系 如果需要控制标准化的舍入,则直接控制它
vec4 NormalizeColor(in vec4 input)
{
vec4 denorm = input * 255.0;
vec4 rounded = round(denorm);
return rounded / 255.0;
}
您可以用任何您喜欢的方法来替换对
舍入的调用。每当要求OpenGL进行舍入时,都允许实现按自己喜欢的方式进行舍入。所以,如果它想去掉小数点,那没关系
如果需要控制标准化的舍入,则直接控制它
vec4 NormalizeColor(in vec4 input)
{
vec4 denorm = input * 255.0;
vec4 rounded = round(denorm);
return rounded / 255.0;
}
您可以将对round
的调用替换为您喜欢的任何调用。这很有意义,因为8bit最大值是255。请尝试128.0/255.0
这是有意义的,因为8位最大值是255。尝试128.0/255.0