如果我創建兩個紋理作爲 1. srcID 2. destID如何使用glCopyImageSubData和GL_TEXTURE_CUBE_MAP紋理?
的兩種類型GL_TEXTURE_CUBE_MAP
glTexStorage2D(GL_TEXTURE_CUBE_MAP,6,GL_RGBA8,32,32);
現在「srcID」填充了所有需要的紋理數據。 那麼使用哪些參數來將整個「srcID」複製到「destID」。 嘗試了很多組合,但它總是給錯誤。
如果我創建兩個紋理作爲 1. srcID 2. destID如何使用glCopyImageSubData和GL_TEXTURE_CUBE_MAP紋理?
的兩種類型GL_TEXTURE_CUBE_MAP
glTexStorage2D(GL_TEXTURE_CUBE_MAP,6,GL_RGBA8,32,32);
現在「srcID」填充了所有需要的紋理數據。 那麼使用哪些參數來將整個「srcID」複製到「destID」。 嘗試了很多組合,但它總是給錯誤。
這是未經測試,並且純粹從學習手冊頁和規範文件:
glCopyImageSubData(srcID, GL_TEXTURE_CUBE_MAP, 0, 0, 0, 0,
destID, GL_TEXTURE_CUBE_MAP, 0, 0, 0, 0,
32, 32, 6);
最低明顯的部分是如何指定要複製所有的立方體貼圖面。該規範說明了目標參數:
接受所有非代理紋理目標,TEXTURE_BUFFER和表8.19中描述的立方體貼圖選擇器除外。
這告訴我GL_TEXTURE_CUBE_MAP
必須用於那些參數,而不是特定的面。
那麼如何指定要複製所有6分立方體貼圖的面孔,這部分是相關的(重點由我加的):
一個一維數組,二維數組,立方體的片圖陣列,或三維紋理或面的立方圖質感都兼容,只要它們共享一個兼容的內部格式,和多個切片或面可以通過指定被複制這些對象與單個呼叫之間與srcZ和dstZ,和用srcDepth複製的切片數量。 根據表8.19中指定的順序,Cubemap紋理總是有六個面,這些面由基於零的人臉索引選擇。
所以複製所有6個面應該用0 srcZ
和dstZ
,和6 srcDepth
工作。