2017-07-27 58 views
0

Khronos ref pagesWebGL:確實使用單通道紋理格式實際保存(紋理)內存?

GL_LUMINANCE:每個元件是單個的亮度值。 GL 將其轉換爲浮點,然後通過爲紅色,綠色和 藍色複製亮度值三次並將alpha附加1,將其組裝到RGBA元素 中。

這也適用於WebGL嗎?如果是這樣,這是否意味着與使用RGBA相比,使用較少通道格式的紋理(如LUMINANCE)可以節省VRAM 而不是

那麼內存怎麼樣?

回答

2

這是否也適用於WebGL?

是它

這並不意味着使用較少的渠道諸如亮度不保存VRAM相比,使用RGBA

沒有經過格式化的紋理,而這是特定的實現(有些實現實際上選擇在上傳之前將數據擴展到RGBA),擴展應該在運行中發生,基本上只是在從着色器中的這種紋理採樣時爲每個顏色分量提供一個相同的值。

又有怎樣的RAM?

一旦你調用texImage2D的數據上傳到VRAM和(通過舉行對數據的參考e.g。)不是,只要你不這樣做保存在RAM中。

0

GL_LUMINANCE在OpenGL 3.2中被棄用和刪除。現在,您可以使用像GL_R8這樣的枚舉明確指定內部格式。實現以指定的格式分配其內部存儲(即使這種保證在OpenGL規範中沒有,按照as-if規則)。我建議不要在WebGL中使用GL_LUMINANCE。只需使用明確的內部格式並根據需要在着色器中展開它,或者通過紋理調整。

+0

哪些只能用於WebGL ** 2 ** ... –