|
@@ -104,31 +104,44 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
|
|
|
if ( ! capabilities.isWebGL2 ) return glFormat;
|
|
|
|
|
|
+ var internalFormat = glFormat;
|
|
|
+
|
|
|
if ( glFormat === _gl.RED ) {
|
|
|
|
|
|
- if ( glType === _gl.FLOAT ) return _gl.R32F;
|
|
|
- if ( glType === _gl.HALF_FLOAT ) return _gl.R16F;
|
|
|
- if ( glType === _gl.UNSIGNED_BYTE ) return _gl.R8;
|
|
|
+ if ( glType === _gl.FLOAT ) internalFormat = _gl.R32F;
|
|
|
+ if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.R16F;
|
|
|
+ if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8;
|
|
|
|
|
|
}
|
|
|
|
|
|
if ( glFormat === _gl.RGB ) {
|
|
|
|
|
|
- if ( glType === _gl.FLOAT ) return _gl.RGB32F;
|
|
|
- if ( glType === _gl.HALF_FLOAT ) return _gl.RGB16F;
|
|
|
- if ( glType === _gl.UNSIGNED_BYTE ) return _gl.RGB8;
|
|
|
+ if ( glType === _gl.FLOAT ) internalFormat = _gl.RGB32F;
|
|
|
+ if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGB16F;
|
|
|
+ if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGB8;
|
|
|
|
|
|
}
|
|
|
|
|
|
if ( glFormat === _gl.RGBA ) {
|
|
|
|
|
|
- if ( glType === _gl.FLOAT ) return _gl.RGBA32F;
|
|
|
- if ( glType === _gl.HALF_FLOAT ) return _gl.RGBA16F;
|
|
|
- if ( glType === _gl.UNSIGNED_BYTE ) return _gl.RGBA8;
|
|
|
+ if ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F;
|
|
|
+ if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F;
|
|
|
+ if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGBA8;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( internalFormat === _gl.R16F || internalFormat === _gl.R32F ||
|
|
|
+ internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F ) {
|
|
|
+
|
|
|
+ extensions.get( 'EXT_color_buffer_float' );
|
|
|
+
|
|
|
+ } else if ( internalFormat === _gl.RGB16F || internalFormat === _gl.RGB32F ) {
|
|
|
+
|
|
|
+ console.warn( 'THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.' );
|
|
|
|
|
|
}
|
|
|
|
|
|
- return glFormat;
|
|
|
+ return internalFormat;
|
|
|
|
|
|
}
|
|
|
|