获取四矩形 OpenGL
Get Quad rectangle OpenGL
>我有一个矩形类,里面存储了各种信息。我用它来进行 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上讨论。
相关文章:
- 是否可以从 OpenGL 缓冲区获取原始大小的像素?
- 无法获取要在 OpenGL ES2 中显示的 RGB 纹理
- 在Windows上获取OpenGL点大小(以像素为单位)?
- 无法获取索引缓冲区以在 OpenGL 中绘制正方形
- C++ OpenGL 如何从 quaterion 获取旋转 x,y,z
- 从 Freeglut/Opengl 2.1 项目中获取返回值
- 无法在 OpenGL 中获取矩形的 3D 视图
- CEGUI:无法获取桌面 OpenGL 版本
- 如何在OpenGL或Win32中获取图形卡模型名称
- 获取 OpenGL 纹理中特定像素的颜色
- 在Visual Studio Community中使用glfw3 glew和opengl获取访问冲突异常
- 使用 C# 获取 OpenGL 版本的最简单方法
- GLFW无法在Mavericks上获取OpenGL 4.1上下文
- 有没有办法在OpenGL上获取旋转的纹理
- OpenGL:只获取模具缓冲区而不获取深度缓冲区
- OpenGL获取离当前鼠标位置最近的世界三维点的三维坐标
- 获取四矩形 OpenGL
- QMatrix4x4 模型视图投影 OpenGL 无法获取要渲染的场景
- OpenGl获取鼠标位置
- C++openGL-获取和设置像素的函数