【发布时间】:2015-01-19 20:21:54
【问题描述】:
我想实现场景选择(用于鼠标点击、移动等)。什么是最好、最快的方法?我曾经将glSelectBuffer 和glRenderMode 与GL_SELECT 一起使用,然后再次渲染整个场景(当然使用增强,没有纹理,重着色器等)。
在每次鼠标点击、移动和拖动时,递归地为一个数字(几何 ID)渲染所有节点和几何图形太慢了。有人知道更好的方法吗?
编辑: 读取深度缓冲区的解决方案似乎很受欢迎,但是如果我不想选择一些几何图形并且它们已经被淹没到缓冲中怎么办?查找包含点的框可能不精确,因为点可以在多个框中。
是否可以在一次绘制中写入两个帧缓冲区、深度缓冲区?然后我可以通过着色器将几何 id 写入一个缓冲区。那么速度呢?
【问题讨论】:
标签: c++ opengl optimization