浏览代码

WebGLTextures: Support RG in getInternalFormat (#23274)

Toru Higuruma 3 年之前
父节点
当前提交
9dece8ad0a
共有 2 个文件被更改,包括 12 次插入0 次删除
  1. 9 0
      src/renderers/webgl/WebGLTextures.js
  2. 3 0
      utils/build/rollup.config.js

+ 9 - 0
src/renderers/webgl/WebGLTextures.js

@@ -153,6 +153,14 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 
 		}
 
+		if ( glFormat === _gl.RG ) {
+
+			if ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;
+			if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RG16F;
+			if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8;
+
+		}
+
 		if ( glFormat === _gl.RGB ) {
 
 			if ( glType === _gl.FLOAT ) internalFormat = _gl.RGB32F;
@@ -170,6 +178,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
 		}
 
 		if ( internalFormat === _gl.R16F || internalFormat === _gl.R32F ||
+			internalFormat === _gl.RG16F || internalFormat === _gl.RG32F ||
 			internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F ) {
 
 			extensions.get( 'EXT_color_buffer_float' );

+ 3 - 0
utils/build/rollup.config.js

@@ -100,8 +100,11 @@ export function glconstants() {
 		DEPTH_COMPONENT32F: 36012,
 		DEPTH_STENCIL_ATTACHMENT: 33306,
 		R8: 33321,
+		RG8: 33323,
 		R16F: 33325,
 		R32F: 33326,
+		RG16F: 33327,
+		RG32F: 33328,
 		UNSIGNED_SHORT_5_6_5: 33635,
 		MIRRORED_REPEAT: 33648,
 		TEXTURE0: 33984,