获取四矩形 OpenGL

Get Quad rectangle OpenGL

本文关键字:OpenGL 获取      更新时间:2023-10-16

>我有一个矩形类,里面存储了各种信息。我用它来进行 2D 碰撞检测。

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

有没有另一种方法可以获取从四边形创建矩形的信息?

但是在应用模型矩阵后,我如何获得顶点的位置?

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

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

vt1 = M * v1;
vt2 = M * v2;
vt3 = M * v3;
vt4 = M * v4;

在 OpenGL 3 中,您必须手动编程,由于可编程管道,旧的固定管道需要GL_QUADS,但它在 3.0 中被弃用,并在 3.1 及更高版本中被删除。

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