@plastic-software/three 0.167.3 → 0.174.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/README.md +1 -1
- package/build/three.cjs +36277 -24023
- package/build/three.core.js +48830 -0
- package/build/three.core.min.js +6 -0
- package/build/three.module.js +10175 -46743
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +550 -0
- package/build/three.tsl.min.js +6 -0
- package/build/three.webgpu.js +44348 -50670
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +70301 -0
- package/build/three.webgpu.nodes.min.js +6 -0
- package/examples/jsm/Addons.js +3 -15
- package/examples/jsm/animation/AnimationClipCreator.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +61 -11
- package/examples/jsm/capabilities/WebGL.js +27 -21
- package/examples/jsm/capabilities/WebGPU.js +1 -10
- package/examples/jsm/controls/ArcballControls.js +262 -231
- package/examples/jsm/controls/DragControls.js +1 -1
- package/examples/jsm/controls/FirstPersonControls.js +175 -163
- package/examples/jsm/controls/FlyControls.js +194 -188
- package/examples/jsm/controls/OrbitControls.js +801 -777
- package/examples/jsm/controls/PointerLockControls.js +26 -20
- package/examples/jsm/controls/TrackballControls.js +469 -448
- package/examples/jsm/controls/TransformControls.js +119 -68
- package/examples/jsm/csm/CSM.js +2 -2
- package/examples/jsm/csm/CSMFrustum.js +7 -4
- package/examples/jsm/csm/CSMHelper.js +2 -0
- package/examples/jsm/csm/CSMShadowNode.js +442 -0
- package/examples/jsm/curves/NURBSCurve.js +33 -2
- package/examples/jsm/curves/NURBSUtils.js +3 -0
- package/examples/jsm/effects/AnaglyphEffect.js +6 -13
- package/examples/jsm/effects/OutlineEffect.js +1 -1
- package/examples/jsm/effects/ParallaxBarrierEffect.js +17 -11
- package/examples/jsm/effects/StereoEffect.js +6 -1
- package/examples/jsm/exporters/DRACOExporter.js +4 -2
- package/examples/jsm/exporters/EXRExporter.js +19 -11
- package/examples/jsm/exporters/GLTFExporter.js +181 -109
- package/examples/jsm/exporters/KTX2Exporter.js +54 -23
- package/examples/jsm/exporters/OBJExporter.js +5 -1
- package/examples/jsm/exporters/PLYExporter.js +11 -9
- package/examples/jsm/exporters/USDZExporter.js +50 -11
- package/examples/jsm/geometries/DecalGeometry.js +73 -21
- package/examples/jsm/geometries/TextGeometry.js +1 -12
- package/examples/jsm/helpers/LightProbeHelper.js +43 -44
- package/examples/jsm/helpers/LightProbeHelperGPU.js +65 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +185 -0
- package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
- package/examples/jsm/interactive/HTMLMesh.js +1 -0
- package/examples/jsm/interactive/InteractiveGroup.js +108 -51
- package/examples/jsm/interactive/SelectionHelper.js +3 -1
- package/examples/jsm/libs/basis/basis_transcoder.js +8 -10
- package/examples/jsm/libs/basis/basis_transcoder.wasm +0 -0
- package/examples/jsm/libs/demuxer_mp4.js +109 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lighting/TiledLighting.js +18 -0
- package/examples/jsm/lights/LightProbeGenerator.js +26 -12
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/LineGeometry.js +25 -0
- package/examples/jsm/lines/LineMaterial.js +0 -1
- package/examples/jsm/lines/LineSegmentsGeometry.js +2 -0
- package/examples/jsm/lines/webgpu/Line2.js +2 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +16 -21
- package/examples/jsm/lines/webgpu/Wireframe.js +57 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -0
- package/examples/jsm/loaders/3MFLoader.js +104 -2
- package/examples/jsm/loaders/BVHLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +15 -12
- package/examples/jsm/loaders/DDSLoader.js +42 -0
- package/examples/jsm/loaders/DRACOLoader.js +3 -1
- package/examples/jsm/loaders/FBXLoader.js +71 -22
- package/examples/jsm/loaders/GCodeLoader.js +4 -2
- package/examples/jsm/loaders/GLTFLoader.js +29 -14
- package/examples/jsm/loaders/KTX2Loader.js +160 -58
- package/examples/jsm/loaders/KTXLoader.js +4 -4
- package/examples/jsm/loaders/LDrawLoader.js +22 -136
- package/examples/jsm/loaders/LottieLoader.js +2 -1
- package/examples/jsm/loaders/MTLLoader.js +27 -7
- package/examples/jsm/loaders/MaterialXLoader.js +40 -14
- package/examples/jsm/loaders/NRRDLoader.js +1 -1
- package/examples/jsm/loaders/OBJLoader.js +5 -3
- package/examples/jsm/loaders/PCDLoader.js +14 -13
- package/examples/jsm/loaders/PDBLoader.js +3 -2
- package/examples/jsm/loaders/PLYLoader.js +15 -12
- package/examples/jsm/loaders/PVRLoader.js +1 -1
- package/examples/jsm/loaders/STLLoader.js +3 -2
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TDSLoader.js +17 -18
- package/examples/jsm/loaders/VRMLLoader.js +17 -17
- package/examples/jsm/loaders/VTKLoader.js +4 -3
- package/examples/jsm/loaders/XYZLoader.js +3 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +143 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +114 -0
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
- package/examples/jsm/math/ColorSpaces.js +76 -0
- package/examples/jsm/math/ConvexHull.js +1 -1
- package/examples/jsm/math/OBB.js +17 -0
- package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
- package/examples/jsm/misc/ProgressiveLightMap.js +54 -41
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +294 -0
- package/examples/jsm/misc/Timer.js +27 -12
- package/examples/jsm/misc/Volume.js +28 -18
- package/examples/jsm/misc/VolumeSlice.js +19 -16
- package/examples/jsm/modifiers/CurveModifier.js +10 -8
- package/examples/jsm/modifiers/CurveModifierGPU.js +235 -0
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
- package/examples/jsm/objects/GroundedSkybox.js +4 -4
- package/examples/jsm/objects/LensflareMesh.js +324 -0
- package/examples/jsm/objects/Reflector.js +5 -2
- package/examples/jsm/objects/Sky.js +2 -2
- package/examples/jsm/objects/SkyMesh.js +14 -14
- package/examples/jsm/objects/Water2.js +1 -1
- package/examples/jsm/objects/Water2Mesh.js +11 -9
- package/examples/jsm/objects/WaterMesh.js +38 -33
- package/examples/jsm/physics/JoltPhysics.js +8 -8
- package/examples/jsm/physics/RapierPhysics.js +5 -5
- package/examples/jsm/postprocessing/AfterimagePass.js +14 -3
- package/examples/jsm/postprocessing/BloomPass.js +2 -2
- package/examples/jsm/postprocessing/EffectComposer.js +1 -2
- package/examples/jsm/postprocessing/OutlinePass.js +37 -51
- package/examples/jsm/postprocessing/OutputPass.js +2 -0
- package/examples/jsm/postprocessing/SAOPass.js +1 -2
- package/examples/jsm/postprocessing/SMAAPass.js +1 -3
- package/examples/jsm/postprocessing/SSAARenderPass.js +3 -1
- package/examples/jsm/postprocessing/SSAOPass.js +2 -4
- package/examples/jsm/postprocessing/SSRPass.js +8 -4
- package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
- package/examples/jsm/renderers/CSS2DRenderer.js +6 -3
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -4
- package/examples/jsm/renderers/SVGRenderer.js +6 -4
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/FXAAShader.js +225 -224
- package/examples/jsm/shaders/GodRaysShader.js +3 -3
- package/examples/jsm/shaders/OutputShader.js +6 -2
- package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +12 -2
- package/examples/jsm/transpiler/GLSLDecoder.js +77 -31
- package/examples/jsm/transpiler/ShaderToyDecoder.js +3 -3
- package/examples/jsm/transpiler/TSLEncoder.js +96 -21
- package/examples/jsm/tsl/display/AfterImageNode.js +243 -0
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +106 -0
- package/examples/jsm/tsl/display/AnamorphicNode.js +257 -0
- package/{src/nodes/display/BleachBypassNode.js → examples/jsm/tsl/display/BleachBypass.js} +11 -6
- package/{src/nodes → examples/jsm/tsl}/display/BloomNode.js +252 -67
- package/examples/jsm/tsl/display/DenoiseNode.js +332 -0
- package/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.js +92 -14
- package/examples/jsm/tsl/display/DotScreenNode.js +103 -0
- package/examples/jsm/tsl/display/FXAANode.js +364 -0
- package/examples/jsm/tsl/display/FilmNode.js +100 -0
- package/examples/jsm/tsl/display/GTAONode.js +521 -0
- package/examples/jsm/tsl/display/GaussianBlurNode.js +393 -0
- package/examples/jsm/tsl/display/LensflareNode.js +278 -0
- package/examples/jsm/tsl/display/Lut3DNode.js +108 -0
- package/examples/jsm/tsl/display/MotionBlur.js +33 -0
- package/examples/jsm/tsl/display/OutlineNode.js +750 -0
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +88 -0
- package/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.js +160 -28
- package/examples/jsm/tsl/display/RGBShiftNode.js +95 -0
- package/examples/jsm/tsl/display/SMAANode.js +767 -0
- package/examples/jsm/tsl/display/SSAAPassNode.js +357 -0
- package/examples/jsm/tsl/display/SSRNode.js +538 -0
- package/examples/jsm/tsl/display/Sepia.js +24 -0
- package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +66 -20
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +184 -0
- package/examples/jsm/tsl/display/StereoPassNode.js +119 -0
- package/examples/jsm/tsl/display/TRAAPassNode.js +451 -0
- package/examples/jsm/tsl/display/TransitionNode.js +140 -0
- package/examples/jsm/tsl/display/hashBlur.js +34 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +395 -0
- package/examples/jsm/tsl/math/Bayer.js +18 -0
- package/examples/jsm/tsl/utils/Raymarching.js +65 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +2 -2
- package/examples/jsm/utils/CameraUtils.js +4 -1
- package/examples/jsm/utils/GeometryCompressionUtils.js +38 -123
- package/examples/jsm/utils/GeometryUtils.js +22 -19
- package/examples/jsm/utils/SceneOptimizer.js +410 -0
- package/examples/jsm/utils/SceneUtils.js +2 -2
- package/examples/jsm/utils/ShadowMapViewer.js +3 -8
- package/examples/jsm/utils/ShadowMapViewerGPU.js +201 -0
- package/examples/jsm/utils/SkeletonUtils.js +84 -66
- package/examples/jsm/utils/UVsDebug.js +1 -1
- package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +1 -0
- package/examples/jsm/utils/WebGPUTextureUtils.js +64 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +21 -21
- package/examples/jsm/webxr/Text2D.js +6 -6
- package/examples/jsm/webxr/XRControllerModelFactory.js +7 -2
- package/examples/jsm/webxr/XREstimatedLight.js +1 -1
- package/package.json +14 -9
- package/src/Three.Core.js +182 -0
- package/src/Three.Legacy.js +0 -21
- package/src/Three.TSL.js +543 -0
- package/src/Three.WebGPU.Nodes.js +23 -0
- package/src/Three.WebGPU.js +13 -184
- package/src/Three.js +1 -176
- package/src/animation/AnimationClip.js +2 -2
- package/src/animation/AnimationObjectGroup.js +2 -2
- package/src/animation/AnimationUtils.js +1 -1
- package/src/animation/PropertyBinding.js +2 -2
- package/src/audio/Audio.js +379 -2
- package/src/audio/AudioAnalyser.js +58 -1
- package/src/audio/AudioContext.js +15 -0
- package/src/audio/AudioListener.js +76 -0
- package/src/audio/PositionalAudio.js +107 -0
- package/src/cameras/ArrayCamera.js +29 -0
- package/src/cameras/Camera.js +47 -0
- package/src/cameras/CubeCamera.js +66 -0
- package/src/cameras/OrthographicCamera.js +109 -0
- package/src/cameras/PerspectiveCamera.js +173 -34
- package/src/cameras/StereoCamera.js +48 -2
- package/src/constants.js +6 -6
- package/src/core/BufferAttribute.js +4 -9
- package/src/core/BufferGeometry.js +48 -8
- package/src/core/Clock.js +1 -1
- package/src/core/EventDispatcher.js +52 -8
- package/src/core/InterleavedBuffer.js +4 -13
- package/src/core/Object3D.js +573 -3
- package/src/core/RenderTarget.js +22 -4
- package/src/core/RenderTarget3D.js +22 -0
- package/src/core/RenderTargetArray.js +22 -0
- package/src/extras/Controls.js +104 -0
- package/src/extras/DataUtils.js +48 -8
- package/src/extras/Earcut.js +18 -7
- package/src/extras/ImageUtils.js +18 -11
- package/src/extras/PMREMGenerator.js +40 -9
- package/src/extras/ShapeUtils.js +24 -2
- package/src/extras/TextureUtils.js +96 -10
- package/src/extras/core/Curve.js +153 -53
- package/src/extras/core/CurvePath.js +63 -22
- package/src/extras/core/Interpolations.js +29 -3
- package/src/extras/core/Path.js +134 -1
- package/src/extras/core/Shape.js +66 -3
- package/src/extras/core/ShapePath.js +76 -0
- package/src/extras/curves/ArcCurve.js +22 -0
- package/src/extras/curves/CatmullRomCurve3.js +89 -18
- package/src/extras/curves/CubicBezierCurve.js +67 -0
- package/src/extras/curves/CubicBezierCurve3.js +50 -0
- package/src/extras/curves/EllipseCurve.js +102 -0
- package/src/extras/curves/LineCurve.js +36 -0
- package/src/extras/curves/LineCurve3.js +36 -0
- package/src/extras/curves/QuadraticBezierCurve.js +59 -0
- package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
- package/src/extras/curves/SplineCurve.js +48 -0
- package/src/geometries/BoxGeometry.js +38 -0
- package/src/geometries/CapsuleGeometry.js +34 -0
- package/src/geometries/CircleGeometry.js +40 -0
- package/src/geometries/ConeGeometry.js +38 -0
- package/src/geometries/CylinderGeometry.js +50 -4
- package/src/geometries/DodecahedronGeometry.js +32 -0
- package/src/geometries/EdgesGeometry.js +30 -2
- package/src/geometries/ExtrudeGeometry.js +52 -0
- package/src/geometries/IcosahedronGeometry.js +32 -0
- package/src/geometries/LatheGeometry.js +43 -3
- package/src/geometries/OctahedronGeometry.js +32 -0
- package/src/geometries/PlaneGeometry.js +34 -0
- package/src/geometries/PolyhedronGeometry.js +29 -0
- package/src/geometries/RingGeometry.js +36 -0
- package/src/geometries/ShapeGeometry.js +37 -0
- package/src/geometries/SphereGeometry.js +37 -0
- package/src/geometries/TetrahedronGeometry.js +32 -0
- package/src/geometries/TorusGeometry.js +35 -0
- package/src/geometries/TorusKnotGeometry.js +38 -0
- package/src/geometries/TubeGeometry.js +49 -0
- package/src/geometries/WireframeGeometry.js +32 -0
- package/src/helpers/ArrowHelper.js +60 -3
- package/src/helpers/AxesHelper.js +28 -0
- package/src/helpers/Box3Helper.js +28 -0
- package/src/helpers/BoxHelper.js +43 -7
- package/src/helpers/CameraHelper.js +61 -18
- package/src/helpers/DirectionalLightHelper.js +52 -0
- package/src/helpers/GridHelper.js +26 -0
- package/src/helpers/HemisphereLightHelper.js +39 -0
- package/src/helpers/PlaneHelper.js +33 -0
- package/src/helpers/PointLightHelper.js +43 -0
- package/src/helpers/PolarGridHelper.js +30 -0
- package/src/helpers/SkeletonHelper.js +39 -2
- package/src/helpers/SpotLightHelper.js +40 -0
- package/src/lights/AmbientLight.js +25 -0
- package/src/lights/DirectionalLight.js +57 -0
- package/src/lights/DirectionalLightShadow.js +15 -0
- package/src/lights/HemisphereLight.js +32 -0
- package/src/lights/Light.js +36 -0
- package/src/lights/LightProbe.js +43 -0
- package/src/lights/LightShadow.js +159 -0
- package/src/lights/PointLight.js +59 -0
- package/src/lights/PointLightShadow.js +21 -0
- package/src/lights/RectAreaLight.js +59 -0
- package/src/lights/SpotLight.js +102 -0
- package/src/lights/SpotLightShadow.js +24 -2
- package/src/lights/webgpu/IESSpotLight.js +21 -0
- package/src/loaders/Loader.js +132 -0
- package/src/loaders/MaterialLoader.js +7 -1
- package/src/loaders/nodes/NodeLoader.js +189 -0
- package/src/loaders/nodes/NodeMaterialLoader.js +108 -0
- package/src/loaders/nodes/NodeObjectLoader.js +151 -0
- package/src/materials/LineDashedMaterial.js +0 -1
- package/src/materials/Material.js +469 -7
- package/src/materials/MeshPhongMaterial.js +1 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -2
- package/src/materials/MeshStandardMaterial.js +2 -2
- package/src/{nodes/materials → materials/nodes}/Line2NodeMaterial.js +192 -82
- package/src/materials/nodes/LineBasicNodeMaterial.js +46 -0
- package/src/materials/nodes/LineDashedNodeMaterial.js +132 -0
- package/src/materials/nodes/MeshBasicNodeMaterial.js +133 -0
- package/src/materials/nodes/MeshLambertNodeMaterial.js +82 -0
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +77 -0
- package/src/materials/nodes/MeshNormalNodeMaterial.js +67 -0
- package/src/materials/nodes/MeshPhongNodeMaterial.js +141 -0
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +517 -0
- package/src/materials/nodes/MeshSSSNodeMaterial.js +175 -0
- package/src/materials/nodes/MeshStandardNodeMaterial.js +186 -0
- package/src/materials/nodes/MeshToonNodeMaterial.js +66 -0
- package/src/materials/nodes/NodeMaterial.js +1180 -0
- package/src/{nodes/materials/Materials.js → materials/nodes/NodeMaterials.js} +3 -2
- package/src/materials/nodes/PointsNodeMaterial.js +153 -0
- package/src/materials/nodes/ShadowNodeMaterial.js +67 -0
- package/src/materials/nodes/SpriteNodeMaterial.js +198 -0
- package/src/materials/nodes/VolumeNodeMaterial.js +72 -0
- package/src/materials/nodes/manager/NodeMaterialObserver.js +509 -0
- package/src/math/Box2.js +177 -0
- package/src/math/Box3.js +243 -0
- package/src/math/Color.js +343 -0
- package/src/math/ColorManagement.js +143 -102
- package/src/math/Cylindrical.js +65 -6
- package/src/math/Euler.js +137 -4
- package/src/math/Frustum.js +83 -0
- package/src/math/Interpolant.js +87 -8
- package/src/math/Line3.js +96 -2
- package/src/math/MathUtils.js +182 -19
- package/src/math/Matrix2.js +70 -0
- package/src/math/Matrix3.js +229 -4
- package/src/math/Matrix4.js +368 -3
- package/src/math/Plane.js +164 -2
- package/src/math/Quaternion.js +265 -9
- package/src/math/Ray.js +160 -0
- package/src/math/Sphere.js +147 -0
- package/src/math/Spherical.js +73 -11
- package/src/math/SphericalHarmonics3.js +112 -14
- package/src/math/Triangle.js +230 -2
- package/src/math/Vector2.js +396 -10
- package/src/math/Vector3.js +550 -13
- package/src/math/Vector4.js +415 -9
- package/src/math/interpolants/CubicInterpolant.js +10 -1
- package/src/math/interpolants/DiscreteInterpolant.js +10 -2
- package/src/math/interpolants/LinearInterpolant.js +13 -0
- package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
- package/src/nodes/Nodes.js +84 -166
- package/src/nodes/TSL.js +167 -0
- package/src/nodes/accessors/AccessorsUtils.js +39 -10
- package/src/nodes/accessors/Arrays.js +68 -0
- package/src/nodes/accessors/BatchNode.js +93 -26
- package/src/nodes/accessors/Bitangent.js +54 -0
- package/src/nodes/accessors/BufferAttributeNode.js +189 -11
- package/src/nodes/accessors/BufferNode.js +70 -5
- package/src/nodes/accessors/BuiltinNode.js +63 -0
- package/src/nodes/accessors/Camera.js +129 -0
- package/src/nodes/accessors/ClippingNode.js +152 -43
- package/src/nodes/accessors/CubeTextureNode.js +76 -13
- package/src/nodes/accessors/InstanceNode.js +118 -35
- package/src/nodes/accessors/InstancedMeshNode.js +50 -0
- package/src/nodes/accessors/Lights.js +129 -0
- package/src/nodes/accessors/MaterialNode.js +394 -58
- package/src/nodes/accessors/MaterialProperties.js +57 -1
- package/src/nodes/accessors/MaterialReferenceNode.js +60 -18
- package/src/nodes/accessors/ModelNode.js +159 -12
- package/src/nodes/accessors/ModelViewProjectionNode.js +10 -36
- package/src/nodes/accessors/MorphNode.js +60 -13
- package/src/nodes/accessors/Normal.js +156 -0
- package/src/nodes/accessors/Object3DNode.js +154 -35
- package/src/nodes/accessors/PointUVNode.js +35 -6
- package/src/nodes/accessors/Position.js +64 -0
- package/src/nodes/accessors/ReferenceBaseNode.js +357 -0
- package/src/nodes/accessors/ReferenceNode.js +243 -6
- package/src/nodes/accessors/ReflectVector.js +36 -0
- package/src/nodes/accessors/RendererReferenceNode.js +57 -7
- package/src/nodes/accessors/SceneNode.js +98 -6
- package/src/nodes/accessors/SkinningNode.js +214 -21
- package/src/nodes/accessors/StorageBufferNode.js +288 -28
- package/src/nodes/accessors/StorageTextureNode.js +139 -12
- package/src/nodes/accessors/Tangent.js +62 -0
- package/src/nodes/accessors/Texture3DNode.js +98 -12
- package/src/nodes/accessors/{TextureBicubicNode.js → TextureBicubic.js} +14 -34
- package/src/nodes/accessors/TextureNode.js +347 -34
- package/src/nodes/accessors/TextureSizeNode.js +51 -9
- package/src/nodes/accessors/UV.js +11 -0
- package/src/nodes/accessors/UniformArrayNode.js +241 -32
- package/src/nodes/accessors/UserDataNode.js +55 -7
- package/src/nodes/accessors/VelocityNode.js +223 -0
- package/src/nodes/accessors/VertexColorNode.js +45 -6
- package/src/nodes/code/CodeNode.js +108 -8
- package/src/nodes/code/ExpressionNode.js +38 -7
- package/src/nodes/code/FunctionCallNode.js +62 -11
- package/src/nodes/code/FunctionNode.js +54 -24
- package/src/nodes/code/ScriptableNode.js +241 -17
- package/src/nodes/code/ScriptableValueNode.js +93 -8
- package/src/nodes/core/ArrayNode.js +142 -0
- package/src/nodes/core/AssignNode.js +60 -12
- package/src/nodes/core/AttributeNode.js +55 -22
- package/src/nodes/core/BypassNode.js +59 -11
- package/src/nodes/core/CacheNode.js +64 -10
- package/src/nodes/core/ConstNode.js +38 -3
- package/src/nodes/core/ContextNode.js +87 -12
- package/src/nodes/core/IndexNode.js +102 -10
- package/src/nodes/core/InputNode.js +55 -3
- package/src/nodes/core/LightingModel.js +65 -5
- package/src/nodes/core/MRTNode.js +81 -7
- package/src/nodes/core/Node.js +368 -50
- package/src/nodes/core/NodeAttribute.js +38 -0
- package/src/nodes/core/NodeBuilder.js +1317 -83
- package/src/nodes/core/NodeCache.js +41 -2
- package/src/nodes/core/NodeCode.js +31 -0
- package/src/nodes/core/NodeFrame.js +123 -2
- package/src/nodes/core/NodeFunction.js +46 -0
- package/src/nodes/core/NodeFunctionInput.js +44 -0
- package/src/nodes/core/NodeParser.js +11 -0
- package/src/nodes/core/NodeUniform.js +52 -0
- package/src/nodes/core/NodeUtils.js +226 -6
- package/src/nodes/core/NodeVar.js +47 -1
- package/src/nodes/core/NodeVarying.js +28 -0
- package/src/nodes/core/OutputStructNode.js +61 -17
- package/src/nodes/core/ParameterNode.js +34 -4
- package/src/nodes/core/PropertyNode.js +296 -32
- package/src/nodes/core/StackNode.js +108 -8
- package/src/nodes/core/StructNode.js +120 -0
- package/src/nodes/core/StructType.js +13 -0
- package/src/nodes/core/StructTypeNode.js +116 -9
- package/src/nodes/core/TempNode.js +37 -7
- package/src/nodes/core/UniformGroupNode.js +98 -17
- package/src/nodes/core/UniformNode.js +72 -4
- package/src/nodes/core/VarNode.js +170 -13
- package/src/nodes/core/VaryingNode.js +109 -8
- package/src/nodes/core/constants.js +40 -0
- package/src/nodes/display/BlendModes.js +193 -0
- package/src/nodes/display/BumpMapNode.js +47 -10
- package/src/nodes/display/ColorAdjustment.js +141 -0
- package/src/nodes/display/ColorSpaceFunctions.js +54 -0
- package/src/nodes/display/ColorSpaceNode.js +147 -68
- package/src/nodes/display/FrontFacingNode.js +39 -6
- package/src/nodes/display/NormalMapNode.js +55 -13
- package/src/nodes/display/PassNode.js +420 -19
- package/src/nodes/display/PosterizeNode.js +40 -7
- package/src/nodes/display/RenderOutputNode.js +81 -13
- package/src/nodes/display/ScreenNode.js +286 -0
- package/src/nodes/display/ToneMappingFunctions.js +242 -0
- package/src/nodes/display/ToneMappingNode.js +68 -175
- package/src/nodes/display/ToonOutlinePassNode.js +183 -0
- package/src/nodes/display/ViewportDepthNode.js +210 -36
- package/src/nodes/display/ViewportDepthTextureNode.js +32 -9
- package/src/nodes/display/ViewportSharedTextureNode.js +32 -9
- package/src/nodes/display/ViewportTextureNode.js +68 -11
- package/src/nodes/fog/Fog.js +113 -0
- package/src/nodes/functions/BSDF/BRDF_GGX.js +4 -4
- package/src/nodes/functions/BSDF/BRDF_Lambert.js +2 -2
- package/src/nodes/functions/BSDF/BRDF_Sheen.js +6 -6
- package/src/nodes/functions/BSDF/DFGApprox.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX.js +2 -2
- package/src/nodes/functions/BSDF/D_GGX_Anisotropic.js +3 -3
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/F_Schlick.js +2 -2
- package/src/nodes/functions/BSDF/LTC.js +50 -6
- package/src/nodes/functions/BSDF/Schlick_to_F0.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +27 -6
- package/src/nodes/functions/PhongLightingModel.js +38 -8
- package/src/nodes/functions/PhysicalLightingModel.js +215 -51
- package/src/nodes/functions/ShadowMaskModel.js +24 -1
- package/src/nodes/functions/ToonLightingModel.js +24 -5
- package/src/nodes/functions/VolumetricLightingModel.js +183 -0
- package/src/nodes/functions/material/getAlphaHashThreshold.js +68 -0
- package/src/nodes/functions/material/getGeometryRoughness.js +10 -4
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +37 -0
- package/src/nodes/functions/material/getRoughness.js +2 -2
- package/src/nodes/functions/material/getShIrradianceAt.js +28 -0
- package/src/nodes/geometry/RangeNode.js +62 -7
- package/src/nodes/gpgpu/AtomicFunctionNode.js +280 -0
- package/src/nodes/gpgpu/BarrierNode.js +89 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +227 -0
- package/src/nodes/gpgpu/ComputeNode.js +124 -9
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +208 -0
- package/src/nodes/lighting/AONode.js +24 -3
- package/src/nodes/lighting/AmbientLightNode.js +16 -8
- package/src/nodes/lighting/AnalyticLightNode.js +151 -231
- package/src/nodes/lighting/BasicEnvironmentNode.js +25 -3
- package/src/nodes/lighting/BasicLightMapNode.js +25 -5
- package/src/nodes/lighting/DirectionalLightNode.js +19 -20
- package/src/nodes/lighting/EnvironmentNode.js +34 -17
- package/src/nodes/lighting/HemisphereLightNode.js +42 -11
- package/src/nodes/lighting/IESSpotLightNode.js +18 -9
- package/src/nodes/lighting/IrradianceNode.js +23 -3
- package/src/nodes/lighting/LightProbeNode.js +29 -36
- package/src/nodes/lighting/LightUtils.js +12 -4
- package/src/nodes/lighting/LightingContextNode.js +70 -21
- package/src/nodes/lighting/LightingNode.js +22 -9
- package/src/nodes/lighting/LightsNode.js +309 -86
- package/src/nodes/lighting/PointLightNode.js +66 -32
- package/src/nodes/lighting/PointShadowNode.js +306 -0
- package/src/nodes/lighting/RectAreaLightNode.js +61 -25
- package/src/nodes/lighting/ShadowBaseNode.js +92 -0
- package/src/nodes/lighting/ShadowNode.js +812 -0
- package/src/nodes/lighting/SpotLightNode.js +73 -31
- package/src/nodes/materialx/MaterialXNodes.js +2 -2
- package/src/nodes/materialx/lib/mx_hsv.js +27 -22
- package/src/nodes/materialx/lib/mx_noise.js +70 -70
- package/src/nodes/materialx/lib/mx_transform_color.js +2 -2
- package/src/nodes/math/ConditionalNode.js +230 -0
- package/src/nodes/math/Hash.js +21 -0
- package/src/nodes/math/MathNode.js +812 -131
- package/src/nodes/math/MathUtils.js +47 -8
- package/src/nodes/math/OperatorNode.js +410 -66
- package/src/nodes/math/TriNoise3D.js +32 -32
- package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
- package/src/nodes/parsers/GLSLNodeParser.js +11 -0
- package/src/nodes/pmrem/PMREMNode.js +188 -28
- package/src/nodes/pmrem/PMREMUtils.js +24 -24
- package/src/nodes/procedural/Checker.js +22 -0
- package/src/nodes/shapes/Shapes.js +32 -0
- package/src/nodes/tsl/TSLBase.js +31 -0
- package/src/nodes/{shadernode/ShaderNode.js → tsl/TSLCore.js} +114 -98
- package/src/nodes/utils/ArrayElementNode.js +45 -5
- package/src/nodes/utils/ConvertNode.js +39 -4
- package/src/nodes/utils/CubeMapNode.js +88 -8
- package/src/nodes/utils/Discard.js +24 -0
- package/src/nodes/utils/EquirectUVNode.js +39 -7
- package/src/nodes/utils/FlipNode.js +106 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +61 -6
- package/src/nodes/utils/JoinNode.js +31 -3
- package/src/nodes/utils/LoopNode.js +95 -9
- package/src/nodes/utils/MatcapUVNode.js +27 -8
- package/src/nodes/utils/MaxMipLevelNode.js +57 -6
- package/src/nodes/utils/MemberNode.js +68 -0
- package/src/nodes/utils/Oscillators.js +41 -0
- package/src/nodes/utils/Packing.js +21 -0
- package/src/nodes/utils/PostProcessingUtils.js +95 -0
- package/src/nodes/utils/RTTNode.js +141 -9
- package/src/nodes/utils/ReflectorNode.js +295 -21
- package/src/nodes/utils/RemapNode.js +93 -10
- package/src/nodes/utils/RotateNode.js +48 -13
- package/src/nodes/utils/SetNode.js +50 -4
- package/src/nodes/utils/SplitNode.js +62 -6
- package/src/nodes/utils/SpriteSheetUVNode.js +56 -7
- package/src/nodes/utils/SpriteUtils.js +21 -5
- package/src/nodes/utils/StorageArrayElementNode.js +64 -12
- package/src/nodes/utils/Timer.js +73 -0
- package/src/nodes/utils/TriplanarTexturesNode.js +96 -10
- package/src/nodes/utils/UVUtils.js +27 -9
- package/src/nodes/utils/ViewportUtils.js +16 -4
- package/src/objects/BatchedMesh.js +808 -281
- package/src/objects/Bone.js +24 -0
- package/src/objects/ClippingGroup.js +68 -0
- package/src/objects/Group.js +24 -0
- package/src/objects/InstancedMesh.js +120 -2
- package/src/objects/LOD.js +120 -5
- package/src/objects/Line.js +89 -6
- package/src/objects/LineLoop.js +20 -0
- package/src/objects/LineSegments.js +18 -0
- package/src/objects/Mesh.js +82 -23
- package/src/objects/Points.js +62 -0
- package/src/objects/Skeleton.js +107 -2
- package/src/objects/SkinnedMesh.js +99 -5
- package/src/objects/Sprite.js +54 -0
- package/src/renderers/WebGLRenderer.js +274 -157
- package/src/renderers/common/Animation.js +109 -12
- package/src/renderers/common/Attributes.js +40 -0
- package/src/renderers/common/Backend.js +504 -44
- package/src/renderers/common/Background.js +67 -9
- package/src/renderers/common/BindGroup.js +45 -1
- package/src/renderers/common/Binding.js +35 -0
- package/src/renderers/common/Bindings.js +136 -19
- package/src/renderers/common/Buffer.js +49 -0
- package/src/renderers/common/BufferUtils.js +25 -0
- package/src/renderers/common/BundleGroup.js +83 -0
- package/src/renderers/common/ChainMap.js +45 -6
- package/src/renderers/common/ClippingContext.js +175 -80
- package/src/renderers/common/Color4.js +40 -0
- package/src/renderers/common/ComputePipeline.js +24 -0
- package/src/renderers/common/Constants.js +2 -1
- package/src/renderers/common/CubeRenderTarget.js +22 -3
- package/src/renderers/common/DataMap.js +37 -1
- package/src/renderers/common/Geometries.js +111 -14
- package/src/renderers/common/IndirectStorageBufferAttribute.js +38 -0
- package/src/renderers/common/Info.js +78 -35
- package/src/renderers/common/Lighting.js +73 -0
- package/src/renderers/common/Pipeline.js +22 -0
- package/src/renderers/common/Pipelines.js +148 -5
- package/src/renderers/common/PostProcessing.js +112 -11
- package/src/renderers/common/ProgrammableStage.js +60 -2
- package/src/renderers/common/QuadMesh.js +56 -5
- package/src/renderers/common/RenderBundle.js +14 -8
- package/src/renderers/common/RenderBundles.js +39 -10
- package/src/renderers/common/RenderContext.js +205 -7
- package/src/renderers/common/RenderContexts.js +59 -6
- package/src/renderers/common/RenderList.js +230 -21
- package/src/renderers/common/RenderLists.js +45 -6
- package/src/renderers/common/RenderObject.js +552 -41
- package/src/renderers/common/RenderObjects.js +118 -9
- package/src/renderers/common/RenderPipeline.js +24 -0
- package/src/renderers/common/Renderer.js +1537 -239
- package/src/renderers/common/RendererUtils.js +191 -0
- package/src/renderers/common/SampledTexture.js +132 -3
- package/src/renderers/common/Sampler.js +30 -0
- package/src/renderers/common/StorageBuffer.js +24 -0
- package/src/renderers/common/StorageBufferAttribute.js +31 -2
- package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
- package/src/renderers/common/StorageTexture.js +38 -0
- package/src/renderers/common/Textures.js +142 -32
- package/src/renderers/common/TimestampQueryPool.js +98 -0
- package/src/renderers/common/Uniform.js +225 -3
- package/src/renderers/common/UniformBuffer.js +19 -0
- package/src/renderers/common/UniformsGroup.js +157 -6
- package/src/renderers/common/XRManager.js +1185 -0
- package/src/renderers/common/XRRenderTarget.js +74 -0
- package/src/renderers/common/extras/PMREMGenerator.js +211 -53
- package/src/renderers/common/nodes/NodeBuilderState.js +100 -6
- package/src/renderers/common/nodes/NodeLibrary.js +194 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +92 -4
- package/src/renderers/common/nodes/NodeSampler.js +28 -0
- package/src/renderers/common/nodes/NodeStorageBuffer.js +37 -3
- package/src/renderers/common/nodes/NodeUniform.js +285 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
- package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
- package/src/renderers/common/nodes/Nodes.js +390 -70
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
- package/src/renderers/shaders/ShaderLib/points.glsl.js +2 -0
- package/src/renderers/shaders/ShaderLib/sprite.glsl.js +2 -4
- package/src/renderers/webgl/WebGLAttributes.js +45 -14
- package/src/renderers/webgl/WebGLBackground.js +24 -1
- package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLCapabilities.js +2 -0
- package/src/renderers/webgl/WebGLGeometries.js +0 -28
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLProgram.js +27 -29
- package/src/renderers/webgl/WebGLPrograms.js +24 -16
- package/src/renderers/webgl/WebGLState.js +68 -11
- package/src/renderers/webgl/WebGLTextures.js +49 -10
- package/src/renderers/webgl-fallback/WebGLBackend.js +1055 -238
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +5 -10
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +425 -48
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +64 -1
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +419 -14
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +281 -59
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +367 -0
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
- package/src/renderers/webgpu/WebGPUBackend.js +816 -236
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +78 -0
- package/src/renderers/webgpu/WebGPURenderer.js +45 -6
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +63 -0
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +97 -0
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +954 -147
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +29 -4
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +147 -31
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +213 -31
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +146 -28
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +161 -7
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +333 -50
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +287 -0
- package/src/renderers/webgpu/utils/WebGPUUtils.js +131 -3
- package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
- package/src/renderers/webxr/WebXRManager.js +54 -32
- package/src/scenes/Fog.js +60 -0
- package/src/scenes/FogExp2.js +51 -0
- package/src/scenes/Scene.js +87 -0
- package/src/textures/Data3DTexture.js +2 -2
- package/src/textures/DepthTexture.js +2 -0
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +368 -5
- package/src/textures/VideoFrameTexture.js +35 -0
- package/src/utils.js +33 -1
- package/examples/jsm/animation/MMDAnimationHelper.js +0 -1207
- package/examples/jsm/animation/MMDPhysics.js +0 -1406
- package/examples/jsm/cameras/CinematicCamera.js +0 -208
- package/examples/jsm/controls/Controls.js +0 -32
- package/examples/jsm/exporters/MMDExporter.js +0 -217
- package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -174
- package/examples/jsm/geometries/SDFGeometryGenerator.js +0 -144
- package/examples/jsm/libs/mmdparser.module.js +0 -11530
- package/examples/jsm/loaders/LogLuvLoader.js +0 -606
- package/examples/jsm/loaders/MMDLoader.js +0 -2295
- package/examples/jsm/loaders/TiltLoader.js +0 -520
- package/examples/jsm/objects/InstancedPoints.js +0 -21
- package/examples/jsm/shaders/MMDToonShader.js +0 -134
- package/examples/jsm/utils/GPUStatsPanel.js +0 -95
- package/examples/jsm/utils/PackedPhongMaterial.js +0 -178
- package/src/nodes/accessors/BitangentNode.js +0 -13
- package/src/nodes/accessors/CameraNode.js +0 -19
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -21
- package/src/nodes/accessors/NormalNode.js +0 -14
- package/src/nodes/accessors/PositionNode.js +0 -10
- package/src/nodes/accessors/ReflectVectorNode.js +0 -10
- package/src/nodes/accessors/TangentNode.js +0 -23
- package/src/nodes/accessors/UVNode.js +0 -3
- package/src/nodes/core/NodeKeywords.js +0 -80
- package/src/nodes/core/UniformGroup.js +0 -13
- package/src/nodes/display/AfterImageNode.js +0 -152
- package/src/nodes/display/AnamorphicNode.js +0 -145
- package/src/nodes/display/BlendModeNode.js +0 -128
- package/src/nodes/display/ColorAdjustmentNode.js +0 -104
- package/src/nodes/display/DenoiseNode.js +0 -198
- package/src/nodes/display/DotScreenNode.js +0 -75
- package/src/nodes/display/FXAANode.js +0 -327
- package/src/nodes/display/FilmNode.js +0 -52
- package/src/nodes/display/GTAONode.js +0 -324
- package/src/nodes/display/GaussianBlurNode.js +0 -207
- package/src/nodes/display/Lut3DNode.js +0 -53
- package/src/nodes/display/RGBShiftNode.js +0 -49
- package/src/nodes/display/SepiaNode.js +0 -18
- package/src/nodes/display/TransitionNode.js +0 -76
- package/src/nodes/display/ViewportNode.js +0 -137
- package/src/nodes/fog/FogExp2Node.js +0 -34
- package/src/nodes/fog/FogNode.js +0 -48
- package/src/nodes/fog/FogRangeNode.js +0 -35
- package/src/nodes/lighting/LightNode.js +0 -57
- package/src/nodes/loaders/NodeLoader.js +0 -110
- package/src/nodes/loaders/NodeMaterialLoader.js +0 -60
- package/src/nodes/loaders/NodeObjectLoader.js +0 -71
- package/src/nodes/materials/InstancedPointsNodeMaterial.js +0 -162
- package/src/nodes/materials/LineBasicNodeMaterial.js +0 -28
- package/src/nodes/materials/LineDashedNodeMaterial.js +0 -55
- package/src/nodes/materials/MeshBasicNodeMaterial.js +0 -73
- package/src/nodes/materials/MeshLambertNodeMaterial.js +0 -43
- package/src/nodes/materials/MeshMatcapNodeMaterial.js +0 -53
- package/src/nodes/materials/MeshNormalNodeMaterial.js +0 -40
- package/src/nodes/materials/MeshPhongNodeMaterial.js +0 -74
- package/src/nodes/materials/MeshPhysicalNodeMaterial.js +0 -244
- package/src/nodes/materials/MeshSSSNodeMaterial.js +0 -84
- package/src/nodes/materials/MeshStandardNodeMaterial.js +0 -104
- package/src/nodes/materials/MeshToonNodeMaterial.js +0 -34
- package/src/nodes/materials/NodeMaterial.js +0 -680
- package/src/nodes/materials/PointsNodeMaterial.js +0 -39
- package/src/nodes/materials/ShadowNodeMaterial.js +0 -34
- package/src/nodes/materials/SpriteNodeMaterial.js +0 -90
- package/src/nodes/materials/VolumeNodeMaterial.js +0 -106
- package/src/nodes/math/CondNode.js +0 -139
- package/src/nodes/math/HashNode.js +0 -34
- package/src/nodes/procedural/CheckerNode.js +0 -42
- package/src/nodes/utils/DiscardNode.js +0 -28
- package/src/nodes/utils/OscNode.js +0 -81
- package/src/nodes/utils/PackingNode.js +0 -55
- package/src/nodes/utils/TimerNode.js +0 -94
|
@@ -9,12 +9,27 @@ const _projScreenMatrix = /*@__PURE__*/ new Matrix4();
|
|
|
9
9
|
const _lightPositionWorld = /*@__PURE__*/ new Vector3();
|
|
10
10
|
const _lookTarget = /*@__PURE__*/ new Vector3();
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Represents the shadow configuration of point lights.
|
|
14
|
+
*
|
|
15
|
+
* @augments LightShadow
|
|
16
|
+
*/
|
|
12
17
|
class PointLightShadow extends LightShadow {
|
|
13
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Constructs a new point light shadow.
|
|
21
|
+
*/
|
|
14
22
|
constructor() {
|
|
15
23
|
|
|
16
24
|
super( new PerspectiveCamera( 90, 1, 0.5, 500 ) );
|
|
17
25
|
|
|
26
|
+
/**
|
|
27
|
+
* This flag can be used for type testing.
|
|
28
|
+
*
|
|
29
|
+
* @type {boolean}
|
|
30
|
+
* @readonly
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
18
33
|
this.isPointLightShadow = true;
|
|
19
34
|
|
|
20
35
|
this._frameExtents = new Vector2( 4, 2 );
|
|
@@ -61,6 +76,12 @@ class PointLightShadow extends LightShadow {
|
|
|
61
76
|
|
|
62
77
|
}
|
|
63
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Update the matrices for the camera and shadow, used internally by the renderer.
|
|
81
|
+
*
|
|
82
|
+
* @param {Light} light - The light for which the shadow is being rendered.
|
|
83
|
+
* @param {number} [viewportIndex=0] - The viewport index.
|
|
84
|
+
*/
|
|
64
85
|
updateMatrices( light, viewportIndex = 0 ) {
|
|
65
86
|
|
|
66
87
|
const camera = this.camera;
|
|
@@ -1,20 +1,79 @@
|
|
|
1
1
|
import { Light } from './Light.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* This class emits light uniformly across the face a rectangular plane.
|
|
5
|
+
* This light type can be used to simulate light sources such as bright
|
|
6
|
+
* windows or strip lighting.
|
|
7
|
+
*
|
|
8
|
+
* Important Notes:
|
|
9
|
+
*
|
|
10
|
+
* - There is no shadow support.
|
|
11
|
+
* - Only PBR materials are supported.
|
|
12
|
+
* - You have to include `RectAreaLightUniformsLib` (`WebGLRenderer`) or `RectAreaLightTexturesLib` (`WebGPURenderer`)
|
|
13
|
+
* into your app and init the uniforms/textures.
|
|
14
|
+
*
|
|
15
|
+
* ```js
|
|
16
|
+
* RectAreaLightUniformsLib.init(); // only relevant for WebGLRenderer
|
|
17
|
+
* THREE.RectAreaLightNode.setLTC( RectAreaLightTexturesLib.init() ); // only relevant for WebGPURenderer
|
|
18
|
+
*
|
|
19
|
+
* const intensity = 1; const width = 10; const height = 10;
|
|
20
|
+
* const rectLight = new THREE.RectAreaLight( 0xffffff, intensity, width, height );
|
|
21
|
+
* rectLight.position.set( 5, 5, 0 );
|
|
22
|
+
* rectLight.lookAt( 0, 0, 0 );
|
|
23
|
+
* scene.add( rectLight )
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @augments Light
|
|
27
|
+
*/
|
|
3
28
|
class RectAreaLight extends Light {
|
|
4
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Constructs a new area light.
|
|
32
|
+
*
|
|
33
|
+
* @param {(number|Color|string)} [color=0xffffff] - The light's color.
|
|
34
|
+
* @param {number} [intensity=1] - The light's strength/intensity.
|
|
35
|
+
* @param {number} [width=10] - The width of the light.
|
|
36
|
+
* @param {number} [height=10] - The height of the light.
|
|
37
|
+
*/
|
|
5
38
|
constructor( color, intensity, width = 10, height = 10 ) {
|
|
6
39
|
|
|
7
40
|
super( color, intensity );
|
|
8
41
|
|
|
42
|
+
/**
|
|
43
|
+
* This flag can be used for type testing.
|
|
44
|
+
*
|
|
45
|
+
* @type {boolean}
|
|
46
|
+
* @readonly
|
|
47
|
+
* @default true
|
|
48
|
+
*/
|
|
9
49
|
this.isRectAreaLight = true;
|
|
10
50
|
|
|
11
51
|
this.type = 'RectAreaLight';
|
|
12
52
|
|
|
53
|
+
/**
|
|
54
|
+
* The width of the light.
|
|
55
|
+
*
|
|
56
|
+
* @type {number}
|
|
57
|
+
* @default 10
|
|
58
|
+
*/
|
|
13
59
|
this.width = width;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The height of the light.
|
|
63
|
+
*
|
|
64
|
+
* @type {number}
|
|
65
|
+
* @default 10
|
|
66
|
+
*/
|
|
14
67
|
this.height = height;
|
|
15
68
|
|
|
16
69
|
}
|
|
17
70
|
|
|
71
|
+
/**
|
|
72
|
+
* The light's power. Power is the luminous power of the light measured in lumens (lm).
|
|
73
|
+
* Changing the power will also change the light's intensity.
|
|
74
|
+
*
|
|
75
|
+
* @type {number}
|
|
76
|
+
*/
|
|
18
77
|
get power() {
|
|
19
78
|
|
|
20
79
|
// compute the light's luminous power (in lumens) from its intensity (in nits)
|
package/src/lights/SpotLight.js
CHANGED
|
@@ -2,12 +2,51 @@ import { Light } from './Light.js';
|
|
|
2
2
|
import { SpotLightShadow } from './SpotLightShadow.js';
|
|
3
3
|
import { Object3D } from '../core/Object3D.js';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* This light gets emitted from a single point in one direction, along a cone
|
|
7
|
+
* that increases in size the further from the light it gets.
|
|
8
|
+
*
|
|
9
|
+
* This light can cast shadows - see the {@link SpotLightShadow} for details.
|
|
10
|
+
*
|
|
11
|
+
* ```js
|
|
12
|
+
* // white spotlight shining from the side, modulated by a texture
|
|
13
|
+
* const spotLight = new THREE.SpotLight( 0xffffff );
|
|
14
|
+
* spotLight.position.set( 100, 1000, 100 );
|
|
15
|
+
* spotLight.map = new THREE.TextureLoader().load( url );
|
|
16
|
+
*
|
|
17
|
+
* spotLight.castShadow = true;
|
|
18
|
+
* spotLight.shadow.mapSize.width = 1024;
|
|
19
|
+
* spotLight.shadow.mapSize.height = 1024;
|
|
20
|
+
* spotLight.shadow.camera.near = 500;
|
|
21
|
+
* spotLight.shadow.camera.far = 4000;
|
|
22
|
+
* spotLight.shadow.camera.fov = 30;s
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @augments Light
|
|
26
|
+
*/
|
|
5
27
|
class SpotLight extends Light {
|
|
6
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Constructs a new spot light.
|
|
31
|
+
*
|
|
32
|
+
* @param {(number|Color|string)} [color=0xffffff] - The light's color.
|
|
33
|
+
* @param {number} [intensity=1] - The light's strength/intensity measured in candela (cd).
|
|
34
|
+
* @param {number} [distance=0] - Maximum range of the light. `0` means no limit.
|
|
35
|
+
* @param {number} [angle=Math.PI/3] - Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.
|
|
36
|
+
* @param {number} [penumbra=0] - Percent of the spotlight cone that is attenuated due to penumbra. Value range is `[0,1]`.
|
|
37
|
+
* @param {number} [decay=2] - The amount the light dims along the distance of the light.
|
|
38
|
+
*/
|
|
7
39
|
constructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {
|
|
8
40
|
|
|
9
41
|
super( color, intensity );
|
|
10
42
|
|
|
43
|
+
/**
|
|
44
|
+
* This flag can be used for type testing.
|
|
45
|
+
*
|
|
46
|
+
* @type {boolean}
|
|
47
|
+
* @readonly
|
|
48
|
+
* @default true
|
|
49
|
+
*/
|
|
11
50
|
this.isSpotLight = true;
|
|
12
51
|
|
|
13
52
|
this.type = 'SpotLight';
|
|
@@ -15,19 +54,82 @@ class SpotLight extends Light {
|
|
|
15
54
|
this.position.copy( Object3D.DEFAULT_UP );
|
|
16
55
|
this.updateMatrix();
|
|
17
56
|
|
|
57
|
+
/**
|
|
58
|
+
* The spot light points from its position to the
|
|
59
|
+
* target's position.
|
|
60
|
+
*
|
|
61
|
+
* For the target's position to be changed to anything other
|
|
62
|
+
* than the default, it must be added to the scene.
|
|
63
|
+
*
|
|
64
|
+
* It is also possible to set the target to be another 3D object
|
|
65
|
+
* in the scene. The light will now track the target object.
|
|
66
|
+
*
|
|
67
|
+
* @type {Object3D}
|
|
68
|
+
*/
|
|
18
69
|
this.target = new Object3D();
|
|
19
70
|
|
|
71
|
+
/**
|
|
72
|
+
* Maximum range of the light. `0` means no limit.
|
|
73
|
+
*
|
|
74
|
+
* @type {number}
|
|
75
|
+
* @default 0
|
|
76
|
+
*/
|
|
20
77
|
this.distance = distance;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.
|
|
81
|
+
*
|
|
82
|
+
* @type {number}
|
|
83
|
+
* @default Math.PI/3
|
|
84
|
+
*/
|
|
21
85
|
this.angle = angle;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Percent of the spotlight cone that is attenuated due to penumbra.
|
|
89
|
+
* Value range is `[0,1]`.
|
|
90
|
+
*
|
|
91
|
+
* @type {number}
|
|
92
|
+
* @default 0
|
|
93
|
+
*/
|
|
22
94
|
this.penumbra = penumbra;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The amount the light dims along the distance of the light. In context of
|
|
98
|
+
* physically-correct rendering the default value should not be changed.
|
|
99
|
+
*
|
|
100
|
+
* @type {number}
|
|
101
|
+
* @default 2
|
|
102
|
+
*/
|
|
23
103
|
this.decay = decay;
|
|
24
104
|
|
|
105
|
+
/**
|
|
106
|
+
* A texture used to modulate the color of the light. The spot light
|
|
107
|
+
* color is mixed with the RGB value of this texture, with a ratio
|
|
108
|
+
* corresponding to its alpha value. The cookie-like masking effect is
|
|
109
|
+
* reproduced using pixel values (0, 0, 0, 1-cookie_value).
|
|
110
|
+
*
|
|
111
|
+
* *Warning*: This property is disabled if {@link Object3D#castShadow} is set to `false`.
|
|
112
|
+
*
|
|
113
|
+
* @type {?Texture}
|
|
114
|
+
* @default null
|
|
115
|
+
*/
|
|
25
116
|
this.map = null;
|
|
26
117
|
|
|
118
|
+
/**
|
|
119
|
+
* This property holds the light's shadow configuration.
|
|
120
|
+
*
|
|
121
|
+
* @type {SpotLightShadow}
|
|
122
|
+
*/
|
|
27
123
|
this.shadow = new SpotLightShadow();
|
|
28
124
|
|
|
29
125
|
}
|
|
30
126
|
|
|
127
|
+
/**
|
|
128
|
+
* The light's power. Power is the luminous power of the light measured in lumens (lm).
|
|
129
|
+
* Changing the power will also change the light's intensity.
|
|
130
|
+
*
|
|
131
|
+
* @type {number}
|
|
132
|
+
*/
|
|
31
133
|
get power() {
|
|
32
134
|
|
|
33
135
|
// compute the light's luminous power (in lumens) from its intensity (in candela)
|
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
import { LightShadow } from './LightShadow.js';
|
|
2
|
-
import
|
|
2
|
+
import { RAD2DEG } from '../math/MathUtils.js';
|
|
3
3
|
import { PerspectiveCamera } from '../cameras/PerspectiveCamera.js';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Represents the shadow configuration of directional lights.
|
|
7
|
+
*
|
|
8
|
+
* @augments LightShadow
|
|
9
|
+
*/
|
|
5
10
|
class SpotLightShadow extends LightShadow {
|
|
6
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Constructs a new spot light shadow.
|
|
14
|
+
*/
|
|
7
15
|
constructor() {
|
|
8
16
|
|
|
9
17
|
super( new PerspectiveCamera( 50, 1, 0.5, 500 ) );
|
|
10
18
|
|
|
19
|
+
/**
|
|
20
|
+
* This flag can be used for type testing.
|
|
21
|
+
*
|
|
22
|
+
* @type {boolean}
|
|
23
|
+
* @readonly
|
|
24
|
+
* @default true
|
|
25
|
+
*/
|
|
11
26
|
this.isSpotLightShadow = true;
|
|
12
27
|
|
|
28
|
+
/**
|
|
29
|
+
* Used to focus the shadow camera. The camera's field of view is set as a
|
|
30
|
+
* percentage of the spotlight's field-of-view. Range is `[0, 1]`.
|
|
31
|
+
*
|
|
32
|
+
* @type {number}
|
|
33
|
+
* @default 1
|
|
34
|
+
*/
|
|
13
35
|
this.focus = 1;
|
|
14
36
|
|
|
15
37
|
}
|
|
@@ -18,7 +40,7 @@ class SpotLightShadow extends LightShadow {
|
|
|
18
40
|
|
|
19
41
|
const camera = this.camera;
|
|
20
42
|
|
|
21
|
-
const fov =
|
|
43
|
+
const fov = RAD2DEG * 2 * light.angle * this.focus;
|
|
22
44
|
const aspect = this.mapSize.width / this.mapSize.height;
|
|
23
45
|
const far = light.distance || camera.far;
|
|
24
46
|
|
|
@@ -1,11 +1,32 @@
|
|
|
1
1
|
import { SpotLight } from '../SpotLight.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* A IES version of {@link SpotLight}. Can only be used with {@link WebGPURenderer}.
|
|
5
|
+
*
|
|
6
|
+
* @augments SpotLight
|
|
7
|
+
*/
|
|
3
8
|
class IESSpotLight extends SpotLight {
|
|
4
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new IES spot light.
|
|
12
|
+
*
|
|
13
|
+
* @param {(number|Color|string)} [color=0xffffff] - The light's color.
|
|
14
|
+
* @param {number} [intensity=1] - The light's strength/intensity measured in candela (cd).
|
|
15
|
+
* @param {number} [distance=0] - Maximum range of the light. `0` means no limit.
|
|
16
|
+
* @param {number} [angle=Math.PI/3] - Maximum angle of light dispersion from its direction whose upper bound is `Math.PI/2`.
|
|
17
|
+
* @param {number} [penumbra=0] - Percent of the spotlight cone that is attenuated due to penumbra. Value range is `[0,1]`.
|
|
18
|
+
* @param {number} [decay=2] - The amount the light dims along the distance of the light.
|
|
19
|
+
*/
|
|
5
20
|
constructor( color, intensity, distance, angle, penumbra, decay ) {
|
|
6
21
|
|
|
7
22
|
super( color, intensity, distance, angle, penumbra, decay );
|
|
8
23
|
|
|
24
|
+
/**
|
|
25
|
+
* TOOD
|
|
26
|
+
*
|
|
27
|
+
* @type {?Texture}
|
|
28
|
+
* @default null
|
|
29
|
+
*/
|
|
9
30
|
this.iesMap = null;
|
|
10
31
|
|
|
11
32
|
}
|
package/src/loaders/Loader.js
CHANGED
|
@@ -1,21 +1,86 @@
|
|
|
1
1
|
import { DefaultLoadingManager } from './LoadingManager.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for loaders.
|
|
5
|
+
*
|
|
6
|
+
* @abstract
|
|
7
|
+
*/
|
|
3
8
|
class Loader {
|
|
4
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Constructs a new loader.
|
|
12
|
+
*
|
|
13
|
+
* @param {LoadingManager} [manager] - The loading manager.
|
|
14
|
+
*/
|
|
5
15
|
constructor( manager ) {
|
|
6
16
|
|
|
17
|
+
/**
|
|
18
|
+
* The loading manager.
|
|
19
|
+
*
|
|
20
|
+
* @type {LoadingManager}
|
|
21
|
+
* @default DefaultLoadingManager
|
|
22
|
+
*/
|
|
7
23
|
this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
|
|
8
24
|
|
|
25
|
+
/**
|
|
26
|
+
* The crossOrigin string to implement CORS for loading the url from a
|
|
27
|
+
* different domain that allows CORS.
|
|
28
|
+
*
|
|
29
|
+
* @type {string}
|
|
30
|
+
* @default 'anonymous'
|
|
31
|
+
*/
|
|
9
32
|
this.crossOrigin = 'anonymous';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Whether the XMLHttpRequest uses credentials.
|
|
36
|
+
*
|
|
37
|
+
* @type {boolean}
|
|
38
|
+
* @default false
|
|
39
|
+
*/
|
|
10
40
|
this.withCredentials = false;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The base path from which the asset will be loaded.
|
|
44
|
+
*
|
|
45
|
+
* @type {string}
|
|
46
|
+
*/
|
|
11
47
|
this.path = '';
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The base path from which additional resources like textures will be loaded.
|
|
51
|
+
*
|
|
52
|
+
* @type {string}
|
|
53
|
+
*/
|
|
12
54
|
this.resourcePath = '';
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}
|
|
58
|
+
* used in HTTP request.
|
|
59
|
+
*
|
|
60
|
+
* @type {Object}
|
|
61
|
+
*/
|
|
13
62
|
this.requestHeader = {};
|
|
14
63
|
|
|
15
64
|
}
|
|
16
65
|
|
|
66
|
+
/**
|
|
67
|
+
* This method needs to be implemented by all concrete loaders. It holds the
|
|
68
|
+
* logic for loading assets from the backend.
|
|
69
|
+
*
|
|
70
|
+
* @param {string} url - The path/URL of the file to be loaded.
|
|
71
|
+
* @param {Function} onLoad - Executed when the loading process has been finished.
|
|
72
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
73
|
+
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
74
|
+
*/
|
|
17
75
|
load( /* url, onLoad, onProgress, onError */ ) {}
|
|
18
76
|
|
|
77
|
+
/**
|
|
78
|
+
* A async version of {@link Loader#load}.
|
|
79
|
+
*
|
|
80
|
+
* @param {string} url - The path/URL of the file to be loaded.
|
|
81
|
+
* @param {onProgressCallback} onProgress - Executed while the loading is in progress.
|
|
82
|
+
* @return {Promise} A Promise that resolves when the asset has been loaded.
|
|
83
|
+
*/
|
|
19
84
|
loadAsync( url, onProgress ) {
|
|
20
85
|
|
|
21
86
|
const scope = this;
|
|
@@ -28,8 +93,21 @@ class Loader {
|
|
|
28
93
|
|
|
29
94
|
}
|
|
30
95
|
|
|
96
|
+
/**
|
|
97
|
+
* This method needs to be implemented by all concrete loaders. It holds the
|
|
98
|
+
* logic for parsing the asset into three.js entities.
|
|
99
|
+
*
|
|
100
|
+
* @param {any} data - The data to parse.
|
|
101
|
+
*/
|
|
31
102
|
parse( /* data */ ) {}
|
|
32
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Sets the `crossOrigin` String to implement CORS for loading the URL
|
|
106
|
+
* from a different domain that allows CORS.
|
|
107
|
+
*
|
|
108
|
+
* @param {string} crossOrigin - The `crossOrigin` value.
|
|
109
|
+
* @return {Loader} A reference to this instance.
|
|
110
|
+
*/
|
|
33
111
|
setCrossOrigin( crossOrigin ) {
|
|
34
112
|
|
|
35
113
|
this.crossOrigin = crossOrigin;
|
|
@@ -37,6 +115,15 @@ class Loader {
|
|
|
37
115
|
|
|
38
116
|
}
|
|
39
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Whether the XMLHttpRequest uses credentials such as cookies, authorization
|
|
120
|
+
* headers or TLS client certificates, see [XMLHttpRequest.withCredentials]{@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials}.
|
|
121
|
+
*
|
|
122
|
+
* Note: This setting has no effect if you are loading files locally or from the same domain.
|
|
123
|
+
*
|
|
124
|
+
* @param {boolean} value - The `withCredentials` value.
|
|
125
|
+
* @return {Loader} A reference to this instance.
|
|
126
|
+
*/
|
|
40
127
|
setWithCredentials( value ) {
|
|
41
128
|
|
|
42
129
|
this.withCredentials = value;
|
|
@@ -44,6 +131,12 @@ class Loader {
|
|
|
44
131
|
|
|
45
132
|
}
|
|
46
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Sets the base path for the asset.
|
|
136
|
+
*
|
|
137
|
+
* @param {string} path - The base path.
|
|
138
|
+
* @return {Loader} A reference to this instance.
|
|
139
|
+
*/
|
|
47
140
|
setPath( path ) {
|
|
48
141
|
|
|
49
142
|
this.path = path;
|
|
@@ -51,6 +144,12 @@ class Loader {
|
|
|
51
144
|
|
|
52
145
|
}
|
|
53
146
|
|
|
147
|
+
/**
|
|
148
|
+
* Sets the base path for dependent resources like textures.
|
|
149
|
+
*
|
|
150
|
+
* @param {string} resourcePath - The resource path.
|
|
151
|
+
* @return {Loader} A reference to this instance.
|
|
152
|
+
*/
|
|
54
153
|
setResourcePath( resourcePath ) {
|
|
55
154
|
|
|
56
155
|
this.resourcePath = resourcePath;
|
|
@@ -58,6 +157,13 @@ class Loader {
|
|
|
58
157
|
|
|
59
158
|
}
|
|
60
159
|
|
|
160
|
+
/**
|
|
161
|
+
* Sets the given request header.
|
|
162
|
+
*
|
|
163
|
+
* @param {Object} requestHeader - A [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}
|
|
164
|
+
* for configuring the HTTP request.
|
|
165
|
+
* @return {Loader} A reference to this instance.
|
|
166
|
+
*/
|
|
61
167
|
setRequestHeader( requestHeader ) {
|
|
62
168
|
|
|
63
169
|
this.requestHeader = requestHeader;
|
|
@@ -67,6 +173,32 @@ class Loader {
|
|
|
67
173
|
|
|
68
174
|
}
|
|
69
175
|
|
|
176
|
+
/**
|
|
177
|
+
* Callback for onProgress in loaders.
|
|
178
|
+
*
|
|
179
|
+
*
|
|
180
|
+
* @callback onProgressCallback
|
|
181
|
+
* @param {ProgressEvent} event - An instance of `ProgressEvent` that represents the current loading status.
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Callback for onError in loaders.
|
|
186
|
+
*
|
|
187
|
+
*
|
|
188
|
+
* @callback onErrorCallback
|
|
189
|
+
* @param {Error} error - The error which occurred during the loading process.
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* The default material name that is used by loaders
|
|
194
|
+
* when creating materials for loaded 3D objects.
|
|
195
|
+
*
|
|
196
|
+
* Note: Not all loaders might honor this setting.
|
|
197
|
+
*
|
|
198
|
+
* @static
|
|
199
|
+
* @type {string}
|
|
200
|
+
* @default '__DEFAULT'
|
|
201
|
+
*/
|
|
70
202
|
Loader.DEFAULT_MATERIAL_NAME = '__DEFAULT';
|
|
71
203
|
|
|
72
204
|
export { Loader };
|
|
@@ -86,7 +86,7 @@ class MaterialLoader extends Loader {
|
|
|
86
86
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
const material =
|
|
89
|
+
const material = this.createMaterialFromType( json.type );
|
|
90
90
|
|
|
91
91
|
if ( json.uuid !== undefined ) material.uuid = json.uuid;
|
|
92
92
|
if ( json.name !== undefined ) material.name = json.name;
|
|
@@ -342,6 +342,12 @@ class MaterialLoader extends Loader {
|
|
|
342
342
|
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
+
createMaterialFromType( type ) {
|
|
346
|
+
|
|
347
|
+
return MaterialLoader.createMaterialFromType( type );
|
|
348
|
+
|
|
349
|
+
}
|
|
350
|
+
|
|
345
351
|
static createMaterialFromType( type ) {
|
|
346
352
|
|
|
347
353
|
const materialLib = {
|