From e23695f60a9af67d9bcb334c608dd9458aadfa17 Mon Sep 17 00:00:00 2001 From: WestLangley Date: Thu, 3 Sep 2020 18:16:02 -0400 Subject: [PATCH] Properly handle exr files on drag-and-drop --- examples/webgl_materials_matcap.html | 32 ++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/examples/webgl_materials_matcap.html b/examples/webgl_materials_matcap.html index f63b2c486c5546..139706b579efd9 100644 --- a/examples/webgl_materials_matcap.html +++ b/examples/webgl_materials_matcap.html @@ -62,11 +62,14 @@ var manager = new THREE.LoadingManager( render ); // matcap - var loader = new EXRLoader( manager ); + var loader = new EXRLoader( manager ) + .setDataType( THREE.UnsignedByteType ); // default: FloatType + var matcap = loader.load( 'textures/matcaps/040full.exr' ); // normalmap var loader = new THREE.TextureLoader( manager ); + var normalmap = loader.load( 'models/gltf/LeePerrySmith/Infinite-Level_02_Tangent_SmoothUV.jpg' ); // model @@ -179,6 +182,8 @@ var loader = new EXRLoader(); + loader.setDataType( THREE.UnsignedByteType ); // default: FloatType + var texData = loader.parse( contents ); var texture = new THREE.DataTexture(); @@ -190,9 +195,28 @@ texture.format = texData.format; texture.type = texData.type; - texture.generateMipmaps = false; - texture.magFilter = THREE.LinearFilter; - texture.minFilter = THREE.LinearFilter; + switch ( texture.type ) { + + case THREE.UnsignedByteType: + + texture.encoding = THREE.RGBEEncoding; + texture.minFilter = THREE.NearestFilter; + texture.magFilter = THREE.NearestFilter; + texture.generateMipmaps = false; + texture.flipY = false; + break; + + case THREE.FloatType: + case THREE.HalfFloatType: + + texture.encoding = THREE.LinearEncoding; + texture.minFilter = THREE.LinearFilter; + texture.magFilter = THREE.LinearFilter; + texture.generateMipmaps = false; + texture.flipY = false; + break; + + } updateMatcap( texture );