在 GLSL 中哪个更快:
pow(x, 3.0f);
或者
x*x*x;
?
取幂性能是否取决于硬件供应商或指数值?
最佳答案
虽然这肯定取决于硬件/供应商/编译器,但像 pow()
这样的高级数学函数往往比基本操作昂贵得多。
最好的方法当然是同时尝试和基准测试。但是如果高级数学函数有一个简单的替代品,我认为使用它不会出错。
如果您编写 pow(x, 3.0)
,您可能希望编译器能够识别特殊情况并对其进行扩展。但是,如果替换内容同样简短且易于阅读,为什么还要冒险呢? C/C++ 编译器并不总是用简单的乘法替换 pow(x, 2.0)
,所以我不一定指望所有 GLSL 编译器都这样做。
关于opengl - GLSL:整数指数的 pow 与乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39446306/