我使用#version 120
将WebGL GLSL着色器移植到OpenGL GLSL桌面。
是否有任何扩展可以增加对?:
三元运营商的支持?
像:
#extension GL_EXT_***: enable
答案 0 :(得分:4)
不需要扩展,它在基本规范中是正确的:
OpenGL Shading Language 1.20 Specification,第5.9节"表达式",第38页,第6章:
三元选择算子(?:)。它运行在三个表达式(exp1?exp2:exp3)上。此运算符计算第一个表达式,该表达式必须生成标量布尔值。如果结果为true,则选择计算第二个表达式,否则选择计算第三个表达式。仅评估第二和第三表达式中的一个。第二个和第三个表达式可以是任何类型,只要它们的类型匹配,或者第4.1.10节“隐式转换”中的转换可以应用于其中一个表达式以使其类型匹配。生成的匹配类型是整个表达式的类型。