|
@@ -244,6 +244,8 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
extensions.get( 'OES_texture_float' );
|
|
|
extensions.get( 'OES_texture_float_linear' );
|
|
|
+ extensions.get( 'OES_texture_half_float' );
|
|
|
+ extensions.get( 'OES_texture_half_float_linear' );
|
|
|
extensions.get( 'OES_standard_derivatives' );
|
|
|
|
|
|
if ( _logarithmicDepthBuffer ) {
|
|
@@ -429,6 +431,12 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
};
|
|
|
|
|
|
+ this.supportsHalfFloatTextures = function () {
|
|
|
+
|
|
|
+ return extensions.get( 'OES_texture_half_float' );
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
this.supportsStandardDerivatives = function () {
|
|
|
|
|
|
return extensions.get( 'OES_standard_derivatives' );
|
|
@@ -5661,7 +5669,7 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
|
|
|
extension = extensions.get( 'EXT_texture_filter_anisotropic' );
|
|
|
|
|
|
- if ( extension && texture.type !== THREE.FloatType ) {
|
|
|
+ if ( extension && texture.type !== THREE.FloatType && texture.type !== THREE.HalfFloatType ) {
|
|
|
|
|
|
if ( texture.anisotropy > 1 || texture.__oldAnisotropy ) {
|
|
|
|
|
@@ -6246,6 +6254,14 @@ THREE.WebGLRenderer = function ( parameters ) {
|
|
|
if ( p === THREE.UnsignedIntType ) return _gl.UNSIGNED_INT;
|
|
|
if ( p === THREE.FloatType ) return _gl.FLOAT;
|
|
|
|
|
|
+ extension = extensions.get( 'OES_texture_half_float' );
|
|
|
+
|
|
|
+ if ( extension !== null ) {
|
|
|
+
|
|
|
+ if ( p === THREE.HalfFloatType ) return extension.HALF_FLOAT_OES;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
if ( p === THREE.AlphaFormat ) return _gl.ALPHA;
|
|
|
if ( p === THREE.RGBFormat ) return _gl.RGB;
|
|
|
if ( p === THREE.RGBAFormat ) return _gl.RGBA;
|