Browse Source

Editor: Add support for exr files.

Mr.doob 5 months ago
parent
commit
01d3c943f0
2 changed files with 31 additions and 3 deletions
  1. 26 0
      editor/js/libs/ui.three.js
  2. 5 3
      editor/sw.js

+ 26 - 0
editor/js/libs/ui.three.js

@@ -1,5 +1,6 @@
 import * as THREE from 'three';
 
+import { EXRLoader } from 'three/addons/loaders/EXRLoader.js';
 import { KTX2Loader } from 'three/addons/loaders/KTX2Loader.js';
 import { RGBELoader } from 'three/addons/loaders/RGBELoader.js';
 import { TGALoader } from 'three/addons/loaders/TGALoader.js';
@@ -139,6 +140,31 @@ class UITexture extends UISpan {
 
 				reader.readAsArrayBuffer( file );
 
+			} else if ( extension === 'exr' ) {
+
+				reader.addEventListener( 'load', function ( event ) {
+
+					const arrayBuffer = event.target.result;
+					const blobURL = URL.createObjectURL( new Blob( [ arrayBuffer ] ) );
+					const exrLoader = new EXRLoader();
+
+					exrLoader.load( blobURL, function ( texture ) {
+
+						texture.sourceFile = file.name;
+						texture.needsUpdate = true;
+
+						cache.set( hash, texture );
+
+						scope.setValue( texture );
+
+						if ( scope.onChangeCallback ) scope.onChangeCallback( texture );
+
+					} );
+
+				} );
+
+				reader.readAsArrayBuffer( file );
+
 			} else if ( file.type.match( 'image.*' ) ) {
 
 				reader.addEventListener( 'load', function ( event ) {

+ 5 - 3
editor/sw.js

@@ -41,16 +41,13 @@ const assets = [
 	'../examples/jsm/loaders/FBXLoader.js',
 	'../examples/jsm/loaders/GLTFLoader.js',
 	'../examples/jsm/loaders/KMZLoader.js',
-	'../examples/jsm/loaders/KTX2Loader.js',
 	'../examples/jsm/loaders/MD2Loader.js',
 	'../examples/jsm/loaders/OBJLoader.js',
 	'../examples/jsm/loaders/MTLLoader.js',
 	'../examples/jsm/loaders/PCDLoader.js',
 	'../examples/jsm/loaders/PLYLoader.js',
-	'../examples/jsm/loaders/RGBELoader.js',
 	'../examples/jsm/loaders/STLLoader.js',
 	'../examples/jsm/loaders/SVGLoader.js',
-	'../examples/jsm/loaders/TGALoader.js',
 	'../examples/jsm/loaders/TDSLoader.js',
 	'../examples/jsm/loaders/USDLoader.js',
 	'../examples/jsm/loaders/usd/USDAParser.js',
@@ -60,6 +57,11 @@ const assets = [
 	'../examples/jsm/loaders/VTKLoader.js',
 	'../examples/jsm/loaders/XYZLoader.js',
 
+	'../examples/jsm/loaders/EXRLoader.js',
+	'../examples/jsm/loaders/KTX2Loader.js',
+	'../examples/jsm/loaders/RGBELoader.js',
+	'../examples/jsm/loaders/TGALoader.js',
+
 	'../examples/jsm/curves/NURBSCurve.js',
 	'../examples/jsm/curves/NURBSUtils.js',
 

粤ICP备19079148号