super-three 0.181.0 → 0.185.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 +21332 -19201
- package/build/three.core.js +20908 -19853
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +1947 -862
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +37 -16
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +33628 -25197
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +33394 -25000
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/jsm/Addons.js +14 -3
- package/examples/jsm/animation/CCDIKSolver.js +7 -3
- package/examples/jsm/controls/ArcballControls.js +13 -6
- package/examples/jsm/controls/DragControls.js +2 -2
- package/examples/jsm/controls/FirstPersonControls.js +127 -86
- package/examples/jsm/controls/FlyControls.js +4 -0
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +111 -8
- package/examples/jsm/controls/TrackballControls.js +8 -8
- package/examples/jsm/controls/TransformControls.js +102 -17
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/csm/CSMFrustum.js +31 -6
- package/examples/jsm/csm/CSMShadowNode.js +10 -3
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/effects/AsciiEffect.js +14 -1
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/DRACOExporter.js +27 -6
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +266 -21
- package/examples/jsm/exporters/PLYExporter.js +286 -73
- package/examples/jsm/exporters/USDZExporter.js +353 -99
- package/examples/jsm/generators/CityGenerator.js +346 -0
- package/examples/jsm/generators/ForestGenerator.js +347 -0
- package/examples/jsm/generators/TerrainGenerator.js +504 -0
- package/examples/jsm/generators/TreeGenerator.js +377 -0
- package/examples/jsm/generators/city/SidewalkGenerator.js +253 -0
- package/examples/jsm/generators/city/SkyscraperGenerator.js +1357 -0
- package/examples/jsm/geometries/DecalGeometry.js +1 -1
- package/examples/jsm/geometries/LoftGeometry.js +355 -0
- package/examples/jsm/geometries/TextGeometry.js +18 -0
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +221 -0
- package/examples/jsm/helpers/LightProbeHelper.js +5 -4
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +83 -14
- package/examples/jsm/inspector/Extension.js +13 -0
- package/examples/jsm/inspector/Inspector.js +244 -91
- package/examples/jsm/inspector/RendererInspector.js +165 -39
- 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 +241 -25
- package/examples/jsm/inspector/tabs/Memory.js +136 -0
- package/examples/jsm/inspector/tabs/Parameters.js +115 -7
- package/examples/jsm/inspector/tabs/Performance.js +24 -9
- package/examples/jsm/inspector/tabs/Settings.js +306 -0
- package/examples/jsm/inspector/tabs/Timeline.js +1696 -0
- package/examples/jsm/inspector/tabs/Viewer.js +723 -9
- package/examples/jsm/inspector/ui/Graph.js +162 -25
- package/examples/jsm/inspector/ui/Item.js +92 -13
- package/examples/jsm/inspector/ui/List.js +2 -2
- package/examples/jsm/inspector/ui/Profiler.js +1991 -44
- package/examples/jsm/inspector/ui/Style.js +1943 -543
- package/examples/jsm/inspector/ui/Tab.js +226 -5
- package/examples/jsm/inspector/ui/Values.js +126 -8
- package/examples/jsm/inspector/ui/utils.js +143 -10
- package/examples/jsm/interaction/InteractionManager.js +226 -0
- package/examples/jsm/libs/basis/README.md +0 -1
- package/examples/jsm/libs/demuxer_mp4.js +3 -3
- package/examples/jsm/libs/draco/README.md +0 -1
- package/examples/jsm/libs/meshopt_clusterizer.module.js +421 -0
- package/examples/jsm/libs/meshopt_decoder.module.js +9 -8
- package/examples/jsm/libs/meshopt_simplifier.module.js +627 -0
- package/examples/jsm/libs/mikktspace.module.js +34 -9
- package/examples/jsm/lighting/ClusteredLighting.js +55 -0
- package/examples/jsm/lighting/DynamicLighting.js +82 -0
- package/examples/jsm/lighting/LightProbeGrid.js +681 -0
- package/examples/jsm/lines/LineMaterial.js +45 -16
- package/examples/jsm/lines/LineSegments2.js +8 -0
- package/examples/jsm/lines/webgpu/LineSegments2.js +8 -0
- package/examples/jsm/loaders/3DMLoader.js +6 -5
- package/examples/jsm/loaders/3MFLoader.js +2 -2
- package/examples/jsm/loaders/AMFLoader.js +2 -2
- package/examples/jsm/loaders/ColladaLoader.js +24 -4026
- package/examples/jsm/loaders/DRACOLoader.js +51 -18
- package/examples/jsm/loaders/EXRLoader.js +701 -90
- package/examples/jsm/loaders/FBXLoader.js +235 -37
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +146 -178
- package/examples/jsm/loaders/HDRLoader.js +7 -30
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +58 -17
- package/examples/jsm/loaders/LDrawLoader.js +49 -58
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
- package/examples/jsm/loaders/LWOLoader.js +11 -39
- package/examples/jsm/loaders/LottieLoader.js +1 -1
- package/examples/jsm/loaders/MaterialXLoader.js +31 -9
- package/examples/jsm/loaders/NRRDLoader.js +5 -5
- package/examples/jsm/loaders/PCDLoader.js +11 -9
- package/examples/jsm/loaders/PLYLoader.js +218 -55
- package/examples/jsm/loaders/SVGLoader.js +549 -497
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/TTFLoader.js +1 -1
- package/examples/jsm/loaders/USDLoader.js +127 -43
- package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +80 -3
- 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/usd/USDAParser.js +504 -344
- package/examples/jsm/loaders/usd/USDCParser.js +1867 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4627 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +2 -2
- package/examples/jsm/materials/WoodNodeMaterial.js +11 -11
- package/examples/jsm/math/Octree.js +131 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +2 -0
- package/examples/jsm/misc/RollerCoaster.js +42 -4
- package/examples/jsm/misc/TileCreasedNormalsPlugin.js +270 -0
- package/examples/jsm/misc/Volume.js +2 -3
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/modifiers/TessellateModifier.js +1 -1
- package/examples/jsm/objects/GroundedSkybox.js +1 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Reflector.js +72 -25
- package/examples/jsm/objects/Sky.js +90 -6
- package/examples/jsm/objects/SkyMesh.js +150 -16
- package/examples/jsm/objects/Water.js +4 -3
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/Water2Mesh.js +1 -1
- package/examples/jsm/objects/WaterMesh.js +5 -7
- package/examples/jsm/physics/AmmoPhysics.js +27 -15
- package/examples/jsm/physics/JoltPhysics.js +10 -6
- package/examples/jsm/physics/RapierPhysics.js +36 -7
- package/examples/jsm/postprocessing/EffectComposer.js +7 -5
- 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/UnrealBloomPass.js +48 -18
- package/examples/jsm/renderers/CSS3DRenderer.js +1 -1
- package/examples/jsm/renderers/Projector.js +246 -28
- package/examples/jsm/renderers/SVGRenderer.js +174 -60
- package/examples/jsm/shaders/GTAOShader.js +19 -6
- package/examples/jsm/shaders/HalftoneShader.js +12 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +6 -2
- package/examples/jsm/shaders/SAOShader.js +17 -4
- package/examples/jsm/shaders/SSAOShader.js +11 -1
- package/examples/jsm/shaders/SSRShader.js +6 -5
- package/examples/jsm/shaders/UnpackDepthRGBAShader.js +2 -4
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/shaders/VolumeShader.js +31 -44
- package/examples/jsm/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +65 -8
- package/examples/jsm/transpiler/Linker.js +1 -1
- package/examples/jsm/transpiler/ShaderToyDecoder.js +2 -0
- package/examples/jsm/transpiler/TSLEncoder.js +46 -3
- package/examples/jsm/transpiler/TranspilerUtils.js +3 -3
- package/examples/jsm/transpiler/WGSLEncoder.js +27 -0
- package/examples/jsm/tsl/WebGLNodesHandler.js +605 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +11 -1
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/BilateralBlurNode.js +374 -0
- package/examples/jsm/tsl/display/BloomNode.js +75 -25
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +3 -36
- package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +3 -3
- 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 +13 -14
- package/examples/jsm/tsl/display/GTAONode.js +40 -17
- package/examples/jsm/tsl/display/GaussianBlurNode.js +21 -2
- package/examples/jsm/tsl/display/GodraysNode.js +615 -0
- package/examples/jsm/tsl/display/ImportanceSampledEnvironment.js +560 -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 +69 -19
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +9 -8
- package/examples/jsm/tsl/display/RGBShiftNode.js +2 -2
- package/examples/jsm/tsl/display/RecurrentDenoiseNode.js +912 -0
- 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 +15 -27
- package/examples/jsm/tsl/display/SSGINode.js +96 -62
- package/examples/jsm/tsl/display/SSRNode.js +831 -134
- package/examples/jsm/tsl/display/SSSNode.js +8 -6
- 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 +315 -126
- package/examples/jsm/tsl/display/TemporalReprojectNode.js +1023 -0
- package/examples/jsm/tsl/display/TransitionNode.js +1 -1
- package/examples/jsm/tsl/display/depthAwareBlend.js +80 -0
- package/examples/jsm/tsl/display/radialBlur.js +68 -0
- package/examples/jsm/tsl/lighting/ClusteredLightsNode.js +622 -0
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +300 -0
- 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/tsl/math/curlNoise.js +107 -0
- package/examples/jsm/tsl/shadows/TileShadowNode.js +1 -1
- package/examples/jsm/tsl/shadows/TileShadowNodeHelper.js +3 -3
- package/examples/jsm/tsl/utils/GroundedSkybox.js +62 -0
- package/examples/jsm/tsl/utils/RNoise.js +51 -0
- package/examples/jsm/tsl/utils/SpecularHelpers.js +325 -0
- package/examples/jsm/utils/BufferGeometryUtils.js +128 -62
- package/examples/jsm/utils/ColorUtils.js +76 -0
- package/examples/jsm/utils/GeometryCompressionUtils.js +1 -1
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/SceneOptimizer.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
- package/examples/jsm/utils/SkeletonUtils.js +14 -8
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/examples/jsm/webxr/ARButton.js +1 -1
- package/examples/jsm/webxr/WebGLXRFallback.js +89 -0
- package/examples/jsm/webxr/XRControllerModelFactory.js +2 -2
- package/examples/jsm/webxr/XRHandMeshModel.js +36 -10
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -1
- package/package.json +28 -34
- package/src/Three.Core.js +3 -1
- package/src/Three.TSL.js +35 -14
- package/src/Three.WebGPU.Nodes.js +5 -0
- package/src/Three.WebGPU.js +13 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +18 -4
- package/src/animation/AnimationClip.js +0 -139
- package/src/animation/AnimationMixer.js +6 -0
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +47 -8
- package/src/animation/PropertyBinding.js +2 -2
- 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 +1 -1
- package/src/audio/AudioContext.js +2 -2
- package/src/audio/AudioListener.js +5 -3
- package/src/cameras/Camera.js +34 -4
- package/src/cameras/CubeCamera.js +20 -0
- package/src/cameras/StereoCamera.js +5 -2
- package/src/constants.js +90 -5
- package/src/core/BufferAttribute.js +13 -1
- package/src/core/BufferGeometry.js +43 -9
- package/src/core/Clock.js +7 -0
- package/src/core/Object3D.js +69 -11
- package/src/core/Raycaster.js +3 -3
- package/src/core/RenderTarget.js +19 -6
- package/src/extras/PMREMGenerator.js +13 -22
- package/src/extras/TextureUtils.js +6 -2
- package/src/extras/core/ShapePath.js +149 -160
- package/src/extras/curves/CatmullRomCurve3.js +3 -2
- package/src/geometries/ExtrudeGeometry.js +2 -2
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/SphereGeometry.js +8 -3
- package/src/geometries/TorusGeometry.js +8 -3
- package/src/helpers/CameraHelper.js +3 -0
- package/src/helpers/DirectionalLightHelper.js +6 -1
- package/src/helpers/HemisphereLightHelper.js +5 -0
- package/src/helpers/PointLightHelper.js +3 -25
- package/src/helpers/SpotLightHelper.js +4 -1
- 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/loaders/AudioLoader.js +11 -1
- package/src/loaders/Cache.js +28 -0
- package/src/loaders/DataTextureLoader.js +75 -42
- package/src/loaders/FileLoader.js +2 -3
- package/src/loaders/ImageBitmapLoader.js +12 -9
- package/src/loaders/Loader.js +6 -0
- package/src/loaders/LoadingManager.js +5 -0
- package/src/loaders/MaterialLoader.js +37 -266
- package/src/loaders/ObjectLoader.js +48 -6
- package/src/loaders/nodes/NodeLoader.js +2 -2
- package/src/loaders/nodes/NodeObjectLoader.js +18 -0
- package/src/materials/LineBasicMaterial.js +4 -0
- package/src/materials/Material.js +198 -1
- package/src/materials/MeshBasicMaterial.js +24 -0
- package/src/materials/MeshDepthMaterial.js +10 -0
- package/src/materials/MeshDistanceMaterial.js +10 -0
- package/src/materials/MeshLambertMaterial.js +49 -1
- package/src/materials/MeshMatcapMaterial.js +25 -1
- package/src/materials/MeshNormalMaterial.js +9 -1
- package/src/materials/MeshPhongMaterial.js +49 -1
- package/src/materials/MeshPhysicalMaterial.js +38 -0
- package/src/materials/MeshStandardMaterial.js +42 -1
- package/src/materials/MeshToonMaterial.js +35 -2
- package/src/materials/PointsMaterial.js +7 -0
- package/src/materials/ShaderMaterial.js +106 -1
- package/src/materials/SpriteMaterial.js +7 -0
- package/src/materials/nodes/Line2NodeMaterial.js +380 -297
- package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +0 -9
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +3 -30
- package/src/materials/nodes/MeshSSSNodeMaterial.js +0 -13
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -15
- package/src/materials/nodes/NodeMaterial.js +153 -89
- package/src/materials/nodes/SpriteNodeMaterial.js +0 -10
- package/src/materials/nodes/manager/NodeMaterialObserver.js +234 -100
- package/src/math/Box3.js +5 -0
- package/src/math/FrustumArray.js +103 -133
- package/src/math/Interpolant.js +1 -1
- package/src/math/Line3.js +6 -5
- package/src/math/MathUtils.js +12 -12
- package/src/math/Matrix2.js +13 -9
- package/src/math/Matrix3.js +24 -9
- package/src/math/Matrix4.js +112 -74
- package/src/math/Plane.js +4 -3
- package/src/math/Quaternion.js +3 -29
- package/src/math/Sphere.js +1 -1
- package/src/math/Triangle.js +1 -1
- package/src/math/Vector2.js +13 -9
- package/src/math/Vector3.js +17 -15
- package/src/math/Vector4.js +15 -11
- package/src/math/interpolants/BezierInterpolant.js +106 -0
- package/src/nodes/Nodes.js +86 -71
- package/src/nodes/TSL.js +15 -13
- package/src/nodes/accessors/Arrays.js +5 -5
- package/src/nodes/accessors/Batch.js +108 -0
- package/src/nodes/accessors/Bitangent.js +7 -7
- package/src/nodes/accessors/BufferAttributeNode.js +120 -17
- package/src/nodes/accessors/BufferNode.js +29 -2
- package/src/nodes/accessors/Camera.js +149 -28
- package/src/nodes/accessors/ClippingNode.js +5 -5
- package/src/nodes/accessors/CubeTextureNode.js +27 -2
- package/src/nodes/accessors/Instance.js +264 -0
- package/src/nodes/accessors/MaterialNode.js +27 -3
- package/src/nodes/accessors/MaterialProperties.js +6 -8
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/{MorphNode.js → Morph.js} +99 -112
- package/src/nodes/accessors/Normal.js +24 -24
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +39 -3
- package/src/nodes/accessors/ReferenceBaseNode.js +6 -6
- package/src/nodes/accessors/ReferenceNode.js +9 -8
- package/src/nodes/accessors/ReflectVector.js +3 -3
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +47 -0
- package/src/nodes/accessors/Skinning.js +263 -0
- package/src/nodes/accessors/StorageBufferNode.js +16 -27
- package/src/nodes/accessors/StorageTexture3DNode.js +100 -0
- package/src/nodes/accessors/StorageTextureNode.js +74 -11
- package/src/nodes/accessors/Tangent.js +8 -18
- package/src/nodes/accessors/Texture3DNode.js +32 -35
- package/src/nodes/accessors/TextureNode.js +124 -25
- 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 +1 -1
- package/src/nodes/code/FunctionNode.js +4 -19
- package/src/nodes/core/ArrayNode.js +21 -2
- package/src/nodes/core/AssignNode.js +3 -3
- package/src/nodes/core/AttributeNode.js +3 -3
- package/src/nodes/core/BypassNode.js +1 -1
- package/src/nodes/core/ContextNode.js +104 -5
- package/src/nodes/core/IndexNode.js +2 -1
- package/src/nodes/core/InputNode.js +1 -1
- package/src/nodes/core/InspectorNode.js +1 -1
- package/src/nodes/core/IsolateNode.js +1 -1
- package/src/nodes/core/MRTNode.js +55 -4
- package/src/nodes/core/Node.js +151 -17
- package/src/nodes/core/NodeBuilder.js +479 -101
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +12 -4
- package/src/nodes/core/NodeUtils.js +20 -18
- package/src/nodes/core/OutputStructNode.js +13 -11
- package/src/nodes/core/OverrideContextNode.js +153 -0
- package/src/nodes/core/ParameterNode.js +4 -4
- package/src/nodes/core/PropertyNode.js +66 -4
- package/src/nodes/core/StackNode.js +91 -20
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +20 -8
- package/src/nodes/core/StructTypeNode.js +17 -23
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformGroupNode.js +36 -6
- package/src/nodes/core/UniformNode.js +21 -5
- package/src/nodes/core/VarNode.js +56 -23
- package/src/nodes/core/VaryingNode.js +14 -21
- package/src/nodes/display/BlendModes.js +1 -105
- package/src/nodes/display/BumpMapNode.js +6 -1
- package/src/nodes/display/ColorAdjustment.js +27 -9
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/FrontFacingNode.js +38 -9
- package/src/nodes/display/NormalMapNode.js +41 -6
- package/src/nodes/display/PassNode.js +157 -56
- package/src/nodes/display/PremultiplyAlphaFunctions.js +39 -0
- package/src/nodes/display/RenderOutputNode.js +19 -10
- package/src/nodes/display/ScreenNode.js +4 -2
- package/src/nodes/display/ToneMappingNode.js +1 -1
- package/src/nodes/display/ToonOutlinePassNode.js +2 -2
- package/src/nodes/display/ViewportDepthNode.js +52 -4
- package/src/nodes/display/ViewportDepthTextureNode.js +11 -15
- package/src/nodes/display/ViewportTextureNode.js +39 -11
- package/src/nodes/fog/Fog.js +18 -35
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +3 -3
- 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/PhysicalLightingModel.js +126 -45
- package/src/nodes/functions/VolumetricLightingModel.js +40 -7
- package/src/nodes/geometry/RangeNode.js +5 -3
- package/src/nodes/gpgpu/AtomicFunctionNode.js +1 -1
- package/src/nodes/gpgpu/BarrierNode.js +9 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -3
- package/src/nodes/gpgpu/ComputeNode.js +74 -48
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +2 -2
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +5 -5
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +30 -5
- package/src/nodes/lighting/IESSpotLightNode.js +40 -2
- package/src/nodes/lighting/LightingContextNode.js +10 -2
- package/src/nodes/lighting/LightsNode.js +97 -65
- package/src/nodes/lighting/PointShadowNode.js +166 -148
- package/src/nodes/lighting/ShadowFilterNode.js +74 -117
- package/src/nodes/lighting/ShadowNode.js +149 -51
- package/src/nodes/materialx/lib/mx_noise.js +2 -2
- package/src/nodes/math/BitcastNode.js +1 -1
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +6 -6
- package/src/nodes/math/MathNode.js +115 -52
- package/src/nodes/math/OperatorNode.js +24 -23
- package/src/nodes/math/PackFloatNode.js +98 -0
- package/src/nodes/math/UnpackFloatNode.js +96 -0
- package/src/nodes/parsers/GLSLNodeFunction.js +1 -1
- package/src/nodes/pmrem/PMREMNode.js +34 -3
- package/src/nodes/pmrem/PMREMUtils.js +9 -15
- package/src/nodes/tsl/TSLBase.js +1 -1
- package/src/nodes/tsl/TSLCore.js +99 -33
- package/src/nodes/utils/ArrayElementNode.js +14 -1
- package/src/nodes/utils/ConvertNode.js +1 -1
- package/src/nodes/utils/DebugNode.js +12 -12
- package/src/nodes/utils/EquirectUV.js +30 -5
- package/src/nodes/utils/EventNode.js +31 -2
- package/src/nodes/utils/FlipNode.js +1 -1
- package/src/nodes/utils/FunctionOverloadingNode.js +2 -2
- package/src/nodes/utils/JoinNode.js +3 -3
- package/src/nodes/utils/LoopNode.js +1 -1
- package/src/nodes/utils/MemberNode.js +2 -2
- package/src/nodes/utils/Packing.js +48 -5
- package/src/nodes/utils/PostProcessingUtils.js +33 -1
- package/src/nodes/utils/RTTNode.js +41 -25
- package/src/nodes/utils/ReflectorNode.js +4 -4
- package/src/nodes/utils/Remap.js +48 -0
- package/src/nodes/utils/RotateNode.js +1 -1
- package/src/nodes/utils/SampleNode.js +1 -1
- package/src/nodes/utils/SetNode.js +1 -1
- package/src/nodes/utils/SplitNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/StorageArrayElementNode.js +1 -1
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +66 -30
- package/src/objects/InstancedMesh.js +19 -3
- package/src/objects/Line.js +1 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/SkinnedMesh.js +26 -9
- package/src/renderers/WebGLRenderer.js +344 -156
- package/src/renderers/common/Animation.js +3 -3
- package/src/renderers/common/Attributes.js +15 -1
- package/src/renderers/common/Backend.js +78 -13
- package/src/renderers/common/Background.js +26 -13
- package/src/renderers/common/BindGroup.js +1 -16
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +141 -57
- package/src/renderers/common/BlendMode.js +143 -0
- package/src/renderers/common/Buffer.js +49 -0
- package/src/renderers/common/BundleGroup.js +1 -1
- package/src/renderers/common/ChainMap.js +30 -6
- package/src/renderers/common/ClippingContext.js +10 -2
- package/src/renderers/common/ComputePipeline.js +1 -1
- package/src/renderers/common/CubeRenderTarget.js +51 -7
- package/src/renderers/common/Geometries.js +29 -3
- package/src/renderers/common/Info.js +374 -4
- package/src/renderers/common/InspectorBase.js +6 -1
- package/src/renderers/common/Lighting.js +51 -19
- package/src/renderers/common/Pipelines.js +40 -7
- package/src/renderers/common/PostProcessing.js +8 -206
- 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 +16 -0
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderList.js +41 -4
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +88 -16
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +21 -5
- package/src/renderers/common/RenderPipeline.js +232 -17
- package/src/renderers/common/Renderer.js +700 -163
- package/src/renderers/common/Sampler.js +16 -48
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/Textures.js +121 -9
- package/src/renderers/common/TimestampQueryPool.js +6 -4
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +84 -1
- package/src/renderers/common/XRManager.js +377 -51
- package/src/renderers/common/extras/PMREMGenerator.js +40 -61
- package/src/renderers/common/nodes/NodeBuilderState.js +10 -2
- package/src/renderers/common/nodes/NodeLibrary.js +4 -4
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +298 -106
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +65 -0
- package/src/renderers/shaders/DFGLUTData.js +19 -34
- 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 +13 -4
- package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +0 -6
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +9 -13
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/envmap_vertex.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 +3 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -53
- package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +7 -0
- package/src/renderers/shaders/ShaderChunk/normal_vertex.glsl.js +6 -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 +225 -186
- 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 +2 -2
- 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 +3 -0
- package/src/renderers/shaders/ShaderLib/{distanceRGBA.glsl.js → distance.glsl.js} +2 -3
- 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 +7 -5
- package/src/renderers/shaders/UniformsUtils.js +27 -5
- 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 +9 -4
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +0 -32
- 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 +271 -0
- package/src/renderers/webgl/WebGLProgram.js +54 -113
- package/src/renderers/webgl/WebGLPrograms.js +74 -55
- package/src/renderers/webgl/WebGLRenderLists.js +24 -1
- package/src/renderers/webgl/WebGLRenderStates.js +13 -2
- package/src/renderers/webgl/WebGLShaderCache.js +5 -11
- package/src/renderers/webgl/WebGLShadowMap.js +188 -24
- package/src/renderers/webgl/WebGLState.js +75 -37
- package/src/renderers/webgl/WebGLTextures.js +230 -56
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUniformsGroups.js +82 -35
- package/src/renderers/webgl/WebGLUtils.js +6 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +322 -92
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +0 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +295 -66
- 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/WebGLState.js +223 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +118 -73
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +10 -10
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +9 -3
- package/src/renderers/webgpu/WebGPUBackend.js +733 -302
- package/src/renderers/webgpu/WebGPURenderer.js +2 -1
- package/src/renderers/webgpu/descriptors/GPUBindGroupDescriptor.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUBufferDescriptor.js +57 -0
- package/src/renderers/webgpu/descriptors/GPUCommandEncoderDescriptor.js +30 -0
- package/src/renderers/webgpu/descriptors/GPUComputePassDescriptor.js +38 -0
- package/src/renderers/webgpu/descriptors/GPUComputePipelineDescriptor.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUCopyExternalImageDestInfo.js +47 -0
- package/src/renderers/webgpu/descriptors/GPUCopyExternalImageSourceInfo.js +50 -0
- package/src/renderers/webgpu/descriptors/GPUExtent3D.js +51 -0
- package/src/renderers/webgpu/descriptors/GPUPipelineLayoutDescriptor.js +39 -0
- package/src/renderers/webgpu/descriptors/GPUQuerySetDescriptor.js +47 -0
- package/src/renderers/webgpu/descriptors/GPURenderBundleEncoderDescriptor.js +74 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassColorAttachment.js +72 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassDepthStencilAttachment.js +99 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassDescriptor.js +72 -0
- package/src/renderers/webgpu/descriptors/GPURenderPassTimestampWrites.js +49 -0
- package/src/renderers/webgpu/descriptors/GPURenderPipelineDescriptor.js +130 -0
- package/src/renderers/webgpu/descriptors/GPUSamplerDescriptor.js +119 -0
- package/src/renderers/webgpu/descriptors/GPUShaderModuleDescriptor.js +46 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferInfo.js +57 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyBufferLayout.js +48 -0
- package/src/renderers/webgpu/descriptors/GPUTexelCopyTextureInfo.js +61 -0
- package/src/renderers/webgpu/descriptors/GPUTextureDescriptor.js +99 -0
- package/src/renderers/webgpu/descriptors/GPUTextureViewDescriptor.js +108 -0
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +0 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +526 -93
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +1 -1
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +194 -61
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +395 -234
- package/src/renderers/webgpu/utils/WebGPUCapabilities.js +48 -0
- package/src/renderers/webgpu/utils/WebGPUConstants.js +10 -0
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +224 -91
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +228 -213
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +428 -175
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +40 -25
- package/src/renderers/webgpu/utils/WebGPUUtils.js +70 -13
- package/src/renderers/webxr/WebXRController.js +12 -0
- package/src/renderers/webxr/WebXRManager.js +4 -2
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/DepthTexture.js +1 -1
- package/src/textures/ExternalTexture.js +0 -3
- package/src/textures/HTMLTexture.js +74 -0
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +16 -5
- package/src/utils.js +280 -3
- package/examples/fonts/LICENSE +0 -13
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +0 -91
- package/examples/fonts/README.md +0 -11
- package/examples/fonts/droid/NOTICE +0 -190
- package/examples/fonts/droid/README.txt +0 -18
- package/examples/fonts/droid/droid_sans_bold.typeface.json +0 -1
- package/examples/fonts/droid/droid_sans_mono_regular.typeface.json +0 -1
- package/examples/fonts/droid/droid_sans_regular.typeface.json +0 -1
- package/examples/fonts/droid/droid_serif_bold.typeface.json +0 -1
- package/examples/fonts/droid/droid_serif_regular.typeface.json +0 -1
- package/examples/fonts/gentilis_bold.typeface.json +0 -1
- package/examples/fonts/gentilis_regular.typeface.json +0 -1
- package/examples/fonts/helvetiker_bold.typeface.json +0 -1
- package/examples/fonts/helvetiker_regular.typeface.json +0 -1
- package/examples/fonts/optimer_bold.typeface.json +0 -1
- package/examples/fonts/optimer_regular.typeface.json +0 -1
- package/examples/fonts/ttf/README.md +0 -9
- package/examples/fonts/ttf/kenpixel.ttf +0 -0
- package/examples/jsm/libs/ammo.wasm.js +0 -822
- package/examples/jsm/libs/ammo.wasm.wasm +0 -0
- package/examples/jsm/libs/draco/draco_encoder.js +0 -33
- package/examples/jsm/libs/draco/gltf/draco_encoder.js +0 -33
- package/examples/jsm/libs/lottie_canvas.module.js +0 -14849
- package/examples/jsm/libs/opentype.module.js +0 -14506
- package/examples/jsm/libs/rhino3dm/rhino3dm.js +0 -21
- package/examples/jsm/libs/rhino3dm/rhino3dm.module.js +0 -16
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/lighting/TiledLighting.js +0 -42
- 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/examples/jsm/tsl/display/AnamorphicNode.js +0 -282
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +0 -442
- package/src/nodes/accessors/BatchNode.js +0 -163
- package/src/nodes/accessors/InstanceNode.js +0 -244
- package/src/nodes/accessors/InstancedMeshNode.js +0 -50
- package/src/nodes/accessors/SceneNode.js +0 -145
- package/src/nodes/accessors/SkinningNode.js +0 -327
- 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 -71
- 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
|
@@ -212,7 +212,7 @@ class PropertyBinding {
|
|
|
212
212
|
|
|
213
213
|
if ( matches === null ) {
|
|
214
214
|
|
|
215
|
-
throw new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );
|
|
215
|
+
throw new Error( 'THREE.PropertyBinding: Cannot parse trackName: ' + trackName );
|
|
216
216
|
|
|
217
217
|
}
|
|
218
218
|
|
|
@@ -246,7 +246,7 @@ class PropertyBinding {
|
|
|
246
246
|
|
|
247
247
|
if ( results.propertyName === null || results.propertyName.length === 0 ) {
|
|
248
248
|
|
|
249
|
-
throw new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );
|
|
249
|
+
throw new Error( 'THREE.PropertyBinding: can not parse propertyName from trackName: ' + trackName );
|
|
250
250
|
|
|
251
251
|
}
|
|
252
252
|
|
|
@@ -88,7 +88,7 @@ class PropertyMixer {
|
|
|
88
88
|
this._addIndex = 4;
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
91
|
+
* Accumulated weight of the property binding.
|
|
92
92
|
*
|
|
93
93
|
* @type {number}
|
|
94
94
|
* @default 0
|
|
@@ -96,7 +96,7 @@ class PropertyMixer {
|
|
|
96
96
|
this.cumulativeWeight = 0;
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Accumulated additive weight of the property binding.
|
|
100
100
|
*
|
|
101
101
|
* @type {number}
|
|
102
102
|
* @default 0
|
|
@@ -104,7 +104,7 @@ class PropertyMixer {
|
|
|
104
104
|
this.cumulativeWeightAdditive = 0;
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
|
-
*
|
|
107
|
+
* Number of active keyframe tracks currently using this property binding.
|
|
108
108
|
*
|
|
109
109
|
* @type {number}
|
|
110
110
|
* @default 0
|
|
@@ -112,7 +112,7 @@ class PropertyMixer {
|
|
|
112
112
|
this.useCount = 0;
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
*
|
|
115
|
+
* Number of keyframe tracks referencing this property binding.
|
|
116
116
|
*
|
|
117
117
|
* @type {number}
|
|
118
118
|
* @default 0
|
package/src/audio/Audio.js
CHANGED
|
@@ -191,7 +191,7 @@ class Audio extends Object3D {
|
|
|
191
191
|
/**
|
|
192
192
|
* Defines the source type.
|
|
193
193
|
*
|
|
194
|
-
* The property is automatically by one of the `set*()` methods.
|
|
194
|
+
* The property is automatically set by one of the `set*()` methods.
|
|
195
195
|
*
|
|
196
196
|
* @type {('empty'|'audioNode'|'mediaNode'|'mediaStreamNode'|'buffer')}
|
|
197
197
|
* @readonly
|
|
@@ -10,7 +10,7 @@ class AudioContext {
|
|
|
10
10
|
/**
|
|
11
11
|
* Returns the global native audio context.
|
|
12
12
|
*
|
|
13
|
-
* @return {AudioContext} The native audio context.
|
|
13
|
+
* @return {Window.AudioContext} The native audio context.
|
|
14
14
|
*/
|
|
15
15
|
static getContext() {
|
|
16
16
|
|
|
@@ -27,7 +27,7 @@ class AudioContext {
|
|
|
27
27
|
/**
|
|
28
28
|
* Allows to set the global native audio context from outside.
|
|
29
29
|
*
|
|
30
|
-
* @param {AudioContext} value - The native context to set.
|
|
30
|
+
* @param {Window.AudioContext} value - The native context to set.
|
|
31
31
|
*/
|
|
32
32
|
static setContext( value ) {
|
|
33
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector3 } from '../math/Vector3.js';
|
|
2
2
|
import { Quaternion } from '../math/Quaternion.js';
|
|
3
|
-
import {
|
|
3
|
+
import { Timer } from '../core/Timer.js';
|
|
4
4
|
import { Object3D } from '../core/Object3D.js';
|
|
5
5
|
import { AudioContext } from './AudioContext.js';
|
|
6
6
|
|
|
@@ -71,7 +71,7 @@ class AudioListener extends Object3D {
|
|
|
71
71
|
|
|
72
72
|
// private
|
|
73
73
|
|
|
74
|
-
this.
|
|
74
|
+
this._timer = new Timer();
|
|
75
75
|
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -176,9 +176,11 @@ class AudioListener extends Object3D {
|
|
|
176
176
|
|
|
177
177
|
super.updateMatrixWorld( force );
|
|
178
178
|
|
|
179
|
+
this._timer.update();
|
|
180
|
+
|
|
179
181
|
const listener = this.context.listener;
|
|
180
182
|
|
|
181
|
-
this.timeDelta = this.
|
|
183
|
+
this.timeDelta = this._timer.getDelta();
|
|
182
184
|
|
|
183
185
|
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
184
186
|
|
package/src/cameras/Camera.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { WebGLCoordinateSystem } from '../constants.js';
|
|
2
2
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
3
3
|
import { Object3D } from '../core/Object3D.js';
|
|
4
|
+
import { Vector3 } from '../math/Vector3.js';
|
|
5
|
+
import { Quaternion } from '../math/Quaternion.js';
|
|
6
|
+
|
|
7
|
+
const _position = /*@__PURE__*/ new Vector3();
|
|
8
|
+
const _quaternion = /*@__PURE__*/ new Quaternion();
|
|
9
|
+
const _scale = /*@__PURE__*/ new Vector3();
|
|
4
10
|
|
|
5
11
|
/**
|
|
6
12
|
* Abstract base class for cameras. This class should always be inherited
|
|
@@ -107,15 +113,39 @@ class Camera extends Object3D {
|
|
|
107
113
|
|
|
108
114
|
super.updateMatrixWorld( force );
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
// exclude scale from view matrix to be glTF conform
|
|
117
|
+
|
|
118
|
+
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
119
|
+
|
|
120
|
+
if ( _scale.x === 1 && _scale.y === 1 && _scale.z === 1 ) {
|
|
121
|
+
|
|
122
|
+
this.matrixWorldInverse.copy( this.matrixWorld ).invert();
|
|
123
|
+
|
|
124
|
+
} else {
|
|
125
|
+
|
|
126
|
+
this.matrixWorldInverse.compose( _position, _quaternion, _scale.set( 1, 1, 1 ) ).invert();
|
|
127
|
+
|
|
128
|
+
}
|
|
111
129
|
|
|
112
130
|
}
|
|
113
131
|
|
|
114
|
-
updateWorldMatrix( updateParents, updateChildren ) {
|
|
132
|
+
updateWorldMatrix( updateParents, updateChildren, force = false ) {
|
|
133
|
+
|
|
134
|
+
super.updateWorldMatrix( updateParents, updateChildren, force );
|
|
135
|
+
|
|
136
|
+
// exclude scale from view matrix to be glTF conform
|
|
137
|
+
|
|
138
|
+
this.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
139
|
+
|
|
140
|
+
if ( _scale.x === 1 && _scale.y === 1 && _scale.z === 1 ) {
|
|
141
|
+
|
|
142
|
+
this.matrixWorldInverse.copy( this.matrixWorld ).invert();
|
|
143
|
+
|
|
144
|
+
} else {
|
|
115
145
|
|
|
116
|
-
|
|
146
|
+
this.matrixWorldInverse.compose( _position, _quaternion, _scale.set( 1, 1, 1 ) ).invert();
|
|
117
147
|
|
|
118
|
-
|
|
148
|
+
}
|
|
119
149
|
|
|
120
150
|
}
|
|
121
151
|
|
|
@@ -203,19 +203,38 @@ class CubeCamera extends Object3D {
|
|
|
203
203
|
|
|
204
204
|
renderTarget.texture.generateMipmaps = false;
|
|
205
205
|
|
|
206
|
+
// https://github.com/mrdoob/three.js/issues/31413#issuecomment-3095966812
|
|
207
|
+
|
|
208
|
+
let reversedDepthBuffer = false;
|
|
209
|
+
|
|
210
|
+
if ( renderer.isWebGLRenderer === true ) {
|
|
211
|
+
|
|
212
|
+
reversedDepthBuffer = renderer.state.buffers.depth.getReversed();
|
|
213
|
+
|
|
214
|
+
} else {
|
|
215
|
+
|
|
216
|
+
reversedDepthBuffer = renderer.reversedDepthBuffer;
|
|
217
|
+
|
|
218
|
+
}
|
|
219
|
+
|
|
206
220
|
renderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );
|
|
221
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
207
222
|
renderer.render( scene, cameraPX );
|
|
208
223
|
|
|
209
224
|
renderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );
|
|
225
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
210
226
|
renderer.render( scene, cameraNX );
|
|
211
227
|
|
|
212
228
|
renderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );
|
|
229
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
213
230
|
renderer.render( scene, cameraPY );
|
|
214
231
|
|
|
215
232
|
renderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );
|
|
233
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
216
234
|
renderer.render( scene, cameraNY );
|
|
217
235
|
|
|
218
236
|
renderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );
|
|
237
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
219
238
|
renderer.render( scene, cameraPZ );
|
|
220
239
|
|
|
221
240
|
// mipmaps are generated during the last call of render()
|
|
@@ -224,6 +243,7 @@ class CubeCamera extends Object3D {
|
|
|
224
243
|
renderTarget.texture.generateMipmaps = generateMipmaps;
|
|
225
244
|
|
|
226
245
|
renderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );
|
|
246
|
+
if ( reversedDepthBuffer && renderer.autoClear === false ) renderer.clearDepth();
|
|
227
247
|
renderer.render( scene, cameraNZ );
|
|
228
248
|
|
|
229
249
|
renderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );
|
|
@@ -136,8 +136,11 @@ class StereoCamera {
|
|
|
136
136
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
this.cameraL.
|
|
140
|
-
this.
|
|
139
|
+
this.cameraL.matrix.copy( camera.matrixWorld ).multiply( _eyeLeft );
|
|
140
|
+
this.cameraL.matrixWorldNeedsUpdate = true;
|
|
141
|
+
|
|
142
|
+
this.cameraR.matrix.copy( camera.matrixWorld ).multiply( _eyeRight );
|
|
143
|
+
this.cameraR.matrixWorldNeedsUpdate = true;
|
|
141
144
|
|
|
142
145
|
}
|
|
143
146
|
|
package/src/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const REVISION = '
|
|
1
|
+
export const REVISION = '185';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Represents mouse buttons and interaction types in context of controls.
|
|
@@ -155,6 +155,14 @@ export const MultiplyBlending = 4;
|
|
|
155
155
|
*/
|
|
156
156
|
export const CustomBlending = 5;
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Represents material blending.
|
|
160
|
+
*
|
|
161
|
+
* @type {number}
|
|
162
|
+
* @constant
|
|
163
|
+
*/
|
|
164
|
+
export const MaterialBlending = 6;
|
|
165
|
+
|
|
158
166
|
/**
|
|
159
167
|
* A `source + destination` blending equation.
|
|
160
168
|
*
|
|
@@ -907,6 +915,38 @@ export const RGB_ETC2_Format = 37492;
|
|
|
907
915
|
*/
|
|
908
916
|
export const RGBA_ETC2_EAC_Format = 37496;
|
|
909
917
|
|
|
918
|
+
/**
|
|
919
|
+
* EAC R11 UNORM format.
|
|
920
|
+
*
|
|
921
|
+
* @type {number}
|
|
922
|
+
* @constant
|
|
923
|
+
*/
|
|
924
|
+
export const R11_EAC_Format = 37488; // 0x9270
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* EAC R11 SNORM format.
|
|
928
|
+
*
|
|
929
|
+
* @type {number}
|
|
930
|
+
* @constant
|
|
931
|
+
*/
|
|
932
|
+
export const SIGNED_R11_EAC_Format = 37489; // 0x9271
|
|
933
|
+
|
|
934
|
+
/**
|
|
935
|
+
* EAC RG11 UNORM format.
|
|
936
|
+
*
|
|
937
|
+
* @type {number}
|
|
938
|
+
* @constant
|
|
939
|
+
*/
|
|
940
|
+
export const RG11_EAC_Format = 37490; // 0x9272
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* EAC RG11 SNORM format.
|
|
944
|
+
*
|
|
945
|
+
* @type {number}
|
|
946
|
+
* @constant
|
|
947
|
+
*/
|
|
948
|
+
export const SIGNED_RG11_EAC_Format = 37491; // 0x9273
|
|
949
|
+
|
|
910
950
|
/**
|
|
911
951
|
* ASTC RGBA 4x4 format.
|
|
912
952
|
*
|
|
@@ -1125,6 +1165,17 @@ export const InterpolateLinear = 2301;
|
|
|
1125
1165
|
*/
|
|
1126
1166
|
export const InterpolateSmooth = 2302;
|
|
1127
1167
|
|
|
1168
|
+
/**
|
|
1169
|
+
* Bezier interpolation mode for keyframe tracks.
|
|
1170
|
+
*
|
|
1171
|
+
* Uses cubic Bezier curves with explicit 2D control points.
|
|
1172
|
+
* Requires tangent data to be set on the track.
|
|
1173
|
+
*
|
|
1174
|
+
* @type {number}
|
|
1175
|
+
* @constant
|
|
1176
|
+
*/
|
|
1177
|
+
export const InterpolateBezier = 2303;
|
|
1178
|
+
|
|
1128
1179
|
/**
|
|
1129
1180
|
* Zero curvature ending for animations.
|
|
1130
1181
|
*
|
|
@@ -1191,7 +1242,7 @@ export const TriangleStripDrawMode = 1;
|
|
|
1191
1242
|
export const TriangleFanDrawMode = 2;
|
|
1192
1243
|
|
|
1193
1244
|
/**
|
|
1194
|
-
*
|
|
1245
|
+
* The depth value is inverted (1.0 - z) for visualization purposes.
|
|
1195
1246
|
*
|
|
1196
1247
|
* @type {number}
|
|
1197
1248
|
* @constant
|
|
@@ -1199,7 +1250,7 @@ export const TriangleFanDrawMode = 2;
|
|
|
1199
1250
|
export const BasicDepthPacking = 3200;
|
|
1200
1251
|
|
|
1201
1252
|
/**
|
|
1202
|
-
*
|
|
1253
|
+
* The depth value is packed into 32 bit RGBA.
|
|
1203
1254
|
*
|
|
1204
1255
|
* @type {number}
|
|
1205
1256
|
* @constant
|
|
@@ -1207,7 +1258,7 @@ export const BasicDepthPacking = 3200;
|
|
|
1207
1258
|
export const RGBADepthPacking = 3201;
|
|
1208
1259
|
|
|
1209
1260
|
/**
|
|
1210
|
-
*
|
|
1261
|
+
* The depth value is packed into 24 bit RGB.
|
|
1211
1262
|
*
|
|
1212
1263
|
* @type {number}
|
|
1213
1264
|
* @constant
|
|
@@ -1215,7 +1266,7 @@ export const RGBADepthPacking = 3201;
|
|
|
1215
1266
|
export const RGBDepthPacking = 3202;
|
|
1216
1267
|
|
|
1217
1268
|
/**
|
|
1218
|
-
*
|
|
1269
|
+
* The depth value is packed into 16 bit RG.
|
|
1219
1270
|
*
|
|
1220
1271
|
* @type {number}
|
|
1221
1272
|
* @constant
|
|
@@ -1280,6 +1331,30 @@ export const LinearTransfer = 'linear';
|
|
|
1280
1331
|
*/
|
|
1281
1332
|
export const SRGBTransfer = 'srgb';
|
|
1282
1333
|
|
|
1334
|
+
/**
|
|
1335
|
+
* No normal map packing.
|
|
1336
|
+
*
|
|
1337
|
+
* @type {string}
|
|
1338
|
+
* @constant
|
|
1339
|
+
*/
|
|
1340
|
+
export const NoNormalPacking = '';
|
|
1341
|
+
|
|
1342
|
+
/**
|
|
1343
|
+
* Normal RG packing.
|
|
1344
|
+
*
|
|
1345
|
+
* @type {string}
|
|
1346
|
+
* @constant
|
|
1347
|
+
*/
|
|
1348
|
+
export const NormalRGPacking = 'rg';
|
|
1349
|
+
|
|
1350
|
+
/**
|
|
1351
|
+
* Normal GA packing.
|
|
1352
|
+
*
|
|
1353
|
+
* @type {string}
|
|
1354
|
+
* @constant
|
|
1355
|
+
*/
|
|
1356
|
+
export const NormalGAPacking = 'ga';
|
|
1357
|
+
|
|
1283
1358
|
/**
|
|
1284
1359
|
* Sets the stencil buffer value to `0`.
|
|
1285
1360
|
*
|
|
@@ -1624,6 +1699,16 @@ export const InterpolationSamplingMode = {
|
|
|
1624
1699
|
EITHER: 'either'
|
|
1625
1700
|
};
|
|
1626
1701
|
|
|
1702
|
+
/**
|
|
1703
|
+
* Compatibility flags for features that may not be supported across all platforms.
|
|
1704
|
+
*
|
|
1705
|
+
* @type {Object}
|
|
1706
|
+
* @constant
|
|
1707
|
+
*/
|
|
1708
|
+
export const Compatibility = {
|
|
1709
|
+
TEXTURE_COMPARE: 'depthTextureCompare'
|
|
1710
|
+
};
|
|
1711
|
+
|
|
1627
1712
|
/**
|
|
1628
1713
|
* This type represents mouse buttons and interaction types in context of controls.
|
|
1629
1714
|
*
|
|
@@ -3,6 +3,7 @@ import { Vector2 } from '../math/Vector2.js';
|
|
|
3
3
|
import { denormalize, normalize } from '../math/MathUtils.js';
|
|
4
4
|
import { StaticDrawUsage, FloatType } from '../constants.js';
|
|
5
5
|
import { fromHalfFloat, toHalfFloat } from '../extras/DataUtils.js';
|
|
6
|
+
import { EventDispatcher } from './EventDispatcher.js';
|
|
6
7
|
|
|
7
8
|
const _vector = /*@__PURE__*/ new Vector3();
|
|
8
9
|
const _vector2 = /*@__PURE__*/ new Vector2();
|
|
@@ -17,7 +18,7 @@ let _id = 0;
|
|
|
17
18
|
* When working with vector-like data, the `fromBufferAttribute( attribute, index )`
|
|
18
19
|
* helper methods on vector and color class might be helpful. E.g. {@link Vector3#fromBufferAttribute}.
|
|
19
20
|
*/
|
|
20
|
-
class BufferAttribute {
|
|
21
|
+
class BufferAttribute extends EventDispatcher {
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Constructs a new buffer attribute.
|
|
@@ -28,6 +29,8 @@ class BufferAttribute {
|
|
|
28
29
|
*/
|
|
29
30
|
constructor( array, itemSize, normalized = false ) {
|
|
30
31
|
|
|
32
|
+
super();
|
|
33
|
+
|
|
31
34
|
if ( Array.isArray( array ) ) {
|
|
32
35
|
|
|
33
36
|
throw new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );
|
|
@@ -674,6 +677,15 @@ class BufferAttribute {
|
|
|
674
677
|
|
|
675
678
|
}
|
|
676
679
|
|
|
680
|
+
/**
|
|
681
|
+
* Disposes of the buffer attribute. Available only in {@link WebGPURenderer}.
|
|
682
|
+
*/
|
|
683
|
+
dispose() {
|
|
684
|
+
|
|
685
|
+
this.dispatchEvent( { type: 'dispose' } );
|
|
686
|
+
|
|
687
|
+
}
|
|
688
|
+
|
|
677
689
|
}
|
|
678
690
|
|
|
679
691
|
/**
|
|
@@ -111,6 +111,16 @@ class BufferGeometry extends EventDispatcher {
|
|
|
111
111
|
*/
|
|
112
112
|
this.indirect = null;
|
|
113
113
|
|
|
114
|
+
/**
|
|
115
|
+
* The offset, in bytes, into the indirect drawing buffer where the value data begins. If an array is provided, multiple indirect draw calls will be made for each offset.
|
|
116
|
+
*
|
|
117
|
+
* Can only be used with {@link WebGPURenderer} and a WebGPU backend.
|
|
118
|
+
*
|
|
119
|
+
* @type {number|Array<number>}
|
|
120
|
+
* @default 0
|
|
121
|
+
*/
|
|
122
|
+
this.indirectOffset = 0;
|
|
123
|
+
|
|
114
124
|
/**
|
|
115
125
|
* This dictionary has as id the name of the attribute to be set and as value
|
|
116
126
|
* the buffer attribute to set it to. Rather than accessing this property directly,
|
|
@@ -124,7 +134,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
124
134
|
* This dictionary holds the morph targets of the geometry.
|
|
125
135
|
*
|
|
126
136
|
* Note: Once the geometry has been rendered, the morph attribute data cannot
|
|
127
|
-
* be changed. You will have to call `dispose()
|
|
137
|
+
* be changed. You will have to call `dispose()`, and create a new geometry instance.
|
|
128
138
|
*
|
|
129
139
|
* @type {Object}
|
|
130
140
|
*/
|
|
@@ -185,6 +195,19 @@ class BufferGeometry extends EventDispatcher {
|
|
|
185
195
|
*/
|
|
186
196
|
this.userData = {};
|
|
187
197
|
|
|
198
|
+
/**
|
|
199
|
+
* `true` when the geometry has been transformed since construction
|
|
200
|
+
* (e.g. via {@link BufferGeometry#applyMatrix4}). Only relevant for
|
|
201
|
+
* geometry generators (subclasses that populate `parameters`): when set,
|
|
202
|
+
* {@link BufferGeometry#toJSON} omits `parameters` since they no longer
|
|
203
|
+
* describe the geometry.
|
|
204
|
+
*
|
|
205
|
+
* @private
|
|
206
|
+
* @type {boolean}
|
|
207
|
+
* @default false
|
|
208
|
+
*/
|
|
209
|
+
this._transformed = false;
|
|
210
|
+
|
|
188
211
|
}
|
|
189
212
|
|
|
190
213
|
/**
|
|
@@ -224,11 +247,13 @@ class BufferGeometry extends EventDispatcher {
|
|
|
224
247
|
* Sets the given indirect attribute to this geometry.
|
|
225
248
|
*
|
|
226
249
|
* @param {BufferAttribute} indirect - The attribute holding indirect draw calls.
|
|
250
|
+
* @param {number|Array<number>} [indirectOffset=0] - The offset, in bytes, into the indirect drawing buffer where the value data begins. If an array is provided, multiple indirect draw calls will be made for each offset.
|
|
227
251
|
* @return {BufferGeometry} A reference to this instance.
|
|
228
252
|
*/
|
|
229
|
-
setIndirect( indirect ) {
|
|
253
|
+
setIndirect( indirect, indirectOffset = 0 ) {
|
|
230
254
|
|
|
231
255
|
this.indirect = indirect;
|
|
256
|
+
this.indirectOffset = indirectOffset;
|
|
232
257
|
|
|
233
258
|
return this;
|
|
234
259
|
|
|
@@ -394,6 +419,8 @@ class BufferGeometry extends EventDispatcher {
|
|
|
394
419
|
|
|
395
420
|
}
|
|
396
421
|
|
|
422
|
+
this._transformed = true;
|
|
423
|
+
|
|
397
424
|
return this;
|
|
398
425
|
|
|
399
426
|
}
|
|
@@ -829,13 +856,14 @@ class BufferGeometry extends EventDispatcher {
|
|
|
829
856
|
const normalAttribute = attributes.normal;
|
|
830
857
|
const uvAttribute = attributes.uv;
|
|
831
858
|
|
|
832
|
-
|
|
859
|
+
let tangentAttribute = this.getAttribute( 'tangent' );
|
|
833
860
|
|
|
834
|
-
|
|
861
|
+
if ( tangentAttribute === undefined || tangentAttribute.count !== positionAttribute.count ) {
|
|
835
862
|
|
|
836
|
-
|
|
863
|
+
tangentAttribute = new BufferAttribute( new Float32Array( 4 * positionAttribute.count ), 4 );
|
|
864
|
+
this.setAttribute( 'tangent', tangentAttribute );
|
|
837
865
|
|
|
838
|
-
|
|
866
|
+
}
|
|
839
867
|
|
|
840
868
|
const tan1 = [], tan2 = [];
|
|
841
869
|
|
|
@@ -964,6 +992,8 @@ class BufferGeometry extends EventDispatcher {
|
|
|
964
992
|
|
|
965
993
|
}
|
|
966
994
|
|
|
995
|
+
this._transformed = true;
|
|
996
|
+
|
|
967
997
|
}
|
|
968
998
|
|
|
969
999
|
/**
|
|
@@ -981,7 +1011,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
981
1011
|
|
|
982
1012
|
let normalAttribute = this.getAttribute( 'normal' );
|
|
983
1013
|
|
|
984
|
-
if ( normalAttribute === undefined ) {
|
|
1014
|
+
if ( normalAttribute === undefined || normalAttribute.count !== positionAttribute.count ) {
|
|
985
1015
|
|
|
986
1016
|
normalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );
|
|
987
1017
|
this.setAttribute( 'normal', normalAttribute );
|
|
@@ -1210,11 +1240,11 @@ class BufferGeometry extends EventDispatcher {
|
|
|
1210
1240
|
// standard BufferGeometry serialization
|
|
1211
1241
|
|
|
1212
1242
|
data.uuid = this.uuid;
|
|
1213
|
-
data.type = this.type;
|
|
1243
|
+
data.type = ( this.parameters !== undefined && this._transformed === true ) ? 'BufferGeometry' : this.type;
|
|
1214
1244
|
if ( this.name !== '' ) data.name = this.name;
|
|
1215
1245
|
if ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;
|
|
1216
1246
|
|
|
1217
|
-
if ( this.parameters !== undefined ) {
|
|
1247
|
+
if ( this.parameters !== undefined && this._transformed !== true ) {
|
|
1218
1248
|
|
|
1219
1249
|
const parameters = this.parameters;
|
|
1220
1250
|
|
|
@@ -1425,6 +1455,10 @@ class BufferGeometry extends EventDispatcher {
|
|
|
1425
1455
|
|
|
1426
1456
|
this.userData = source.userData;
|
|
1427
1457
|
|
|
1458
|
+
// transformed flag
|
|
1459
|
+
|
|
1460
|
+
this._transformed = source._transformed;
|
|
1461
|
+
|
|
1428
1462
|
return this;
|
|
1429
1463
|
|
|
1430
1464
|
}
|
package/src/core/Clock.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { warn } from '../utils.js';
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* Class for keeping track of time.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated since r183.
|
|
3
7
|
*/
|
|
4
8
|
class Clock {
|
|
5
9
|
|
|
6
10
|
/**
|
|
7
11
|
* Constructs a new clock.
|
|
8
12
|
*
|
|
13
|
+
* @deprecated since 183.
|
|
9
14
|
* @param {boolean} [autoStart=true] - Whether to automatically start the clock when
|
|
10
15
|
* `getDelta()` is called for the first time.
|
|
11
16
|
*/
|
|
@@ -53,6 +58,8 @@ class Clock {
|
|
|
53
58
|
*/
|
|
54
59
|
this.running = false;
|
|
55
60
|
|
|
61
|
+
warn( 'Clock: This module has been deprecated. Please use THREE.Timer instead.' ); // @deprecated, r183
|
|
62
|
+
|
|
56
63
|
}
|
|
57
64
|
|
|
58
65
|
/**
|