super-three 0.147.0 → 0.152.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/LICENSE +1 -1
- package/build/three.cjs +36408 -21117
- package/build/three.js +37007 -21715
- package/build/three.min.js +3 -2
- package/build/three.module.js +6387 -5510
- package/build/three.module.min.js +6 -0
- package/examples/jsm/animation/AnimationClipCreator.js +5 -3
- package/examples/jsm/capabilities/WebGPU.js +2 -4
- package/examples/jsm/controls/ArcballControls.js +1828 -1821
- package/examples/jsm/controls/MapControls.js +28 -0
- package/examples/jsm/controls/OrbitControls.js +20 -45
- package/examples/jsm/controls/PointerLockControls.js +70 -65
- package/examples/jsm/controls/TrackballControls.js +18 -4
- package/examples/jsm/controls/TransformControls.js +0 -1
- package/examples/jsm/csm/CSM.js +11 -3
- package/examples/jsm/csm/CSMShader.js +7 -6
- package/examples/jsm/effects/AsciiEffect.js +3 -6
- package/examples/jsm/effects/OutlineEffect.js +1 -15
- package/examples/jsm/exporters/ColladaExporter.js +26 -14
- package/examples/jsm/exporters/DRACOExporter.js +53 -11
- package/examples/jsm/exporters/EXRExporter.js +3 -9
- package/examples/jsm/exporters/GLTFExporter.js +524 -111
- package/examples/jsm/exporters/KTX2Exporter.js +34 -23
- package/examples/jsm/exporters/MMDExporter.js +1 -1
- package/examples/jsm/exporters/PLYExporter.js +8 -1
- package/examples/jsm/exporters/STLExporter.js +8 -4
- package/examples/jsm/exporters/USDZExporter.js +22 -3
- package/examples/jsm/geometries/ConvexGeometry.js +0 -6
- package/examples/jsm/geometries/ParametricGeometry.js +10 -0
- package/examples/jsm/helpers/OctreeHelper.js +1 -0
- package/examples/jsm/helpers/ViewHelper.js +70 -56
- package/examples/jsm/interactive/HTMLMesh.js +16 -3
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/{js → jsm}/libs/basis/README.md +4 -4
- package/examples/jsm/libs/draco/draco_decoder.js +34 -0
- package/examples/jsm/libs/draco/draco_decoder.wasm +0 -0
- package/examples/jsm/libs/draco/draco_wasm_wrapper.js +117 -0
- package/examples/jsm/libs/draco/gltf/draco_decoder.js +33 -0
- package/examples/jsm/libs/draco/gltf/draco_decoder.wasm +0 -0
- package/examples/jsm/libs/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/examples/jsm/libs/lil-gui.module.min.js +2 -2
- package/examples/jsm/libs/tween.module.js +803 -0
- package/examples/jsm/lights/IESSpotLight.js +25 -0
- package/examples/jsm/lights/LightProbeGenerator.js +11 -9
- package/examples/jsm/lines/LineSegments2.js +12 -10
- package/examples/jsm/loaders/3DMLoader.js +8 -5
- package/examples/jsm/loaders/3MFLoader.js +12 -11
- package/examples/jsm/loaders/AMFLoader.js +2 -3
- package/examples/jsm/loaders/BVHLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +15 -16
- package/examples/jsm/loaders/DRACOLoader.js +67 -18
- package/examples/jsm/loaders/EXRLoader.js +23 -24
- package/examples/jsm/loaders/FBXLoader.js +32 -50
- package/examples/jsm/loaders/GCodeLoader.js +1 -2
- package/examples/jsm/loaders/GLTFLoader.js +249 -215
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +4 -4
- package/examples/jsm/loaders/IESLoader.js +337 -0
- package/examples/jsm/loaders/KMZLoader.js +4 -4
- package/examples/jsm/loaders/KTX2Loader.js +41 -24
- package/examples/jsm/loaders/LDrawLoader.js +20 -18
- package/examples/jsm/loaders/LWOLoader.js +12 -29
- package/examples/jsm/loaders/LottieLoader.js +3 -1
- package/examples/jsm/loaders/MMDLoader.js +17 -13
- package/examples/jsm/loaders/MTLLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +9 -3
- package/examples/jsm/loaders/NRRDLoader.js +33 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +1 -2
- package/examples/jsm/loaders/PLYLoader.js +238 -105
- package/examples/jsm/loaders/RGBELoader.js +3 -3
- package/examples/jsm/loaders/STLLoader.js +1 -2
- package/examples/jsm/loaders/SVGLoader.js +36 -27
- package/examples/jsm/loaders/TTFLoader.js +1 -8
- package/examples/jsm/loaders/TiltLoader.js +13 -7
- package/examples/jsm/loaders/USDZLoader.js +5 -5
- package/examples/jsm/loaders/VOXLoader.js +8 -2
- package/examples/jsm/loaders/VRMLLoader.js +5 -13
- package/examples/jsm/loaders/VTKLoader.js +7 -6
- package/examples/jsm/loaders/lwo/IFFParser.js +19 -19
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -3
- package/examples/jsm/math/MeshSurfaceSampler.js +0 -6
- package/examples/jsm/misc/ConvexObjectBreaker.js +2 -8
- package/examples/jsm/misc/GPUComputationRenderer.js +5 -5
- package/examples/jsm/misc/MD2Character.js +2 -2
- package/examples/jsm/misc/MD2CharacterComplex.js +2 -2
- package/examples/jsm/misc/ProgressiveLightMap.js +12 -10
- package/examples/jsm/misc/RollerCoaster.js +7 -1
- package/examples/jsm/misc/Volume.js +20 -5
- package/examples/jsm/modifiers/CurveModifier.js +1 -0
- package/examples/jsm/modifiers/TessellateModifier.js +19 -19
- package/examples/jsm/nodes/Nodes.js +143 -335
- package/examples/jsm/nodes/accessors/BitangentNode.js +43 -16
- package/examples/jsm/nodes/accessors/BufferNode.js +6 -0
- package/examples/jsm/nodes/accessors/CameraNode.js +12 -2
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +27 -33
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +58 -0
- package/examples/jsm/nodes/accessors/InstanceNode.js +17 -21
- package/examples/jsm/nodes/accessors/MaterialNode.js +155 -38
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +16 -0
- package/examples/jsm/nodes/accessors/ModelNode.js +11 -0
- package/examples/jsm/nodes/accessors/ModelViewProjectionNode.js +12 -8
- package/examples/jsm/nodes/accessors/NormalNode.js +35 -19
- package/examples/jsm/nodes/accessors/Object3DNode.js +32 -12
- package/examples/jsm/nodes/accessors/PointUVNode.js +6 -1
- package/examples/jsm/nodes/accessors/PositionNode.js +38 -23
- package/examples/jsm/nodes/accessors/ReferenceNode.js +21 -14
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +11 -7
- package/examples/jsm/nodes/accessors/SkinningNode.js +43 -40
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +6 -0
- package/examples/jsm/nodes/accessors/TangentNode.js +28 -20
- package/examples/jsm/nodes/accessors/TextureNode.js +80 -12
- package/examples/jsm/nodes/accessors/UVNode.js +6 -0
- package/examples/jsm/nodes/accessors/UserDataNode.js +6 -0
- package/examples/jsm/nodes/{core → code}/CodeNode.js +27 -2
- package/examples/jsm/nodes/code/ExpressionNode.js +37 -0
- package/examples/jsm/nodes/{core → code}/FunctionCallNode.js +15 -1
- package/examples/jsm/nodes/{core → code}/FunctionNode.js +8 -7
- package/examples/jsm/nodes/code/ScriptableNode.js +488 -0
- package/examples/jsm/nodes/code/ScriptableValueNode.js +167 -0
- package/examples/jsm/nodes/core/ArrayUniformNode.js +3 -0
- package/examples/jsm/nodes/core/AttributeNode.js +16 -8
- package/examples/jsm/nodes/core/BypassNode.js +9 -2
- package/examples/jsm/nodes/core/CacheNode.js +46 -0
- package/examples/jsm/nodes/core/ConstNode.js +3 -0
- package/examples/jsm/nodes/core/ContextNode.js +8 -1
- package/examples/jsm/nodes/core/InputNode.js +26 -5
- package/examples/jsm/nodes/core/InstanceIndexNode.js +6 -1
- package/examples/jsm/nodes/core/LightingModel.js +16 -0
- package/examples/jsm/nodes/core/Node.js +128 -34
- package/examples/jsm/nodes/core/NodeBuilder.js +209 -118
- package/examples/jsm/nodes/core/NodeCache.js +26 -0
- package/examples/jsm/nodes/core/NodeFrame.js +56 -5
- package/examples/jsm/nodes/core/NodeUtils.js +105 -28
- package/examples/jsm/nodes/core/PropertyNode.js +19 -2
- package/examples/jsm/nodes/core/StackNode.js +92 -0
- package/examples/jsm/nodes/core/TempNode.js +11 -3
- package/examples/jsm/nodes/core/UniformNode.js +15 -0
- package/examples/jsm/nodes/core/VarNode.js +21 -29
- package/examples/jsm/nodes/core/VaryingNode.js +15 -2
- package/examples/jsm/nodes/core/constants.js +6 -0
- package/examples/jsm/nodes/display/BlendModeNode.js +25 -11
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +30 -14
- package/examples/jsm/nodes/display/ColorSpaceNode.js +39 -27
- package/examples/jsm/nodes/display/FrontFacingNode.js +7 -1
- package/examples/jsm/nodes/display/NormalMapNode.js +31 -18
- package/examples/jsm/nodes/display/PosterizeNode.js +10 -3
- package/examples/jsm/nodes/display/ToneMappingNode.js +92 -11
- package/examples/jsm/nodes/display/ViewportNode.js +27 -18
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +30 -0
- package/examples/jsm/nodes/display/ViewportTextureNode.js +61 -0
- package/examples/jsm/nodes/fog/FogExp2Node.js +35 -0
- package/examples/jsm/nodes/fog/FogNode.js +12 -6
- package/examples/jsm/nodes/fog/FogRangeNode.js +12 -5
- package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +30 -0
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -13
- package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +8 -6
- package/examples/jsm/nodes/functions/BSDF/D_GGX.js +4 -4
- package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +3 -3
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +7 -5
- package/examples/jsm/nodes/functions/PhongLightingModel.js +28 -0
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +33 -36
- package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +4 -3
- package/examples/jsm/nodes/functions/material/getRoughness.js +4 -4
- package/examples/jsm/nodes/geometry/RangeNode.js +32 -19
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +9 -2
- package/examples/jsm/nodes/lighting/AONode.js +5 -3
- package/examples/jsm/nodes/lighting/AmbientLightNode.js +27 -0
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +112 -6
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +43 -0
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +104 -34
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +15 -10
- package/examples/jsm/nodes/lighting/IESSpotLightNode.js +39 -0
- package/examples/jsm/nodes/lighting/LightNode.js +57 -0
- package/examples/jsm/nodes/lighting/LightUtils.js +17 -0
- package/examples/jsm/nodes/lighting/LightingContextNode.js +30 -8
- package/examples/jsm/nodes/lighting/LightingNode.js +3 -1
- package/examples/jsm/nodes/lighting/LightsNode.js +18 -10
- package/examples/jsm/nodes/lighting/PointLightNode.js +71 -0
- package/examples/jsm/nodes/lighting/SpotLightNode.js +92 -0
- package/examples/jsm/nodes/loaders/NodeLoader.js +5 -4
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +4 -20
- package/examples/jsm/nodes/materials/LineBasicNodeMaterial.js +6 -9
- package/examples/jsm/nodes/materials/Materials.js +11 -55
- package/examples/jsm/nodes/materials/MeshBasicNodeMaterial.js +5 -11
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +48 -0
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +74 -0
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +6 -6
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +21 -96
- package/examples/jsm/nodes/materials/NodeMaterial.js +244 -61
- package/examples/jsm/nodes/materials/PointsNodeMaterial.js +7 -1
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +29 -25
- package/examples/jsm/nodes/materialx/MaterialXNodes.js +31 -22
- package/examples/jsm/nodes/materialx/lib/mx_hsv.js +1 -1
- package/examples/jsm/nodes/materialx/lib/mx_noise.js +2 -1
- package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +2 -1
- package/examples/jsm/nodes/math/CondNode.js +43 -17
- package/examples/jsm/nodes/math/MathNode.js +178 -73
- package/examples/jsm/nodes/math/OperatorNode.js +52 -2
- package/examples/jsm/nodes/procedural/CheckerNode.js +14 -6
- package/examples/jsm/nodes/shadernode/ShaderNode.js +158 -42
- package/examples/jsm/nodes/utils/ArrayElementNode.js +4 -2
- package/examples/jsm/nodes/utils/ConvertNode.js +19 -1
- package/examples/jsm/nodes/utils/DiscardNode.js +26 -0
- package/examples/jsm/nodes/utils/EquirectUVNode.js +11 -4
- package/examples/jsm/nodes/utils/JoinNode.js +4 -1
- package/examples/jsm/nodes/utils/MatcapUVNode.js +11 -4
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +18 -5
- package/examples/jsm/nodes/utils/OscNode.js +21 -14
- package/examples/jsm/nodes/utils/PackingNode.js +55 -0
- package/examples/jsm/nodes/utils/RemapNode.js +13 -5
- package/examples/jsm/nodes/utils/RotateUVNode.js +18 -7
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +37 -0
- package/examples/jsm/nodes/utils/SplitNode.js +7 -5
- package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +15 -30
- package/examples/jsm/nodes/utils/TimerNode.js +16 -6
- package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +21 -10
- package/examples/jsm/objects/GroundProjectedSkybox.js +172 -0
- package/examples/jsm/objects/Reflector.js +4 -4
- package/examples/jsm/objects/Refractor.js +4 -4
- package/examples/jsm/objects/ShadowMesh.js +3 -3
- package/examples/jsm/physics/AmmoPhysics.js +27 -28
- package/examples/jsm/physics/{OimoPhysics.js → RapierPhysics.js} +59 -51
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +0 -8
- package/examples/jsm/postprocessing/AfterimagePass.js +0 -2
- package/examples/jsm/postprocessing/BloomPass.js +0 -2
- package/examples/jsm/postprocessing/BokehPass.js +0 -6
- package/examples/jsm/postprocessing/DotScreenPass.js +0 -2
- package/examples/jsm/postprocessing/EffectComposer.js +3 -94
- package/examples/jsm/postprocessing/FilmPass.js +0 -2
- package/examples/jsm/postprocessing/GlitchPass.js +0 -2
- package/examples/jsm/postprocessing/HalftonePass.js +0 -6
- package/examples/jsm/postprocessing/OutlinePass.js +0 -1
- package/examples/jsm/postprocessing/Pass.js +2 -0
- package/examples/jsm/postprocessing/SAOPass.js +0 -24
- package/examples/jsm/postprocessing/SMAAPass.js +0 -6
- package/examples/jsm/postprocessing/SSAARenderPass.js +13 -5
- package/examples/jsm/postprocessing/SSAOPass.js +0 -12
- package/examples/jsm/postprocessing/SSRPass.js +0 -6
- package/examples/jsm/postprocessing/SavePass.js +0 -2
- package/examples/jsm/postprocessing/TexturePass.js +0 -2
- package/examples/jsm/postprocessing/UnrealBloomPass.js +0 -8
- package/examples/jsm/renderers/CSS2DRenderer.js +6 -1
- package/examples/jsm/renderers/CSS3DRenderer.js +27 -5
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +35 -31
- package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +14 -4
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +72 -55
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +34 -19
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +158 -26
- package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUProperties.js +6 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderLists.js +30 -14
- package/examples/jsm/renderers/webgpu/WebGPURenderObject.js +40 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderObjects.js +50 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +49 -111
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +40 -62
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +14 -26
- package/examples/jsm/renderers/webgpu/WebGPURenderTarget.js +15 -0
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +244 -100
- package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +3 -1
- package/examples/jsm/renderers/webgpu/WebGPUTextureRenderer.js +2 -4
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +2 -0
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +366 -110
- package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUUtils.js +13 -6
- package/examples/jsm/renderers/webgpu/WebGPUWeakMap.js +83 -0
- package/examples/jsm/renderers/webgpu/constants.js +68 -6
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +74 -57
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +241 -22
- package/examples/jsm/shaders/MMDToonShader.js +15 -4
- package/examples/jsm/shaders/RGBShiftShader.js +2 -2
- package/examples/jsm/shaders/VelocityShader.js +1 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +37 -35
- package/examples/jsm/utils/LDrawUtils.js +4 -4
- package/examples/jsm/utils/PackedPhongMaterial.js +5 -78
- package/examples/jsm/utils/SceneUtils.js +8 -4
- package/examples/jsm/utils/SkeletonUtils.js +27 -210
- package/examples/jsm/webxr/VRButton.js +1 -2
- package/examples/jsm/webxr/XRButton.js +198 -0
- package/package.json +33 -87
- package/src/Three.Legacy.js +19 -110
- package/src/Three.js +4 -3
- package/src/animation/AnimationUtils.js +13 -1
- package/src/animation/PropertyBinding.js +2 -2
- package/src/audio/Audio.js +7 -2
- package/src/constants.js +10 -2
- package/src/core/BufferAttribute.js +147 -8
- package/src/core/BufferGeometry.js +3 -9
- package/src/core/GLBufferAttribute.js +2 -0
- package/src/core/InterleavedBufferAttribute.js +1 -1
- package/src/core/Object3D.js +36 -7
- package/src/extras/DataUtils.js +7 -1
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +5 -5
- package/src/extras/curves/LineCurve.js +6 -4
- package/src/extras/curves/LineCurve3.js +13 -0
- package/src/geometries/BoxGeometry.js +10 -0
- package/src/geometries/CircleGeometry.js +11 -1
- package/src/geometries/ConeGeometry.js +1 -1
- package/src/geometries/CylinderGeometry.js +11 -1
- package/src/geometries/EdgesGeometry.js +10 -0
- package/src/geometries/ExtrudeGeometry.js +11 -1
- package/src/geometries/LatheGeometry.js +10 -0
- package/src/geometries/PlaneGeometry.js +10 -0
- package/src/geometries/PolyhedronGeometry.js +10 -0
- package/src/geometries/RingGeometry.js +11 -1
- package/src/geometries/ShapeGeometry.js +10 -0
- package/src/geometries/SphereGeometry.js +12 -2
- package/src/geometries/TorusGeometry.js +11 -1
- package/src/geometries/TorusKnotGeometry.js +10 -0
- package/src/geometries/TubeGeometry.js +10 -0
- package/src/geometries/WireframeGeometry.js +10 -0
- package/src/helpers/Box3Helper.js +1 -2
- package/src/lights/DirectionalLight.js +1 -1
- package/src/lights/HemisphereLight.js +1 -1
- package/src/lights/SpotLight.js +1 -1
- package/src/loaders/AudioLoader.js +14 -8
- package/src/loaders/DataTextureLoader.js +5 -1
- package/src/loaders/MaterialLoader.js +4 -0
- package/src/loaders/ObjectLoader.js +9 -2
- package/src/materials/LineBasicMaterial.js +4 -0
- package/src/materials/Material.js +6 -3
- package/src/materials/MeshDistanceMaterial.js +0 -9
- package/src/materials/ShaderMaterial.js +6 -1
- package/src/math/Box2.js +3 -2
- package/src/math/Box3.js +49 -64
- package/src/math/Color.js +72 -55
- package/src/math/ColorManagement.js +75 -16
- package/src/math/Euler.js +2 -11
- package/src/math/Frustum.js +13 -3
- package/src/math/MathUtils.js +27 -1
- package/src/math/Plane.js +2 -2
- package/src/math/Quaternion.js +6 -0
- package/src/math/Ray.js +7 -7
- package/src/math/Triangle.js +37 -7
- package/src/math/Vector2.js +16 -0
- package/src/math/Vector3.js +10 -0
- package/src/math/interpolants/CubicInterpolant.js +1 -2
- package/src/objects/InstancedMesh.js +79 -1
- package/src/objects/Mesh.js +101 -73
- package/src/objects/SkinnedMesh.js +95 -8
- package/src/objects/Sprite.js +1 -1
- package/src/renderers/WebGLCubeRenderTarget.js +12 -3
- package/src/renderers/WebGLMultipleRenderTargets.js +4 -2
- package/src/renderers/WebGLRenderTarget.js +14 -2
- package/src/renderers/WebGLRenderer.js +1340 -1258
- package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +0 -271
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +5 -5
- package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +2 -10
- package/src/renderers/shaders/ShaderChunk/clearcoat_pars_fragment.glsl.js +5 -5
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +32 -0
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/displacementmap_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +3 -3
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +11 -11
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +13 -13
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +256 -10
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +1 -11
- package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +9 -1
- package/src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl.js +10 -2
- package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +32 -10
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -13
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +7 -7
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +11 -5
- package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +4 -11
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +39 -34
- package/src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +91 -11
- package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +108 -1
- package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +128 -6
- package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +111 -1
- package/src/renderers/shaders/ShaderChunk.js +0 -6
- package/src/renderers/shaders/ShaderLib/background.glsl.js +0 -8
- package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +5 -0
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -4
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +0 -3
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +3 -3
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -3
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +8 -12
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -3
- package/src/renderers/shaders/ShaderLib/points.glsl.js +13 -0
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +5 -0
- package/src/renderers/shaders/ShaderLib.js +15 -4
- package/src/renderers/shaders/UniformsLib.js +25 -15
- package/src/renderers/shaders/UniformsUtils.js +12 -3
- package/src/renderers/webgl/WebGLBackground.js +23 -12
- package/src/renderers/webgl/WebGLCapabilities.js +1 -2
- package/src/renderers/webgl/WebGLClipping.js +7 -3
- package/src/renderers/webgl/WebGLLights.js +2 -2
- package/src/renderers/webgl/WebGLMaterials.js +105 -234
- package/src/renderers/webgl/WebGLMorphtargets.js +1 -1
- package/src/renderers/webgl/WebGLProgram.js +111 -48
- package/src/renderers/webgl/WebGLPrograms.js +200 -129
- package/src/renderers/webgl/WebGLRenderStates.js +2 -2
- package/src/renderers/webgl/WebGLShadowMap.js +40 -27
- package/src/renderers/webgl/WebGLState.js +23 -9
- package/src/renderers/webgl/WebGLTextures.js +21 -19
- package/src/renderers/webgl/WebGLUniformsGroups.js +74 -33
- package/src/renderers/webgl/WebGLUtils.js +41 -29
- package/src/renderers/webxr/WebXRController.js +3 -0
- package/src/renderers/webxr/WebXRManager.js +70 -48
- package/src/scenes/Scene.js +4 -6
- package/src/textures/CompressedTexture.js +2 -2
- package/src/textures/CubeTexture.js +2 -2
- package/src/textures/DataTexture.js +2 -2
- package/src/textures/Texture.js +41 -12
- package/src/utils.js +13 -1
- 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 +0 -9
- package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +0 -3966
- 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 +0 -4
- package/examples/js/animation/AnimationClipCreator.js +0 -89
- package/examples/js/animation/CCDIKSolver.js +0 -416
- package/examples/js/animation/MMDAnimationHelper.js +0 -1046
- package/examples/js/animation/MMDPhysics.js +0 -1174
- package/examples/js/cameras/CinematicCamera.js +0 -168
- package/examples/js/controls/ArcballControls.js +0 -2770
- package/examples/js/controls/DragControls.js +0 -205
- package/examples/js/controls/FirstPersonControls.js +0 -312
- package/examples/js/controls/FlyControls.js +0 -321
- package/examples/js/controls/OrbitControls.js +0 -1101
- package/examples/js/controls/PointerLockControls.js +0 -144
- package/examples/js/controls/TrackballControls.js +0 -729
- package/examples/js/controls/TransformControls.js +0 -1301
- package/examples/js/csm/CSM.js +0 -347
- package/examples/js/csm/CSMFrustum.js +0 -127
- package/examples/js/csm/CSMHelper.js +0 -165
- package/examples/js/csm/CSMShader.js +0 -253
- package/examples/js/curves/CurveExtras.js +0 -348
- package/examples/js/curves/NURBSCurve.js +0 -63
- package/examples/js/curves/NURBSSurface.js +0 -48
- package/examples/js/curves/NURBSUtils.js +0 -439
- package/examples/js/effects/AnaglyphEffect.js +0 -86
- package/examples/js/effects/AsciiEffect.js +0 -260
- package/examples/js/effects/OutlineEffect.js +0 -450
- package/examples/js/effects/ParallaxBarrierEffect.js +0 -62
- package/examples/js/effects/PeppersGhostEffect.js +0 -139
- package/examples/js/effects/StereoEffect.js +0 -46
- package/examples/js/environments/DebugEnvironment.js +0 -53
- package/examples/js/environments/RoomEnvironment.js +0 -124
- package/examples/js/exporters/ColladaExporter.js +0 -487
- package/examples/js/exporters/DRACOExporter.js +0 -212
- package/examples/js/exporters/EXRExporter.js +0 -455
- package/examples/js/exporters/GLTFExporter.js +0 -2367
- package/examples/js/exporters/MMDExporter.js +0 -187
- package/examples/js/exporters/OBJExporter.js +0 -260
- package/examples/js/exporters/PLYExporter.js +0 -427
- package/examples/js/exporters/STLExporter.js +0 -188
- package/examples/js/exporters/USDZExporter.js +0 -608
- package/examples/js/geometries/BoxLineGeometry.js +0 -59
- package/examples/js/geometries/ConvexGeometry.js +0 -53
- package/examples/js/geometries/DecalGeometry.js +0 -324
- package/examples/js/geometries/LightningStrike.js +0 -861
- package/examples/js/geometries/ParametricGeometries.js +0 -216
- package/examples/js/geometries/ParametricGeometry.js +0 -121
- package/examples/js/geometries/RoundedBoxGeometry.js +0 -142
- package/examples/js/geometries/TeapotGeometry.js +0 -335
- package/examples/js/geometries/TextGeometry.js +0 -53
- package/examples/js/helpers/LightProbeHelper.js +0 -48
- package/examples/js/helpers/OctreeHelper.js +0 -76
- package/examples/js/helpers/PositionalAudioHelper.js +0 -91
- package/examples/js/helpers/RectAreaLightHelper.js +0 -73
- package/examples/js/helpers/VertexNormalsHelper.js +0 -74
- package/examples/js/helpers/VertexTangentsHelper.js +0 -68
- package/examples/js/helpers/ViewHelper.js +0 -281
- package/examples/js/interactive/HTMLMesh.js +0 -497
- package/examples/js/interactive/InteractiveGroup.js +0 -95
- package/examples/js/interactive/SelectionBox.js +0 -195
- package/examples/js/interactive/SelectionHelper.js +0 -83
- package/examples/js/libs/chevrotain.min.js +0 -3
- package/examples/js/libs/draco/draco_decoder.js +0 -52
- package/examples/js/libs/draco/draco_decoder.wasm +0 -0
- package/examples/js/libs/draco/draco_wasm_wrapper.js +0 -104
- package/examples/js/libs/draco/gltf/draco_decoder.js +0 -48
- package/examples/js/libs/draco/gltf/draco_decoder.wasm +0 -0
- package/examples/js/libs/draco/gltf/draco_wasm_wrapper.js +0 -104
- package/examples/js/libs/fflate.min.js +0 -7
- package/examples/js/libs/ktx-parse.umd.js +0 -1
- package/examples/js/libs/meshopt_decoder.js +0 -188
- package/examples/js/libs/opentype.min.js +0 -1
- package/examples/js/libs/stats.min.js +0 -5
- package/examples/js/lights/LightProbeGenerator.js +0 -221
- package/examples/js/lights/RectAreaLightUniformsLib.js +0 -60
- package/examples/js/lines/Line2.js +0 -19
- package/examples/js/lines/LineGeometry.js +0 -69
- package/examples/js/lines/LineMaterial.js +0 -635
- package/examples/js/lines/LineSegments2.js +0 -313
- package/examples/js/lines/LineSegmentsGeometry.js +0 -198
- package/examples/js/lines/Wireframe.js +0 -47
- package/examples/js/lines/WireframeGeometry2.js +0 -20
- package/examples/js/loaders/3DMLoader.js +0 -1273
- package/examples/js/loaders/3MFLoader.js +0 -1306
- package/examples/js/loaders/AMFLoader.js +0 -504
- package/examples/js/loaders/BVHLoader.js +0 -395
- package/examples/js/loaders/BasisTextureLoader.js +0 -706
- package/examples/js/loaders/ColladaLoader.js +0 -3690
- package/examples/js/loaders/DDSLoader.js +0 -244
- package/examples/js/loaders/DRACOLoader.js +0 -511
- package/examples/js/loaders/EXRLoader.js +0 -2039
- package/examples/js/loaders/FBXLoader.js +0 -3681
- package/examples/js/loaders/FontLoader.js +0 -160
- package/examples/js/loaders/GCodeLoader.js +0 -255
- package/examples/js/loaders/GLTFLoader.js +0 -3862
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -87
- package/examples/js/loaders/KMZLoader.js +0 -121
- package/examples/js/loaders/KTXLoader.js +0 -159
- package/examples/js/loaders/LDrawLoader.js +0 -2263
- package/examples/js/loaders/LUT3dlLoader.js +0 -135
- package/examples/js/loaders/LUTCubeLoader.js +0 -132
- package/examples/js/loaders/LWOLoader.js +0 -901
- package/examples/js/loaders/LogLuvLoader.js +0 -715
- package/examples/js/loaders/LottieLoader.js +0 -62
- package/examples/js/loaders/MD2Loader.js +0 -248
- package/examples/js/loaders/MDDLoader.js +0 -91
- package/examples/js/loaders/MMDLoader.js +0 -1915
- package/examples/js/loaders/MTLLoader.js +0 -472
- package/examples/js/loaders/NRRDLoader.js +0 -609
- package/examples/js/loaders/OBJLoader.js +0 -789
- package/examples/js/loaders/PCDLoader.js +0 -413
- package/examples/js/loaders/PDBLoader.js +0 -317
- package/examples/js/loaders/PLYLoader.js +0 -576
- package/examples/js/loaders/PRWMLoader.js +0 -249
- package/examples/js/loaders/PVRLoader.js +0 -218
- package/examples/js/loaders/RGBELoader.js +0 -442
- package/examples/js/loaders/RGBMLoader.js +0 -1354
- package/examples/js/loaders/STLLoader.js +0 -364
- package/examples/js/loaders/SVGLoader.js +0 -2783
- package/examples/js/loaders/TDSLoader.js +0 -992
- package/examples/js/loaders/TGALoader.js +0 -484
- package/examples/js/loaders/TIFFLoader.js +0 -30
- package/examples/js/loaders/TTFLoader.js +0 -203
- package/examples/js/loaders/TiltLoader.js +0 -459
- package/examples/js/loaders/VOXLoader.js +0 -240
- package/examples/js/loaders/VRMLLoader.js +0 -3140
- package/examples/js/loaders/VTKLoader.js +0 -1078
- package/examples/js/loaders/XYZLoader.js +0 -89
- package/examples/js/loaders/lwo/IFFParser.js +0 -1067
- package/examples/js/loaders/lwo/LWO2Parser.js +0 -397
- package/examples/js/loaders/lwo/LWO3Parser.js +0 -360
- package/examples/js/materials/MeshGouraudMaterial.js +0 -387
- package/examples/js/math/Capsule.js +0 -103
- package/examples/js/math/ColorConverter.js +0 -33
- package/examples/js/math/ConvexHull.js +0 -1154
- package/examples/js/math/ImprovedNoise.js +0 -66
- package/examples/js/math/Lut.js +0 -164
- package/examples/js/math/MeshSurfaceSampler.js +0 -171
- package/examples/js/math/OBB.js +0 -382
- package/examples/js/math/Octree.js +0 -410
- package/examples/js/math/SimplexNoise.js +0 -445
- package/examples/js/misc/ConvexObjectBreaker.js +0 -474
- package/examples/js/misc/GPUComputationRenderer.js +0 -393
- package/examples/js/misc/Gyroscope.js +0 -56
- package/examples/js/misc/MD2Character.js +0 -235
- package/examples/js/misc/MD2CharacterComplex.js +0 -513
- package/examples/js/misc/MorphAnimMesh.js +0 -63
- package/examples/js/misc/MorphBlendMesh.js +0 -265
- package/examples/js/misc/ProgressiveLightMap.js +0 -335
- package/examples/js/misc/RollerCoaster.js +0 -430
- package/examples/js/misc/TubePainter.js +0 -167
- package/examples/js/misc/Volume.js +0 -437
- package/examples/js/misc/VolumeSlice.js +0 -214
- package/examples/js/modifiers/CurveModifier.js +0 -309
- package/examples/js/modifiers/EdgeSplitModifier.js +0 -228
- package/examples/js/modifiers/SimplifyModifier.js +0 -465
- package/examples/js/modifiers/TessellateModifier.js +0 -276
- package/examples/js/objects/GroundProjectedEnv.js +0 -181
- package/examples/js/objects/Lensflare.js +0 -356
- package/examples/js/objects/LightningStorm.js +0 -206
- package/examples/js/objects/MarchingCubes.js +0 -759
- package/examples/js/objects/Reflector.js +0 -216
- package/examples/js/objects/ReflectorForSSRPass.js +0 -315
- package/examples/js/objects/Refractor.js +0 -283
- package/examples/js/objects/ShadowMesh.js +0 -59
- package/examples/js/objects/Sky.js +0 -218
- package/examples/js/objects/Water.js +0 -292
- package/examples/js/objects/Water2.js +0 -307
- package/examples/js/physics/AmmoPhysics.js +0 -259
- package/examples/js/physics/OimoPhysics.js +0 -217
- package/examples/js/postprocessing/AdaptiveToneMappingPass.js +0 -335
- package/examples/js/postprocessing/AfterimagePass.js +0 -77
- package/examples/js/postprocessing/BloomPass.js +0 -135
- package/examples/js/postprocessing/BokehPass.js +0 -120
- package/examples/js/postprocessing/ClearPass.js +0 -39
- package/examples/js/postprocessing/CubeTexturePass.js +0 -60
- package/examples/js/postprocessing/DotScreenPass.js +0 -51
- package/examples/js/postprocessing/EffectComposer.js +0 -272
- package/examples/js/postprocessing/FilmPass.js +0 -52
- package/examples/js/postprocessing/GlitchPass.js +0 -104
- package/examples/js/postprocessing/HalftonePass.js +0 -75
- package/examples/js/postprocessing/LUTPass.js +0 -171
- package/examples/js/postprocessing/MaskPass.js +0 -95
- package/examples/js/postprocessing/OutlinePass.js +0 -598
- package/examples/js/postprocessing/Pass.js +0 -72
- package/examples/js/postprocessing/RenderPass.js +0 -70
- package/examples/js/postprocessing/RenderPixelatedPass.js +0 -215
- package/examples/js/postprocessing/SAOPass.js +0 -374
- package/examples/js/postprocessing/SMAAPass.js +0 -170
- package/examples/js/postprocessing/SSAARenderPass.js +0 -156
- package/examples/js/postprocessing/SSAOPass.js +0 -365
- package/examples/js/postprocessing/SSRPass.js +0 -567
- package/examples/js/postprocessing/SavePass.js +0 -59
- package/examples/js/postprocessing/ShaderPass.js +0 -64
- package/examples/js/postprocessing/TAARenderPass.js +0 -130
- package/examples/js/postprocessing/TexturePass.js +0 -49
- package/examples/js/postprocessing/UnrealBloomPass.js +0 -375
- package/examples/js/renderers/CSS2DRenderer.js +0 -178
- package/examples/js/renderers/CSS3DRenderer.js +0 -237
- package/examples/js/renderers/Projector.js +0 -818
- package/examples/js/renderers/SVGRenderer.js +0 -491
- package/examples/js/shaders/ACESFilmicToneMappingShader.js +0 -89
- package/examples/js/shaders/AfterimageShader.js +0 -60
- package/examples/js/shaders/BasicShader.js +0 -27
- package/examples/js/shaders/BleachBypassShader.js +0 -62
- package/examples/js/shaders/BlendShader.js +0 -54
- package/examples/js/shaders/BokehShader.js +0 -156
- package/examples/js/shaders/BokehShader2.js +0 -419
- package/examples/js/shaders/BrightnessContrastShader.js +0 -58
- package/examples/js/shaders/ColorCorrectionShader.js +0 -52
- package/examples/js/shaders/ColorifyShader.js +0 -47
- package/examples/js/shaders/ConvolutionShader.js +0 -92
- package/examples/js/shaders/CopyShader.js +0 -45
- package/examples/js/shaders/DOFMipMapShader.js +0 -60
- package/examples/js/shaders/DepthLimitedBlurShader.js +0 -173
- package/examples/js/shaders/DigitalGlitch.js +0 -127
- package/examples/js/shaders/DotScreenShader.js +0 -72
- package/examples/js/shaders/FXAAShader.js +0 -284
- package/examples/js/shaders/FilmShader.js +0 -110
- package/examples/js/shaders/FocusShader.js +0 -95
- package/examples/js/shaders/FreiChenShader.js +0 -93
- package/examples/js/shaders/GammaCorrectionShader.js +0 -41
- package/examples/js/shaders/GodRaysShader.js +0 -284
- package/examples/js/shaders/HalftoneShader.js +0 -336
- package/examples/js/shaders/HorizontalBlurShader.js +0 -59
- package/examples/js/shaders/HorizontalTiltShiftShader.js +0 -65
- package/examples/js/shaders/HueSaturationShader.js +0 -69
- package/examples/js/shaders/KaleidoShader.js +0 -60
- package/examples/js/shaders/LuminosityHighPassShader.js +0 -67
- package/examples/js/shaders/LuminosityShader.js +0 -46
- package/examples/js/shaders/MMDToonShader.js +0 -94
- package/examples/js/shaders/MirrorShader.js +0 -56
- package/examples/js/shaders/NormalMapShader.js +0 -55
- package/examples/js/shaders/RGBShiftShader.js +0 -56
- package/examples/js/shaders/SAOShader.js +0 -209
- package/examples/js/shaders/SMAAShader.js +0 -454
- package/examples/js/shaders/SSAOShader.js +0 -295
- package/examples/js/shaders/SSRShader.js +0 -381
- package/examples/js/shaders/SepiaShader.js +0 -52
- package/examples/js/shaders/SobelOperatorShader.js +0 -88
- package/examples/js/shaders/SubsurfaceScatteringShader.js +0 -49
- package/examples/js/shaders/TechnicolorShader.js +0 -43
- package/examples/js/shaders/ToneMapShader.js +0 -84
- package/examples/js/shaders/ToonShader.js +0 -335
- package/examples/js/shaders/TriangleBlurShader.js +0 -70
- package/examples/js/shaders/UnpackDepthRGBAShader.js +0 -47
- package/examples/js/shaders/VelocityShader.js +0 -126
- package/examples/js/shaders/VerticalBlurShader.js +0 -59
- package/examples/js/shaders/VerticalTiltShiftShader.js +0 -65
- package/examples/js/shaders/VignetteShader.js +0 -53
- package/examples/js/shaders/VolumeShader.js +0 -296
- package/examples/js/shaders/WaterRefractionShader.js +0 -84
- package/examples/js/textures/FlakesTexture.js +0 -40
- package/examples/js/utils/BufferGeometryUtils.js +0 -1160
- package/examples/js/utils/CameraUtils.js +0 -71
- package/examples/js/utils/GPUStatsPanel.js +0 -125
- package/examples/js/utils/GeometryCompressionUtils.js +0 -549
- package/examples/js/utils/GeometryUtils.js +0 -168
- package/examples/js/utils/LDrawUtils.js +0 -179
- package/examples/js/utils/PackedPhongMaterial.js +0 -109
- package/examples/js/utils/SceneUtils.js +0 -214
- package/examples/js/utils/ShadowMapViewer.js +0 -183
- package/examples/js/utils/SkeletonUtils.js +0 -493
- package/examples/js/utils/UVsDebug.js +0 -143
- package/examples/js/utils/WorkerPool.js +0 -105
- package/examples/jsm/libs/OimoPhysics/OimoPhysics.js +0 -37071
- package/examples/jsm/libs/OimoPhysics/index.js +0 -43
- package/examples/jsm/libs/flow.module.js +0 -4552
- package/examples/jsm/libs/tween.module.min.js +0 -3
- package/examples/jsm/loaders/BasisTextureLoader.js +0 -790
- package/examples/jsm/loaders/IFCLoader.js +0 -2431
- package/examples/jsm/loaders/ifc/web-ifc-api.js +0 -47504
- package/examples/jsm/loaders/ifc/web-ifc.wasm +0 -0
- package/examples/jsm/node-editor/NodeEditor.js +0 -857
- package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +0 -14
- package/examples/jsm/node-editor/accessors/NormalEditor.js +0 -30
- package/examples/jsm/node-editor/accessors/PositionEditor.js +0 -30
- package/examples/jsm/node-editor/accessors/UVEditor.js +0 -25
- package/examples/jsm/node-editor/core/BaseNode.js +0 -96
- package/examples/jsm/node-editor/core/DataFile.js +0 -59
- package/examples/jsm/node-editor/core/FileEditor.js +0 -20
- package/examples/jsm/node-editor/core/FileURLEditor.js +0 -29
- package/examples/jsm/node-editor/display/BlendEditor.js +0 -44
- package/examples/jsm/node-editor/display/NormalMapEditor.js +0 -49
- package/examples/jsm/node-editor/examples/animate-uv.json +0 -1
- package/examples/jsm/node-editor/examples/fake-top-light.json +0 -1
- package/examples/jsm/node-editor/examples/matcap.json +0 -1
- package/examples/jsm/node-editor/examples/oscillator-color.json +0 -1
- package/examples/jsm/node-editor/examples/rim.json +0 -1
- package/examples/jsm/node-editor/inputs/ColorEditor.js +0 -96
- package/examples/jsm/node-editor/inputs/FloatEditor.js +0 -23
- package/examples/jsm/node-editor/inputs/SliderEditor.js +0 -67
- package/examples/jsm/node-editor/inputs/TextureEditor.js +0 -155
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +0 -28
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +0 -30
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +0 -37
- package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +0 -84
- package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +0 -102
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +0 -118
- package/examples/jsm/node-editor/math/AngleEditor.js +0 -40
- package/examples/jsm/node-editor/math/DotEditor.js +0 -35
- package/examples/jsm/node-editor/math/InvertEditor.js +0 -39
- package/examples/jsm/node-editor/math/LimiterEditor.js +0 -62
- package/examples/jsm/node-editor/math/NormalizeEditor.js +0 -28
- package/examples/jsm/node-editor/math/OperatorEditor.js +0 -63
- package/examples/jsm/node-editor/math/PowerEditor.js +0 -44
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +0 -45
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +0 -27
- package/examples/jsm/node-editor/scene/MeshEditor.js +0 -102
- package/examples/jsm/node-editor/scene/Object3DEditor.js +0 -160
- package/examples/jsm/node-editor/scene/PointsEditor.js +0 -99
- package/examples/jsm/node-editor/utils/JoinEditor.js +0 -58
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +0 -43
- package/examples/jsm/node-editor/utils/PreviewEditor.js +0 -170
- package/examples/jsm/node-editor/utils/SplitEditor.js +0 -39
- package/examples/jsm/node-editor/utils/TimerEditor.js +0 -58
- package/examples/jsm/nodes/core/ExpressionNode.js +0 -32
- package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +0 -22
- package/examples/jsm/nodes/lighting/PunctualLightNode.js +0 -68
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +0 -301
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +0 -149
- package/examples/jsm/objects/GroundProjectedEnv.js +0 -186
- package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -36
- package/src/renderers/shaders/ShaderChunk/uv2_pars_fragment.glsl.js +0 -7
- package/src/renderers/shaders/ShaderChunk/uv2_pars_vertex.glsl.js +0 -10
- package/src/renderers/shaders/ShaderChunk/uv2_vertex.glsl.js +0 -7
- /package/examples/{js → jsm}/libs/ammo.wasm.js +0 -0
- /package/examples/{js → jsm}/libs/ammo.wasm.wasm +0 -0
- /package/examples/{js → jsm}/libs/basis/basis_transcoder.js +0 -0
- /package/examples/{js → jsm}/libs/basis/basis_transcoder.wasm +0 -0
- /package/examples/{js → jsm}/libs/draco/README.md +0 -0
- /package/examples/{js → jsm}/libs/draco/draco_encoder.js +0 -0
- /package/examples/{js → jsm}/libs/draco/gltf/draco_encoder.js +0 -0
|
@@ -60,8 +60,9 @@ import {
|
|
|
60
60
|
Vector2,
|
|
61
61
|
Vector3,
|
|
62
62
|
VectorKeyframeTrack,
|
|
63
|
-
|
|
63
|
+
SRGBColorSpace
|
|
64
64
|
} from 'three';
|
|
65
|
+
import { toTrianglesDrawMode } from '../utils/BufferGeometryUtils.js';
|
|
65
66
|
|
|
66
67
|
class GLTFLoader extends Loader {
|
|
67
68
|
|
|
@@ -93,6 +94,12 @@ class GLTFLoader extends Loader {
|
|
|
93
94
|
|
|
94
95
|
} );
|
|
95
96
|
|
|
97
|
+
this.register( function ( parser ) {
|
|
98
|
+
|
|
99
|
+
return new GLTFTextureAVIFExtension( parser );
|
|
100
|
+
|
|
101
|
+
} );
|
|
102
|
+
|
|
96
103
|
this.register( function ( parser ) {
|
|
97
104
|
|
|
98
105
|
return new GLTFMaterialsSheenExtension( parser );
|
|
@@ -286,6 +293,7 @@ class GLTFLoader extends Loader {
|
|
|
286
293
|
let json;
|
|
287
294
|
const extensions = {};
|
|
288
295
|
const plugins = {};
|
|
296
|
+
const textDecoder = new TextDecoder();
|
|
289
297
|
|
|
290
298
|
if ( typeof data === 'string' ) {
|
|
291
299
|
|
|
@@ -293,7 +301,7 @@ class GLTFLoader extends Loader {
|
|
|
293
301
|
|
|
294
302
|
} else if ( data instanceof ArrayBuffer ) {
|
|
295
303
|
|
|
296
|
-
const magic =
|
|
304
|
+
const magic = textDecoder.decode( new Uint8Array( data, 0, 4 ) );
|
|
297
305
|
|
|
298
306
|
if ( magic === BINARY_EXTENSION_HEADER_MAGIC ) {
|
|
299
307
|
|
|
@@ -312,7 +320,7 @@ class GLTFLoader extends Loader {
|
|
|
312
320
|
|
|
313
321
|
} else {
|
|
314
322
|
|
|
315
|
-
json = JSON.parse(
|
|
323
|
+
json = JSON.parse( textDecoder.decode( data ) );
|
|
316
324
|
|
|
317
325
|
}
|
|
318
326
|
|
|
@@ -471,6 +479,7 @@ const EXTENSIONS = {
|
|
|
471
479
|
KHR_MESH_QUANTIZATION: 'KHR_mesh_quantization',
|
|
472
480
|
KHR_MATERIALS_EMISSIVE_STRENGTH: 'KHR_materials_emissive_strength',
|
|
473
481
|
EXT_TEXTURE_WEBP: 'EXT_texture_webp',
|
|
482
|
+
EXT_TEXTURE_AVIF: 'EXT_texture_avif',
|
|
474
483
|
EXT_MESHOPT_COMPRESSION: 'EXT_meshopt_compression',
|
|
475
484
|
EXT_MESH_GPU_INSTANCING: 'EXT_mesh_gpu_instancing'
|
|
476
485
|
};
|
|
@@ -584,7 +593,7 @@ class GLTFLightsExtension {
|
|
|
584
593
|
|
|
585
594
|
}
|
|
586
595
|
|
|
587
|
-
getDependency( type, index ) {
|
|
596
|
+
getDependency( type, index ) {
|
|
588
597
|
|
|
589
598
|
if ( type !== 'light' ) return;
|
|
590
599
|
|
|
@@ -654,7 +663,7 @@ class GLTFMaterialsUnlitExtension {
|
|
|
654
663
|
|
|
655
664
|
if ( metallicRoughness.baseColorTexture !== undefined ) {
|
|
656
665
|
|
|
657
|
-
pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture,
|
|
666
|
+
pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );
|
|
658
667
|
|
|
659
668
|
}
|
|
660
669
|
|
|
@@ -935,7 +944,7 @@ class GLTFMaterialsSheenExtension {
|
|
|
935
944
|
|
|
936
945
|
if ( extension.sheenColorTexture !== undefined ) {
|
|
937
946
|
|
|
938
|
-
pending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture,
|
|
947
|
+
pending.push( parser.assignTexture( materialParams, 'sheenColorMap', extension.sheenColorTexture, SRGBColorSpace ) );
|
|
939
948
|
|
|
940
949
|
}
|
|
941
950
|
|
|
@@ -1168,7 +1177,7 @@ class GLTFMaterialsSpecularExtension {
|
|
|
1168
1177
|
|
|
1169
1178
|
if ( extension.specularColorTexture !== undefined ) {
|
|
1170
1179
|
|
|
1171
|
-
pending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture,
|
|
1180
|
+
pending.push( parser.assignTexture( materialParams, 'specularColorMap', extension.specularColorTexture, SRGBColorSpace ) );
|
|
1172
1181
|
|
|
1173
1182
|
}
|
|
1174
1183
|
|
|
@@ -1314,6 +1323,89 @@ class GLTFTextureWebPExtension {
|
|
|
1314
1323
|
|
|
1315
1324
|
}
|
|
1316
1325
|
|
|
1326
|
+
/**
|
|
1327
|
+
* AVIF Texture Extension
|
|
1328
|
+
*
|
|
1329
|
+
* Specification: https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_texture_avif
|
|
1330
|
+
*/
|
|
1331
|
+
class GLTFTextureAVIFExtension {
|
|
1332
|
+
|
|
1333
|
+
constructor( parser ) {
|
|
1334
|
+
|
|
1335
|
+
this.parser = parser;
|
|
1336
|
+
this.name = EXTENSIONS.EXT_TEXTURE_AVIF;
|
|
1337
|
+
this.isSupported = null;
|
|
1338
|
+
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1341
|
+
loadTexture( textureIndex ) {
|
|
1342
|
+
|
|
1343
|
+
const name = this.name;
|
|
1344
|
+
const parser = this.parser;
|
|
1345
|
+
const json = parser.json;
|
|
1346
|
+
|
|
1347
|
+
const textureDef = json.textures[ textureIndex ];
|
|
1348
|
+
|
|
1349
|
+
if ( ! textureDef.extensions || ! textureDef.extensions[ name ] ) {
|
|
1350
|
+
|
|
1351
|
+
return null;
|
|
1352
|
+
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1355
|
+
const extension = textureDef.extensions[ name ];
|
|
1356
|
+
const source = json.images[ extension.source ];
|
|
1357
|
+
|
|
1358
|
+
let loader = parser.textureLoader;
|
|
1359
|
+
if ( source.uri ) {
|
|
1360
|
+
|
|
1361
|
+
const handler = parser.options.manager.getHandler( source.uri );
|
|
1362
|
+
if ( handler !== null ) loader = handler;
|
|
1363
|
+
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
return this.detectSupport().then( function ( isSupported ) {
|
|
1367
|
+
|
|
1368
|
+
if ( isSupported ) return parser.loadTextureImage( textureIndex, extension.source, loader );
|
|
1369
|
+
|
|
1370
|
+
if ( json.extensionsRequired && json.extensionsRequired.indexOf( name ) >= 0 ) {
|
|
1371
|
+
|
|
1372
|
+
throw new Error( 'THREE.GLTFLoader: AVIF required by asset but unsupported.' );
|
|
1373
|
+
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
// Fall back to PNG or JPEG.
|
|
1377
|
+
return parser.loadTexture( textureIndex );
|
|
1378
|
+
|
|
1379
|
+
} );
|
|
1380
|
+
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
detectSupport() {
|
|
1384
|
+
|
|
1385
|
+
if ( ! this.isSupported ) {
|
|
1386
|
+
|
|
1387
|
+
this.isSupported = new Promise( function ( resolve ) {
|
|
1388
|
+
|
|
1389
|
+
const image = new Image();
|
|
1390
|
+
|
|
1391
|
+
// Lossy test image.
|
|
1392
|
+
image.src = 'data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=';
|
|
1393
|
+
image.onload = image.onerror = function () {
|
|
1394
|
+
|
|
1395
|
+
resolve( image.height === 1 );
|
|
1396
|
+
|
|
1397
|
+
};
|
|
1398
|
+
|
|
1399
|
+
} );
|
|
1400
|
+
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
return this.isSupported;
|
|
1404
|
+
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1317
1409
|
/**
|
|
1318
1410
|
* meshopt BufferView Compression Extension
|
|
1319
1411
|
*
|
|
@@ -1526,8 +1618,6 @@ class GLTFMeshGpuInstancing {
|
|
|
1526
1618
|
// Just in case
|
|
1527
1619
|
Object3D.prototype.copy.call( instancedMesh, mesh );
|
|
1528
1620
|
|
|
1529
|
-
// https://github.com/mrdoob/three.js/issues/18334
|
|
1530
|
-
instancedMesh.frustumCulled = false;
|
|
1531
1621
|
this.parser.assignFinalMaterial( instancedMesh );
|
|
1532
1622
|
|
|
1533
1623
|
instancedMeshes.push( instancedMesh );
|
|
@@ -1566,9 +1656,10 @@ class GLTFBinaryExtension {
|
|
|
1566
1656
|
this.body = null;
|
|
1567
1657
|
|
|
1568
1658
|
const headerView = new DataView( data, 0, BINARY_EXTENSION_HEADER_LENGTH );
|
|
1659
|
+
const textDecoder = new TextDecoder();
|
|
1569
1660
|
|
|
1570
1661
|
this.header = {
|
|
1571
|
-
magic:
|
|
1662
|
+
magic: textDecoder.decode( new Uint8Array( data.slice( 0, 4 ) ) ),
|
|
1572
1663
|
version: headerView.getUint32( 4, true ),
|
|
1573
1664
|
length: headerView.getUint32( 8, true )
|
|
1574
1665
|
};
|
|
@@ -1598,7 +1689,7 @@ class GLTFBinaryExtension {
|
|
|
1598
1689
|
if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.JSON ) {
|
|
1599
1690
|
|
|
1600
1691
|
const contentArray = new Uint8Array( data, BINARY_EXTENSION_HEADER_LENGTH + chunkIndex, chunkLength );
|
|
1601
|
-
this.content =
|
|
1692
|
+
this.content = textDecoder.decode( contentArray );
|
|
1602
1693
|
|
|
1603
1694
|
} else if ( chunkType === BINARY_EXTENSION_CHUNK_TYPES.BIN ) {
|
|
1604
1695
|
|
|
@@ -1721,13 +1812,10 @@ class GLTFTextureTransformExtension {
|
|
|
1721
1812
|
|
|
1722
1813
|
extendTexture( texture, transform ) {
|
|
1723
1814
|
|
|
1724
|
-
if ( transform.texCoord
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
}
|
|
1729
|
-
|
|
1730
|
-
if ( transform.offset === undefined && transform.rotation === undefined && transform.scale === undefined ) {
|
|
1815
|
+
if ( ( transform.texCoord === undefined || transform.texCoord === texture.channel )
|
|
1816
|
+
&& transform.offset === undefined
|
|
1817
|
+
&& transform.rotation === undefined
|
|
1818
|
+
&& transform.scale === undefined ) {
|
|
1731
1819
|
|
|
1732
1820
|
// See https://github.com/mrdoob/three.js/issues/21819.
|
|
1733
1821
|
return texture;
|
|
@@ -1736,6 +1824,12 @@ class GLTFTextureTransformExtension {
|
|
|
1736
1824
|
|
|
1737
1825
|
texture = texture.clone();
|
|
1738
1826
|
|
|
1827
|
+
if ( transform.texCoord !== undefined ) {
|
|
1828
|
+
|
|
1829
|
+
texture.channel = transform.texCoord;
|
|
1830
|
+
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1739
1833
|
if ( transform.offset !== undefined ) {
|
|
1740
1834
|
|
|
1741
1835
|
texture.offset.fromArray( transform.offset );
|
|
@@ -1937,7 +2031,9 @@ const ATTRIBUTES = {
|
|
|
1937
2031
|
NORMAL: 'normal',
|
|
1938
2032
|
TANGENT: 'tangent',
|
|
1939
2033
|
TEXCOORD_0: 'uv',
|
|
1940
|
-
TEXCOORD_1: '
|
|
2034
|
+
TEXCOORD_1: 'uv1',
|
|
2035
|
+
TEXCOORD_2: 'uv2',
|
|
2036
|
+
TEXCOORD_3: 'uv3',
|
|
1941
2037
|
COLOR_0: 'color',
|
|
1942
2038
|
WEIGHTS_0: 'skinWeight',
|
|
1943
2039
|
JOINTS_0: 'skinIndex',
|
|
@@ -2229,6 +2325,8 @@ function getImageURIMimeType( uri ) {
|
|
|
2229
2325
|
|
|
2230
2326
|
}
|
|
2231
2327
|
|
|
2328
|
+
const _identityMatrix = new Matrix4();
|
|
2329
|
+
|
|
2232
2330
|
/* GLTF PARSER */
|
|
2233
2331
|
|
|
2234
2332
|
class GLTFParser {
|
|
@@ -2249,6 +2347,9 @@ class GLTFParser {
|
|
|
2249
2347
|
// BufferGeometry caching
|
|
2250
2348
|
this.primitiveCache = {};
|
|
2251
2349
|
|
|
2350
|
+
// Node cache
|
|
2351
|
+
this.nodeCache = {};
|
|
2352
|
+
|
|
2252
2353
|
// Object3D instance caches
|
|
2253
2354
|
this.meshCache = { refs: {}, uses: {} };
|
|
2254
2355
|
this.cameraCache = { refs: {}, uses: {} };
|
|
@@ -2262,7 +2363,7 @@ class GLTFParser {
|
|
|
2262
2363
|
|
|
2263
2364
|
// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the
|
|
2264
2365
|
// expensive work of uploading a texture to the GPU off the main thread.
|
|
2265
|
-
|
|
2366
|
+
|
|
2266
2367
|
let isSafari = false;
|
|
2267
2368
|
let isFirefox = false;
|
|
2268
2369
|
let firefoxVersion = - 1;
|
|
@@ -2319,6 +2420,7 @@ class GLTFParser {
|
|
|
2319
2420
|
|
|
2320
2421
|
// Clear the loader cache
|
|
2321
2422
|
this.cache.removeAll();
|
|
2423
|
+
this.nodeCache = {};
|
|
2322
2424
|
|
|
2323
2425
|
// Mark the special nodes/meshes in json for efficient parse
|
|
2324
2426
|
this._invokeAll( function ( ext ) {
|
|
@@ -2538,7 +2640,11 @@ class GLTFParser {
|
|
|
2538
2640
|
break;
|
|
2539
2641
|
|
|
2540
2642
|
case 'node':
|
|
2541
|
-
dependency = this.
|
|
2643
|
+
dependency = this._invokeOne( function ( ext ) {
|
|
2644
|
+
|
|
2645
|
+
return ext.loadNode && ext.loadNode( index );
|
|
2646
|
+
|
|
2647
|
+
} );
|
|
2542
2648
|
break;
|
|
2543
2649
|
|
|
2544
2650
|
case 'mesh':
|
|
@@ -2889,6 +2995,12 @@ class GLTFParser {
|
|
|
2889
2995
|
|
|
2890
2996
|
texture.name = textureDef.name || sourceDef.name || '';
|
|
2891
2997
|
|
|
2998
|
+
if ( texture.name === '' && typeof sourceDef.uri === 'string' && sourceDef.uri.startsWith( 'data:image/' ) === false ) {
|
|
2999
|
+
|
|
3000
|
+
texture.name = sourceDef.uri;
|
|
3001
|
+
|
|
3002
|
+
}
|
|
3003
|
+
|
|
2892
3004
|
const samplers = json.samplers || {};
|
|
2893
3005
|
const sampler = samplers[ textureDef.sampler ] || {};
|
|
2894
3006
|
|
|
@@ -3007,7 +3119,7 @@ class GLTFParser {
|
|
|
3007
3119
|
* @param {Object} mapDef
|
|
3008
3120
|
* @return {Promise<Texture>}
|
|
3009
3121
|
*/
|
|
3010
|
-
assignTexture( materialParams, mapName, mapDef,
|
|
3122
|
+
assignTexture( materialParams, mapName, mapDef, colorSpace ) {
|
|
3011
3123
|
|
|
3012
3124
|
const parser = this;
|
|
3013
3125
|
|
|
@@ -3015,11 +3127,10 @@ class GLTFParser {
|
|
|
3015
3127
|
|
|
3016
3128
|
if ( ! texture ) return null;
|
|
3017
3129
|
|
|
3018
|
-
|
|
3019
|
-
// However, we will copy UV set 0 to UV set 1 on demand for aoMap
|
|
3020
|
-
if ( mapDef.texCoord !== undefined && mapDef.texCoord != 0 && ! ( mapName === 'aoMap' && mapDef.texCoord == 1 ) ) {
|
|
3130
|
+
if ( mapDef.texCoord !== undefined && mapDef.texCoord > 0 ) {
|
|
3021
3131
|
|
|
3022
|
-
|
|
3132
|
+
texture = texture.clone();
|
|
3133
|
+
texture.channel = mapDef.texCoord;
|
|
3023
3134
|
|
|
3024
3135
|
}
|
|
3025
3136
|
|
|
@@ -3037,9 +3148,9 @@ class GLTFParser {
|
|
|
3037
3148
|
|
|
3038
3149
|
}
|
|
3039
3150
|
|
|
3040
|
-
if (
|
|
3151
|
+
if ( colorSpace !== undefined ) {
|
|
3041
3152
|
|
|
3042
|
-
texture.
|
|
3153
|
+
texture.colorSpace = colorSpace;
|
|
3043
3154
|
|
|
3044
3155
|
}
|
|
3045
3156
|
|
|
@@ -3099,6 +3210,7 @@ class GLTFParser {
|
|
|
3099
3210
|
lineMaterial = new LineBasicMaterial();
|
|
3100
3211
|
Material.prototype.copy.call( lineMaterial, material );
|
|
3101
3212
|
lineMaterial.color.copy( material.color );
|
|
3213
|
+
lineMaterial.map = material.map;
|
|
3102
3214
|
|
|
3103
3215
|
this.cache.add( cacheKey, lineMaterial );
|
|
3104
3216
|
|
|
@@ -3144,14 +3256,6 @@ class GLTFParser {
|
|
|
3144
3256
|
|
|
3145
3257
|
}
|
|
3146
3258
|
|
|
3147
|
-
// workarounds for mesh and geometry
|
|
3148
|
-
|
|
3149
|
-
if ( material.aoMap && geometry.attributes.uv2 === undefined && geometry.attributes.uv !== undefined ) {
|
|
3150
|
-
|
|
3151
|
-
geometry.setAttribute( 'uv2', geometry.attributes.uv );
|
|
3152
|
-
|
|
3153
|
-
}
|
|
3154
|
-
|
|
3155
3259
|
mesh.material = material;
|
|
3156
3260
|
|
|
3157
3261
|
}
|
|
@@ -3207,7 +3311,7 @@ class GLTFParser {
|
|
|
3207
3311
|
|
|
3208
3312
|
if ( metallicRoughness.baseColorTexture !== undefined ) {
|
|
3209
3313
|
|
|
3210
|
-
pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture,
|
|
3314
|
+
pending.push( parser.assignTexture( materialParams, 'map', metallicRoughness.baseColorTexture, SRGBColorSpace ) );
|
|
3211
3315
|
|
|
3212
3316
|
}
|
|
3213
3317
|
|
|
@@ -3298,7 +3402,7 @@ class GLTFParser {
|
|
|
3298
3402
|
|
|
3299
3403
|
if ( materialDef.emissiveTexture !== undefined && materialType !== MeshBasicMaterial ) {
|
|
3300
3404
|
|
|
3301
|
-
pending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture,
|
|
3405
|
+
pending.push( parser.assignTexture( materialParams, 'emissiveMap', materialDef.emissiveTexture, SRGBColorSpace ) );
|
|
3302
3406
|
|
|
3303
3407
|
}
|
|
3304
3408
|
|
|
@@ -3465,10 +3569,9 @@ class GLTFParser {
|
|
|
3465
3569
|
? new SkinnedMesh( geometry, material )
|
|
3466
3570
|
: new Mesh( geometry, material );
|
|
3467
3571
|
|
|
3468
|
-
if ( mesh.isSkinnedMesh === true
|
|
3572
|
+
if ( mesh.isSkinnedMesh === true ) {
|
|
3469
3573
|
|
|
3470
|
-
//
|
|
3471
|
-
// it's important to skip this for non-float32 data since normalizeSkinWeights assumes non-normalized inputs
|
|
3574
|
+
// normalize skin weights to fix malformed assets (see #15319)
|
|
3472
3575
|
mesh.normalizeSkinWeights();
|
|
3473
3576
|
|
|
3474
3577
|
}
|
|
@@ -3603,7 +3706,7 @@ class GLTFParser {
|
|
|
3603
3706
|
|
|
3604
3707
|
for ( let i = 0, il = skinDef.joints.length; i < il; i ++ ) {
|
|
3605
3708
|
|
|
3606
|
-
pending.push( this.
|
|
3709
|
+
pending.push( this._loadNodeShallow( skinDef.joints[ i ] ) );
|
|
3607
3710
|
|
|
3608
3711
|
}
|
|
3609
3712
|
|
|
@@ -3622,6 +3725,9 @@ class GLTFParser {
|
|
|
3622
3725
|
const inverseBindMatrices = results.pop();
|
|
3623
3726
|
const jointNodes = results;
|
|
3624
3727
|
|
|
3728
|
+
// Note that bones (joint nodes) may or may not be in the
|
|
3729
|
+
// scene graph at this time.
|
|
3730
|
+
|
|
3625
3731
|
const bones = [];
|
|
3626
3732
|
const boneInverses = [];
|
|
3627
3733
|
|
|
@@ -3667,6 +3773,7 @@ class GLTFParser {
|
|
|
3667
3773
|
const json = this.json;
|
|
3668
3774
|
|
|
3669
3775
|
const animationDef = json.animations[ animationIndex ];
|
|
3776
|
+
const animationName = animationDef.name ? animationDef.name : 'animation_' + animationIndex;
|
|
3670
3777
|
|
|
3671
3778
|
const pendingNodes = [];
|
|
3672
3779
|
const pendingInputAccessors = [];
|
|
@@ -3683,6 +3790,8 @@ class GLTFParser {
|
|
|
3683
3790
|
const input = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.input ] : sampler.input;
|
|
3684
3791
|
const output = animationDef.parameters !== undefined ? animationDef.parameters[ sampler.output ] : sampler.output;
|
|
3685
3792
|
|
|
3793
|
+
if ( target.node === undefined ) continue;
|
|
3794
|
+
|
|
3686
3795
|
pendingNodes.push( this.getDependency( 'node', name ) );
|
|
3687
3796
|
pendingInputAccessors.push( this.getDependency( 'accessor', input ) );
|
|
3688
3797
|
pendingOutputAccessors.push( this.getDependency( 'accessor', output ) );
|
|
@@ -3820,9 +3929,7 @@ class GLTFParser {
|
|
|
3820
3929
|
|
|
3821
3930
|
}
|
|
3822
3931
|
|
|
3823
|
-
|
|
3824
|
-
|
|
3825
|
-
return new AnimationClip( name, undefined, tracks );
|
|
3932
|
+
return new AnimationClip( animationName, undefined, tracks );
|
|
3826
3933
|
|
|
3827
3934
|
} );
|
|
3828
3935
|
|
|
@@ -3871,53 +3978,118 @@ class GLTFParser {
|
|
|
3871
3978
|
loadNode( nodeIndex ) {
|
|
3872
3979
|
|
|
3873
3980
|
const json = this.json;
|
|
3874
|
-
const extensions = this.extensions;
|
|
3875
3981
|
const parser = this;
|
|
3876
3982
|
|
|
3877
3983
|
const nodeDef = json.nodes[ nodeIndex ];
|
|
3878
3984
|
|
|
3879
|
-
|
|
3880
|
-
|
|
3985
|
+
const nodePending = parser._loadNodeShallow( nodeIndex );
|
|
3986
|
+
|
|
3987
|
+
const childPending = [];
|
|
3988
|
+
const childrenDef = nodeDef.children || [];
|
|
3881
3989
|
|
|
3882
|
-
|
|
3990
|
+
for ( let i = 0, il = childrenDef.length; i < il; i ++ ) {
|
|
3883
3991
|
|
|
3884
|
-
|
|
3992
|
+
childPending.push( parser.getDependency( 'node', childrenDef[ i ] ) );
|
|
3885
3993
|
|
|
3886
|
-
|
|
3994
|
+
}
|
|
3887
3995
|
|
|
3888
|
-
|
|
3996
|
+
const skeletonPending = nodeDef.skin === undefined
|
|
3997
|
+
? Promise.resolve( null )
|
|
3998
|
+
: parser.getDependency( 'skin', nodeDef.skin );
|
|
3889
3999
|
|
|
3890
|
-
|
|
4000
|
+
return Promise.all( [
|
|
4001
|
+
nodePending,
|
|
4002
|
+
Promise.all( childPending ),
|
|
4003
|
+
skeletonPending
|
|
4004
|
+
] ).then( function ( results ) {
|
|
3891
4005
|
|
|
3892
|
-
|
|
4006
|
+
const node = results[ 0 ];
|
|
4007
|
+
const children = results[ 1 ];
|
|
4008
|
+
const skeleton = results[ 2 ];
|
|
3893
4009
|
|
|
3894
|
-
|
|
4010
|
+
if ( skeleton !== null ) {
|
|
3895
4011
|
|
|
3896
|
-
|
|
4012
|
+
// This full traverse should be fine because
|
|
4013
|
+
// child glTF nodes have not been added to this node yet.
|
|
4014
|
+
node.traverse( function ( mesh ) {
|
|
3897
4015
|
|
|
3898
|
-
|
|
4016
|
+
if ( ! mesh.isSkinnedMesh ) return;
|
|
4017
|
+
|
|
4018
|
+
mesh.bind( skeleton, _identityMatrix );
|
|
4019
|
+
|
|
4020
|
+
} );
|
|
3899
4021
|
|
|
3900
|
-
|
|
4022
|
+
}
|
|
3901
4023
|
|
|
3902
|
-
|
|
4024
|
+
for ( let i = 0, il = children.length; i < il; i ++ ) {
|
|
3903
4025
|
|
|
3904
|
-
|
|
4026
|
+
node.add( children[ i ] );
|
|
3905
4027
|
|
|
3906
4028
|
}
|
|
3907
4029
|
|
|
3908
|
-
|
|
4030
|
+
return node;
|
|
3909
4031
|
|
|
3910
|
-
|
|
4032
|
+
} );
|
|
3911
4033
|
|
|
3912
|
-
|
|
4034
|
+
}
|
|
3913
4035
|
|
|
3914
|
-
|
|
4036
|
+
// ._loadNodeShallow() parses a single node.
|
|
4037
|
+
// skin and child nodes are created and added in .loadNode() (no '_' prefix).
|
|
4038
|
+
_loadNodeShallow( nodeIndex ) {
|
|
3915
4039
|
|
|
3916
|
-
|
|
4040
|
+
const json = this.json;
|
|
4041
|
+
const extensions = this.extensions;
|
|
4042
|
+
const parser = this;
|
|
4043
|
+
|
|
4044
|
+
// This method is called from .loadNode() and .loadSkin().
|
|
4045
|
+
// Cache a node to avoid duplication.
|
|
4046
|
+
|
|
4047
|
+
if ( this.nodeCache[ nodeIndex ] !== undefined ) {
|
|
4048
|
+
|
|
4049
|
+
return this.nodeCache[ nodeIndex ];
|
|
4050
|
+
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4053
|
+
const nodeDef = json.nodes[ nodeIndex ];
|
|
4054
|
+
|
|
4055
|
+
// reserve node's name before its dependencies, so the root has the intended name.
|
|
4056
|
+
const nodeName = nodeDef.name ? parser.createUniqueName( nodeDef.name ) : '';
|
|
4057
|
+
|
|
4058
|
+
const pending = [];
|
|
4059
|
+
|
|
4060
|
+
const meshPromise = parser._invokeOne( function ( ext ) {
|
|
4061
|
+
|
|
4062
|
+
return ext.createNodeMesh && ext.createNodeMesh( nodeIndex );
|
|
4063
|
+
|
|
4064
|
+
} );
|
|
3917
4065
|
|
|
3918
|
-
|
|
4066
|
+
if ( meshPromise ) {
|
|
4067
|
+
|
|
4068
|
+
pending.push( meshPromise );
|
|
4069
|
+
|
|
4070
|
+
}
|
|
4071
|
+
|
|
4072
|
+
if ( nodeDef.camera !== undefined ) {
|
|
4073
|
+
|
|
4074
|
+
pending.push( parser.getDependency( 'camera', nodeDef.camera ).then( function ( camera ) {
|
|
4075
|
+
|
|
4076
|
+
return parser._getNodeRef( parser.cameraCache, nodeDef.camera, camera );
|
|
4077
|
+
|
|
4078
|
+
} ) );
|
|
4079
|
+
|
|
4080
|
+
}
|
|
4081
|
+
|
|
4082
|
+
parser._invokeAll( function ( ext ) {
|
|
4083
|
+
|
|
4084
|
+
return ext.createNodeAttachment && ext.createNodeAttachment( nodeIndex );
|
|
4085
|
+
|
|
4086
|
+
} ).forEach( function ( promise ) {
|
|
4087
|
+
|
|
4088
|
+
pending.push( promise );
|
|
4089
|
+
|
|
4090
|
+
} );
|
|
3919
4091
|
|
|
3920
|
-
|
|
4092
|
+
this.nodeCache[ nodeIndex ] = Promise.all( pending ).then( function ( objects ) {
|
|
3921
4093
|
|
|
3922
4094
|
let node;
|
|
3923
4095
|
|
|
@@ -4001,6 +4173,8 @@ class GLTFParser {
|
|
|
4001
4173
|
|
|
4002
4174
|
} );
|
|
4003
4175
|
|
|
4176
|
+
return this.nodeCache[ nodeIndex ];
|
|
4177
|
+
|
|
4004
4178
|
}
|
|
4005
4179
|
|
|
4006
4180
|
/**
|
|
@@ -4010,7 +4184,6 @@ class GLTFParser {
|
|
|
4010
4184
|
*/
|
|
4011
4185
|
loadScene( sceneIndex ) {
|
|
4012
4186
|
|
|
4013
|
-
const json = this.json;
|
|
4014
4187
|
const extensions = this.extensions;
|
|
4015
4188
|
const sceneDef = this.json.scenes[ sceneIndex ];
|
|
4016
4189
|
const parser = this;
|
|
@@ -4030,11 +4203,17 @@ class GLTFParser {
|
|
|
4030
4203
|
|
|
4031
4204
|
for ( let i = 0, il = nodeIds.length; i < il; i ++ ) {
|
|
4032
4205
|
|
|
4033
|
-
pending.push(
|
|
4206
|
+
pending.push( parser.getDependency( 'node', nodeIds[ i ] ) );
|
|
4034
4207
|
|
|
4035
4208
|
}
|
|
4036
4209
|
|
|
4037
|
-
return Promise.all( pending ).then( function () {
|
|
4210
|
+
return Promise.all( pending ).then( function ( nodes ) {
|
|
4211
|
+
|
|
4212
|
+
for ( let i = 0, il = nodes.length; i < il; i ++ ) {
|
|
4213
|
+
|
|
4214
|
+
scene.add( nodes[ i ] );
|
|
4215
|
+
|
|
4216
|
+
}
|
|
4038
4217
|
|
|
4039
4218
|
// Removes dangling associations, associations that reference a node that
|
|
4040
4219
|
// didn't make it into the scene.
|
|
@@ -4078,57 +4257,6 @@ class GLTFParser {
|
|
|
4078
4257
|
|
|
4079
4258
|
}
|
|
4080
4259
|
|
|
4081
|
-
function buildNodeHierarchy( nodeId, parentObject, json, parser ) {
|
|
4082
|
-
|
|
4083
|
-
const nodeDef = json.nodes[ nodeId ];
|
|
4084
|
-
|
|
4085
|
-
return parser.getDependency( 'node', nodeId ).then( function ( node ) {
|
|
4086
|
-
|
|
4087
|
-
if ( nodeDef.skin === undefined ) return node;
|
|
4088
|
-
|
|
4089
|
-
// build skeleton here as well
|
|
4090
|
-
|
|
4091
|
-
return parser.getDependency( 'skin', nodeDef.skin ).then( function ( skeleton ) {
|
|
4092
|
-
|
|
4093
|
-
node.traverse( function ( mesh ) {
|
|
4094
|
-
|
|
4095
|
-
if ( ! mesh.isSkinnedMesh ) return;
|
|
4096
|
-
|
|
4097
|
-
mesh.bind( skeleton, mesh.matrixWorld );
|
|
4098
|
-
|
|
4099
|
-
} );
|
|
4100
|
-
|
|
4101
|
-
return node;
|
|
4102
|
-
|
|
4103
|
-
} );
|
|
4104
|
-
|
|
4105
|
-
} ).then( function ( node ) {
|
|
4106
|
-
|
|
4107
|
-
// build node hierachy
|
|
4108
|
-
|
|
4109
|
-
parentObject.add( node );
|
|
4110
|
-
|
|
4111
|
-
const pending = [];
|
|
4112
|
-
|
|
4113
|
-
if ( nodeDef.children ) {
|
|
4114
|
-
|
|
4115
|
-
const children = nodeDef.children;
|
|
4116
|
-
|
|
4117
|
-
for ( let i = 0, il = children.length; i < il; i ++ ) {
|
|
4118
|
-
|
|
4119
|
-
const child = children[ i ];
|
|
4120
|
-
pending.push( buildNodeHierarchy( child, node, json, parser ) );
|
|
4121
|
-
|
|
4122
|
-
}
|
|
4123
|
-
|
|
4124
|
-
}
|
|
4125
|
-
|
|
4126
|
-
return Promise.all( pending );
|
|
4127
|
-
|
|
4128
|
-
} );
|
|
4129
|
-
|
|
4130
|
-
}
|
|
4131
|
-
|
|
4132
4260
|
/**
|
|
4133
4261
|
* @param {BufferGeometry} geometry
|
|
4134
4262
|
* @param {GLTF.Primitive} primitiveDef
|
|
@@ -4304,98 +4432,4 @@ function addPrimitiveAttributes( geometry, primitiveDef, parser ) {
|
|
|
4304
4432
|
|
|
4305
4433
|
}
|
|
4306
4434
|
|
|
4307
|
-
/**
|
|
4308
|
-
* @param {BufferGeometry} geometry
|
|
4309
|
-
* @param {Number} drawMode
|
|
4310
|
-
* @return {BufferGeometry}
|
|
4311
|
-
*/
|
|
4312
|
-
function toTrianglesDrawMode( geometry, drawMode ) {
|
|
4313
|
-
|
|
4314
|
-
let index = geometry.getIndex();
|
|
4315
|
-
|
|
4316
|
-
// generate index if not present
|
|
4317
|
-
|
|
4318
|
-
if ( index === null ) {
|
|
4319
|
-
|
|
4320
|
-
const indices = [];
|
|
4321
|
-
|
|
4322
|
-
const position = geometry.getAttribute( 'position' );
|
|
4323
|
-
|
|
4324
|
-
if ( position !== undefined ) {
|
|
4325
|
-
|
|
4326
|
-
for ( let i = 0; i < position.count; i ++ ) {
|
|
4327
|
-
|
|
4328
|
-
indices.push( i );
|
|
4329
|
-
|
|
4330
|
-
}
|
|
4331
|
-
|
|
4332
|
-
geometry.setIndex( indices );
|
|
4333
|
-
index = geometry.getIndex();
|
|
4334
|
-
|
|
4335
|
-
} else {
|
|
4336
|
-
|
|
4337
|
-
console.error( 'THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' );
|
|
4338
|
-
return geometry;
|
|
4339
|
-
|
|
4340
|
-
}
|
|
4341
|
-
|
|
4342
|
-
}
|
|
4343
|
-
|
|
4344
|
-
//
|
|
4345
|
-
|
|
4346
|
-
const numberOfTriangles = index.count - 2;
|
|
4347
|
-
const newIndices = [];
|
|
4348
|
-
|
|
4349
|
-
if ( drawMode === TriangleFanDrawMode ) {
|
|
4350
|
-
|
|
4351
|
-
// gl.TRIANGLE_FAN
|
|
4352
|
-
|
|
4353
|
-
for ( let i = 1; i <= numberOfTriangles; i ++ ) {
|
|
4354
|
-
|
|
4355
|
-
newIndices.push( index.getX( 0 ) );
|
|
4356
|
-
newIndices.push( index.getX( i ) );
|
|
4357
|
-
newIndices.push( index.getX( i + 1 ) );
|
|
4358
|
-
|
|
4359
|
-
}
|
|
4360
|
-
|
|
4361
|
-
} else {
|
|
4362
|
-
|
|
4363
|
-
// gl.TRIANGLE_STRIP
|
|
4364
|
-
|
|
4365
|
-
for ( let i = 0; i < numberOfTriangles; i ++ ) {
|
|
4366
|
-
|
|
4367
|
-
if ( i % 2 === 0 ) {
|
|
4368
|
-
|
|
4369
|
-
newIndices.push( index.getX( i ) );
|
|
4370
|
-
newIndices.push( index.getX( i + 1 ) );
|
|
4371
|
-
newIndices.push( index.getX( i + 2 ) );
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
} else {
|
|
4375
|
-
|
|
4376
|
-
newIndices.push( index.getX( i + 2 ) );
|
|
4377
|
-
newIndices.push( index.getX( i + 1 ) );
|
|
4378
|
-
newIndices.push( index.getX( i ) );
|
|
4379
|
-
|
|
4380
|
-
}
|
|
4381
|
-
|
|
4382
|
-
}
|
|
4383
|
-
|
|
4384
|
-
}
|
|
4385
|
-
|
|
4386
|
-
if ( ( newIndices.length / 3 ) !== numberOfTriangles ) {
|
|
4387
|
-
|
|
4388
|
-
console.error( 'THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' );
|
|
4389
|
-
|
|
4390
|
-
}
|
|
4391
|
-
|
|
4392
|
-
// build final geometry
|
|
4393
|
-
|
|
4394
|
-
const newGeometry = geometry.clone();
|
|
4395
|
-
newGeometry.setIndex( newIndices );
|
|
4396
|
-
|
|
4397
|
-
return newGeometry;
|
|
4398
|
-
|
|
4399
|
-
}
|
|
4400
|
-
|
|
4401
4435
|
export { GLTFLoader };
|