2
0
Эх сурвалжийг харах

EXRLoader: implement preview header attribute

Guilherme Avila 5 жил өмнө
parent
commit
25bd000bd9

+ 13 - 0
examples/js/loaders/EXRLoader.js

@@ -1678,6 +1678,15 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade
 
 		}
 
+		function parsePreview( dataView, offset ) {
+
+			var width = parseUint32( dataView, offset );
+			var height = parseUint32( dataView, offset );
+
+			offset.value += 4 * width * height;
+
+		}
+
 		function parseInt32( dataView, offset ) {
 
 			var Int32 = dataView.getInt32( offset.value, true );
@@ -1985,6 +1994,10 @@ THREE.EXRLoader.prototype = Object.assign( Object.create( THREE.DataTextureLoade
 
 				return parseTimecode( dataView, offset );
 
+			} else if ( type === 'preview' ) {
+
+				return parsePreview( dataView, offset );
+
 			} else {
 
 				throw 'Cannot parse value for unsupported type: ' + type;

+ 13 - 0
examples/jsm/loaders/EXRLoader.js

@@ -1691,6 +1691,15 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype
 
 		}
 
+		function parsePreview( dataView, offset ) {
+
+			var width = parseUint32( dataView, offset );
+			var height = parseUint32( dataView, offset );
+
+			offset.value += 4 * width * height;
+
+		}
+
 		function parseInt32( dataView, offset ) {
 
 			var Int32 = dataView.getInt32( offset.value, true );
@@ -1998,6 +2007,10 @@ EXRLoader.prototype = Object.assign( Object.create( DataTextureLoader.prototype
 
 				return parseTimecode( dataView, offset );
 
+			} else if ( type === 'preview' ) {
+
+				return parsePreview( dataView, offset );
+
 			} else {
 
 				throw 'Cannot parse value for unsupported type: ' + type;