【发布时间】:2011-08-31 12:04:18
【问题描述】:
在顶点着色器中而不是在片段着色器中进行硬计算总是更好吗?甚至对于具有超过 100.000 个多边形的高网格模型(假设有一堆独特的顶点)?
【问题讨论】:
标签: performance opengl shader
在顶点着色器中而不是在片段着色器中进行硬计算总是更好吗?甚至对于具有超过 100.000 个多边形的高网格模型(假设有一堆独特的顶点)?
【问题讨论】:
标签: performance opengl shader
不,它并不总是更好。
选择合适的计算位置的最佳方法是进行实验。两者都试一下,看看哪种方式更适合您的限制条件和硬件。
但从理论上讲,您可以估计处理的片段数并将其与顶点数进行比较。现代 GPU 对顶点着色器和片段着色器使用相同的处理单元,因此查看这些数字会让您知道在哪里进行演算。
在顶点着色器(如果不是在 CPU 上)中执行所有操作的建议来自于渲染 3D 模型的像素与顶点比率应该始终很高的想法。如果您在非常远的距离处看到一个对象,则不需要几何细节,这就是几何细节层次 (LOD) 的用途。因此,如果您以“好”的方式进行操作 - 您需要在顶点级别进行计算。如果你不遵循它 - 你自己。
【讨论】: