2013-04-26 88 views
0

我需要一些在opengl中渲染的3d模型的表面区域选择帮助,通过鼠标选取点。我知道如何获得世界坐标的一个点,但无法找到选择区域的方法。之后,我需要重新对所选区域进行重新网格划分,并将其映射到我知道的图像上。opengl在模型上的选择区域

回答

1

那么,OpenGL本身并不能帮你。 OpenGL是一个绘图API。你绘制的东西,但一旦绘图命令执行完毕,剩下的就是帧缓冲区中的像素,而OpenGL对于几何体几乎没有任何回忆。

您可以使用OpenGL实现基于图像的区域选择算法,例如通过将每个面使用唯一索引颜色绘制到屏幕外帧缓冲区中。然后通过查看可以在其中找到哪些值,可以知道某个区域中存在哪些面。

后来我需要重新网格

这就是所谓的拓扑结构的修改和完全的OpenGL的范围之内。

所选区域和图像在其映射我知道

您可以再次使用这个形象为基础的方法,但是你必须知道以何种方式,你想使图像的面孔第一。如果你想打开网格,那么OpenGL是没有帮助的。但是,如果您希望用户能够“直接绘制”到网格上,可以通过将纹理坐标绘制到另一个屏幕外帧缓冲区中并通过此映射屏幕坐标到纹理坐标来完成此操作。