我正在使用 #version 120 将 WebGL GLSL 着色器移植到 OpenGL GLSL 桌面。 是否有任何扩展可以添加对三目运算符 ?: 的支持? 例如: #extension GL_EXT_***: enable
不需要扩展,它就在基本规范中: OpenGL Shading Language 1.20 Specification第5.9节“表达式”,第38页,第6个项目:三元选择运算符(?:)。它对三个表达式进行操作(exp1?exp2:exp3)。该运算符评估第一个表达式,该表达式必须产生标量布尔值。如果结果为真,则选择评估第二个表达式,否则选择评估第三个表达式。仅评估第二个和第三个表达式之一。第二个和第三个表达式可以是任何类型,只要它们的类型匹配,或者可以应用于其中一个表达式的第4.1.10节“隐式转换”中的转换使它们的类型匹配。此结果匹配类型是整个表达式的类型。
?:
? - Nicol Bolas?:
不被支持所导致的。相反,你应该询问你真正的问题:你的代码为什么会出错。 - Nicol Bolas