我有两个流,一个是点云,另一个是全屏纹理。我想使用纹理为点着色然后渲染它们,但我还想存储生成的彩色pointcloud以供以后分析和使用。我是否可以在不将数据发送到设备的情况下以某种方式执行此操作,为GPU上的点着色,将其提取到主机,然后再将其发送到设备以进行渲染?我的意思是它可以使用GPU计算完成,然后将数据存储到设备上的已分配内存中,然后将其提取,然后将数据发送到设备进行处理,然后将相同的数据发送到设备渲染似乎多余。除了渲染到屏幕以外,我从未做过任何其他事情,所以我不确定。
如果有可能,我们需要Cuda还是我们可以不用?怎么可能呢?
编辑: 我希望实现的一个例子。箭头表示移动数据和|象征着双方之间的隔阂。
unit | host
-------------------------------------------------------------------------------------------
← PointCloud and Texture //Input data
Colour points | Wait //Colour the points using the GPU
Coloured points → //Extract the coloured points
Render points | Do whatever with the points. // Render to screen and use the coloured points on the CPU
我希望避免的一个例子。箭头表示移动数据和|象征着双方之间的隔阂。
unit | host
-------------------------------------------------------------------------------------------
← PointCloud and Texture //Input data
Colour points | Wait //Colour the points using the GPU
Coloured points → //Extract the coloured points
← Coloured points //Send the exact same data back again
Render points | Do whatever with the points. // Render to screen and use the coloured points on the CPU