performance - 矩阵乘法有多昂贵?

标签 performance rotation matrix-multiplication

我在 Quad 类中编写了几个方法来绘制四边形并旋转。

目前,绘制 Sprite 方法就是这样做的 - 将四边形渲染到屏幕上。

但是,旋转方法会旋转并且也会渲染四边形。

我编写了另外两个方法,一个只旋转但不渲染,另一个渲染例程在进行矩阵乘法时考虑旋转矩阵。因此,不要这样做:

Quad sprite = new Quad();
Quad sprite.rotate(0,0,45,mMVPMatrix);  //rotate by 45 degrees and render at 0,0

我可以做到这一点:

Quad sprite = new Quad();
sprite.rotate(45);            //Rotate sprite by 45 degrees
sprite.draw(0,0,mMVPMatrix);  //Render sprite at 0,0
尽管后者在编写我的主代码时更加灵活,但这确实意味着即使我不想旋转 Sprite ,绘制例程仍然必须采用旋转矩阵并将其与投影矩阵组合起来。

当我有 50 多个 Sprite 运行时,这会让我付出代价吗?我知道“更多代码”和“更好的性能”之间总是需要权衡,但实际上,这会是一个大问题吗?

最佳答案

先写代码。然后看看性能是否是一个问题。对于任何人来说,太多的事情都会影响性能,即使是给你一个提示,尤其是没有任何真实的代码(除了你发布的小片段之外)来判断。

这里有人说,代码开发中最大的罪过就是早期优化。您可以在早期花费大量时间来优化永远不会出现问题的代码。您始终可以事后进行优化,事后您将获得有关瓶颈所在的实际信息,而不是早期优化,这将导致调整后的代码永远不会成为瓶颈,但现在由于优化而可读性较差。

关于performance - 矩阵乘法有多昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978583/

相关文章:

objective-c - 如何找出我的应用程序变慢的原因?

ios - 旋转后 UIView 坐标被交换但 UIWindow 不是?

java - 通过贝塞尔曲线移动对象,结合旋转

r - r中的元素乘法

go - "Matrix multiplication"使用 goroutine 和 channel

c++ - C++ 中带线程的时钟函数

css - 外部 CSS 与内联样式性能差异?

iPhone 矩阵乘法和求逆

java - Oracle xpath : two select scenarios 的性能

unity3d - 如何旋转对象以沿向量指向 Unity3D