0

我有一个 rect 类,其中存储了各种信息。我用它在 2D 中进行碰撞检测。

如果我使用 openGL 3 及更高版本进行渲染,如何使 Rect 跟随四边形。起初我以为我可以抓住每个顶点的位置并将它们输入到 Rect 的四个位置(每个角)。但是在应用模型矩阵之后,我怎样才能得到顶点的位置呢?

还有另一种方法来获取信息以从四边形创建 Rect 吗?

4

2 回答 2

1

但是在应用模型矩阵之后,我怎样才能得到顶点的位置呢?

如果您的 Rect 在模型空间中有四个顶点(v1、v2、v3 和 v4),并且您有一个模型矩阵 M,那么如果您想跟随您的 Rect 跟随四边形,只需将您的顶点乘以模型矩阵(做与OpenGL相同的事情)。

您只需将模型矩阵应用于矩形坐标,即可获得四个变换后的矩形坐标(vt1、vt2、vt3、vt4):

vt1 = M * v1;
vt2 = M * v2;
vt3 = M * v3;
vt4 = M * v4;
于 2012-08-19T23:08:12.780 回答
0

使用 OpenGL 3,您必须手动编程,因为可编程管道,需要GL_QUADS使用旧的固定管道,但它在 3.0 中已被弃用,并在 3.1 和更新版本中被删除。

由于您必须自己执行此操作,因此有几种解决方案可以解决您的问题,其中一个在 SO 上进行了讨论。

于 2012-08-19T19:41:31.373 回答