gpt4 book ai didi

opengl - GLSL 组件方式相等比较

转载 作者:行者123 更新时间:2023-12-03 23:25:05 24 4
gpt4 key购买 nike

我正在尝试检查纹理中的给定像素是白色、黑色还是两者都不是。我决定使用 equal function described in the OpenGL 4 Reference Pages .我相信我只是在正确使用语法时遇到了问题。

我使用 OpenGL 4.0.0 版和 OpenGL 着色语言 4.00 版。

这是我的片段着色器代码的相关部分:

   //texture 1
vec4 textureColor1 = texture(texUnit1, textureCoord);
//texture 2
vec4 textureColor2 = texture(texUnit2, textureCoord);
//texture 3 (only contains black and white pixels)
vec4 textureColor3 = texture(texUnit3, textureCoord);

vec4 finalTextureColor;

vec4 whiteColor = vec4(1.0, 1.0, 1.0, 0.0); //define white
vec4 blackColor = vec4(0.0, 0.0, 0.0, 0.0); //define black

if (bvec equal(textureColor3, whiteColor)){ //if texture 3 pixel is white
finalTextureColor = textureColor1;
} else if (bvec equal(textureColor3, blackColor)){ //if texture 3 pixel is black
finalTextureColor = textureColor2;
} else { //not black or white
finalTextureColor = mix(textureColor1, textureColor2, 0.5);
}

color = finalTextureColor;

以下是我收到的错误:
ERROR: 0:101: 'bvec' : undeclared identifier
ERROR: 0:101: 'equal' : syntax error syntax error

我知道我的纹理数据正确传递给片段着色器,因为我可以说 color = textureColor1color = textureColor2color = textureColor3 ,所有这些都在 3D 对象上显示适当的纹理。

感谢您的帮助!

最佳答案

bvecequal 的返回类型功能。你会得到一个 bool 值向量来告诉你哪些组件​​是相等的。如果您只想比较整个颜色,则使用相等运算符 == .

关于opengl - GLSL 组件方式相等比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27322066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com