提交 2bb512d8 编写于 作者: M Mugen87

WebGLTextures: Fix floating point textures with WebGL 2

上级 f62b2a82
...@@ -104,31 +104,44 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils, ...@@ -104,31 +104,44 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
if ( ! capabilities.isWebGL2 ) return glFormat; if ( ! capabilities.isWebGL2 ) return glFormat;
var internalFormat = glFormat;
if ( glFormat === _gl.RED ) { if ( glFormat === _gl.RED ) {
if ( glType === _gl.FLOAT ) return _gl.R32F; if ( glType === _gl.FLOAT ) internalFormat = _gl.R32F;
if ( glType === _gl.HALF_FLOAT ) return _gl.R16F; if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.R16F;
if ( glType === _gl.UNSIGNED_BYTE ) return _gl.R8; if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8;
} }
if ( glFormat === _gl.RGB ) { if ( glFormat === _gl.RGB ) {
if ( glType === _gl.FLOAT ) return _gl.RGB32F; if ( glType === _gl.FLOAT ) internalFormat = _gl.RGB32F;
if ( glType === _gl.HALF_FLOAT ) return _gl.RGB16F; if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGB16F;
if ( glType === _gl.UNSIGNED_BYTE ) return _gl.RGB8; if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RGB8;
} }
if ( glFormat === _gl.RGBA ) { if ( glFormat === _gl.RGBA ) {
if ( glType === _gl.FLOAT ) return _gl.RGBA32F; if ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F;
if ( glType === _gl.HALF_FLOAT ) return _gl.RGBA16F; if ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F;
if ( glType === _gl.UNSIGNED_BYTE ) return _gl.RGBA8; 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;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册