请参考the video。
在我的应用程序中,我使用使用GL_LINE_STRIP创建的DisplayList来显示等高线堆栈。
用户可以使用鼠标选择等高线。为此,在渲染DisplayList之前,我使用唯一的颜色渲染所有的轮廓,并在鼠标下读取像素颜色。(正如here所解释的) .This渲染是使用“即时模式”完成的。
用户还可以移动、删除选中的contours.In,在这种情况下,我重新生成DisplayList。
我的问题是:
1)我正在使用旧的OpenGL技术(固定的管道体系结构)。有什么方法可以使用新的OpenGL技术来提高性能吗?(使用图形处理器、shaders...etc),因为对于大量的等高线,操作并不流畅。
2)我认为轮廓选择的“即时模式”渲染也是一种性能panelty.Is,有没有更好的方法呢?
3)我需要将等高线节点显示为点云,使用GL_POINTS.In这个,我应该使用GL_POINTS创建另一个DisplayList?(这意味着有两个DisplayLists;一个用于显示线条,另一个用于显示点)?
发布于 2011-08-25 14:15:02
离开显示列表,转而使用vertex arrays (VAs)或vertex buffer objects (VBOs),应该会给你带来不错的速度。
通过将第一个参数更改为glDrawArrays(),可以非常容易地在GL_LINE_STRIP和GL_POINTS之间切换。不需要几何体的两个副本。
https://stackoverflow.com/questions/7184476
复制相似问题