通过鼠标选择点,我需要一些帮助来选择在 opengl 中渲染的 3d 模型的表面积。我知道如何在世界坐标中获得一个点,但找不到选择区域的方法。稍后我需要重新网格化该选定区域并在其上映射我知道的图像。
问问题
526 次
1 回答
1
好吧,OpenGL 本身不能帮助你。OpenGL 是一个绘图 API。您绘制东西,但是一旦执行了绘制命令,剩下的就是帧缓冲区中的像素,而 OpenGL 对几何图形没有任何记忆。
您可以使用 OpenGL 实现基于图像的区域选择算法,例如通过将具有唯一索引颜色的每个面绘制到屏幕外帧缓冲区中。然后通过查看其中可以找到哪些值,您可以知道给定区域中存在哪些面孔。
稍后我需要重新网格化
这称为拓扑修改,完全超出了 OpenGL 的范围。
该选定区域并在其上映射我知道的图像
您可以再次为此使用基于图像的方法,但是您必须首先知道要以哪种方式将图像制作成人脸。如果你想解开网格,那么 OpenGL 是没有帮助的。但是,如果您希望用户能够“直接绘制”到网格上,可以通过将纹理坐标绘制到另一个屏幕外帧缓冲区并将屏幕坐标反向映射到纹理坐标来完成。
于 2013-04-26T20:14:32.813 回答