opengl - GLSL:整数指数的 pow 与乘法

标签 opengl glsl shader exponent

在 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/

相关文章:

c - 模拟绘画应用的笔触

opengl - GLSL 组件方式相等比较

javascript - 为什么这个 Webgl 示例中的光在移动

c - highp float在GLSL中是如何呈现的?

c++ - 使用模板缓冲区概述对象会给出错误的结果

c++ - 创建着色器文件

c# - WPF 中的 OpenGL 控件因 OOM 异常而崩溃

windows - 如果您使用使用 OpenGL 的库,您在 Windows PC 上需要什么?

c++ - 使用空着色器程序绘制是否有效?

image - 为什么 OpenGL 不能正确显示我加载的图像?