From 444c6a248ebb0ec0b3f5e28ad9238ed25aee2a8b Mon Sep 17 00:00:00 2001 From: Guilherme Avila Date: Sun, 5 Jul 2020 21:21:58 -0300 Subject: [PATCH] EXRLoader: fix flipped unsigned byte texture --- examples/js/loaders/EXRLoader.js | 11 +++++------ examples/jsm/loaders/EXRLoader.js | 11 +++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/examples/js/loaders/EXRLoader.js b/examples/js/loaders/EXRLoader.js index 92c89f4510..48bf219e1d 100644 --- a/examples/js/loaders/EXRLoader.js +++ b/examples/js/loaders/EXRLoader.js @@ -2257,7 +2257,7 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade if ( this.type === THREE.UnsignedByteType ) { - let v, i, j; + let v, i; const size = byteArray.length; const RGBEArray = new Uint8Array( size ); @@ -2266,11 +2266,10 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade for ( let w = 0; w < width; ++ w ) { i = h * width * 4 + w * 4; - j = ( height - 1 - h ) * width * 4 + w * 4; - const red = byteArray[ j ]; - const green = byteArray[ j + 1 ]; - const blue = byteArray[ j + 2 ]; + const red = byteArray[ i ]; + const green = byteArray[ i + 1 ]; + const blue = byteArray[ i + 2 ]; v = ( red > green ) ? red : green; v = ( blue > v ) ? blue : v; @@ -2331,7 +2330,7 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade texture.minFilter = THREE.NearestFilter; texture.magFilter = THREE.NearestFilter; texture.generateMipmaps = false; - texture.flipY = true; + texture.flipY = false; break; case THREE.FloatType: diff --git a/examples/jsm/loaders/EXRLoader.js b/examples/jsm/loaders/EXRLoader.js index 521ec59f40..0e9ef3c665 100644 --- a/examples/jsm/loaders/EXRLoader.js +++ b/examples/jsm/loaders/EXRLoader.js @@ -2271,7 +2271,7 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype if ( this.type === UnsignedByteType ) { - let v, i, j; + let v, i; const size = byteArray.length; const RGBEArray = new Uint8Array( size ); @@ -2280,11 +2280,10 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype for ( let w = 0; w < width; ++ w ) { i = h * width * 4 + w * 4; - j = ( height - 1 - h ) * width * 4 + w * 4; - const red = byteArray[ j ]; - const green = byteArray[ j + 1 ]; - const blue = byteArray[ j + 2 ]; + const red = byteArray[ i ]; + const green = byteArray[ i + 1 ]; + const blue = byteArray[ i + 2 ]; v = ( red > green ) ? red : green; v = ( blue > v ) ? blue : v; @@ -2345,7 +2344,7 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype texture.minFilter = NearestFilter; texture.magFilter = NearestFilter; texture.generateMipmaps = false; - texture.flipY = true; + texture.flipY = false; break; case FloatType: -- GitLab