super-three 0.179.0 → 0.184.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 +3 -4
- package/build/three.cjs +14522 -12207
- package/build/three.core.js +12005 -10954
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +2270 -1005
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +63 -18
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +16573 -7890
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +16533 -7888
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/Addons.js +12 -4
- package/examples/jsm/animation/CCDIKSolver.js +8 -4
- package/examples/jsm/controls/ArcballControls.js +15 -12
- package/examples/jsm/controls/DragControls.js +9 -59
- package/examples/jsm/controls/FirstPersonControls.js +61 -57
- package/examples/jsm/controls/FlyControls.js +5 -1
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +113 -10
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- package/examples/jsm/controls/TrackballControls.js +9 -9
- package/examples/jsm/controls/TransformControls.js +35 -3
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMShadowNode.js +6 -2
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +2 -2
- package/examples/jsm/exporters/GLTFExporter.js +185 -34
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +31 -5
- package/examples/jsm/geometries/DecalGeometry.js +3 -3
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +21 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +110 -13
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +542 -0
- package/examples/jsm/inspector/RendererInspector.js +425 -0
- package/examples/jsm/inspector/extensions/extensions.json +6 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.js +916 -0
- package/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.js +281 -0
- package/examples/jsm/inspector/tabs/Console.js +238 -0
- package/examples/jsm/inspector/tabs/Memory.js +128 -0
- package/examples/jsm/inspector/tabs/Parameters.js +380 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Settings.js +264 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1611 -0
- package/examples/jsm/inspector/tabs/Viewer.js +268 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +2072 -0
- package/examples/jsm/inspector/ui/Style.js +1667 -0
- package/examples/jsm/inspector/ui/Tab.js +265 -0
- package/examples/jsm/inspector/ui/Values.js +476 -0
- package/examples/jsm/inspector/ui/utils.js +69 -0
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +651 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineMaterial.js +7 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3DMLoader.js +5 -4
- package/examples/jsm/loaders/3MFLoader.js +3 -3
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +27 -4029
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +692 -53
- package/examples/jsm/loaders/FBXLoader.js +237 -39
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +159 -185
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +485 -0
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +162 -53
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +41 -50
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +9 -41
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +4 -4
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +287 -162
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +79 -2
- package/examples/jsm/loaders/VTKLoader.js +42 -25
- package/examples/jsm/loaders/collada/ColladaComposer.js +3044 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1977 -0
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/loaders/usd/USDAParser.js +450 -363
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4594 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -2
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +73 -25
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +91 -7
- package/examples/jsm/objects/SkyMesh.js +151 -17
- package/examples/jsm/objects/Water.js +7 -6
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +11 -13
- package/examples/jsm/physics/AmmoPhysics.js +12 -7
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +9 -5
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/OutputPass.js +9 -0
- package/examples/jsm/postprocessing/RenderPass.js +10 -0
- package/examples/jsm/postprocessing/RenderTransitionPass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- package/examples/jsm/postprocessing/UnrealBloomPass.js +56 -24
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +8 -7
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +175 -61
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +21 -8
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +8 -4
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +7 -6
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +3 -5
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +85 -25
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +52 -10
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +51 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +36 -24
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +40 -5
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +23 -9
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +5 -37
- package/examples/jsm/tsl/display/DenoiseNode.js +3 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
- package/examples/jsm/tsl/display/FSR1Node.js +477 -0
- package/examples/jsm/tsl/display/FXAANode.js +2 -2
- package/examples/jsm/tsl/display/GTAONode.js +59 -9
- package/examples/jsm/tsl/display/GaussianBlurNode.js +68 -35
- package/examples/jsm/tsl/display/GodraysNode.js +615 -0
- package/examples/jsm/tsl/display/LensflareNode.js +1 -1
- package/examples/jsm/tsl/display/Lut3DNode.js +1 -1
- package/examples/jsm/tsl/display/OutlineNode.js +81 -20
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +7 -6
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- package/examples/jsm/tsl/display/RetroPassNode.js +263 -0
- package/examples/jsm/tsl/display/SMAANode.js +2 -2
- package/examples/jsm/tsl/display/SSAAPassNode.js +2 -2
- package/examples/jsm/tsl/display/SSGINode.js +638 -0
- package/examples/jsm/tsl/display/SSRNode.js +186 -69
- package/examples/jsm/tsl/display/SSSNode.js +490 -0
- package/examples/jsm/tsl/display/Shape.js +29 -0
- package/examples/jsm/tsl/display/SharpenNode.js +283 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -2
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +8 -1
- package/examples/jsm/tsl/display/StereoPassNode.js +1 -2
- package/examples/jsm/tsl/display/TAAUNode.js +835 -0
- package/examples/jsm/tsl/display/TRAANode.js +381 -75
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/tsl/lighting/data/AmbientLightDataNode.js +61 -0
- package/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.js +111 -0
- package/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.js +99 -0
- package/examples/jsm/tsl/lighting/data/PointLightDataNode.js +134 -0
- package/examples/jsm/tsl/lighting/data/SpotLightDataNode.js +161 -0
- package/examples/jsm/tsl/math/Bayer.js +53 -3
- package/examples/jsm/utils/BufferGeometryUtils.js +3 -4
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +13 -6
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +1 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -7
- package/package.json +27 -38
- package/src/Three.Core.js +7 -3
- package/src/Three.TSL.js +61 -16
- package/src/Three.WebGPU.Nodes.js +7 -0
- package/src/Three.WebGPU.js +11 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +12 -2
- package/src/animation/AnimationClip.js +21 -5
- package/src/animation/AnimationMixer.js +9 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +54 -14
- package/src/animation/PropertyBinding.js +12 -11
- package/src/animation/PropertyMixer.js +4 -4
- package/src/animation/tracks/BooleanKeyframeTrack.js +1 -1
- package/src/animation/tracks/ColorKeyframeTrack.js +1 -1
- package/src/animation/tracks/NumberKeyframeTrack.js +1 -1
- package/src/animation/tracks/QuaternionKeyframeTrack.js +1 -1
- package/src/animation/tracks/StringKeyframeTrack.js +1 -1
- package/src/animation/tracks/VectorKeyframeTrack.js +1 -1
- package/src/audio/Audio.js +11 -10
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +100 -7
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +24 -12
- package/src/core/Clock.js +7 -0
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +55 -6
- package/src/core/Raycaster.js +4 -3
- package/src/core/RenderTarget.js +14 -5
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +259 -57
- package/src/extras/TextureUtils.js +6 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +10 -8
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +9 -3
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +4 -1
- package/src/helpers/DirectionalLightHelper.js +4 -1
- package/src/helpers/HemisphereLightHelper.js +3 -0
- package/src/helpers/PointLightHelper.js +1 -25
- package/src/helpers/SpotLightHelper.js +3 -0
- package/src/lights/DirectionalLight.js +13 -0
- package/src/lights/HemisphereLight.js +10 -0
- package/src/lights/Light.js +1 -11
- package/src/lights/LightProbe.js +0 -15
- package/src/lights/LightShadow.js +15 -6
- package/src/lights/PointLight.js +15 -0
- package/src/lights/PointLightShadow.js +0 -86
- package/src/lights/SpotLight.js +22 -1
- package/src/lights/webgpu/IESSpotLight.js +2 -1
- package/src/lights/webgpu/ProjectorLight.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +13 -2
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +30 -2
- package/src/loaders/DataTextureLoader.js +6 -4
- package/src/loaders/FileLoader.js +4 -4
- package/src/loaders/ImageBitmapLoader.js +17 -13
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +9 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +6 -4
- package/src/loaders/ObjectLoader.js +57 -17
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +5 -4
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/Material.js +18 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +11 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +11 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +2 -1
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +22 -3
- package/src/materials/nodes/Line2NodeMaterial.js +36 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +95 -35
- package/src/materials/nodes/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +194 -88
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +23 -21
- package/src/math/Matrix2.js +14 -10
- package/src/math/Matrix3.js +15 -11
- package/src/math/Matrix4.js +94 -81
- package/src/math/Plane.js +5 -4
- package/src/math/Quaternion.js +60 -84
- package/src/math/Sphere.js +1 -1
- package/src/math/Spherical.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +11 -7
- package/src/math/Vector3.js +15 -13
- package/src/math/Vector4.js +13 -9
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/nodes/Nodes.js +86 -65
- package/src/nodes/TSL.js +11 -8
- package/src/nodes/accessors/Arrays.js +1 -1
- package/src/nodes/accessors/BatchNode.js +10 -10
- package/src/nodes/accessors/Bitangent.js +5 -5
- package/src/nodes/accessors/BufferAttributeNode.js +107 -15
- package/src/nodes/accessors/BufferNode.js +30 -3
- package/src/nodes/accessors/Camera.js +260 -13
- package/src/nodes/accessors/ClippingNode.js +10 -9
- package/src/nodes/accessors/CubeTextureNode.js +32 -6
- package/src/nodes/accessors/InstanceNode.js +164 -39
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/MaterialNode.js +9 -1
- package/src/nodes/accessors/MaterialProperties.js +2 -5
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +16 -15
- package/src/nodes/accessors/Object3DNode.js +2 -2
- package/src/nodes/accessors/Position.js +51 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +7 -7
- package/src/nodes/accessors/ReferenceNode.js +11 -10
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/SkinningNode.js +27 -26
- package/src/nodes/accessors/StorageBufferNode.js +14 -24
- package/src/nodes/accessors/StorageTextureNode.js +62 -9
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +41 -31
- package/src/nodes/accessors/TextureNode.js +193 -63
- package/src/nodes/accessors/UniformArrayNode.js +6 -4
- package/src/nodes/accessors/UserDataNode.js +1 -2
- package/src/nodes/accessors/VertexColorNode.js +1 -2
- package/src/nodes/code/FunctionCallNode.js +25 -5
- package/src/nodes/code/FunctionNode.js +25 -3
- package/src/nodes/core/ArrayNode.js +22 -2
- package/src/nodes/core/AssignNode.js +6 -5
- package/src/nodes/core/AttributeNode.js +5 -4
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +133 -15
- package/src/nodes/core/IndexNode.js +4 -3
- package/src/nodes/core/InputNode.js +3 -2
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +41 -8
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +264 -46
- package/src/nodes/core/NodeBuilder.js +453 -87
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +31 -23
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +25 -97
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +34 -3
- package/src/nodes/core/PropertyNode.js +26 -3
- package/src/nodes/core/StackNode.js +99 -23
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +22 -8
- package/src/nodes/core/StructTypeNode.js +13 -18
- package/src/nodes/core/SubBuildNode.js +4 -4
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +37 -13
- package/src/nodes/core/VarNode.js +96 -34
- package/src/nodes/core/VaryingNode.js +2 -18
- package/src/nodes/display/BlendModes.js +0 -63
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +18 -1
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +41 -5
- package/src/nodes/display/PassNode.js +175 -25
- package/src/nodes/display/RenderOutputNode.js +35 -9
- package/src/nodes/display/ScreenNode.js +47 -15
- package/src/nodes/display/ToneMappingNode.js +32 -5
- package/src/nodes/display/ToonOutlinePassNode.js +10 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +14 -6
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +72 -14
- package/src/nodes/fog/Fog.js +18 -34
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGLUT.js +56 -0
- package/src/nodes/functions/BSDF/EnvironmentBRDF.js +2 -2
- package/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +2 -2
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +128 -46
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +44 -6
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +4 -4
- package/src/nodes/gpgpu/ComputeNode.js +76 -38
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +34 -9
- package/src/nodes/lighting/LightsNode.js +10 -32
- package/src/nodes/lighting/PointShadowNode.js +167 -148
- package/src/nodes/lighting/ShadowFilterNode.js +55 -65
- package/src/nodes/lighting/ShadowNode.js +189 -44
- package/src/nodes/math/BitcastNode.js +156 -0
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +25 -8
- package/src/nodes/math/MathNode.js +98 -57
- package/src/nodes/math/OperatorNode.js +8 -5
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/pmrem/PMREMNode.js +1 -1
- package/src/nodes/pmrem/PMREMUtils.js +111 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +6 -3
- package/src/nodes/tsl/TSLCore.js +488 -166
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +14 -13
- package/src/nodes/utils/EventNode.js +67 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +7 -4
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +60 -8
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +60 -1
- package/src/nodes/utils/RTTNode.js +14 -4
- package/src/nodes/utils/ReflectorNode.js +61 -11
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +12 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +46 -18
- package/src/objects/InstancedMesh.js +30 -3
- package/src/objects/LOD.js +1 -1
- package/src/objects/Line.js +3 -2
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +12 -2
- package/src/objects/SkinnedMesh.js +29 -10
- package/src/objects/Sprite.js +4 -3
- package/src/renderers/WebGLRenderer.js +372 -179
- package/src/renderers/common/Animation.js +16 -4
- package/src/renderers/common/Attributes.js +16 -2
- package/src/renderers/common/Backend.js +137 -35
- package/src/renderers/common/Background.js +28 -14
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +83 -12
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +40 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/DataMap.js +1 -1
- package/src/renderers/common/Geometries.js +55 -3
- package/src/renderers/common/Info.js +337 -6
- package/src/renderers/common/InspectorBase.js +151 -0
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +41 -8
- package/src/renderers/common/PostProcessing.js +9 -226
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/ReadbackBuffer.js +78 -0
- package/src/renderers/common/RenderBundle.js +3 -1
- package/src/renderers/common/RenderBundles.js +7 -3
- package/src/renderers/common/RenderContext.js +18 -2
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +32 -6
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +22 -6
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +927 -335
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +52 -14
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +208 -47
- package/src/renderers/common/TimestampQueryPool.js +70 -6
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +64 -2
- package/src/renderers/common/XRManager.js +79 -51
- package/src/renderers/common/extras/PMREMGenerator.js +176 -79
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +260 -95
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -0
- package/src/renderers/shaders/DFGLUTData.js +49 -0
- package/src/renderers/shaders/ShaderChunk/batching_pars_vertex.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/color_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl.js +1 -5
- package/src/renderers/shaders/ShaderChunk/color_vertex.glsl.js +8 -10
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +8 -12
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightprobes_pars_fragment.glsl.js +80 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +13 -2
- package/src/renderers/shaders/ShaderChunk/lights_fragment_end.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +6 -2
- package/src/renderers/shaders/ShaderChunk/lights_pars_begin.glsl.js +2 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +152 -59
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/premultiplied_alpha_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +221 -190
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +12 -2
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk.js +5 -3
- package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +4 -1
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +1 -2
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -9
- package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/shadow.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +4 -6
- package/src/renderers/shaders/ShaderLib.js +7 -6
- package/src/renderers/shaders/UniformsLib.js +8 -5
- package/src/renderers/shaders/UniformsUtils.js +52 -9
- package/src/renderers/webgl/WebGLAnimation.js +2 -1
- package/src/renderers/webgl/WebGLBackground.js +15 -15
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLCapabilities.js +11 -5
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +24 -13
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +270 -0
- package/src/renderers/webgl/WebGLProgram.js +63 -122
- package/src/renderers/webgl/WebGLPrograms.js +65 -52
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShadowMap.js +191 -26
- package/src/renderers/webgl/WebGLState.js +79 -40
- package/src/renderers/webgl/WebGLTextures.js +234 -68
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +24 -3
- package/src/renderers/webgl/WebGLUtils.js +8 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +438 -235
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +339 -84
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +53 -19
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +25 -0
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +229 -11
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +237 -72
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +56 -27
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +8 -3
- package/src/renderers/webgpu/WebGPUBackend.js +403 -253
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +5 -3
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +491 -123
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +108 -34
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +360 -201
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +17 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +111 -54
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +155 -205
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +407 -149
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +36 -13
- package/src/renderers/webgpu/utils/WebGPUUtils.js +55 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +45 -29
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +5 -4
- package/src/textures/Texture.js +19 -7
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +344 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
- package/examples/jsm/materials/MeshGouraudMaterial.js +0 -434
- package/examples/jsm/materials/MeshPostProcessingMaterial.js +0 -167
- package/examples/jsm/shaders/GodRaysShader.js +0 -333
- package/src/nodes/accessors/SceneNode.js +0 -144
- package/src/nodes/code/ScriptableNode.js +0 -726
- package/src/nodes/code/ScriptableValueNode.js +0 -253
- package/src/nodes/display/PosterizeNode.js +0 -65
- package/src/nodes/functions/BSDF/DFGApprox.js +0 -30
- package/src/nodes/utils/RemapNode.js +0 -125
- package/src/nodes/utils/SpriteSheetUVNode.js +0 -90
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
import { LightShadow } from './LightShadow.js';
|
|
2
2
|
import { PerspectiveCamera } from '../cameras/PerspectiveCamera.js';
|
|
3
|
-
import { Matrix4 } from '../math/Matrix4.js';
|
|
4
|
-
import { Vector2 } from '../math/Vector2.js';
|
|
5
|
-
import { Vector3 } from '../math/Vector3.js';
|
|
6
|
-
import { Vector4 } from '../math/Vector4.js';
|
|
7
|
-
|
|
8
|
-
const _projScreenMatrix = /*@__PURE__*/ new Matrix4();
|
|
9
|
-
const _lightPositionWorld = /*@__PURE__*/ new Vector3();
|
|
10
|
-
const _lookTarget = /*@__PURE__*/ new Vector3();
|
|
11
3
|
|
|
12
4
|
/**
|
|
13
5
|
* Represents the shadow configuration of point lights.
|
|
@@ -32,84 +24,6 @@ class PointLightShadow extends LightShadow {
|
|
|
32
24
|
*/
|
|
33
25
|
this.isPointLightShadow = true;
|
|
34
26
|
|
|
35
|
-
this._frameExtents = new Vector2( 4, 2 );
|
|
36
|
-
|
|
37
|
-
this._viewportCount = 6;
|
|
38
|
-
|
|
39
|
-
this._viewports = [
|
|
40
|
-
// These viewports map a cube-map onto a 2D texture with the
|
|
41
|
-
// following orientation:
|
|
42
|
-
//
|
|
43
|
-
// xzXZ
|
|
44
|
-
// y Y
|
|
45
|
-
//
|
|
46
|
-
// X - Positive x direction
|
|
47
|
-
// x - Negative x direction
|
|
48
|
-
// Y - Positive y direction
|
|
49
|
-
// y - Negative y direction
|
|
50
|
-
// Z - Positive z direction
|
|
51
|
-
// z - Negative z direction
|
|
52
|
-
|
|
53
|
-
// positive X
|
|
54
|
-
new Vector4( 2, 1, 1, 1 ),
|
|
55
|
-
// negative X
|
|
56
|
-
new Vector4( 0, 1, 1, 1 ),
|
|
57
|
-
// positive Z
|
|
58
|
-
new Vector4( 3, 1, 1, 1 ),
|
|
59
|
-
// negative Z
|
|
60
|
-
new Vector4( 1, 1, 1, 1 ),
|
|
61
|
-
// positive Y
|
|
62
|
-
new Vector4( 3, 0, 1, 1 ),
|
|
63
|
-
// negative Y
|
|
64
|
-
new Vector4( 1, 0, 1, 1 )
|
|
65
|
-
];
|
|
66
|
-
|
|
67
|
-
this._cubeDirections = [
|
|
68
|
-
new Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),
|
|
69
|
-
new Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )
|
|
70
|
-
];
|
|
71
|
-
|
|
72
|
-
this._cubeUps = [
|
|
73
|
-
new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),
|
|
74
|
-
new Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ), new Vector3( 0, 0, - 1 )
|
|
75
|
-
];
|
|
76
|
-
|
|
77
|
-
}
|
|
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
|
-
*/
|
|
85
|
-
updateMatrices( light, viewportIndex = 0 ) {
|
|
86
|
-
|
|
87
|
-
const camera = this.camera;
|
|
88
|
-
const shadowMatrix = this.matrix;
|
|
89
|
-
|
|
90
|
-
const far = light.distance || camera.far;
|
|
91
|
-
|
|
92
|
-
if ( far !== camera.far ) {
|
|
93
|
-
|
|
94
|
-
camera.far = far;
|
|
95
|
-
camera.updateProjectionMatrix();
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );
|
|
100
|
-
camera.position.copy( _lightPositionWorld );
|
|
101
|
-
|
|
102
|
-
_lookTarget.copy( camera.position );
|
|
103
|
-
_lookTarget.add( this._cubeDirections[ viewportIndex ] );
|
|
104
|
-
camera.up.copy( this._cubeUps[ viewportIndex ] );
|
|
105
|
-
camera.lookAt( _lookTarget );
|
|
106
|
-
camera.updateMatrixWorld();
|
|
107
|
-
|
|
108
|
-
shadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );
|
|
109
|
-
|
|
110
|
-
_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );
|
|
111
|
-
this._frustum.setFromProjectionMatrix( _projScreenMatrix, camera.coordinateSystem, camera.reversedDepth );
|
|
112
|
-
|
|
113
27
|
}
|
|
114
28
|
|
|
115
29
|
}
|
package/src/lights/SpotLight.js
CHANGED
|
@@ -147,6 +147,8 @@ class SpotLight extends Light {
|
|
|
147
147
|
|
|
148
148
|
dispose() {
|
|
149
149
|
|
|
150
|
+
super.dispose();
|
|
151
|
+
|
|
150
152
|
this.shadow.dispose();
|
|
151
153
|
|
|
152
154
|
}
|
|
@@ -161,13 +163,32 @@ class SpotLight extends Light {
|
|
|
161
163
|
this.decay = source.decay;
|
|
162
164
|
|
|
163
165
|
this.target = source.target.clone();
|
|
164
|
-
|
|
166
|
+
this.map = source.map;
|
|
165
167
|
this.shadow = source.shadow.clone();
|
|
166
168
|
|
|
167
169
|
return this;
|
|
168
170
|
|
|
169
171
|
}
|
|
170
172
|
|
|
173
|
+
toJSON( meta ) {
|
|
174
|
+
|
|
175
|
+
const data = super.toJSON( meta );
|
|
176
|
+
|
|
177
|
+
data.object.distance = this.distance;
|
|
178
|
+
data.object.angle = this.angle;
|
|
179
|
+
data.object.decay = this.decay;
|
|
180
|
+
data.object.penumbra = this.penumbra;
|
|
181
|
+
|
|
182
|
+
data.object.target = this.target.uuid;
|
|
183
|
+
|
|
184
|
+
if ( this.map && this.map.isTexture ) data.object.map = this.map.toJSON( meta ).uuid;
|
|
185
|
+
|
|
186
|
+
data.object.shadow = this.shadow.toJSON();
|
|
187
|
+
|
|
188
|
+
return data;
|
|
189
|
+
|
|
190
|
+
}
|
|
191
|
+
|
|
171
192
|
}
|
|
172
193
|
|
|
173
194
|
export { SpotLight };
|
|
@@ -22,7 +22,8 @@ class IESSpotLight extends SpotLight {
|
|
|
22
22
|
super( color, intensity, distance, angle, penumbra, decay );
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* The IES map. It's a lookup table that stores normalized attenuation factors
|
|
26
|
+
* (0.0 to 1.0) that represent the light's intensity at a specific angle.
|
|
26
27
|
*
|
|
27
28
|
* @type {?Texture}
|
|
28
29
|
* @default null
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnimationClip } from '../animation/AnimationClip.js';
|
|
2
2
|
import { FileLoader } from './FileLoader.js';
|
|
3
3
|
import { Loader } from './Loader.js';
|
|
4
|
+
import { error } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Class for loading animation clips in the JSON format. The files are internally
|
|
@@ -57,7 +58,7 @@ class AnimationLoader extends Loader {
|
|
|
57
58
|
|
|
58
59
|
} else {
|
|
59
60
|
|
|
60
|
-
|
|
61
|
+
error( e );
|
|
61
62
|
|
|
62
63
|
}
|
|
63
64
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AudioContext } from '../audio/AudioContext.js';
|
|
2
2
|
import { FileLoader } from './FileLoader.js';
|
|
3
3
|
import { Loader } from './Loader.js';
|
|
4
|
+
import { error } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Class for loading audio buffers. Audios are internally
|
|
@@ -59,11 +60,21 @@ class AudioLoader extends Loader {
|
|
|
59
60
|
const bufferCopy = buffer.slice( 0 );
|
|
60
61
|
|
|
61
62
|
const context = AudioContext.getContext();
|
|
63
|
+
|
|
64
|
+
const decodeUrl = url + '#decode';
|
|
65
|
+
scope.manager.itemStart( decodeUrl ); // prevent loading manager from completing too early, see #33378
|
|
66
|
+
|
|
62
67
|
context.decodeAudioData( bufferCopy, function ( audioBuffer ) {
|
|
63
68
|
|
|
64
69
|
onLoad( audioBuffer );
|
|
70
|
+
scope.manager.itemEnd( decodeUrl );
|
|
71
|
+
|
|
72
|
+
} ).catch( function ( e ) {
|
|
73
|
+
|
|
74
|
+
handleError( e );
|
|
75
|
+
scope.manager.itemEnd( decodeUrl );
|
|
65
76
|
|
|
66
|
-
} )
|
|
77
|
+
} );
|
|
67
78
|
|
|
68
79
|
} catch ( e ) {
|
|
69
80
|
|
|
@@ -81,7 +92,7 @@ class AudioLoader extends Loader {
|
|
|
81
92
|
|
|
82
93
|
} else {
|
|
83
94
|
|
|
84
|
-
|
|
95
|
+
error( e );
|
|
85
96
|
|
|
86
97
|
}
|
|
87
98
|
|
|
@@ -7,7 +7,7 @@ import { InstancedBufferGeometry } from '../core/InstancedBufferGeometry.js';
|
|
|
7
7
|
import { InstancedBufferAttribute } from '../core/InstancedBufferAttribute.js';
|
|
8
8
|
import { InterleavedBufferAttribute } from '../core/InterleavedBufferAttribute.js';
|
|
9
9
|
import { InterleavedBuffer } from '../core/InterleavedBuffer.js';
|
|
10
|
-
import { getTypedArray } from '../utils.js';
|
|
10
|
+
import { getTypedArray, error } from '../utils.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Class for loading geometries. The files are internally
|
|
@@ -67,7 +67,7 @@ class BufferGeometryLoader extends Loader {
|
|
|
67
67
|
|
|
68
68
|
} else {
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
error( e );
|
|
71
71
|
|
|
72
72
|
}
|
|
73
73
|
|
package/src/loaders/Cache.js
CHANGED
|
@@ -35,7 +35,9 @@ const Cache = {
|
|
|
35
35
|
|
|
36
36
|
if ( this.enabled === false ) return;
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
if ( isBlobURL( key ) ) return;
|
|
39
|
+
|
|
40
|
+
// log( 'Cache', 'Adding key:', key );
|
|
39
41
|
|
|
40
42
|
this.files[ key ] = file;
|
|
41
43
|
|
|
@@ -52,7 +54,9 @@ const Cache = {
|
|
|
52
54
|
|
|
53
55
|
if ( this.enabled === false ) return;
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
if ( isBlobURL( key ) ) return;
|
|
58
|
+
|
|
59
|
+
// log( 'Cache', 'Checking key:', key );
|
|
56
60
|
|
|
57
61
|
return this.files[ key ];
|
|
58
62
|
|
|
@@ -83,5 +87,29 @@ const Cache = {
|
|
|
83
87
|
|
|
84
88
|
};
|
|
85
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Returns true if the given cache key contains the blob: scheme.
|
|
92
|
+
*
|
|
93
|
+
* @private
|
|
94
|
+
* @param {string} key - The cache key.
|
|
95
|
+
* @return {boolean} Whether the given cache key contains the blob: scheme or not.
|
|
96
|
+
*/
|
|
97
|
+
function isBlobURL( key ) {
|
|
98
|
+
|
|
99
|
+
try {
|
|
100
|
+
|
|
101
|
+
const urlString = key.slice( key.indexOf( ':' ) + 1 ); // remove type identifier
|
|
102
|
+
|
|
103
|
+
const url = new URL( urlString );
|
|
104
|
+
return url.protocol === 'blob:';
|
|
105
|
+
|
|
106
|
+
} catch ( e ) {
|
|
107
|
+
|
|
108
|
+
// If the string is not a valid URL, it throws an error
|
|
109
|
+
return false;
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
86
114
|
|
|
87
115
|
export { Cache };
|
|
@@ -2,6 +2,7 @@ import { LinearFilter, LinearMipmapLinearFilter, ClampToEdgeWrapping } from '../
|
|
|
2
2
|
import { FileLoader } from './FileLoader.js';
|
|
3
3
|
import { DataTexture } from '../textures/DataTexture.js';
|
|
4
4
|
import { Loader } from './Loader.js';
|
|
5
|
+
import { error } from '../utils.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Abstract base class for loading binary texture formats RGBE, EXR or TGA.
|
|
@@ -57,19 +58,20 @@ class DataTextureLoader extends Loader {
|
|
|
57
58
|
|
|
58
59
|
texData = scope.parse( buffer );
|
|
59
60
|
|
|
60
|
-
} catch (
|
|
61
|
+
} catch ( e ) {
|
|
61
62
|
|
|
62
63
|
if ( onError !== undefined ) {
|
|
63
64
|
|
|
64
|
-
onError(
|
|
65
|
+
onError( e );
|
|
65
66
|
|
|
66
67
|
} else {
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
return;
|
|
69
|
+
error( e );
|
|
70
70
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
+
return;
|
|
74
|
+
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
if ( texData.image !== undefined ) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Cache } from './Cache.js';
|
|
2
2
|
import { Loader } from './Loader.js';
|
|
3
|
+
import { warn } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
const loading = {};
|
|
5
6
|
|
|
@@ -42,7 +43,7 @@ class FileLoader extends Loader {
|
|
|
42
43
|
|
|
43
44
|
/**
|
|
44
45
|
* The expected mime type. Valid values can be found
|
|
45
|
-
* [here]
|
|
46
|
+
* [here](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#mimetype)
|
|
46
47
|
*
|
|
47
48
|
* @type {string}
|
|
48
49
|
*/
|
|
@@ -73,7 +74,6 @@ class FileLoader extends Loader {
|
|
|
73
74
|
* @param {function(any)} onLoad - Executed when the loading process has been finished.
|
|
74
75
|
* @param {onProgressCallback} [onProgress] - Executed while the loading is in progress.
|
|
75
76
|
* @param {onErrorCallback} [onError] - Executed when errors occur.
|
|
76
|
-
* @return {any|undefined} The cached resource if available.
|
|
77
77
|
*/
|
|
78
78
|
load( url, onLoad, onProgress, onError ) {
|
|
79
79
|
|
|
@@ -97,7 +97,7 @@ class FileLoader extends Loader {
|
|
|
97
97
|
|
|
98
98
|
}, 0 );
|
|
99
99
|
|
|
100
|
-
return
|
|
100
|
+
return;
|
|
101
101
|
|
|
102
102
|
}
|
|
103
103
|
|
|
@@ -148,7 +148,7 @@ class FileLoader extends Loader {
|
|
|
148
148
|
|
|
149
149
|
if ( response.status === 0 ) {
|
|
150
150
|
|
|
151
|
-
|
|
151
|
+
warn( 'FileLoader: HTTP Status 0 received.' );
|
|
152
152
|
|
|
153
153
|
}
|
|
154
154
|
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { Cache } from './Cache.js';
|
|
2
2
|
import { Loader } from './Loader.js';
|
|
3
|
+
import { warn } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
const _errorMap = new WeakMap();
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
|
-
* A loader for loading images as an [ImageBitmap]
|
|
8
|
+
* A loader for loading images as an [ImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap).
|
|
8
9
|
* An `ImageBitmap` provides an asynchronous and resource efficient pathway to prepare
|
|
9
10
|
* textures for rendering.
|
|
10
11
|
*
|
|
11
12
|
* Note that {@link Texture#flipY} and {@link Texture#premultiplyAlpha} are ignored with image bitmaps.
|
|
12
|
-
*
|
|
13
|
+
* These options need to be configured via {@link ImageBitmapLoader#setOptions} prior to loading,
|
|
14
|
+
* unlike regular images which can be configured on the Texture to set these options on GPU upload instead.
|
|
13
15
|
*
|
|
14
|
-
*
|
|
16
|
+
* To match the default behaviour of {@link Texture}, the following options are needed:
|
|
15
17
|
*
|
|
16
|
-
*
|
|
18
|
+
* ```js
|
|
19
|
+
* { imageOrientation: 'flipY', premultiplyAlpha: 'none' }
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Also note that unlike {@link FileLoader}, this loader will only avoid multiple concurrent requests to the same URL if {@link Cache} is enabled.
|
|
17
23
|
*
|
|
18
24
|
* ```js
|
|
19
25
|
* const loader = new THREE.ImageBitmapLoader();
|
|
@@ -48,13 +54,13 @@ class ImageBitmapLoader extends Loader {
|
|
|
48
54
|
|
|
49
55
|
if ( typeof createImageBitmap === 'undefined' ) {
|
|
50
56
|
|
|
51
|
-
|
|
57
|
+
warn( 'ImageBitmapLoader: createImageBitmap() not supported.' );
|
|
52
58
|
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
if ( typeof fetch === 'undefined' ) {
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
warn( 'ImageBitmapLoader: fetch() not supported.' );
|
|
58
64
|
|
|
59
65
|
}
|
|
60
66
|
|
|
@@ -78,7 +84,10 @@ class ImageBitmapLoader extends Loader {
|
|
|
78
84
|
|
|
79
85
|
/**
|
|
80
86
|
* Sets the given loader options. The structure of the object must match the `options` parameter of
|
|
81
|
-
* [createImageBitmap]
|
|
87
|
+
* [createImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap).
|
|
88
|
+
*
|
|
89
|
+
* Note: When caching is enabled, the cache key is based on the URL only. Loading the same URL with
|
|
90
|
+
* different options will return the cached result of the first request.
|
|
82
91
|
*
|
|
83
92
|
* @param {Object} options - The loader options to set.
|
|
84
93
|
* @return {ImageBitmapLoader} A reference to this image bitmap loader.
|
|
@@ -98,7 +107,6 @@ class ImageBitmapLoader extends Loader {
|
|
|
98
107
|
* @param {function(ImageBitmap)} onLoad - Executed when the loading process has been finished.
|
|
99
108
|
* @param {onProgressCallback} onProgress - Unsupported in this loader.
|
|
100
109
|
* @param {onErrorCallback} onError - Executed when errors occur.
|
|
101
|
-
* @return {ImageBitmap|undefined} The image bitmap.
|
|
102
110
|
*/
|
|
103
111
|
load( url, onLoad, onProgress, onError ) {
|
|
104
112
|
|
|
@@ -136,8 +144,6 @@ class ImageBitmapLoader extends Loader {
|
|
|
136
144
|
|
|
137
145
|
scope.manager.itemEnd( url );
|
|
138
146
|
|
|
139
|
-
return imageBitmap;
|
|
140
|
-
|
|
141
147
|
}
|
|
142
148
|
|
|
143
149
|
} );
|
|
@@ -155,7 +161,7 @@ class ImageBitmapLoader extends Loader {
|
|
|
155
161
|
|
|
156
162
|
}, 0 );
|
|
157
163
|
|
|
158
|
-
return
|
|
164
|
+
return;
|
|
159
165
|
|
|
160
166
|
}
|
|
161
167
|
|
|
@@ -180,8 +186,6 @@ class ImageBitmapLoader extends Loader {
|
|
|
180
186
|
|
|
181
187
|
scope.manager.itemEnd( url );
|
|
182
188
|
|
|
183
|
-
return imageBitmap;
|
|
184
|
-
|
|
185
189
|
} ).catch( function ( e ) {
|
|
186
190
|
|
|
187
191
|
if ( onError ) onError( e );
|
|
@@ -13,7 +13,7 @@ const _loading = new WeakMap();
|
|
|
13
13
|
* ```
|
|
14
14
|
* Please note that `ImageLoader` has dropped support for progress
|
|
15
15
|
* events in `r84`. For an `ImageLoader` that supports progress events, see
|
|
16
|
-
* [this thread]
|
|
16
|
+
* [this thread](https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639).
|
|
17
17
|
*
|
|
18
18
|
* @augments Loader
|
|
19
19
|
*/
|
package/src/loaders/Loader.js
CHANGED
|
@@ -54,13 +54,19 @@ class Loader {
|
|
|
54
54
|
this.resourcePath = '';
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
* The [request header]
|
|
57
|
+
* The [request header](https://developer.mozilla.org/en-US/docs/Glossary/Request_header)
|
|
58
58
|
* used in HTTP request.
|
|
59
59
|
*
|
|
60
60
|
* @type {Object<string, any>}
|
|
61
61
|
*/
|
|
62
62
|
this.requestHeader = {};
|
|
63
63
|
|
|
64
|
+
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
65
|
+
|
|
66
|
+
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
64
70
|
}
|
|
65
71
|
|
|
66
72
|
/**
|
|
@@ -119,7 +125,7 @@ class Loader {
|
|
|
119
125
|
|
|
120
126
|
/**
|
|
121
127
|
* Whether the XMLHttpRequest uses credentials such as cookies, authorization
|
|
122
|
-
* headers or TLS client certificates, see [XMLHttpRequest.withCredentials]
|
|
128
|
+
* headers or TLS client certificates, see [XMLHttpRequest.withCredentials](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials).
|
|
123
129
|
*
|
|
124
130
|
* Note: This setting has no effect if you are loading files locally or from the same domain.
|
|
125
131
|
*
|
|
@@ -162,7 +168,7 @@ class Loader {
|
|
|
162
168
|
/**
|
|
163
169
|
* Sets the given request header.
|
|
164
170
|
*
|
|
165
|
-
* @param {Object} requestHeader - A [request header]
|
|
171
|
+
* @param {Object} requestHeader - A [request header](https://developer.mozilla.org/en-US/docs/Glossary/Request_header)
|
|
166
172
|
* for configuring the HTTP request.
|
|
167
173
|
* @return {Loader} A reference to this instance.
|
|
168
174
|
*/
|
|
@@ -72,9 +72,10 @@ class LoadingManager {
|
|
|
72
72
|
/**
|
|
73
73
|
* Used for aborting ongoing requests in loaders using this manager.
|
|
74
74
|
*
|
|
75
|
-
* @
|
|
75
|
+
* @private
|
|
76
|
+
* @type {AbortController | null}
|
|
76
77
|
*/
|
|
77
|
-
this.
|
|
78
|
+
this._abortController = null;
|
|
78
79
|
|
|
79
80
|
/**
|
|
80
81
|
* This should be called by any loader using the manager when the loader
|
|
@@ -285,8 +286,9 @@ class LoadingManager {
|
|
|
285
286
|
*/
|
|
286
287
|
this.abort = function () {
|
|
287
288
|
|
|
289
|
+
|
|
288
290
|
this.abortController.abort();
|
|
289
|
-
this.
|
|
291
|
+
this._abortController = null;
|
|
290
292
|
|
|
291
293
|
return this;
|
|
292
294
|
|
|
@@ -294,6 +296,26 @@ class LoadingManager {
|
|
|
294
296
|
|
|
295
297
|
}
|
|
296
298
|
|
|
299
|
+
// TODO: Revert this back to a single member variable once this issue has been fixed
|
|
300
|
+
// https://github.com/cloudflare/workerd/issues/3657
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Used for aborting ongoing requests in loaders using this manager.
|
|
304
|
+
*
|
|
305
|
+
* @type {AbortController}
|
|
306
|
+
*/
|
|
307
|
+
get abortController() {
|
|
308
|
+
|
|
309
|
+
if ( ! this._abortController ) {
|
|
310
|
+
|
|
311
|
+
this._abortController = new AbortController();
|
|
312
|
+
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return this._abortController;
|
|
316
|
+
|
|
317
|
+
}
|
|
318
|
+
|
|
297
319
|
}
|
|
298
320
|
|
|
299
321
|
/**
|
|
@@ -26,9 +26,10 @@ import {
|
|
|
26
26
|
LineBasicMaterial,
|
|
27
27
|
Material,
|
|
28
28
|
} from '../materials/Materials.js';
|
|
29
|
+
import { error, warn } from '../utils.js';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
|
-
* Class for loading
|
|
32
|
+
* Class for loading materials. The files are internally
|
|
32
33
|
* loaded via {@link FileLoader}.
|
|
33
34
|
*
|
|
34
35
|
* ```js
|
|
@@ -89,7 +90,7 @@ class MaterialLoader extends Loader {
|
|
|
89
90
|
|
|
90
91
|
} else {
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
error( e );
|
|
93
94
|
|
|
94
95
|
}
|
|
95
96
|
|
|
@@ -115,7 +116,7 @@ class MaterialLoader extends Loader {
|
|
|
115
116
|
|
|
116
117
|
if ( textures[ name ] === undefined ) {
|
|
117
118
|
|
|
118
|
-
|
|
119
|
+
warn( 'MaterialLoader: Undefined texture', name );
|
|
119
120
|
|
|
120
121
|
}
|
|
121
122
|
|
|
@@ -202,6 +203,7 @@ class MaterialLoader extends Loader {
|
|
|
202
203
|
if ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;
|
|
203
204
|
if ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;
|
|
204
205
|
if ( json.forceSinglePass !== undefined ) material.forceSinglePass = json.forceSinglePass;
|
|
206
|
+
if ( json.allowOverride !== undefined ) material.allowOverride = json.allowOverride;
|
|
205
207
|
|
|
206
208
|
if ( json.visible !== undefined ) material.visible = json.visible;
|
|
207
209
|
|
|
@@ -213,7 +215,7 @@ class MaterialLoader extends Loader {
|
|
|
213
215
|
|
|
214
216
|
if ( typeof json.vertexColors === 'number' ) {
|
|
215
217
|
|
|
216
|
-
material.vertexColors =
|
|
218
|
+
material.vertexColors = json.vertexColors > 0;
|
|
217
219
|
|
|
218
220
|
} else {
|
|
219
221
|
|