neo*_*ler 3 opengl glsl ternary-operator
我正在将 WebGL GLSL 着色器使用#version 120.
是否有任何扩展可以增加对?:三元运算符的支持?
喜欢:
#extension GL_EXT_***: enable
Run Code Online (Sandbox Code Playgroud)
不需要扩展,它在基本规范中是正确的:
OpenGL 着色语言 1.20 规范,第 5.9 节“表达式”,第 38 页,第 6 项:
三元选择运算符 (?:)。它对三个表达式进行操作(exp1 ? exp2 : exp3)。此运算符计算第一个表达式,它必须产生一个标量布尔值。如果结果为真,则选择计算第二个表达式,否则选择计算第三个表达式。仅计算第二个和第三个表达式之一。第二个和第三个表达式可以是任何类型,只要它们的类型匹配,或者第 4.1.10 节“隐式转换”中的转换可以应用于其中一个表达式以使其类型匹配。这个结果匹配类型是整个表达式的类型。