GPU视锥台剔除:为什么要使用扫描?

问题描述

我正在尝试在GPU中执行视锥剔除。在阅读了一些并且对这个非常有用的仓库https://github.com/ellioman/Indirect-Rendering-With-Compute-Shaders有所了解之后,我注意到goto的实现似乎是

  1. 测试所有对象的bBox并将相机视锥中的一个标记为1,将另一个标记为0
  2. 将结果保存在缓冲区中。
  3. 在此缓冲区上执行扫描算法
  4. 在最终缓冲区中使用计算为索引的索引来存储所选矩阵,这些矩阵将在绘制过程中使用。

但是我想知道:为什么要使用扫描及其所有复杂性,而不仅仅是将通过bBox测试的对象矩阵直接附加到appendbuffer中? 我的猜测是,appendbuffer的访问速度很慢,但比在gpu上运行扫描要慢(如果输入数组大于每个组的最大线程数,则可以执行2次调度调用)。

谢谢!

编辑:我团结一致,但是对于这个问题,我认为这个问题并不重要。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)