对于在CPU上和GPU上进行多少矩阵运算,对于普通的3D操作,有什么共同的智慧吗?
一个典型的3D着色器可能需要几个矩阵。计算表面到光的世界矩阵。用于正常计算的世界逆转置矩阵。一种用于三维投影的世界观投影矩阵。等。
有两种基本的方法来解决这个问题。
world,worldViewProjection,worldInverseProjection。我明白,在某种程度上,我可能只需要在不同的机器和GPU上进行配置,而在一次绘制调用中绘制一百万个顶点可能比在一次绘制调用中绘制4个顶点有不同的需求,但是.我在想..。
对于什么时候在GPU和CPU上做矩阵计算,有什么共同的智慧吗?
另一种问这个问题的方法是,我的缺省值应该是上面的#1或#2,之后我可以分析那些默认不是最佳性能的情况。
发布于 2016-03-07 23:01:13
在决定CPU / GPU计算时,问题不是计算,而是流。
GPU的计算非常便宜。由于您的计算world * view * projection涉及制服,这很可能是最优的。
但是,如果您选择在GPU上计算,那么world view和projection必须作为单独的统一矩阵流。这需要更多的时间比流一个矩阵,也消耗了更多的统一组件在您的着色器。
请注意,与纹理数据或缓冲区数据相比,制服的流时间很小。您不太可能达到性能限制,因为它,如果你这样做,这是很容易优化。
https://stackoverflow.com/questions/35840929
复制相似问题