二维变换matrix如何应用于其目标?

我从math上理解变换matrix是如何工作的,因为变换matrix乘以一个向量导致了一个新的向量,并且我们使用matrix进行旋转,平移等。我也明白,在3D中,变换matrix被应用到每个顶点为了改变它们,尽管这基本上是我对3D转换的理解程度,甚至可能是理解有点错误/简单。

然而,许多游戏引擎/graphics渲染库的devise意图是渲染2Dgraphics(例如:Flash,XNA,SDL,Allegro),尽管我知道其中至less有一些是真正的3D引擎。 例如,这些引擎允许程序员使用变换matrix来操作2D实体,以执行诸如实现相机的操作。 但我不明白我插入引擎的转换matrix正在被乘以执行转换。 有一段时间,我认为它是应用转换matrix到原始图像的每个像素,但这似乎并不正确。

那么在2D变换中转换matrix要乘以什么向量呢? 我是否正确,这是一个真正的像素操作? 还是它在幕后做了一些3D魔术?

如果引擎在引擎盖下使用3Dgraphics硬件,那么即使它是2D游戏,它仍然具有顶点。 模型可能非常简单 – 例如,每个精灵都有一个矩形。 但matrix仍然适用于顶点,就像在3D游戏中一样。

如果引擎没有在引擎盖下使用3Dgraphics硬件,但是执行了它自己的所有光栅化,那么这些matrix仍然适用于每个精灵的位置(以及缩放和旋转,如果适用的话)。 引擎将使用这些来计算每个精灵在屏幕上的绘制位置。

从某种意义上说,matrix也适用于每个像素,因为当精灵或其顶点移动时,精灵的纹理会被拉动。 但是,引擎并不会将matrix应用于每个像素的位置。