考虑以下GLSL功能:
float Pow3 (const in float f) {
return f * f * f;
}
float Pow4 (const in float f) {
return f * f * f * f;
}
float Pow5 (const in float f) {
return f * f * f * f * f;
}
......等等。有没有办法 #define 一个GLSL宏,它可以在编译时生成 n 乘以 f -by -self,而不是使用内置的GLSL pow()功能当然?
答案 0 :(得分:7)
GLSL预处理器“等于”标准C预处理器。实际上,您可以使用以下预处理器定义达到您想要的效果:
#define POW(a, b) Pow ## b ## (a)
但请注意,因为连接运算符(##
)仅从GLSL 1.30开始可用。确实使用以前的GLSL版本,这个宏会产生编译器错误。
仍然想知道为什么你不使用pow
功能...