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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SpotLight } from 'three';
|
|
2
|
+
|
|
3
|
+
class IESSpotLight extends SpotLight {
|
|
4
|
+
|
|
5
|
+
constructor( color, intensity, distance, angle, penumbra, decay ) {
|
|
6
|
+
|
|
7
|
+
super( color, intensity, distance, angle, penumbra, decay );
|
|
8
|
+
|
|
9
|
+
this.iesMap = null;
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
copy( source, recursive ) {
|
|
14
|
+
|
|
15
|
+
super.copy( source, recursive );
|
|
16
|
+
|
|
17
|
+
this.iesMap = source.iesMap;
|
|
18
|
+
|
|
19
|
+
return this;
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default IESSpotLight;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Color,
|
|
3
3
|
LightProbe,
|
|
4
|
-
|
|
4
|
+
LinearSRGBColorSpace,
|
|
5
5
|
SphericalHarmonics3,
|
|
6
6
|
Vector3,
|
|
7
|
-
|
|
7
|
+
SRGBColorSpace,
|
|
8
|
+
NoColorSpace
|
|
8
9
|
} from 'three';
|
|
9
10
|
|
|
10
11
|
class LightProbeGenerator {
|
|
@@ -55,7 +56,7 @@ class LightProbeGenerator {
|
|
|
55
56
|
color.setRGB( data[ i ] / 255, data[ i + 1 ] / 255, data[ i + 2 ] / 255 );
|
|
56
57
|
|
|
57
58
|
// convert to linear color space
|
|
58
|
-
convertColorToLinear( color, cubeTexture.
|
|
59
|
+
convertColorToLinear( color, cubeTexture.colorSpace );
|
|
59
60
|
|
|
60
61
|
// pixel coordinate on unit cube
|
|
61
62
|
|
|
@@ -153,7 +154,7 @@ class LightProbeGenerator {
|
|
|
153
154
|
color.setRGB( data[ i ] / 255, data[ i + 1 ] / 255, data[ i + 2 ] / 255 );
|
|
154
155
|
|
|
155
156
|
// convert to linear color space
|
|
156
|
-
convertColorToLinear( color, cubeRenderTarget.texture.
|
|
157
|
+
convertColorToLinear( color, cubeRenderTarget.texture.colorSpace );
|
|
157
158
|
|
|
158
159
|
// pixel coordinate on unit cube
|
|
159
160
|
|
|
@@ -223,22 +224,23 @@ class LightProbeGenerator {
|
|
|
223
224
|
|
|
224
225
|
}
|
|
225
226
|
|
|
226
|
-
function convertColorToLinear( color,
|
|
227
|
+
function convertColorToLinear( color, colorSpace ) {
|
|
227
228
|
|
|
228
|
-
switch (
|
|
229
|
+
switch ( colorSpace ) {
|
|
229
230
|
|
|
230
|
-
case
|
|
231
|
+
case SRGBColorSpace:
|
|
231
232
|
|
|
232
233
|
color.convertSRGBToLinear();
|
|
233
234
|
break;
|
|
234
235
|
|
|
235
|
-
case
|
|
236
|
+
case LinearSRGBColorSpace:
|
|
237
|
+
case NoColorSpace:
|
|
236
238
|
|
|
237
239
|
break;
|
|
238
240
|
|
|
239
241
|
default:
|
|
240
242
|
|
|
241
|
-
console.warn( 'WARNING: LightProbeGenerator convertColorToLinear() encountered an unsupported
|
|
243
|
+
console.warn( 'WARNING: LightProbeGenerator convertColorToLinear() encountered an unsupported color space.' );
|
|
242
244
|
break;
|
|
243
245
|
|
|
244
246
|
}
|
|
@@ -29,7 +29,7 @@ const _box = new Box3();
|
|
|
29
29
|
const _sphere = new Sphere();
|
|
30
30
|
const _clipToWorldVector = new Vector4();
|
|
31
31
|
|
|
32
|
-
let _ray,
|
|
32
|
+
let _ray, _lineWidth;
|
|
33
33
|
|
|
34
34
|
// Returns the margin required to expand by in world space given the distance from the camera,
|
|
35
35
|
// line width, resolution, and camera projection
|
|
@@ -52,11 +52,15 @@ function getWorldSpaceHalfWidth( camera, distance, resolution ) {
|
|
|
52
52
|
function raycastWorldUnits( lineSegments, intersects ) {
|
|
53
53
|
|
|
54
54
|
const matrixWorld = lineSegments.matrixWorld;
|
|
55
|
+
const geometry = lineSegments.geometry;
|
|
56
|
+
const instanceStart = geometry.attributes.instanceStart;
|
|
57
|
+
const instanceEnd = geometry.attributes.instanceEnd;
|
|
58
|
+
const segmentCount = Math.min( geometry.instanceCount, instanceStart.count );
|
|
55
59
|
|
|
56
|
-
for ( let i = 0, l =
|
|
60
|
+
for ( let i = 0, l = segmentCount; i < l; i ++ ) {
|
|
57
61
|
|
|
58
|
-
_line.start.fromBufferAttribute(
|
|
59
|
-
_line.end.fromBufferAttribute(
|
|
62
|
+
_line.start.fromBufferAttribute( instanceStart, i );
|
|
63
|
+
_line.end.fromBufferAttribute( instanceEnd, i );
|
|
60
64
|
|
|
61
65
|
_line.applyMatrix4( matrixWorld );
|
|
62
66
|
|
|
@@ -76,7 +80,7 @@ function raycastWorldUnits( lineSegments, intersects ) {
|
|
|
76
80
|
face: null,
|
|
77
81
|
faceIndex: i,
|
|
78
82
|
uv: null,
|
|
79
|
-
|
|
83
|
+
uv1: null,
|
|
80
84
|
} );
|
|
81
85
|
|
|
82
86
|
}
|
|
@@ -95,6 +99,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
|
|
|
95
99
|
const geometry = lineSegments.geometry;
|
|
96
100
|
const instanceStart = geometry.attributes.instanceStart;
|
|
97
101
|
const instanceEnd = geometry.attributes.instanceEnd;
|
|
102
|
+
const segmentCount = Math.min( geometry.instanceCount, instanceStart.count );
|
|
98
103
|
|
|
99
104
|
const near = - camera.near;
|
|
100
105
|
|
|
@@ -120,7 +125,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
|
|
|
120
125
|
|
|
121
126
|
_mvMatrix.multiplyMatrices( camera.matrixWorldInverse, matrixWorld );
|
|
122
127
|
|
|
123
|
-
for ( let i = 0, l =
|
|
128
|
+
for ( let i = 0, l = segmentCount; i < l; i ++ ) {
|
|
124
129
|
|
|
125
130
|
_start4.fromBufferAttribute( instanceStart, i );
|
|
126
131
|
_end4.fromBufferAttribute( instanceEnd, i );
|
|
@@ -208,7 +213,7 @@ function raycastScreenSpace( lineSegments, camera, intersects ) {
|
|
|
208
213
|
face: null,
|
|
209
214
|
faceIndex: i,
|
|
210
215
|
uv: null,
|
|
211
|
-
|
|
216
|
+
uv1: null,
|
|
212
217
|
} );
|
|
213
218
|
|
|
214
219
|
}
|
|
@@ -279,9 +284,6 @@ class LineSegments2 extends Mesh {
|
|
|
279
284
|
|
|
280
285
|
_lineWidth = material.linewidth + threshold;
|
|
281
286
|
|
|
282
|
-
_instanceStart = geometry.attributes.instanceStart;
|
|
283
|
-
_instanceEnd = geometry.attributes.instanceEnd;
|
|
284
|
-
|
|
285
287
|
// check if we intersect the sphere bounds
|
|
286
288
|
if ( geometry.boundingSphere === null ) {
|
|
287
289
|
|
|
@@ -21,7 +21,8 @@ import {
|
|
|
21
21
|
LinearFilter,
|
|
22
22
|
ClampToEdgeWrapping,
|
|
23
23
|
RepeatWrapping,
|
|
24
|
-
TextureLoader
|
|
24
|
+
TextureLoader,
|
|
25
|
+
DoubleSide
|
|
25
26
|
} from 'three';
|
|
26
27
|
|
|
27
28
|
const _taskCache = new WeakMap();
|
|
@@ -189,6 +190,8 @@ class Rhino3dmLoader extends Loader {
|
|
|
189
190
|
mat.color.b = material.color.b;
|
|
190
191
|
mat.type = material.type;
|
|
191
192
|
|
|
193
|
+
const json = JSON.stringify( mat );
|
|
194
|
+
|
|
192
195
|
for ( let i = 0; i < this.materials.length; i ++ ) {
|
|
193
196
|
|
|
194
197
|
const m = this.materials[ i ];
|
|
@@ -200,7 +203,7 @@ class Rhino3dmLoader extends Loader {
|
|
|
200
203
|
_mat.color.b = m.color.b;
|
|
201
204
|
_mat.type = m.type;
|
|
202
205
|
|
|
203
|
-
if ( JSON.stringify(
|
|
206
|
+
if ( JSON.stringify( _mat ) === json ) {
|
|
204
207
|
|
|
205
208
|
return m;
|
|
206
209
|
|
|
@@ -222,7 +225,7 @@ class Rhino3dmLoader extends Loader {
|
|
|
222
225
|
color: new Color( 1, 1, 1 ),
|
|
223
226
|
metalness: 0.8,
|
|
224
227
|
name: 'default',
|
|
225
|
-
side:
|
|
228
|
+
side: DoubleSide
|
|
226
229
|
} );
|
|
227
230
|
|
|
228
231
|
}
|
|
@@ -244,7 +247,7 @@ class Rhino3dmLoader extends Loader {
|
|
|
244
247
|
const mat = new MeshStandardMaterial( {
|
|
245
248
|
color: diffusecolor,
|
|
246
249
|
name: material.name,
|
|
247
|
-
side:
|
|
250
|
+
side: DoubleSide,
|
|
248
251
|
transparent: material.transparency > 0 ? true : false,
|
|
249
252
|
opacity: 1.0 - material.transparency
|
|
250
253
|
} );
|
|
@@ -418,7 +421,7 @@ class Rhino3dmLoader extends Loader {
|
|
|
418
421
|
const xf = iRef.geometry.xform.array;
|
|
419
422
|
|
|
420
423
|
const matrix = new Matrix4();
|
|
421
|
-
|
|
424
|
+
matrix.set( ...xf );
|
|
422
425
|
|
|
423
426
|
iRefObject.applyMatrix4( matrix );
|
|
424
427
|
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
LinearFilter,
|
|
10
10
|
LinearMipmapLinearFilter,
|
|
11
11
|
Loader,
|
|
12
|
-
LoaderUtils,
|
|
13
12
|
Matrix4,
|
|
14
13
|
Mesh,
|
|
15
14
|
MeshPhongMaterial,
|
|
@@ -18,10 +17,12 @@ import {
|
|
|
18
17
|
NearestFilter,
|
|
19
18
|
RepeatWrapping,
|
|
20
19
|
TextureLoader,
|
|
21
|
-
|
|
20
|
+
SRGBColorSpace
|
|
22
21
|
} from 'three';
|
|
23
22
|
import * as fflate from '../libs/fflate.module.js';
|
|
24
23
|
|
|
24
|
+
const COLOR_SPACE_3MF = SRGBColorSpace;
|
|
25
|
+
|
|
25
26
|
/**
|
|
26
27
|
*
|
|
27
28
|
* 3D Manufacturing Format (3MF) specification: https://3mf.io/specification/
|
|
@@ -104,9 +105,11 @@ class ThreeMFLoader extends Loader {
|
|
|
104
105
|
const printTicketParts = {};
|
|
105
106
|
const texturesParts = {};
|
|
106
107
|
|
|
108
|
+
const textDecoder = new TextDecoder();
|
|
109
|
+
|
|
107
110
|
try {
|
|
108
111
|
|
|
109
|
-
zip = fflate.unzipSync( new Uint8Array( data ) );
|
|
112
|
+
zip = fflate.unzipSync( new Uint8Array( data ) );
|
|
110
113
|
|
|
111
114
|
} catch ( e ) {
|
|
112
115
|
|
|
@@ -144,7 +147,7 @@ class ThreeMFLoader extends Loader {
|
|
|
144
147
|
//
|
|
145
148
|
|
|
146
149
|
const relsView = zip[ relsName ];
|
|
147
|
-
const relsFileText =
|
|
150
|
+
const relsFileText = textDecoder.decode( relsView );
|
|
148
151
|
const rels = parseRelsXml( relsFileText );
|
|
149
152
|
|
|
150
153
|
//
|
|
@@ -152,7 +155,7 @@ class ThreeMFLoader extends Loader {
|
|
|
152
155
|
if ( modelRelsName ) {
|
|
153
156
|
|
|
154
157
|
const relsView = zip[ modelRelsName ];
|
|
155
|
-
const relsFileText =
|
|
158
|
+
const relsFileText = textDecoder.decode( relsView );
|
|
156
159
|
modelRels = parseRelsXml( relsFileText );
|
|
157
160
|
|
|
158
161
|
}
|
|
@@ -164,7 +167,7 @@ class ThreeMFLoader extends Loader {
|
|
|
164
167
|
const modelPart = modelPartNames[ i ];
|
|
165
168
|
const view = zip[ modelPart ];
|
|
166
169
|
|
|
167
|
-
const fileText =
|
|
170
|
+
const fileText = textDecoder.decode( view );
|
|
168
171
|
const xmlData = new DOMParser().parseFromString( fileText, 'application/xml' );
|
|
169
172
|
|
|
170
173
|
if ( xmlData.documentElement.nodeName.toLowerCase() !== 'model' ) {
|
|
@@ -358,8 +361,7 @@ class ThreeMFLoader extends Loader {
|
|
|
358
361
|
const colorNode = colorNodes[ i ];
|
|
359
362
|
const color = colorNode.getAttribute( 'color' );
|
|
360
363
|
|
|
361
|
-
colorObject.setStyle( color.substring( 0, 7 ) );
|
|
362
|
-
colorObject.convertSRGBToLinear(); // color is in sRGB
|
|
364
|
+
colorObject.setStyle( color.substring( 0, 7 ), COLOR_SPACE_3MF );
|
|
363
365
|
|
|
364
366
|
colors.push( colorObject.r, colorObject.g, colorObject.b );
|
|
365
367
|
|
|
@@ -788,7 +790,7 @@ class ThreeMFLoader extends Loader {
|
|
|
788
790
|
|
|
789
791
|
} );
|
|
790
792
|
|
|
791
|
-
texture.
|
|
793
|
+
texture.colorSpace = COLOR_SPACE_3MF;
|
|
792
794
|
|
|
793
795
|
// texture parameters
|
|
794
796
|
|
|
@@ -1280,8 +1282,7 @@ class ThreeMFLoader extends Loader {
|
|
|
1280
1282
|
const displaycolor = materialData.displaycolor;
|
|
1281
1283
|
|
|
1282
1284
|
const color = displaycolor.substring( 0, 7 );
|
|
1283
|
-
material.color.setStyle( color );
|
|
1284
|
-
material.color.convertSRGBToLinear(); // displaycolor is in sRGB
|
|
1285
|
+
material.color.setStyle( color, COLOR_SPACE_3MF );
|
|
1285
1286
|
|
|
1286
1287
|
// process alpha if set
|
|
1287
1288
|
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
Float32BufferAttribute,
|
|
6
6
|
Group,
|
|
7
7
|
Loader,
|
|
8
|
-
LoaderUtils,
|
|
9
8
|
Mesh,
|
|
10
9
|
MeshPhongMaterial
|
|
11
10
|
} from 'three';
|
|
@@ -86,7 +85,7 @@ class AMFLoader extends Loader {
|
|
|
86
85
|
|
|
87
86
|
try {
|
|
88
87
|
|
|
89
|
-
zip = fflate.unzipSync( new Uint8Array( data ) );
|
|
88
|
+
zip = fflate.unzipSync( new Uint8Array( data ) );
|
|
90
89
|
|
|
91
90
|
} catch ( e ) {
|
|
92
91
|
|
|
@@ -114,7 +113,7 @@ class AMFLoader extends Loader {
|
|
|
114
113
|
|
|
115
114
|
}
|
|
116
115
|
|
|
117
|
-
const fileText =
|
|
116
|
+
const fileText = new TextDecoder().decode( view );
|
|
118
117
|
const xmlData = new DOMParser().parseFromString( fileText, 'application/xml' );
|
|
119
118
|
|
|
120
119
|
if ( xmlData.documentElement.nodeName.toLowerCase() !== 'amf' ) {
|
|
@@ -385,13 +385,13 @@ class BVHLoader extends Loader {
|
|
|
385
385
|
|
|
386
386
|
if ( scope.animateBonePositions ) {
|
|
387
387
|
|
|
388
|
-
tracks.push( new VectorKeyframeTrack(
|
|
388
|
+
tracks.push( new VectorKeyframeTrack( bone.name + '.position', times, positions ) );
|
|
389
389
|
|
|
390
390
|
}
|
|
391
391
|
|
|
392
392
|
if ( scope.animateBoneRotations ) {
|
|
393
393
|
|
|
394
|
-
tracks.push( new QuaternionKeyframeTrack(
|
|
394
|
+
tracks.push( new QuaternionKeyframeTrack( bone.name + '.quaternion', times, rotations ) );
|
|
395
395
|
|
|
396
396
|
}
|
|
397
397
|
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
Color,
|
|
8
8
|
DirectionalLight,
|
|
9
9
|
DoubleSide,
|
|
10
|
-
Euler,
|
|
11
10
|
FileLoader,
|
|
12
11
|
Float32BufferAttribute,
|
|
13
12
|
FrontSide,
|
|
@@ -37,7 +36,7 @@ import {
|
|
|
37
36
|
Vector2,
|
|
38
37
|
Vector3,
|
|
39
38
|
VectorKeyframeTrack,
|
|
40
|
-
|
|
39
|
+
SRGBColorSpace
|
|
41
40
|
} from 'three';
|
|
42
41
|
import { TGALoader } from '../loaders/TGALoader.js';
|
|
43
42
|
|
|
@@ -963,7 +962,7 @@ class ColladaLoader extends Loader {
|
|
|
963
962
|
|
|
964
963
|
let i, j, l;
|
|
965
964
|
|
|
966
|
-
//
|
|
965
|
+
// process skin data for each vertex
|
|
967
966
|
|
|
968
967
|
for ( i = 0, l = vcount.length; i < l; i ++ ) {
|
|
969
968
|
|
|
@@ -1580,7 +1579,7 @@ class ColladaLoader extends Loader {
|
|
|
1580
1579
|
|
|
1581
1580
|
material.name = data.name || '';
|
|
1582
1581
|
|
|
1583
|
-
function getTexture( textureObject,
|
|
1582
|
+
function getTexture( textureObject, colorSpace = null ) {
|
|
1584
1583
|
|
|
1585
1584
|
const sampler = effect.profile.samplers[ textureObject.id ];
|
|
1586
1585
|
let image = null;
|
|
@@ -1628,9 +1627,9 @@ class ColladaLoader extends Loader {
|
|
|
1628
1627
|
|
|
1629
1628
|
}
|
|
1630
1629
|
|
|
1631
|
-
if (
|
|
1630
|
+
if ( colorSpace !== null ) {
|
|
1632
1631
|
|
|
1633
|
-
texture.
|
|
1632
|
+
texture.colorSpace = colorSpace;
|
|
1634
1633
|
|
|
1635
1634
|
}
|
|
1636
1635
|
|
|
@@ -1664,7 +1663,7 @@ class ColladaLoader extends Loader {
|
|
|
1664
1663
|
|
|
1665
1664
|
case 'diffuse':
|
|
1666
1665
|
if ( parameter.color ) material.color.fromArray( parameter.color );
|
|
1667
|
-
if ( parameter.texture ) material.map = getTexture( parameter.texture,
|
|
1666
|
+
if ( parameter.texture ) material.map = getTexture( parameter.texture, SRGBColorSpace );
|
|
1668
1667
|
break;
|
|
1669
1668
|
case 'specular':
|
|
1670
1669
|
if ( parameter.color && material.specular ) material.specular.fromArray( parameter.color );
|
|
@@ -1674,14 +1673,14 @@ class ColladaLoader extends Loader {
|
|
|
1674
1673
|
if ( parameter.texture ) material.normalMap = getTexture( parameter.texture );
|
|
1675
1674
|
break;
|
|
1676
1675
|
case 'ambient':
|
|
1677
|
-
if ( parameter.texture ) material.lightMap = getTexture( parameter.texture,
|
|
1676
|
+
if ( parameter.texture ) material.lightMap = getTexture( parameter.texture, SRGBColorSpace );
|
|
1678
1677
|
break;
|
|
1679
1678
|
case 'shininess':
|
|
1680
1679
|
if ( parameter.float && material.shininess ) material.shininess = parameter.float;
|
|
1681
1680
|
break;
|
|
1682
1681
|
case 'emission':
|
|
1683
1682
|
if ( parameter.color && material.emissive ) material.emissive.fromArray( parameter.color );
|
|
1684
|
-
if ( parameter.texture ) material.emissiveMap = getTexture( parameter.texture,
|
|
1683
|
+
if ( parameter.texture ) material.emissiveMap = getTexture( parameter.texture, SRGBColorSpace );
|
|
1685
1684
|
break;
|
|
1686
1685
|
|
|
1687
1686
|
}
|
|
@@ -2338,7 +2337,7 @@ class ColladaLoader extends Loader {
|
|
|
2338
2337
|
const position = { array: [], stride: 0 };
|
|
2339
2338
|
const normal = { array: [], stride: 0 };
|
|
2340
2339
|
const uv = { array: [], stride: 0 };
|
|
2341
|
-
const
|
|
2340
|
+
const uv1 = { array: [], stride: 0 };
|
|
2342
2341
|
const color = { array: [], stride: 0 };
|
|
2343
2342
|
|
|
2344
2343
|
const skinIndex = { array: [], stride: 4 };
|
|
@@ -2473,7 +2472,7 @@ class ColladaLoader extends Loader {
|
|
|
2473
2472
|
break;
|
|
2474
2473
|
|
|
2475
2474
|
case 'TEXCOORD1':
|
|
2476
|
-
buildGeometryData( primitive, sources[ id ], input.offset,
|
|
2475
|
+
buildGeometryData( primitive, sources[ id ], input.offset, uv1.array );
|
|
2477
2476
|
uv.stride = sources[ id ].stride;
|
|
2478
2477
|
break;
|
|
2479
2478
|
|
|
@@ -2502,8 +2501,8 @@ class ColladaLoader extends Loader {
|
|
|
2502
2501
|
break;
|
|
2503
2502
|
|
|
2504
2503
|
case 'TEXCOORD1':
|
|
2505
|
-
buildGeometryData( primitive, sources[ input.id ], input.offset,
|
|
2506
|
-
|
|
2504
|
+
buildGeometryData( primitive, sources[ input.id ], input.offset, uv1.array );
|
|
2505
|
+
uv1.stride = sources[ input.id ].stride;
|
|
2507
2506
|
break;
|
|
2508
2507
|
|
|
2509
2508
|
}
|
|
@@ -2518,7 +2517,7 @@ class ColladaLoader extends Loader {
|
|
|
2518
2517
|
if ( normal.array.length > 0 ) geometry.setAttribute( 'normal', new Float32BufferAttribute( normal.array, normal.stride ) );
|
|
2519
2518
|
if ( color.array.length > 0 ) geometry.setAttribute( 'color', new Float32BufferAttribute( color.array, color.stride ) );
|
|
2520
2519
|
if ( uv.array.length > 0 ) geometry.setAttribute( 'uv', new Float32BufferAttribute( uv.array, uv.stride ) );
|
|
2521
|
-
if (
|
|
2520
|
+
if ( uv1.array.length > 0 ) geometry.setAttribute( 'uv1', new Float32BufferAttribute( uv1.array, uv1.stride ) );
|
|
2522
2521
|
|
|
2523
2522
|
if ( skinIndex.array.length > 0 ) geometry.setAttribute( 'skinIndex', new Float32BufferAttribute( skinIndex.array, skinIndex.stride ) );
|
|
2524
2523
|
if ( skinWeight.array.length > 0 ) geometry.setAttribute( 'skinWeight', new Float32BufferAttribute( skinWeight.array, skinWeight.stride ) );
|
|
@@ -4019,7 +4018,7 @@ class ColladaLoader extends Loader {
|
|
|
4019
4018
|
// metadata
|
|
4020
4019
|
|
|
4021
4020
|
const version = collada.getAttribute( 'version' );
|
|
4022
|
-
console.
|
|
4021
|
+
console.debug( 'THREE.ColladaLoader: File version', version );
|
|
4023
4022
|
|
|
4024
4023
|
const asset = parseAsset( getElementsByTagName( collada, 'asset' )[ 0 ] );
|
|
4025
4024
|
const textureLoader = new TextureLoader( this.manager );
|
|
@@ -4095,7 +4094,7 @@ class ColladaLoader extends Loader {
|
|
|
4095
4094
|
if ( asset.upAxis === 'Z_UP' ) {
|
|
4096
4095
|
|
|
4097
4096
|
console.warn( 'THREE.ColladaLoader: You are loading an asset with a Z-UP coordinate system. The loader just rotates the asset to transform it into Y-UP. The vertex data are not converted, see #24289.' );
|
|
4098
|
-
scene.
|
|
4097
|
+
scene.rotation.set( - Math.PI / 2, 0, 0 );
|
|
4099
4098
|
|
|
4100
4099
|
}
|
|
4101
4100
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BufferAttribute,
|
|
3
3
|
BufferGeometry,
|
|
4
|
+
Color,
|
|
4
5
|
FileLoader,
|
|
5
|
-
Loader
|
|
6
|
+
Loader,
|
|
7
|
+
LinearSRGBColorSpace,
|
|
8
|
+
SRGBColorSpace
|
|
6
9
|
} from 'three';
|
|
7
10
|
|
|
8
11
|
const _taskCache = new WeakMap();
|
|
@@ -73,18 +76,25 @@ class DRACOLoader extends Loader {
|
|
|
73
76
|
|
|
74
77
|
loader.load( url, ( buffer ) => {
|
|
75
78
|
|
|
76
|
-
this.
|
|
79
|
+
this.parse( buffer, onLoad, onError );
|
|
77
80
|
|
|
78
81
|
}, onProgress, onError );
|
|
79
82
|
|
|
80
83
|
}
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
parse( buffer, onLoad, onError ) {
|
|
86
|
+
|
|
87
|
+
this.decodeDracoFile( buffer, onLoad, null, null, SRGBColorSpace ).catch( onError );
|
|
88
|
+
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
decodeDracoFile( buffer, callback, attributeIDs, attributeTypes, vertexColorSpace = LinearSRGBColorSpace ) {
|
|
83
92
|
|
|
84
93
|
const taskConfig = {
|
|
85
94
|
attributeIDs: attributeIDs || this.defaultAttributeIDs,
|
|
86
95
|
attributeTypes: attributeTypes || this.defaultAttributeTypes,
|
|
87
|
-
useUniqueIDs: !! attributeIDs
|
|
96
|
+
useUniqueIDs: !! attributeIDs,
|
|
97
|
+
vertexColorSpace: vertexColorSpace,
|
|
88
98
|
};
|
|
89
99
|
|
|
90
100
|
return this.decodeGeometry( buffer, taskConfig ).then( callback );
|
|
@@ -188,12 +198,20 @@ class DRACOLoader extends Loader {
|
|
|
188
198
|
|
|
189
199
|
for ( let i = 0; i < geometryData.attributes.length; i ++ ) {
|
|
190
200
|
|
|
191
|
-
const
|
|
192
|
-
const name =
|
|
193
|
-
const array =
|
|
194
|
-
const itemSize =
|
|
201
|
+
const result = geometryData.attributes[ i ];
|
|
202
|
+
const name = result.name;
|
|
203
|
+
const array = result.array;
|
|
204
|
+
const itemSize = result.itemSize;
|
|
205
|
+
|
|
206
|
+
const attribute = new BufferAttribute( array, itemSize );
|
|
207
|
+
|
|
208
|
+
if ( name === 'color' ) {
|
|
209
|
+
|
|
210
|
+
this._assignVertexColorSpace( attribute, result.vertexColorSpace );
|
|
195
211
|
|
|
196
|
-
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
geometry.setAttribute( name, attribute );
|
|
197
215
|
|
|
198
216
|
}
|
|
199
217
|
|
|
@@ -201,6 +219,26 @@ class DRACOLoader extends Loader {
|
|
|
201
219
|
|
|
202
220
|
}
|
|
203
221
|
|
|
222
|
+
_assignVertexColorSpace( attribute, inputColorSpace ) {
|
|
223
|
+
|
|
224
|
+
// While .drc files do not specify colorspace, the only 'official' tooling
|
|
225
|
+
// is PLY and OBJ converters, which use sRGB. We'll assume sRGB when a .drc
|
|
226
|
+
// file is passed into .load() or .parse(). GLTFLoader uses internal APIs
|
|
227
|
+
// to decode geometry, and vertex colors are already Linear-sRGB in there.
|
|
228
|
+
|
|
229
|
+
if ( inputColorSpace !== SRGBColorSpace ) return;
|
|
230
|
+
|
|
231
|
+
const _color = new Color();
|
|
232
|
+
|
|
233
|
+
for ( let i = 0, il = attribute.count; i < il; i ++ ) {
|
|
234
|
+
|
|
235
|
+
_color.fromBufferAttribute( attribute, i ).convertSRGBToLinear();
|
|
236
|
+
attribute.setXYZ( i, _color.r, _color.g, _color.b );
|
|
237
|
+
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
}
|
|
241
|
+
|
|
204
242
|
_loadLibrary( url, responseType ) {
|
|
205
243
|
|
|
206
244
|
const loader = new FileLoader( this.manager );
|
|
@@ -351,6 +389,12 @@ class DRACOLoader extends Loader {
|
|
|
351
389
|
|
|
352
390
|
this.workerPool.length = 0;
|
|
353
391
|
|
|
392
|
+
if ( this.workerSourceURL !== '' ) {
|
|
393
|
+
|
|
394
|
+
URL.revokeObjectURL( this.workerSourceURL );
|
|
395
|
+
|
|
396
|
+
}
|
|
397
|
+
|
|
354
398
|
return this;
|
|
355
399
|
|
|
356
400
|
}
|
|
@@ -393,12 +437,10 @@ function DRACOWorker() {
|
|
|
393
437
|
|
|
394
438
|
const draco = module.draco;
|
|
395
439
|
const decoder = new draco.Decoder();
|
|
396
|
-
const decoderBuffer = new draco.DecoderBuffer();
|
|
397
|
-
decoderBuffer.Init( new Int8Array( buffer ), buffer.byteLength );
|
|
398
440
|
|
|
399
441
|
try {
|
|
400
442
|
|
|
401
|
-
const geometry = decodeGeometry( draco, decoder,
|
|
443
|
+
const geometry = decodeGeometry( draco, decoder, new Int8Array( buffer ), taskConfig );
|
|
402
444
|
|
|
403
445
|
const buffers = geometry.attributes.map( ( attr ) => attr.array.buffer );
|
|
404
446
|
|
|
@@ -414,7 +456,6 @@ function DRACOWorker() {
|
|
|
414
456
|
|
|
415
457
|
} finally {
|
|
416
458
|
|
|
417
|
-
draco.destroy( decoderBuffer );
|
|
418
459
|
draco.destroy( decoder );
|
|
419
460
|
|
|
420
461
|
}
|
|
@@ -426,7 +467,7 @@ function DRACOWorker() {
|
|
|
426
467
|
|
|
427
468
|
};
|
|
428
469
|
|
|
429
|
-
function decodeGeometry( draco, decoder,
|
|
470
|
+
function decodeGeometry( draco, decoder, array, taskConfig ) {
|
|
430
471
|
|
|
431
472
|
const attributeIDs = taskConfig.attributeIDs;
|
|
432
473
|
const attributeTypes = taskConfig.attributeTypes;
|
|
@@ -434,17 +475,17 @@ function DRACOWorker() {
|
|
|
434
475
|
let dracoGeometry;
|
|
435
476
|
let decodingStatus;
|
|
436
477
|
|
|
437
|
-
const geometryType = decoder.GetEncodedGeometryType(
|
|
478
|
+
const geometryType = decoder.GetEncodedGeometryType( array );
|
|
438
479
|
|
|
439
480
|
if ( geometryType === draco.TRIANGULAR_MESH ) {
|
|
440
481
|
|
|
441
482
|
dracoGeometry = new draco.Mesh();
|
|
442
|
-
decodingStatus = decoder.
|
|
483
|
+
decodingStatus = decoder.DecodeArrayToMesh( array, array.byteLength, dracoGeometry );
|
|
443
484
|
|
|
444
485
|
} else if ( geometryType === draco.POINT_CLOUD ) {
|
|
445
486
|
|
|
446
487
|
dracoGeometry = new draco.PointCloud();
|
|
447
|
-
decodingStatus = decoder.
|
|
488
|
+
decodingStatus = decoder.DecodeArrayToPointCloud( array, array.byteLength, dracoGeometry );
|
|
448
489
|
|
|
449
490
|
} else {
|
|
450
491
|
|
|
@@ -487,7 +528,15 @@ function DRACOWorker() {
|
|
|
487
528
|
|
|
488
529
|
}
|
|
489
530
|
|
|
490
|
-
|
|
531
|
+
const attributeResult = decodeAttribute( draco, decoder, dracoGeometry, attributeName, attributeType, attribute );
|
|
532
|
+
|
|
533
|
+
if ( attributeName === 'color' ) {
|
|
534
|
+
|
|
535
|
+
attributeResult.vertexColorSpace = taskConfig.vertexColorSpace;
|
|
536
|
+
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
geometry.attributes.push( attributeResult );
|
|
491
540
|
|
|
492
541
|
}
|
|
493
542
|
|