2012-01-05 92 views
1

我已創建使用到RGBA紋理

glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, CONSENSUS_DEPTH_COMPONENT, width, height, 0, GL_DEPTH_COMPONENT, GL_FLOAT, 0); 

此紋理的紋理深度複製紋理在其他代碼中使用並填充深度。現在我想將深度值複製到RGBA紋理(哪個顏色通道無關緊要)。

我該怎麼做?

+0

爲什麼你需要這樣做?您可以使用着色器或使用glReadPixels從深度紋理讀取。 – 2012-01-05 14:38:18

+0

我想在CUDA中使用這個值,所以我限制了我可以使用的紋理格式。 – Patrik 2012-01-05 14:46:42

回答

3

如果需要要快,我想說渲染orthograhic四紋理的大小和使用着色器從深度紋理讀取和寫入到目標的紋理。

如果表現不管那麼多了,你可以使用公益組織(甚至可能會更快取決於您的渲染管線,但攤位的CPU)。 Here's an overview on said PBOs

我不知道任何固有的OpenGL的方法來做到這一點。

+0

我會建議一個額外的顏色附件,而不是新的渲染階段。 – Luca 2012-01-05 15:26:25

+0

我會試試這個。謝謝 – Patrik 2012-01-06 09:46:58