opengl - 如何将着色器中的值传递给 CPU?
问题描述
我正在构建一个点云查看器,我需要能够选择一个点进行手动点云注册。
我知道可以将鼠标位置传递给片段着色器以选择一个点。但是如何将结果发送回 CPU?我认为制服是一种很好的方法,但谷歌搜索结果显示它在 GPU 端是只读的。
许多框选择示例都使用 CPU 侧碰撞检查,由于要显示的点数非常多,在我的情况下不希望这样做。
一种可能的解决方案是使用快速邻居搜索,例如八叉树。但我现阶段没有考虑这个选项。
解决方案
您可以使用SSBO
或Shader Storage Buffer Object。您可以使用它执行读写操作。
参考:
推荐阅读
- c# - WinForm 中的 Revit Pick 元素
- c# - 获取并打印 DateTime 实例的日期组件
- php - password_verify 不适用于 Raspberry Pi (PHP7)
- c# - 当用户估计字母不正确时,如何更改 PictureBox?
- javascript - jquery计算账单总额
- css - 删除 Stack Exchange 链接的下划线样式而不闪烁
- php - 转换日期并从字符串日期php中删除时间
- reactjs - 反应显示图像幻灯片
- tensorflow - ValueError:节点变量/分配的输入 0 从变量传递 int32:0 与预期的 int32_ref 不兼容
- mysql - 多行更新为单个查询