2012-12-17 46 views
1

在WebGL的texImage2D調用中傳遞給internalformat的有效可能值是什麼? WebGL規範似乎沒有說清楚,我不確定桌面GL文檔中的哪些枚舉將在WebGL中起作用。WebGL選擇內部格式

WebGL的定義:RGBRGBARGBA4RGB5_A1RGB565。所有這些保證是有效的內部格式?

type參數是否被納入考慮範圍?如果我設置internalformatRGBtypeUNSIGNED_SHORT_5_6_5,這是否保證內部格式將是16位?或者它總是使用RGB8還是基於其他因素來決定?

+0

'RGBA4','RGB5_A1','RGB565'渲染緩衝格式不是紋理格式。請參閱'glRenderbufferStorage'(http://www.khronos.org/opengles/sdk/docs/man/xhtml/glRenderbufferStorage.xml) – gman

回答

3

從我的理解如下參數中的WebGL是有效的:

internalformat:GL_ALPHA,GL_LUMINANCE,GL_LUMINANCE_ALPHA,GL_RGB,GL_RGBA。

format:GL_ALPHA,GL_RGB,GL_RGBA,GL_LUMINANCE和GL_LUMINANCE_ALPHA。

類型:GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4和GL_UNSIGNED_SHORT_5_5_5_1。

internalformat必須從opengl ES 2.0文檔

匹配格式:

internalformat必須匹配格式。在紋理圖像處理過程中不支持格式間的轉換。類型可以用作提示來指定需要多少精度,但是GL實現可以選擇以其選擇的任何內部分辨率來存儲紋理數組。

如果webgl文檔沒有提供足夠的細節,那麼opengl es 2.0文檔可能會有所幫助(章節3.7.1)。從看differences between webgl and opengl es 2.0應該沒有任何區別glTexImage2D之間的webgl和opengl es 2.0