【发布时间】:2014-06-30 21:31:17
【问题描述】:
我找到了这篇文章,有点回答我的问题,但不完全:
How to drag the line segment by selecting the vertex
我要解决的问题:执行顶点选择的现代方式(使用 OpenGL 4 架构):
- 用户画了一个选择(橡皮筋,这不是我想要的)
- 我假设在这个阶段我可以为模型中的每个顶点提供某种唯一 ID
- 所选区域以某种方式重新渲染、离线使用某种顶点/片段着色器,该着色器将顶点存储在我可以读回的缓冲区中?
我只是猜测它涉及某种缓冲区,着色器可以在其中写入渲染顶点的结果,该缓冲区在程序中是可读的。我想知道是否有人已经这样做了,或者至少可以让我朝着正确的方向前进。它需要(理想情况下)快速(在非常大的模型上工作),并使用 OpenGL4(没有弃用的功能,如 GL_SELECT 等)。
- 理想情况下,我还需要使用相同的技术来选择其他组件,例如边和面。
【问题讨论】:
-
我认为您可以使用此处描述的技术:rastergrid.com/blog/2010/02/… 如果您想使用深度缓冲区来确定可见性,您可以在顶点着色器的每个投影位置对其进行采样点并将该信息传递给几何着色器,几何着色器决定是否将该点发送到反馈缓冲区。我认为该技术不能用于边缘或面。
-
谢谢,这很有帮助。当我有一个可行的解决方案时(如果之前没有人回答),我会在这里查看并发布我的答案。但这是一个好的开始。