super-three 0.133.3 → 0.136.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.js +1059 -783
- package/build/three.min.js +1 -1
- package/build/three.module.js +1424 -895
- package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
- package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
- package/examples/fonts/open-sans/open-sans.css +9 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +3966 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
- package/examples/fonts/tabler-icons/tabler-icons.min.css +4 -0
- package/examples/js/animation/CCDIKSolver.js +0 -1
- package/examples/js/animation/MMDPhysics.js +1 -3
- package/examples/js/controls/ArcballControls.js +99 -72
- package/examples/js/controls/DragControls.js +7 -0
- package/examples/js/controls/OrbitControls.js +5 -36
- package/examples/js/controls/TrackballControls.js +3 -2
- package/examples/js/controls/TransformControls.js +24 -1
- package/examples/js/csm/CSM.js +2 -2
- package/examples/js/csm/CSMFrustum.js +133 -0
- package/examples/js/curves/CurveExtras.js +0 -2
- package/examples/js/effects/AsciiEffect.js +2 -9
- package/examples/js/exporters/GLTFExporter.js +148 -64
- package/examples/js/exporters/USDZExporter.js +45 -26
- package/examples/js/geometries/TeapotGeometry.js +0 -1
- package/examples/js/interactive/SelectionBox.js +2 -0
- package/examples/js/interactive/SelectionHelper.js +22 -7
- package/examples/js/lights/RectAreaLightUniformsLib.js +4 -0
- package/examples/js/lines/LineMaterial.js +58 -20
- package/examples/js/lines/LineSegments2.js +29 -24
- package/examples/js/loaders/3DMLoader.js +24 -11
- package/examples/js/loaders/3MFLoader.js +2 -2
- package/examples/js/loaders/AMFLoader.js +0 -2
- package/examples/js/loaders/ColladaLoader.js +61 -4
- package/examples/js/loaders/EXRLoader.js +185 -262
- package/examples/js/loaders/FBXLoader.js +4 -5
- package/examples/js/loaders/GLTFLoader.js +96 -33
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -8
- package/examples/js/loaders/KTX2Loader.js +23 -2
- package/examples/js/loaders/KTXLoader.js +1 -1
- package/examples/js/loaders/LDrawLoader.js +26 -30
- package/examples/js/loaders/LUT3dlLoader.js +2 -0
- package/examples/js/loaders/LUTCubeLoader.js +2 -0
- package/examples/js/loaders/LWOLoader.js +8 -6
- package/examples/js/loaders/LogLuvLoader.js +766 -0
- package/examples/js/loaders/MMDLoader.js +0 -1
- package/examples/js/loaders/NRRDLoader.js +9 -2
- package/examples/js/loaders/OBJLoader.js +0 -2
- package/examples/js/loaders/PLYLoader.js +33 -8
- package/examples/js/loaders/RGBELoader.js +2 -16
- package/examples/js/loaders/RGBMLoader.js +55 -5
- package/examples/js/loaders/SVGLoader.js +9 -5
- package/examples/js/loaders/TDSLoader.js +237 -271
- package/examples/js/loaders/VOXLoader.js +1 -0
- package/examples/js/loaders/VRMLLoader.js +2 -1
- package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
- package/examples/js/math/ImprovedNoise.js +1 -1
- package/examples/js/misc/GPUComputationRenderer.js +3 -1
- package/examples/js/objects/Lensflare.js +2 -10
- package/examples/js/objects/MarchingCubes.js +42 -128
- package/examples/js/objects/Reflector.js +7 -0
- package/examples/js/objects/Refractor.js +7 -0
- package/examples/js/objects/Sky.js +1 -1
- package/examples/js/objects/Water.js +2 -2
- package/examples/js/objects/Water2.js +4 -7
- package/examples/js/postprocessing/GlitchPass.js +3 -1
- package/examples/js/postprocessing/SSAOPass.js +1 -0
- package/examples/js/renderers/CSS2DRenderer.js +4 -4
- package/examples/js/renderers/CSS3DRenderer.js +4 -4
- package/examples/js/shaders/ConvolutionShader.js +0 -1
- package/examples/js/shaders/FXAAShader.js +1 -1
- package/examples/js/shaders/FilmShader.js +1 -1
- package/examples/js/shaders/GammaCorrectionShader.js +1 -1
- package/examples/js/shaders/HorizontalBlurShader.js +1 -2
- package/examples/js/shaders/SSRShader.js +1 -1
- package/examples/js/shaders/SSRrShader.js +1 -1
- package/examples/js/shaders/VerticalBlurShader.js +1 -2
- package/examples/js/utils/GeometryUtils.js +1 -1
- package/examples/js/utils/RoughnessMipmapper.js +18 -28
- package/examples/jsm/animation/CCDIKSolver.js +0 -1
- package/examples/jsm/animation/MMDPhysics.js +0 -2
- package/examples/jsm/controls/ArcballControls.js +80 -77
- package/examples/jsm/controls/DragControls.js +7 -0
- package/examples/jsm/controls/OrbitControls.js +9 -51
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +24 -1
- package/examples/jsm/csm/CSM.js +3 -3
- package/examples/jsm/csm/{Frustum.js → CSMFrustum.js} +3 -3
- package/examples/jsm/curves/CurveExtras.js +0 -2
- package/examples/jsm/effects/AsciiEffect.js +2 -9
- package/examples/jsm/exporters/GLTFExporter.js +161 -75
- package/examples/jsm/exporters/USDZExporter.js +47 -26
- package/examples/jsm/geometries/TeapotGeometry.js +0 -1
- package/examples/jsm/interactive/SelectionBox.js +1 -0
- package/examples/jsm/interactive/SelectionHelper.js +19 -7
- package/examples/jsm/libs/flow.module.js +3338 -0
- package/examples/jsm/libs/lil-gui.module.min.js +8 -0
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +7 -0
- package/examples/jsm/lines/LineMaterial.js +59 -23
- package/examples/jsm/lines/LineSegments2.js +22 -18
- package/examples/jsm/loaders/3DMLoader.js +18 -12
- package/examples/jsm/loaders/3MFLoader.js +2 -2
- package/examples/jsm/loaders/AMFLoader.js +0 -2
- package/examples/jsm/loaders/ColladaLoader.js +61 -4
- package/examples/jsm/loaders/EXRLoader.js +184 -293
- package/examples/jsm/loaders/FBXLoader.js +4 -5
- package/examples/jsm/loaders/GLTFLoader.js +101 -37
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -14
- package/examples/jsm/loaders/KTX2Loader.js +30 -2
- package/examples/jsm/loaders/KTXLoader.js +1 -1
- package/examples/jsm/loaders/LDrawLoader.js +23 -24
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -0
- package/examples/jsm/loaders/LUTCubeLoader.js +2 -0
- package/examples/jsm/loaders/LWOLoader.js +8 -6
- package/examples/jsm/loaders/LogLuvLoader.js +606 -0
- package/examples/jsm/loaders/MMDLoader.js +0 -1
- package/examples/jsm/loaders/NRRDLoader.js +10 -2
- package/examples/jsm/loaders/OBJLoader.js +0 -2
- package/examples/jsm/loaders/PLYLoader.js +34 -8
- package/examples/jsm/loaders/RGBELoader.js +0 -20
- package/examples/jsm/loaders/RGBMLoader.js +61 -7
- package/examples/jsm/loaders/SVGLoader.js +9 -6
- package/examples/jsm/loaders/TDSLoader.js +236 -275
- package/examples/jsm/loaders/VOXLoader.js +1 -0
- package/examples/jsm/loaders/VRMLLoader.js +2 -1
- package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +3 -1
- package/examples/jsm/node-editor/NodeEditor.js +456 -0
- package/examples/jsm/node-editor/accessors/NormalEditor.js +30 -0
- package/examples/jsm/node-editor/accessors/PositionEditor.js +30 -0
- package/examples/jsm/node-editor/accessors/UVEditor.js +26 -0
- package/examples/jsm/node-editor/display/BlendEditor.js +43 -0
- package/examples/jsm/node-editor/examples/animate-uv.json +1 -0
- package/examples/jsm/node-editor/examples/fake-top-light.json +1 -0
- package/examples/jsm/node-editor/examples/oscillator-color.json +1 -0
- package/examples/jsm/node-editor/examples/rim.json +1 -0
- package/examples/jsm/node-editor/inputs/ColorEditor.js +91 -0
- package/examples/jsm/node-editor/inputs/FloatEditor.js +24 -0
- package/examples/jsm/node-editor/inputs/SliderEditor.js +68 -0
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +28 -0
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +30 -0
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +37 -0
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +108 -0
- package/examples/jsm/node-editor/math/DotEditor.js +36 -0
- package/examples/jsm/node-editor/math/InvertEditor.js +38 -0
- package/examples/jsm/node-editor/math/LimiterEditor.js +48 -0
- package/examples/jsm/node-editor/math/NormalizeEditor.js +26 -0
- package/examples/jsm/node-editor/math/OperatorEditor.js +50 -0
- package/examples/jsm/node-editor/math/PowerEditor.js +34 -0
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +39 -0
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +26 -0
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +42 -0
- package/examples/jsm/node-editor/utils/TimerEditor.js +57 -0
- package/examples/jsm/nodes/core/NodeBuilder.js +2 -2
- package/examples/jsm/nodes/materials/StandardNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/nodes/StandardNode.js +7 -6
- package/examples/jsm/nodes/math/MathNode.js +12 -0
- package/examples/jsm/nodes/misc/BumpMapNode.js +1 -1
- package/examples/jsm/nodes/misc/TextureCubeUVNode.js +1 -4
- package/examples/jsm/nodes/utils/ColorSpaceNode.js +1 -164
- package/examples/jsm/objects/Lensflare.js +3 -14
- package/examples/jsm/objects/MarchingCubes.js +46 -152
- package/examples/jsm/objects/Reflector.js +7 -0
- package/examples/jsm/objects/Refractor.js +7 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/Water.js +2 -2
- package/examples/jsm/objects/Water2.js +4 -8
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +1 -1
- package/examples/jsm/postprocessing/AfterimagePass.js +1 -1
- package/examples/jsm/postprocessing/BloomPass.js +1 -1
- package/examples/jsm/postprocessing/BokehPass.js +1 -1
- package/examples/jsm/postprocessing/ClearPass.js +1 -1
- package/examples/jsm/postprocessing/CubeTexturePass.js +1 -1
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
- package/examples/jsm/postprocessing/EffectComposer.js +3 -3
- package/examples/jsm/postprocessing/FilmPass.js +1 -1
- package/examples/jsm/postprocessing/GlitchPass.js +4 -2
- package/examples/jsm/postprocessing/HalftonePass.js +1 -1
- package/examples/jsm/postprocessing/MaskPass.js +1 -1
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/RenderPass.js +1 -1
- package/examples/jsm/postprocessing/SAOPass.js +2 -2
- package/examples/jsm/postprocessing/SMAAPass.js +1 -1
- package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
- package/examples/jsm/postprocessing/SSAOPass.js +2 -1
- package/examples/jsm/postprocessing/SSRPass.js +1 -1
- package/examples/jsm/postprocessing/SSRrPass.js +1 -1
- package/examples/jsm/postprocessing/SavePass.js +1 -1
- package/examples/jsm/postprocessing/ShaderPass.js +1 -1
- package/examples/jsm/postprocessing/TAARenderPass.js +1 -1
- package/examples/jsm/postprocessing/TexturePass.js +1 -1
- package/examples/jsm/postprocessing/UnrealBloomPass.js +1 -1
- package/examples/jsm/renderers/CSS2DRenderer.js +5 -4
- package/examples/jsm/renderers/CSS3DRenderer.js +5 -4
- package/examples/jsm/renderers/nodes/Nodes.js +15 -13
- package/examples/jsm/renderers/nodes/ShaderNode.js +194 -41
- package/examples/jsm/renderers/nodes/accessors/MaterialNode.js +6 -6
- package/examples/jsm/renderers/nodes/accessors/ModelViewProjectionNode.js +5 -5
- package/examples/jsm/renderers/nodes/accessors/NormalNode.js +14 -3
- package/examples/jsm/renderers/nodes/accessors/PointUVNode.js +3 -3
- package/examples/jsm/renderers/nodes/accessors/PositionNode.js +15 -5
- package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +107 -0
- package/examples/jsm/renderers/nodes/accessors/UVNode.js +7 -5
- package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +3 -3
- package/examples/jsm/renderers/nodes/core/AttributeNode.js +6 -0
- package/examples/jsm/renderers/nodes/core/BypassNode.js +38 -0
- package/examples/jsm/renderers/nodes/core/CodeNode.js +3 -3
- package/examples/jsm/renderers/nodes/core/ContextNode.js +4 -19
- package/examples/jsm/renderers/nodes/core/ExpressionNode.js +13 -2
- package/examples/jsm/renderers/nodes/core/FunctionNode.js +19 -132
- package/examples/jsm/renderers/nodes/core/InputNode.js +13 -3
- package/examples/jsm/renderers/nodes/core/Node.js +32 -10
- package/examples/jsm/renderers/nodes/core/NodeBuilder.js +146 -128
- package/examples/jsm/renderers/nodes/core/NodeFunction.js +22 -0
- package/examples/jsm/renderers/nodes/core/NodeFunctionInput.js +4 -4
- package/examples/jsm/renderers/nodes/core/NodeKeywords.js +18 -179
- package/examples/jsm/renderers/nodes/core/NodeParser.js +11 -0
- package/examples/jsm/renderers/nodes/core/NodeVar.js +2 -2
- package/examples/jsm/renderers/nodes/core/PropertyNode.js +14 -2
- package/examples/jsm/renderers/nodes/core/TempNode.js +10 -13
- package/examples/jsm/renderers/nodes/core/VarNode.js +12 -7
- package/examples/jsm/renderers/nodes/core/VaryNode.js +23 -8
- package/examples/jsm/renderers/nodes/core/constants.js +2 -0
- package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +60 -43
- package/examples/jsm/renderers/nodes/display/NormalMapNode.js +21 -22
- package/examples/jsm/renderers/nodes/functions/BSDFs.js +64 -101
- package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +27 -0
- package/examples/jsm/renderers/nodes/inputs/BufferNode.js +25 -0
- package/examples/jsm/renderers/nodes/inputs/IntNode.js +17 -0
- package/examples/jsm/renderers/nodes/inputs/TextureNode.js +10 -2
- package/examples/jsm/renderers/nodes/lights/LightContextNode.js +20 -14
- package/examples/jsm/renderers/nodes/lights/LightNode.js +32 -36
- package/examples/jsm/renderers/nodes/math/CondNode.js +60 -0
- package/examples/jsm/renderers/nodes/math/MathNode.js +90 -37
- package/examples/jsm/renderers/nodes/math/OperatorNode.js +124 -31
- package/examples/jsm/renderers/nodes/parsers/GLSLNodeFunction.js +137 -0
- package/examples/jsm/renderers/nodes/parsers/GLSLNodeParser.js +14 -0
- package/examples/jsm/renderers/nodes/parsers/WGSLNodeFunction.js +89 -0
- package/examples/jsm/renderers/nodes/parsers/WGSLNodeParser.js +14 -0
- package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +7 -9
- package/examples/jsm/renderers/nodes/utils/ArrayElementNode.js +31 -0
- package/examples/jsm/renderers/nodes/utils/ConvertNode.js +33 -0
- package/examples/jsm/renderers/nodes/utils/JoinNode.js +7 -7
- package/examples/jsm/renderers/nodes/utils/OscNode.js +58 -0
- package/examples/jsm/renderers/nodes/utils/SplitNode.js +18 -8
- package/examples/jsm/renderers/nodes/utils/SpriteSheetUVNode.js +7 -7
- package/examples/jsm/renderers/nodes/utils/TimerNode.js +1 -1
- package/examples/jsm/renderers/webgl/nodes/SlotNode.js +22 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +192 -95
- package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +2 -2
- package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +10 -9
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +2 -4
- package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +2 -4
- package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +15 -23
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +44 -65
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +12 -28
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +61 -28
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +34 -27
- package/examples/jsm/renderers/webgpu/constants.js +2 -2
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +453 -95
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
- package/examples/jsm/shaders/ConvolutionShader.js +0 -1
- package/examples/jsm/shaders/FXAAShader.js +1 -1
- package/examples/jsm/shaders/FilmShader.js +1 -1
- package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
- package/examples/jsm/shaders/HorizontalBlurShader.js +1 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SSRrShader.js +1 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +1 -2
- package/examples/jsm/utils/GeometryUtils.js +1 -1
- package/examples/jsm/utils/RoughnessMipmapper.js +19 -31
- package/examples/jsm/utils/WorkerPool.js +11 -11
- package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
- package/package.json +24 -18
- package/src/Three.Legacy.js +18 -0
- package/src/Three.js +1 -3
- package/src/cameras/StereoCamera.js +8 -7
- package/src/constants.js +1 -8
- package/src/core/Layers.js +7 -1
- package/src/core/Object3D.js +3 -1
- package/src/extras/PMREMGenerator.js +23 -109
- package/src/extras/core/Interpolations.js +1 -1
- package/src/geometries/LatheGeometry.js +70 -47
- package/src/helpers/CameraHelper.js +1 -1
- package/src/loaders/FileLoader.js +98 -144
- package/src/loaders/ImageLoader.js +9 -4
- package/src/loaders/LoaderUtils.js +26 -0
- package/src/loaders/MaterialLoader.js +7 -4
- package/src/loaders/ObjectLoader.js +2 -0
- package/src/materials/Material.js +4 -4
- package/src/materials/MeshPhysicalMaterial.js +20 -14
- package/src/math/Color.js +0 -38
- package/src/math/MathUtils.js +5 -16
- package/src/math/Ray.js +2 -2
- package/src/math/Sphere.js +10 -1
- package/src/objects/Skeleton.js +1 -0
- package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
- package/src/renderers/WebGLRenderer.js +105 -132
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +2 -24
- package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -74
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +19 -6
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +28 -2
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +23 -5
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib.js +6 -4
- package/src/renderers/shaders/UniformsLib.js +1 -2
- package/src/renderers/webgl/WebGLCapabilities.js +0 -2
- package/src/renderers/webgl/WebGLExtensions.js +1 -0
- package/src/renderers/webgl/WebGLMaterials.js +27 -15
- package/src/renderers/webgl/WebGLMorphtargets.js +1 -0
- package/src/renderers/webgl/WebGLProgram.js +11 -24
- package/src/renderers/webgl/WebGLPrograms.js +194 -33
- package/src/renderers/webgl/WebGLRenderLists.js +4 -14
- package/src/renderers/webgl/WebGLShaderCache.js +120 -0
- package/src/renderers/webgl/WebGLShadowMap.js +14 -5
- package/src/renderers/webgl/WebGLState.js +76 -17
- package/src/renderers/webgl/WebGLTextures.js +367 -61
- package/src/renderers/webgl/WebGLUniforms.js +45 -1
- package/src/renderers/webxr/WebXRManager.js +77 -109
- package/src/scenes/Scene.js +1 -1
- package/src/textures/DataTexture.js +0 -2
- package/src/textures/DataTexture2DArray.js +0 -2
- package/src/textures/DataTexture3D.js +0 -2
- package/src/textures/FramebufferTexture.js +25 -0
- package/src/textures/Texture.js +6 -0
- package/examples/js/controls/DeviceOrientationControls.js +0 -147
- package/examples/js/libs/dat.gui.min.js +0 -14
- package/examples/jsm/controls/DeviceOrientationControls.js +0 -153
- package/examples/jsm/libs/dat.gui.module.js +0 -3575
- package/examples/jsm/libs/glslang.js +0 -78
- package/examples/jsm/libs/glslang.wasm +0 -0
- package/examples/jsm/renderers/nodes/consts/MathConsts.js +0 -7
- package/examples/jsm/renderers/nodes/core/ConstNode.js +0 -39
- package/examples/jsm/renderers/nodes/core/NodeSlot.js +0 -13
- package/examples/jsm/renderers/nodes/core/StructNode.js +0 -80
- package/examples/jsm/renderers/nodes/core/StructVarNode.js +0 -75
- package/examples/jsm/renderers/nodes/functions/EncodingFunctions.js +0 -99
- package/examples/jsm/renderers/nodes/functions/MathFunctions.js +0 -47
- package/examples/jsm/renderers/webgpu/nodes/ShaderLib.js +0 -152
- package/src/extras/objects/ImmediateRenderObject.js +0 -31
|
@@ -106,39 +106,6 @@
|
|
|
106
106
|
const LOSSY_DCT = 1;
|
|
107
107
|
const RLE = 2;
|
|
108
108
|
const logBase = Math.pow( 2.7182818, 2.2 );
|
|
109
|
-
var tmpDataView = new DataView( new ArrayBuffer( 8 ) );
|
|
110
|
-
|
|
111
|
-
function frexp( value ) {
|
|
112
|
-
|
|
113
|
-
if ( value === 0 ) return [ value, 0 ];
|
|
114
|
-
tmpDataView.setFloat64( 0, value );
|
|
115
|
-
var bits = tmpDataView.getUint32( 0 ) >>> 20 & 0x7FF;
|
|
116
|
-
|
|
117
|
-
if ( bits === 0 ) {
|
|
118
|
-
|
|
119
|
-
// denormal
|
|
120
|
-
tmpDataView.setFloat64( 0, value * Math.pow( 2, 64 ) ); // exp + 64
|
|
121
|
-
|
|
122
|
-
bits = ( tmpDataView.getUint32( 0 ) >>> 20 & 0x7FF ) - 64;
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
var exponent = bits - 1022;
|
|
127
|
-
var mantissa = ldexp( value, - exponent );
|
|
128
|
-
return [ mantissa, exponent ];
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function ldexp( mantissa, exponent ) {
|
|
133
|
-
|
|
134
|
-
var steps = Math.min( 3, Math.ceil( Math.abs( exponent ) / 1023 ) );
|
|
135
|
-
var result = mantissa;
|
|
136
|
-
|
|
137
|
-
for ( var i = 0; i < steps; i ++ ) result *= Math.pow( 2, Math.floor( ( exponent + i ) / steps ) );
|
|
138
|
-
|
|
139
|
-
return result;
|
|
140
|
-
|
|
141
|
-
}
|
|
142
109
|
|
|
143
110
|
function reverseLutFromBitmap( bitmap, lut ) {
|
|
144
111
|
|
|
@@ -1207,8 +1174,7 @@
|
|
|
1207
1174
|
var inOffset = {
|
|
1208
1175
|
value: info.offset.value
|
|
1209
1176
|
};
|
|
1210
|
-
var
|
|
1211
|
-
var outBuffer = new Uint16Array( tmpBufSize );
|
|
1177
|
+
var outBuffer = new Uint16Array( info.width * info.scanlineBlockSize * ( info.channels * info.type ) );
|
|
1212
1178
|
var bitmap = new Uint8Array( BITMAP_SIZE ); // Setup channel info
|
|
1213
1179
|
|
|
1214
1180
|
var outBufferEnd = 0;
|
|
@@ -1365,7 +1331,7 @@
|
|
|
1365
1331
|
var inOffset = {
|
|
1366
1332
|
value: info.offset.value
|
|
1367
1333
|
};
|
|
1368
|
-
var outBuffer = new Uint8Array( info.width * info.lines * (
|
|
1334
|
+
var outBuffer = new Uint8Array( info.width * info.lines * ( info.channels * info.type * INT16_SIZE ) ); // Read compression header information
|
|
1369
1335
|
|
|
1370
1336
|
var dwaHeader = {
|
|
1371
1337
|
version: parseInt64( inDataView, inOffset ),
|
|
@@ -1592,14 +1558,6 @@
|
|
|
1592
1558
|
|
|
1593
1559
|
}
|
|
1594
1560
|
|
|
1595
|
-
function parseUlong( dataView, offset ) {
|
|
1596
|
-
|
|
1597
|
-
var uLong = dataView.getUint32( 0, true );
|
|
1598
|
-
offset.value = offset.value + ULONG_SIZE;
|
|
1599
|
-
return uLong;
|
|
1600
|
-
|
|
1601
|
-
}
|
|
1602
|
-
|
|
1603
1561
|
function parseRational( dataView, offset ) {
|
|
1604
1562
|
|
|
1605
1563
|
var x = parseInt32( dataView, offset );
|
|
@@ -1857,283 +1815,266 @@
|
|
|
1857
1815
|
|
|
1858
1816
|
}
|
|
1859
1817
|
|
|
1860
|
-
|
|
1861
|
-
var uInt8Array = new Uint8Array( buffer );
|
|
1862
|
-
var EXRHeader = {};
|
|
1863
|
-
bufferDataView.getUint32( 0, true ); // magic
|
|
1864
|
-
|
|
1865
|
-
bufferDataView.getUint8( 4, true ); // versionByteZero
|
|
1866
|
-
|
|
1867
|
-
bufferDataView.getUint8( 5, true ); // fullMask
|
|
1868
|
-
// start of header
|
|
1869
|
-
|
|
1870
|
-
var offset = {
|
|
1871
|
-
value: 8
|
|
1872
|
-
}; // start at 8, after magic stuff
|
|
1873
|
-
|
|
1874
|
-
var keepReading = true;
|
|
1818
|
+
function parseHeader( dataView, buffer, offset ) {
|
|
1875
1819
|
|
|
1876
|
-
|
|
1820
|
+
const EXRHeader = {};
|
|
1821
|
+
if ( dataView.getUint32( 0, true ) != 20000630 ) // magic
|
|
1822
|
+
throw 'THREE.EXRLoader: provided file doesn\'t appear to be in OpenEXR format.';
|
|
1823
|
+
EXRHeader.version = dataView.getUint8( 4, true );
|
|
1824
|
+
const spec = dataView.getUint8( 5, true ); // fullMask
|
|
1877
1825
|
|
|
1878
|
-
|
|
1826
|
+
EXRHeader.spec = {
|
|
1827
|
+
singleTile: !! ( spec & 1 ),
|
|
1828
|
+
longName: !! ( spec & 2 ),
|
|
1829
|
+
deepFormat: !! ( spec & 4 ),
|
|
1830
|
+
multiPart: !! ( spec & 8 )
|
|
1831
|
+
}; // start of header
|
|
1879
1832
|
|
|
1880
|
-
|
|
1833
|
+
offset.value = 8; // start at 8 - after pre-amble
|
|
1881
1834
|
|
|
1882
|
-
|
|
1835
|
+
var keepReading = true;
|
|
1883
1836
|
|
|
1884
|
-
|
|
1837
|
+
while ( keepReading ) {
|
|
1885
1838
|
|
|
1886
|
-
var
|
|
1887
|
-
var attributeSize = parseUint32( bufferDataView, offset );
|
|
1888
|
-
var attributeValue = parseValue( bufferDataView, buffer, offset, attributeType, attributeSize );
|
|
1839
|
+
var attributeName = parseNullTerminatedString( buffer, offset );
|
|
1889
1840
|
|
|
1890
|
-
if (
|
|
1841
|
+
if ( attributeName == 0 ) {
|
|
1891
1842
|
|
|
1892
|
-
|
|
1843
|
+
keepReading = false;
|
|
1893
1844
|
|
|
1894
1845
|
} else {
|
|
1895
1846
|
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
}
|
|
1901
|
-
|
|
1902
|
-
} // offsets
|
|
1847
|
+
var attributeType = parseNullTerminatedString( buffer, offset );
|
|
1848
|
+
var attributeSize = parseUint32( dataView, offset );
|
|
1849
|
+
var attributeValue = parseValue( dataView, buffer, offset, attributeType, attributeSize );
|
|
1903
1850
|
|
|
1851
|
+
if ( attributeValue === undefined ) {
|
|
1904
1852
|
|
|
1905
|
-
|
|
1906
|
-
var uncompress;
|
|
1907
|
-
var scanlineBlockSize;
|
|
1853
|
+
console.warn( `EXRLoader.parse: skipped unknown header attribute type \'${attributeType}\'.` );
|
|
1908
1854
|
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
case 'NO_COMPRESSION':
|
|
1912
|
-
scanlineBlockSize = 1;
|
|
1913
|
-
uncompress = uncompressRAW;
|
|
1914
|
-
break;
|
|
1855
|
+
} else {
|
|
1915
1856
|
|
|
1916
|
-
|
|
1917
|
-
scanlineBlockSize = 1;
|
|
1918
|
-
uncompress = uncompressRLE;
|
|
1919
|
-
break;
|
|
1857
|
+
EXRHeader[ attributeName ] = attributeValue;
|
|
1920
1858
|
|
|
1921
|
-
|
|
1922
|
-
scanlineBlockSize = 1;
|
|
1923
|
-
uncompress = uncompressZIP;
|
|
1924
|
-
break;
|
|
1859
|
+
}
|
|
1925
1860
|
|
|
1926
|
-
|
|
1927
|
-
scanlineBlockSize = 16;
|
|
1928
|
-
uncompress = uncompressZIP;
|
|
1929
|
-
break;
|
|
1861
|
+
}
|
|
1930
1862
|
|
|
1931
|
-
|
|
1932
|
-
scanlineBlockSize = 32;
|
|
1933
|
-
uncompress = uncompressPIZ;
|
|
1934
|
-
break;
|
|
1863
|
+
}
|
|
1935
1864
|
|
|
1936
|
-
|
|
1937
|
-
scanlineBlockSize = 16;
|
|
1938
|
-
uncompress = uncompressPXR;
|
|
1939
|
-
break;
|
|
1865
|
+
if ( spec != 0 ) {
|
|
1940
1866
|
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
uncompress = uncompressDWA;
|
|
1944
|
-
break;
|
|
1867
|
+
console.error( 'EXRHeader:', EXRHeader );
|
|
1868
|
+
throw 'THREE.EXRLoader: provided file is currently unsupported.';
|
|
1945
1869
|
|
|
1946
|
-
|
|
1947
|
-
scanlineBlockSize = 256;
|
|
1948
|
-
uncompress = uncompressDWA;
|
|
1949
|
-
break;
|
|
1870
|
+
}
|
|
1950
1871
|
|
|
1951
|
-
|
|
1952
|
-
throw 'EXRLoader.parse: ' + EXRHeader.compression + ' is unsupported';
|
|
1872
|
+
return EXRHeader;
|
|
1953
1873
|
|
|
1954
1874
|
}
|
|
1955
1875
|
|
|
1956
|
-
|
|
1957
|
-
var getValue; // mixed pixelType not supported
|
|
1876
|
+
function setupDecoder( EXRHeader, dataView, uInt8Array, offset, outputType ) {
|
|
1958
1877
|
|
|
1959
|
-
|
|
1878
|
+
const EXRDecoder = {
|
|
1879
|
+
size: 0,
|
|
1880
|
+
viewer: dataView,
|
|
1881
|
+
array: uInt8Array,
|
|
1882
|
+
offset: offset,
|
|
1883
|
+
width: EXRHeader.dataWindow.xMax - EXRHeader.dataWindow.xMin + 1,
|
|
1884
|
+
height: EXRHeader.dataWindow.yMax - EXRHeader.dataWindow.yMin + 1,
|
|
1885
|
+
channels: EXRHeader.channels.length,
|
|
1886
|
+
bytesPerLine: null,
|
|
1887
|
+
lines: null,
|
|
1888
|
+
inputSize: null,
|
|
1889
|
+
type: EXRHeader.channels[ 0 ].pixelType,
|
|
1890
|
+
uncompress: null,
|
|
1891
|
+
getter: null,
|
|
1892
|
+
format: null,
|
|
1893
|
+
encoding: null
|
|
1894
|
+
};
|
|
1960
1895
|
|
|
1961
|
-
|
|
1896
|
+
switch ( EXRHeader.compression ) {
|
|
1962
1897
|
|
|
1963
|
-
|
|
1964
|
-
|
|
1898
|
+
case 'NO_COMPRESSION':
|
|
1899
|
+
EXRDecoder.lines = 1;
|
|
1900
|
+
EXRDecoder.uncompress = uncompressRAW;
|
|
1901
|
+
break;
|
|
1965
1902
|
|
|
1966
|
-
case
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
size_t = INT16_SIZE;
|
|
1903
|
+
case 'RLE_COMPRESSION':
|
|
1904
|
+
EXRDecoder.lines = 1;
|
|
1905
|
+
EXRDecoder.uncompress = uncompressRLE;
|
|
1970
1906
|
break;
|
|
1971
1907
|
|
|
1972
|
-
case
|
|
1973
|
-
|
|
1974
|
-
|
|
1908
|
+
case 'ZIPS_COMPRESSION':
|
|
1909
|
+
EXRDecoder.lines = 1;
|
|
1910
|
+
EXRDecoder.uncompress = uncompressZIP;
|
|
1975
1911
|
break;
|
|
1976
1912
|
|
|
1977
|
-
|
|
1913
|
+
case 'ZIP_COMPRESSION':
|
|
1914
|
+
EXRDecoder.lines = 16;
|
|
1915
|
+
EXRDecoder.uncompress = uncompressZIP;
|
|
1916
|
+
break;
|
|
1978
1917
|
|
|
1979
|
-
|
|
1918
|
+
case 'PIZ_COMPRESSION':
|
|
1919
|
+
EXRDecoder.lines = 32;
|
|
1920
|
+
EXRDecoder.uncompress = uncompressPIZ;
|
|
1921
|
+
break;
|
|
1980
1922
|
|
|
1981
|
-
|
|
1982
|
-
|
|
1923
|
+
case 'PXR24_COMPRESSION':
|
|
1924
|
+
EXRDecoder.lines = 16;
|
|
1925
|
+
EXRDecoder.uncompress = uncompressPXR;
|
|
1926
|
+
break;
|
|
1983
1927
|
|
|
1984
|
-
case
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
size_t = FLOAT32_SIZE;
|
|
1928
|
+
case 'DWAA_COMPRESSION':
|
|
1929
|
+
EXRDecoder.lines = 32;
|
|
1930
|
+
EXRDecoder.uncompress = uncompressDWA;
|
|
1988
1931
|
break;
|
|
1989
1932
|
|
|
1990
|
-
case
|
|
1991
|
-
|
|
1992
|
-
|
|
1933
|
+
case 'DWAB_COMPRESSION':
|
|
1934
|
+
EXRDecoder.lines = 256;
|
|
1935
|
+
EXRDecoder.uncompress = uncompressDWA;
|
|
1936
|
+
break;
|
|
1937
|
+
|
|
1938
|
+
default:
|
|
1939
|
+
throw 'EXRLoader.parse: ' + EXRHeader.compression + ' is unsupported';
|
|
1993
1940
|
|
|
1994
1941
|
}
|
|
1995
1942
|
|
|
1996
|
-
|
|
1943
|
+
EXRDecoder.scanlineBlockSize = EXRDecoder.lines;
|
|
1997
1944
|
|
|
1998
|
-
|
|
1945
|
+
if ( EXRDecoder.type == 1 ) {
|
|
1999
1946
|
|
|
2000
|
-
|
|
1947
|
+
// half
|
|
1948
|
+
switch ( outputType ) {
|
|
2001
1949
|
|
|
2002
|
-
|
|
1950
|
+
case THREE.FloatType:
|
|
1951
|
+
EXRDecoder.getter = parseFloat16;
|
|
1952
|
+
EXRDecoder.inputSize = INT16_SIZE;
|
|
1953
|
+
break;
|
|
2003
1954
|
|
|
2004
|
-
|
|
1955
|
+
case THREE.HalfFloatType:
|
|
1956
|
+
EXRDecoder.getter = parseUint16;
|
|
1957
|
+
EXRDecoder.inputSize = INT16_SIZE;
|
|
1958
|
+
break;
|
|
2005
1959
|
|
|
2006
|
-
|
|
1960
|
+
}
|
|
2007
1961
|
|
|
2008
|
-
|
|
1962
|
+
} else if ( EXRDecoder.type == 2 ) {
|
|
2009
1963
|
|
|
1964
|
+
// float
|
|
1965
|
+
switch ( outputType ) {
|
|
2010
1966
|
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
1967
|
+
case THREE.FloatType:
|
|
1968
|
+
EXRDecoder.getter = parseFloat32;
|
|
1969
|
+
EXRDecoder.inputSize = FLOAT32_SIZE;
|
|
1970
|
+
break;
|
|
2014
1971
|
|
|
2015
|
-
|
|
2016
|
-
|
|
1972
|
+
case THREE.HalfFloatType:
|
|
1973
|
+
EXRDecoder.getter = decodeFloat32;
|
|
1974
|
+
EXRDecoder.inputSize = FLOAT32_SIZE;
|
|
2017
1975
|
|
|
2018
|
-
|
|
1976
|
+
}
|
|
2019
1977
|
|
|
2020
|
-
|
|
2021
|
-
case THREE.FloatType:
|
|
2022
|
-
var byteArray = new Float32Array( size );
|
|
1978
|
+
} else {
|
|
2023
1979
|
|
|
2024
|
-
|
|
1980
|
+
throw 'EXRLoader.parse: unsupported pixelType ' + EXRDecoder.type + ' for ' + EXRHeader.compression + '.';
|
|
2025
1981
|
|
|
2026
|
-
|
|
1982
|
+
}
|
|
2027
1983
|
|
|
2028
|
-
|
|
1984
|
+
EXRDecoder.blockCount = ( EXRHeader.dataWindow.yMax + 1 ) / EXRDecoder.scanlineBlockSize;
|
|
2029
1985
|
|
|
2030
|
-
|
|
1986
|
+
for ( var i = 0; i < EXRDecoder.blockCount; i ++ ) parseInt64( dataView, offset ); // scanlineOffset
|
|
1987
|
+
// we should be passed the scanline offset table, ready to start reading pixel data.
|
|
1988
|
+
// RGB images will be converted to RGBA format, preventing software emulation in select devices.
|
|
2031
1989
|
|
|
2032
|
-
case THREE.HalfFloatType:
|
|
2033
|
-
var byteArray = new Uint16Array( size );
|
|
2034
1990
|
|
|
2035
|
-
|
|
1991
|
+
EXRDecoder.outputChannels = EXRDecoder.channels == 3 ? 4 : EXRDecoder.channels;
|
|
1992
|
+
const size = EXRDecoder.width * EXRDecoder.height * EXRDecoder.outputChannels;
|
|
2036
1993
|
|
|
2037
|
-
|
|
1994
|
+
switch ( outputType ) {
|
|
2038
1995
|
|
|
2039
|
-
|
|
1996
|
+
case THREE.FloatType:
|
|
1997
|
+
EXRDecoder.byteArray = new Float32Array( size ); // Fill initially with 1s for the alpha value if the texture is not RGBA, RGB values will be overwritten
|
|
2040
1998
|
|
|
2041
|
-
|
|
1999
|
+
if ( EXRDecoder.channels < EXRDecoder.outputChannels ) EXRDecoder.byteArray.fill( 1, 0, size );
|
|
2000
|
+
break;
|
|
2042
2001
|
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2002
|
+
case THREE.HalfFloatType:
|
|
2003
|
+
EXRDecoder.byteArray = new Uint16Array( size );
|
|
2004
|
+
if ( EXRDecoder.channels < EXRDecoder.outputChannels ) EXRDecoder.byteArray.fill( 0x3C00, 0, size ); // Uint16Array holds half float data, 0x3C00 is 1
|
|
2046
2005
|
|
|
2047
|
-
|
|
2006
|
+
break;
|
|
2048
2007
|
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
B: 2,
|
|
2053
|
-
A: 3
|
|
2054
|
-
};
|
|
2055
|
-
var compressionInfo = {
|
|
2056
|
-
size: 0,
|
|
2057
|
-
width: width,
|
|
2058
|
-
lines: scanlineBlockSize,
|
|
2059
|
-
offset: offset,
|
|
2060
|
-
array: uInt8Array,
|
|
2061
|
-
viewer: bufferDataView,
|
|
2062
|
-
type: pixelType,
|
|
2063
|
-
channels: EXRHeader.channels.length
|
|
2064
|
-
};
|
|
2065
|
-
var line;
|
|
2066
|
-
var size;
|
|
2067
|
-
var viewer;
|
|
2068
|
-
var tmpOffset = {
|
|
2069
|
-
value: 0
|
|
2070
|
-
};
|
|
2008
|
+
default:
|
|
2009
|
+
console.error( 'THREE.EXRLoader: unsupported type: ', outputType );
|
|
2010
|
+
break;
|
|
2071
2011
|
|
|
2072
|
-
|
|
2012
|
+
}
|
|
2073
2013
|
|
|
2074
|
-
|
|
2014
|
+
EXRDecoder.bytesPerLine = EXRDecoder.width * EXRDecoder.inputSize * EXRDecoder.channels;
|
|
2075
2015
|
|
|
2076
|
-
|
|
2016
|
+
if ( EXRDecoder.outputChannels == 4 ) {
|
|
2077
2017
|
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
compressionInfo.size = size;
|
|
2081
|
-
viewer = uncompress( compressionInfo );
|
|
2082
|
-
offset.value += size;
|
|
2018
|
+
EXRDecoder.format = THREE.RGBAFormat;
|
|
2019
|
+
EXRDecoder.encoding = THREE.LinearEncoding;
|
|
2083
2020
|
|
|
2084
|
-
|
|
2021
|
+
} else {
|
|
2085
2022
|
|
|
2086
|
-
|
|
2087
|
-
|
|
2023
|
+
EXRDecoder.format = THREE.RedFormat;
|
|
2024
|
+
EXRDecoder.encoding = THREE.LinearEncoding;
|
|
2088
2025
|
|
|
2089
|
-
|
|
2026
|
+
}
|
|
2090
2027
|
|
|
2091
|
-
|
|
2028
|
+
return EXRDecoder;
|
|
2092
2029
|
|
|
2093
|
-
|
|
2030
|
+
} // start parsing file [START]
|
|
2094
2031
|
|
|
2095
|
-
var idx = line_y * ( EXRHeader.channels.length * width ) + channelID * width + x;
|
|
2096
|
-
tmpOffset.value = idx * size_t;
|
|
2097
|
-
var val = getValue( viewer, tmpOffset );
|
|
2098
|
-
byteArray[ ( height - 1 - true_y ) * ( width * numChannels ) + x * numChannels + cOff ] = val;
|
|
2099
2032
|
|
|
2100
|
-
|
|
2033
|
+
const bufferDataView = new DataView( buffer );
|
|
2034
|
+
const uInt8Array = new Uint8Array( buffer );
|
|
2035
|
+
const offset = {
|
|
2036
|
+
value: 0
|
|
2037
|
+
}; // get header information and validate format.
|
|
2101
2038
|
|
|
2102
|
-
|
|
2039
|
+
const EXRHeader = parseHeader( bufferDataView, buffer, offset ); // get input compression information and prepare decoding.
|
|
2103
2040
|
|
|
2104
|
-
|
|
2041
|
+
const EXRDecoder = setupDecoder( EXRHeader, bufferDataView, uInt8Array, offset, this.type );
|
|
2042
|
+
const tmpOffset = {
|
|
2043
|
+
value: 0
|
|
2044
|
+
};
|
|
2045
|
+
const channelOffsets = {
|
|
2046
|
+
R: 0,
|
|
2047
|
+
G: 1,
|
|
2048
|
+
B: 2,
|
|
2049
|
+
A: 3,
|
|
2050
|
+
Y: 0
|
|
2051
|
+
};
|
|
2105
2052
|
|
|
2106
|
-
|
|
2053
|
+
for ( let scanlineBlockIdx = 0; scanlineBlockIdx < EXRDecoder.height / EXRDecoder.scanlineBlockSize; scanlineBlockIdx ++ ) {
|
|
2107
2054
|
|
|
2108
|
-
|
|
2055
|
+
const line = parseUint32( bufferDataView, offset ); // line_no
|
|
2109
2056
|
|
|
2110
|
-
|
|
2111
|
-
const size = byteArray.length;
|
|
2112
|
-
const RGBEArray = new Uint8Array( size );
|
|
2057
|
+
EXRDecoder.size = parseUint32( bufferDataView, offset ); // data_len
|
|
2113
2058
|
|
|
2114
|
-
|
|
2059
|
+
EXRDecoder.lines = line + EXRDecoder.scanlineBlockSize > EXRDecoder.height ? EXRDecoder.height - line : EXRDecoder.scanlineBlockSize;
|
|
2060
|
+
const isCompressed = EXRDecoder.size < EXRDecoder.lines * EXRDecoder.bytesPerLine;
|
|
2061
|
+
const viewer = isCompressed ? EXRDecoder.uncompress( EXRDecoder ) : uncompressRAW( EXRDecoder );
|
|
2062
|
+
offset.value += EXRDecoder.size;
|
|
2115
2063
|
|
|
2116
|
-
|
|
2064
|
+
for ( let line_y = 0; line_y < EXRDecoder.scanlineBlockSize; line_y ++ ) {
|
|
2117
2065
|
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
const green = byteArray[ i + 1 ];
|
|
2121
|
-
const blue = byteArray[ i + 2 ];
|
|
2122
|
-
v = red > green ? red : green;
|
|
2123
|
-
v = blue > v ? blue : v;
|
|
2066
|
+
const true_y = line_y + scanlineBlockIdx * EXRDecoder.scanlineBlockSize;
|
|
2067
|
+
if ( true_y >= EXRDecoder.height ) break;
|
|
2124
2068
|
|
|
2125
|
-
|
|
2069
|
+
for ( let channelID = 0; channelID < EXRDecoder.channels; channelID ++ ) {
|
|
2126
2070
|
|
|
2127
|
-
|
|
2071
|
+
const cOff = channelOffsets[ EXRHeader.channels[ channelID ].name ];
|
|
2128
2072
|
|
|
2129
|
-
|
|
2073
|
+
for ( let x = 0; x < EXRDecoder.width; x ++ ) {
|
|
2130
2074
|
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
RGBEArray[ i + 1 ] = green * v;
|
|
2135
|
-
RGBEArray[ i + 2 ] = blue * v;
|
|
2136
|
-
RGBEArray[ i + 3 ] = res[ 1 ] + 128;
|
|
2075
|
+
tmpOffset.value = ( line_y * ( EXRDecoder.channels * EXRDecoder.width ) + channelID * EXRDecoder.width + x ) * EXRDecoder.inputSize;
|
|
2076
|
+
const outIndex = ( EXRDecoder.height - 1 - true_y ) * ( EXRDecoder.width * EXRDecoder.outputChannels ) + x * EXRDecoder.outputChannels + cOff;
|
|
2077
|
+
EXRDecoder.byteArray[ outIndex ] = EXRDecoder.getter( viewer, tmpOffset );
|
|
2137
2078
|
|
|
2138
2079
|
}
|
|
2139
2080
|
|
|
@@ -2141,17 +2082,15 @@
|
|
|
2141
2082
|
|
|
2142
2083
|
}
|
|
2143
2084
|
|
|
2144
|
-
byteArray = RGBEArray;
|
|
2145
|
-
|
|
2146
2085
|
}
|
|
2147
2086
|
|
|
2148
|
-
const format = this.type === THREE.UnsignedByteType ? THREE.RGBEFormat : numChannels === 4 ? THREE.RGBAFormat : THREE.RGBFormat;
|
|
2149
2087
|
return {
|
|
2150
2088
|
header: EXRHeader,
|
|
2151
|
-
width: width,
|
|
2152
|
-
height: height,
|
|
2153
|
-
data: byteArray,
|
|
2154
|
-
format: format,
|
|
2089
|
+
width: EXRDecoder.width,
|
|
2090
|
+
height: EXRDecoder.height,
|
|
2091
|
+
data: EXRDecoder.byteArray,
|
|
2092
|
+
format: EXRDecoder.format,
|
|
2093
|
+
encoding: EXRDecoder.encoding,
|
|
2155
2094
|
type: this.type
|
|
2156
2095
|
};
|
|
2157
2096
|
|
|
@@ -2168,27 +2107,11 @@
|
|
|
2168
2107
|
|
|
2169
2108
|
function onLoadCallback( texture, texData ) {
|
|
2170
2109
|
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
texture.magFilter = THREE.NearestFilter;
|
|
2177
|
-
texture.generateMipmaps = false;
|
|
2178
|
-
texture.flipY = false;
|
|
2179
|
-
break;
|
|
2180
|
-
|
|
2181
|
-
case THREE.FloatType:
|
|
2182
|
-
case THREE.HalfFloatType:
|
|
2183
|
-
texture.encoding = THREE.LinearEncoding;
|
|
2184
|
-
texture.minFilter = THREE.LinearFilter;
|
|
2185
|
-
texture.magFilter = THREE.LinearFilter;
|
|
2186
|
-
texture.generateMipmaps = false;
|
|
2187
|
-
texture.flipY = false;
|
|
2188
|
-
break;
|
|
2189
|
-
|
|
2190
|
-
}
|
|
2191
|
-
|
|
2110
|
+
texture.encoding = texData.encoding;
|
|
2111
|
+
texture.minFilter = THREE.LinearFilter;
|
|
2112
|
+
texture.magFilter = THREE.LinearFilter;
|
|
2113
|
+
texture.generateMipmaps = false;
|
|
2114
|
+
texture.flipY = false;
|
|
2192
2115
|
if ( onLoad ) onLoad( texture, texData );
|
|
2193
2116
|
|
|
2194
2117
|
}
|
|
@@ -9,11 +9,10 @@
|
|
|
9
9
|
* Morph normals / blend shape normals
|
|
10
10
|
*
|
|
11
11
|
* FBX format references:
|
|
12
|
-
* https://
|
|
13
|
-
* http://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html (C++ SDK reference)
|
|
12
|
+
* https://help.autodesk.com/view/FBX/2017/ENU/?guid=__cpp_ref_index_html (C++ SDK reference)
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* Binary format specification:
|
|
15
|
+
* https://code.blender.org/2013/08/fbx-binary-file-format-specification/
|
|
17
16
|
*/
|
|
18
17
|
|
|
19
18
|
let fbxTree;
|
|
@@ -1310,7 +1309,7 @@
|
|
|
1310
1309
|
|
|
1311
1310
|
for ( const nodeID in BindPoseNode ) {
|
|
1312
1311
|
|
|
1313
|
-
if ( BindPoseNode[ nodeID ].attrType === 'BindPose' ) {
|
|
1312
|
+
if ( BindPoseNode[ nodeID ].attrType === 'BindPose' && BindPoseNode[ nodeID ].NbPoseNodes > 0 ) {
|
|
1314
1313
|
|
|
1315
1314
|
const poseNodes = BindPoseNode[ nodeID ].PoseNode;
|
|
1316
1315
|
|