矩阵乘法有多贵?

时间:2013-04-12 18:41:33

标签: performance rotation matrix-multiplication quad

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

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

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

我已经编写了另外两种方法,一种只旋转但不渲染,另一种渲染程序在进行矩阵乘法时考虑旋转矩阵。所以,而不是这样做:

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

虽然后者在编写我的主代码时更灵活,但它确实意味着即使我不想旋转精灵,绘图例程仍然需要采用旋转矩阵并将其与投影矩阵相结合。

当我有超过50个精灵时,这会花费我吗?我知道在“更多代码”和“更好的性能”之间总是需要权衡,但实际上,这会是一个巨大的问题吗?

1 个答案:

答案 0 :(得分:4)

首先编写代码。然后看看性能是否是一个问题。太多的事情都会影响到任何人的表现,甚至没有给你提示,特别是没有任何真实的代码(除了你发布的小片段)来判断。

此处有人说代码开发中最大的问题是早期优化。您可以花很多时间在优化从未出现过问题的代码上。您可以随时进行优化,之后您将获得有关瓶颈所在位置的实际信息,而不是早期优化,这将导致调整后的代码永远不会成为瓶颈,但由于优化,现在可读性较差。