请参阅视频。
在我的应用程序中,我使用使用 GL_LINE_STRIP 创建的 DisplayList 显示轮廓堆栈。
用户可以使用鼠标选择轮廓线。为此,在渲染 DisplayList 之前,我使用独特的颜色渲染所有轮廓并读取鼠标下的像素颜色。(如此处所述)。此渲染是使用“立即模式”完成的。
用户还可以移动、删除选定的轮廓。在这种情况下,我会重新生成 DisplayList。
我的问题是:
1)我正在使用旧的 OpenGL 技术。(固定管道架构。)有没有办法使用新的 OpenGL 技术来提高性能?(使用GPU,着色器...等)因为对于大量的轮廓,操作并不流畅。
2)我认为为轮廓选择完成的“立即模式”渲染也是一个性能面板。有没有更好的方法来做到这一点?
3) 我需要将轮廓节点显示为点云,使用 GL_POINTS。在此,我应该使用 GL_POINTS 创建另一个 DisplayList?(这意味着有两个 DisplayLists;一个用于显示线,另一个用于显示点)?