如何将着色器中的值传递给 CPU?
How to pass a value in shader to CPU?
我正在构建一个点云查看器,我需要能够select 手动点云注册的点。
我知道可以将鼠标位置传递给片段着色器 select 一个点。但是如何将结果发送回 CPU?我认为 uniform 是一个很好的方法,但 google 搜索结果显示它在 GPU 端是只读的。
许多方框 selection 示例都在使用 CPU 侧面碰撞检查,在我的情况下由于要显示的点数非常多,所以不希望这样做。
一种可能的解决方案是使用快速邻居搜索,例如八叉树。但我现阶段不考虑这个选项。
您可以使用 SSBO
或 着色器存储缓冲区对象 。你可以用它进行读写操作。
参考文献:
我正在构建一个点云查看器,我需要能够select 手动点云注册的点。
我知道可以将鼠标位置传递给片段着色器 select 一个点。但是如何将结果发送回 CPU?我认为 uniform 是一个很好的方法,但 google 搜索结果显示它在 GPU 端是只读的。
许多方框 selection 示例都在使用 CPU 侧面碰撞检查,在我的情况下由于要显示的点数非常多,所以不希望这样做。
一种可能的解决方案是使用快速邻居搜索,例如八叉树。但我现阶段不考虑这个选项。
您可以使用 SSBO
或 着色器存储缓冲区对象 。你可以用它进行读写操作。
参考文献: