Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three /examples /jsm /loaders /HDRCubeTextureLoader.js
| import { | |
| CubeTexture, | |
| DataTexture, | |
| FileLoader, | |
| FloatType, | |
| HalfFloatType, | |
| LinearFilter, | |
| LinearSRGBColorSpace, | |
| Loader | |
| } from 'three'; | |
| import { RGBELoader } from '../loaders/RGBELoader.js'; | |
| class HDRCubeTextureLoader extends Loader { | |
| constructor( manager ) { | |
| super( manager ); | |
| this.hdrLoader = new RGBELoader(); | |
| this.type = HalfFloatType; | |
| } | |
| load( urls, onLoad, onProgress, onError ) { | |
| const texture = new CubeTexture(); | |
| texture.type = this.type; | |
| switch ( texture.type ) { | |
| case FloatType: | |
| texture.colorSpace = LinearSRGBColorSpace; | |
| texture.minFilter = LinearFilter; | |
| texture.magFilter = LinearFilter; | |
| texture.generateMipmaps = false; | |
| break; | |
| case HalfFloatType: | |
| texture.colorSpace = LinearSRGBColorSpace; | |
| texture.minFilter = LinearFilter; | |
| texture.magFilter = LinearFilter; | |
| texture.generateMipmaps = false; | |
| break; | |
| } | |
| const scope = this; | |
| let loaded = 0; | |
| function loadHDRData( i, onLoad, onProgress, onError ) { | |
| new FileLoader( scope.manager ) | |
| .setPath( scope.path ) | |
| .setResponseType( 'arraybuffer' ) | |
| .setWithCredentials( scope.withCredentials ) | |
| .load( urls[ i ], function ( buffer ) { | |
| loaded ++; | |
| const texData = scope.hdrLoader.parse( buffer ); | |
| if ( ! texData ) return; | |
| if ( texData.data !== undefined ) { | |
| const dataTexture = new DataTexture( texData.data, texData.width, texData.height ); | |
| dataTexture.type = texture.type; | |
| dataTexture.colorSpace = texture.colorSpace; | |
| dataTexture.format = texture.format; | |
| dataTexture.minFilter = texture.minFilter; | |
| dataTexture.magFilter = texture.magFilter; | |
| dataTexture.generateMipmaps = texture.generateMipmaps; | |
| texture.images[ i ] = dataTexture; | |
| } | |
| if ( loaded === 6 ) { | |
| texture.needsUpdate = true; | |
| if ( onLoad ) onLoad( texture ); | |
| } | |
| }, onProgress, onError ); | |
| } | |
| for ( let i = 0; i < urls.length; i ++ ) { | |
| loadHDRData( i, onLoad, onProgress, onError ); | |
| } | |
| return texture; | |
| } | |
| setDataType( value ) { | |
| this.type = value; | |
| this.hdrLoader.setDataType( value ); | |
| return this; | |
| } | |
| } | |
| export { HDRCubeTextureLoader }; | |
Xet Storage Details
- Size:
- 2.18 kB
- Xet hash:
- 1f2ea57dd50f8958e6e5f84e7e5e67ea88ecb526c5725f0913e5a0b45817a77d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.