@@ -104,31 +104,44 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
104104
105105 if ( ! capabilities . isWebGL2 ) return glFormat ;
106106
107+ var internalFormat = glFormat ;
108+
107109 if ( glFormat === _gl . RED ) {
108110
109- if ( glType === _gl . FLOAT ) return _gl . R32F ;
110- if ( glType === _gl . HALF_FLOAT ) return _gl . R16F ;
111- if ( glType === _gl . UNSIGNED_BYTE ) return _gl . R8 ;
111+ if ( glType === _gl . FLOAT ) internalFormat = _gl . R32F ;
112+ if ( glType === _gl . HALF_FLOAT ) internalFormat = _gl . R16F ;
113+ if ( glType === _gl . UNSIGNED_BYTE ) internalFormat = _gl . R8 ;
112114
113115 }
114116
115117 if ( glFormat === _gl . RGB ) {
116118
117- if ( glType === _gl . FLOAT ) return _gl . RGB32F ;
118- if ( glType === _gl . HALF_FLOAT ) return _gl . RGB16F ;
119- if ( glType === _gl . UNSIGNED_BYTE ) return _gl . RGB8 ;
119+ if ( glType === _gl . FLOAT ) internalFormat = _gl . RGB32F ;
120+ if ( glType === _gl . HALF_FLOAT ) internalFormat = _gl . RGB16F ;
121+ if ( glType === _gl . UNSIGNED_BYTE ) internalFormat = _gl . RGB8 ;
120122
121123 }
122124
123125 if ( glFormat === _gl . RGBA ) {
124126
125- if ( glType === _gl . FLOAT ) return _gl . RGBA32F ;
126- if ( glType === _gl . HALF_FLOAT ) return _gl . RGBA16F ;
127- if ( glType === _gl . UNSIGNED_BYTE ) return _gl . RGBA8 ;
127+ if ( glType === _gl . FLOAT ) internalFormat = _gl . RGBA32F ;
128+ if ( glType === _gl . HALF_FLOAT ) internalFormat = _gl . RGBA16F ;
129+ if ( glType === _gl . UNSIGNED_BYTE ) internalFormat = _gl . RGBA8 ;
130+
131+ }
132+
133+ if ( internalFormat === _gl . R16F || internalFormat === _gl . R32F ||
134+ internalFormat === _gl . RGBA16F || internalFormat === _gl . RGBA32F ) {
135+
136+ extensions . get ( 'EXT_color_buffer_float' ) ;
137+
138+ } else if ( internalFormat === _gl . RGB16F || internalFormat === _gl . RGB32F ) {
139+
140+ console . warn ( 'THREE.WebGLRenderer: Floating point textures with RGB format not supported. Please use RGBA instead.' ) ;
128141
129142 }
130143
131- return glFormat ;
144+ return internalFormat ;
132145
133146 }
134147
0 commit comments