在OpenGL着色器中按位执行是更快,还是在C++;? 我不确定是否应该在OpenGL片段着色器中执行逐位运算和除法,或者在运行着色器之前(以C++计算并以统一的方式传递)。我实际做的是将一个代表RGB值的十六进制整数转换成一种颜色,可以在OpenGL中绘制。在大多数系统中哪个通常更快?

在OpenGL着色器中按位执行是更快,还是在C++;? 我不确定是否应该在OpenGL片段着色器中执行逐位运算和除法,或者在运行着色器之前(以C++计算并以统一的方式传递)。我实际做的是将一个代表RGB值的十六进制整数转换成一种颜色,可以在OpenGL中绘制。在大多数系统中哪个通常更快?,c++,performance,opengl,bit-manipulation,shader,C++,Performance,Opengl,Bit Manipulation,Shader,如果它是每个绘制调用计算的单个值,那么在C++中执行。 GPU的速度非常快,但是让它们为数百万个顶点或碎片计算相同的值几乎没有意义 然而,有一个问题是数据是如何传递的。如果你怀疑有区别,那么尝试这两种方法并对它们进行剖析。 < P>如果是每个绘制调用计算的单个值,那么在C++中执行。 GPU的速度非常快,但是让它们为数百万个顶点或碎片计算相同的值几乎没有意义 然而,有一个问题是数据是如何传递的。如果您怀疑存在差异,请尝试这两种方法并分析它们。颜色是逐顶点属性,还是传入纹理?颜色是逐顶点属性,还是

如果它是每个绘制调用计算的单个值,那么在C++中执行。 GPU的速度非常快,但是让它们为数百万个顶点或碎片计算相同的值几乎没有意义


然而,有一个问题是数据是如何传递的。如果你怀疑有区别,那么尝试这两种方法并对它们进行剖析。

< P>如果是每个绘制调用计算的单个值,那么在C++中执行。 GPU的速度非常快,但是让它们为数百万个顶点或碎片计算相同的值几乎没有意义


然而,有一个问题是数据是如何传递的。如果您怀疑存在差异,请尝试这两种方法并分析它们。

颜色是逐顶点属性,还是传入纹理?颜色是逐顶点属性,还是传入纹理?我只是在考虑帧速率,尽管这是一种重锤式的方法。@geofftnz:记住GLSL编译器也可以进行优化。如果多次执行一个操作,在某些情况下可能会完全重写为另一个操作。此外,对于非常便宜的指令,来自其他因素(如窗口系统)的帧速率噪声可能比着色器的性能影响更重要。@Bartvbl同意。。。就个人而言,我可能只是在着色器中这样做,只是为了将代码保存在一个地方。快速的GPU让我变得懒惰。我只是在考虑帧速率,尽管这是一种大锤式的方法。@geofftnz:记住GLSL编译器也可以进行优化。如果多次执行一个操作,在某些情况下可能会完全重写为另一个操作。此外,对于非常便宜的指令,来自其他因素(如窗口系统)的帧速率噪声可能比着色器的性能影响更重要。@Bartvbl同意。。。就个人而言,我可能只是在着色器中这样做,只是为了将代码保存在一个地方。快速的GPU让我很懒。