我们可以渲染到屏幕同时提取点吗?

时间:2016-01-27 10:25:59

标签: opengl 3d

我有两个流,一个是点云,另一个是全屏纹理。我想使用纹理为点着色然后渲染它们,但我还想存储生成的彩色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

0 个答案:

没有答案