获得Quad矩形OpenGL

时间:2012-08-19 18:52:53

标签: c++ opengl

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

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

是否有其他方法可以从四元组中获取信息?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

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

由于您必须自己完成此操作,因此有几种解决方案可以解决您的问题,其中一种解决方法是here on SO