我尝试使用transform feedback实施拣选例程。目前它工作正常,但问题是速度非常低(慢于GL_SELECT
)。
现在如何运作:
glBindBufferRange()
绑定TBO(开头为0)。glBufferSubData()
重置内存(TF变化结构的大小)(确保选择正确)。主要问题在这里。所以,最后我有一组每个对象的拣选数据。
问题是如何避免在每次迭代时调用glBufferSubData()
?可能的解决方案(但我不知道如何实现它们)是:
有什么想法吗?
答案 0 :(得分:1)
如果要做的只是清除缓冲区的区域use glClearBufferSubData
。话虽如此,不清楚为什么你需要清除它,而不是只是覆盖那里的东西。
仅供参考:采摘最好通过渲染场景,为对象分配不同的“颜色”以及回读感兴趣的像素来实现。你的方法总是会变慢。