@plastic-software/three 0.181.3 → 0.183.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 +11330 -10017
- package/build/three.core.js +10011 -9493
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +1414 -631
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +21 -13
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +8007 -5427
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +8005 -5426
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/jsm/Addons.js +0 -3
- package/examples/jsm/animation/CCDIKSolver.js +2 -2
- package/examples/jsm/controls/ArcballControls.js +3 -3
- package/examples/jsm/controls/MapControls.js +55 -1
- package/examples/jsm/controls/OrbitControls.js +109 -6
- package/examples/jsm/controls/TrackballControls.js +6 -6
- package/examples/jsm/csm/CSM.js +2 -1
- package/examples/jsm/effects/AnaglyphEffect.js +102 -7
- package/examples/jsm/environments/ColorEnvironment.js +59 -0
- package/examples/jsm/environments/RoomEnvironment.js +3 -0
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +131 -4
- package/examples/jsm/exporters/USDZExporter.js +22 -3
- package/examples/jsm/geometries/DecalGeometry.js +1 -1
- package/examples/jsm/helpers/AnimationPathHelper.js +302 -0
- package/examples/jsm/helpers/LightProbeHelperGPU.js +1 -1
- package/examples/jsm/helpers/TextureHelperGPU.js +1 -1
- package/examples/jsm/helpers/ViewHelper.js +67 -8
- package/examples/jsm/inspector/Inspector.js +74 -14
- package/examples/jsm/inspector/RendererInspector.js +12 -2
- package/examples/jsm/inspector/tabs/Console.js +41 -7
- package/examples/jsm/inspector/tabs/Parameters.js +18 -2
- package/examples/jsm/inspector/tabs/Performance.js +2 -2
- package/examples/jsm/inspector/tabs/Viewer.js +4 -4
- package/examples/jsm/inspector/ui/Profiler.js +1836 -31
- package/examples/jsm/inspector/ui/Style.js +973 -14
- package/examples/jsm/inspector/ui/Tab.js +188 -1
- package/examples/jsm/inspector/ui/Values.js +17 -1
- package/examples/jsm/libs/meshopt_decoder.module.js +6 -5
- package/examples/jsm/lines/LineMaterial.js +6 -0
- package/examples/jsm/loaders/3DMLoader.js +5 -4
- 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 +5 -5
- package/examples/jsm/loaders/EXRLoader.js +5 -5
- package/examples/jsm/loaders/FBXLoader.js +2 -4
- package/examples/jsm/loaders/GCodeLoader.js +34 -8
- package/examples/jsm/loaders/GLTFLoader.js +122 -171
- package/examples/jsm/loaders/HDRLoader.js +0 -1
- package/examples/jsm/loaders/KMZLoader.js +5 -5
- package/examples/jsm/loaders/KTX2Loader.js +19 -3
- package/examples/jsm/loaders/LDrawLoader.js +2 -3
- package/examples/jsm/loaders/LWOLoader.js +7 -39
- package/examples/jsm/loaders/NRRDLoader.js +2 -2
- package/examples/jsm/loaders/PCDLoader.js +4 -2
- package/examples/jsm/loaders/SVGLoader.js +1 -1
- package/examples/jsm/loaders/TDSLoader.js +0 -2
- package/examples/jsm/loaders/TGALoader.js +0 -2
- package/examples/jsm/loaders/USDLoader.js +100 -40
- package/examples/jsm/loaders/UltraHDRLoader.js +285 -160
- package/examples/jsm/loaders/VOXLoader.js +660 -117
- package/examples/jsm/loaders/VRMLLoader.js +79 -2
- package/examples/jsm/loaders/VTKLoader.js +37 -24
- package/examples/jsm/loaders/collada/ColladaComposer.js +2950 -0
- package/examples/jsm/loaders/collada/ColladaParser.js +1962 -0
- package/examples/jsm/loaders/usd/USDAParser.js +447 -366
- package/examples/jsm/loaders/usd/USDCParser.js +1841 -6
- package/examples/jsm/loaders/usd/USDComposer.js +4041 -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/Volume.js +0 -1
- package/examples/jsm/misc/VolumeSlice.js +0 -1
- package/examples/jsm/objects/LensflareMesh.js +1 -1
- package/examples/jsm/objects/Sky.js +76 -4
- package/examples/jsm/objects/SkyMesh.js +127 -10
- package/examples/jsm/objects/Water.js +4 -3
- package/examples/jsm/objects/Water2.js +5 -3
- package/examples/jsm/objects/WaterMesh.js +5 -7
- 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/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 +268 -30
- package/examples/jsm/renderers/SVGRenderer.js +193 -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/transpiler/AST.js +44 -0
- package/examples/jsm/transpiler/GLSLDecoder.js +61 -4
- 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/display/AfterImageNode.js +1 -1
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +458 -16
- package/examples/jsm/tsl/display/AnamorphicNode.js +1 -1
- package/examples/jsm/tsl/display/BilateralBlurNode.js +364 -0
- package/examples/jsm/tsl/display/BloomNode.js +16 -6
- package/examples/jsm/tsl/display/CRT.js +150 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +1 -1
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +1 -1
- package/examples/jsm/tsl/display/DotScreenNode.js +1 -1
- package/examples/jsm/tsl/display/FXAANode.js +2 -2
- package/examples/jsm/tsl/display/GTAONode.js +5 -4
- package/examples/jsm/tsl/display/GaussianBlurNode.js +11 -2
- package/examples/jsm/tsl/display/GodraysNode.js +624 -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 +3 -3
- 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 +8 -20
- package/examples/jsm/tsl/display/SSRNode.js +8 -8
- package/examples/jsm/tsl/display/SSSNode.js +6 -4
- package/examples/jsm/tsl/display/Shape.js +29 -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/TRAANode.js +273 -125
- 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/math/Bayer.js +40 -1
- package/examples/jsm/utils/LDrawUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewer.js +24 -10
- package/examples/jsm/utils/ShadowMapViewerGPU.js +1 -1
- package/examples/jsm/utils/WebGPUTextureUtils.js +1 -1
- package/package.json +20 -26
- package/src/Three.Core.js +2 -1
- package/src/Three.TSL.js +19 -11
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +3 -0
- package/src/Three.js +1 -0
- package/src/animation/AnimationAction.js +1 -1
- package/src/animation/AnimationClip.js +1 -1
- package/src/animation/AnimationMixer.js +6 -0
- package/src/animation/AnimationUtils.js +1 -12
- package/src/animation/KeyframeTrack.js +47 -8
- 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/AudioListener.js +5 -3
- package/src/cameras/Camera.js +32 -2
- package/src/cameras/CubeCamera.js +20 -0
- package/src/constants.js +90 -5
- package/src/core/BufferGeometry.js +14 -2
- package/src/core/Clock.js +7 -0
- package/src/core/Object3D.js +56 -4
- package/src/core/Raycaster.js +2 -2
- package/src/core/RenderTarget.js +3 -4
- package/src/extras/PMREMGenerator.js +7 -18
- package/src/extras/TextureUtils.js +5 -1
- package/src/geometries/ExtrudeGeometry.js +2 -2
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/TorusGeometry.js +8 -3
- package/src/helpers/CameraHelper.js +3 -0
- 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/loaders/Cache.js +28 -0
- package/src/loaders/FileLoader.js +1 -1
- package/src/loaders/ImageBitmapLoader.js +8 -3
- package/src/loaders/Loader.js +6 -0
- package/src/loaders/MaterialLoader.js +2 -1
- package/src/loaders/ObjectLoader.js +21 -2
- package/src/loaders/nodes/NodeLoader.js +2 -2
- package/src/materials/Material.js +2 -0
- package/src/materials/MeshLambertMaterial.js +9 -0
- package/src/materials/MeshPhongMaterial.js +9 -0
- package/src/materials/ShaderMaterial.js +20 -1
- package/src/materials/nodes/Line2NodeMaterial.js +7 -7
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +5 -2
- package/src/materials/nodes/MeshStandardNodeMaterial.js +5 -4
- package/src/materials/nodes/NodeMaterial.js +72 -25
- package/src/materials/nodes/manager/NodeMaterialObserver.js +10 -4
- package/src/math/Line3.js +3 -5
- package/src/math/MathUtils.js +10 -10
- package/src/math/Matrix4.js +74 -65
- package/src/math/Quaternion.js +3 -29
- package/src/math/Sphere.js +1 -1
- package/src/math/Vector3.js +3 -5
- package/src/math/interpolants/BezierInterpolant.js +108 -0
- package/src/nodes/Nodes.js +87 -68
- package/src/nodes/TSL.js +6 -6
- 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 +98 -12
- package/src/nodes/accessors/BufferNode.js +29 -2
- package/src/nodes/accessors/Camera.js +149 -28
- package/src/nodes/accessors/ClippingNode.js +4 -4
- package/src/nodes/accessors/CubeTextureNode.js +20 -1
- package/src/nodes/accessors/InstanceNode.js +148 -43
- package/src/nodes/accessors/MaterialNode.js +9 -1
- package/src/nodes/accessors/MaterialReferenceNode.js +1 -2
- package/src/nodes/accessors/ModelNode.js +1 -1
- package/src/nodes/accessors/Normal.js +11 -11
- package/src/nodes/accessors/Position.js +34 -2
- package/src/nodes/accessors/ReferenceBaseNode.js +4 -4
- package/src/nodes/accessors/ReferenceNode.js +4 -4
- package/src/nodes/accessors/RendererReferenceNode.js +1 -2
- package/src/nodes/accessors/SceneProperties.js +53 -0
- package/src/nodes/accessors/SkinningNode.js +27 -26
- package/src/nodes/accessors/StorageBufferNode.js +4 -21
- package/src/nodes/accessors/StorageTextureNode.js +37 -1
- package/src/nodes/accessors/Tangent.js +4 -14
- package/src/nodes/accessors/Texture3DNode.js +32 -35
- package/src/nodes/accessors/TextureNode.js +58 -22
- package/src/nodes/accessors/UniformArrayNode.js +4 -2
- package/src/nodes/accessors/UserDataNode.js +1 -2
- package/src/nodes/accessors/VertexColorNode.js +1 -2
- package/src/nodes/code/FunctionNode.js +1 -2
- package/src/nodes/core/ArrayNode.js +20 -1
- package/src/nodes/core/AssignNode.js +2 -2
- package/src/nodes/core/AttributeNode.js +2 -2
- package/src/nodes/core/ContextNode.js +103 -4
- package/src/nodes/core/MRTNode.js +48 -2
- package/src/nodes/core/Node.js +29 -3
- package/src/nodes/core/NodeBuilder.js +170 -53
- package/src/nodes/core/NodeError.js +28 -0
- package/src/nodes/core/NodeFrame.js +12 -4
- package/src/nodes/core/NodeUtils.js +10 -8
- package/src/nodes/core/OutputStructNode.js +12 -10
- package/src/nodes/core/ParameterNode.js +3 -3
- package/src/nodes/core/PropertyNode.js +19 -3
- package/src/nodes/core/StackNode.js +65 -16
- package/src/nodes/core/StackTrace.js +139 -0
- package/src/nodes/core/StructNode.js +16 -2
- package/src/nodes/core/StructTypeNode.js +11 -17
- package/src/nodes/core/SubBuildNode.js +1 -1
- package/src/nodes/core/UniformNode.js +21 -5
- package/src/nodes/core/VarNode.js +47 -22
- package/src/nodes/core/VaryingNode.js +1 -18
- package/src/nodes/display/BlendModes.js +0 -64
- package/src/nodes/display/ColorAdjustment.js +17 -0
- package/src/nodes/display/ColorSpaceNode.js +3 -3
- package/src/nodes/display/NormalMapNode.js +39 -4
- package/src/nodes/display/PassNode.js +98 -9
- package/src/nodes/display/RenderOutputNode.js +3 -3
- package/src/nodes/display/ScreenNode.js +3 -1
- 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/ViewportTextureNode.js +21 -4
- 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 +1 -1
- package/src/nodes/functions/PhysicalLightingModel.js +126 -45
- package/src/nodes/geometry/RangeNode.js +4 -2
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -2
- package/src/nodes/gpgpu/ComputeNode.js +5 -4
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +1 -1
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +4 -4
- package/src/nodes/lighting/AnalyticLightNode.js +53 -0
- package/src/nodes/lighting/EnvironmentNode.js +28 -3
- package/src/nodes/lighting/LightsNode.js +2 -2
- package/src/nodes/lighting/PointShadowNode.js +162 -149
- package/src/nodes/lighting/ShadowFilterNode.js +53 -65
- package/src/nodes/lighting/ShadowNode.js +97 -41
- package/src/nodes/math/BitcountNode.js +433 -0
- package/src/nodes/math/ConditionalNode.js +2 -2
- package/src/nodes/math/MathNode.js +3 -40
- package/src/nodes/math/OperatorNode.js +2 -1
- 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 +9 -15
- package/src/nodes/tsl/TSLCore.js +17 -14
- package/src/nodes/utils/ArrayElementNode.js +13 -0
- package/src/nodes/utils/DebugNode.js +11 -11
- package/src/nodes/utils/EventNode.js +1 -2
- package/src/nodes/utils/JoinNode.js +2 -2
- package/src/nodes/utils/LoopNode.js +1 -1
- package/src/nodes/utils/MemberNode.js +1 -1
- package/src/nodes/utils/Packing.js +13 -1
- package/src/nodes/utils/PostProcessingUtils.js +33 -1
- package/src/nodes/utils/RTTNode.js +1 -1
- package/src/nodes/utils/ReflectorNode.js +3 -4
- package/src/nodes/utils/SampleNode.js +1 -1
- package/src/nodes/utils/SpriteSheetUV.js +35 -0
- package/src/nodes/utils/UVUtils.js +28 -0
- package/src/objects/BatchedMesh.js +27 -14
- package/src/objects/InstancedMesh.js +11 -0
- package/src/objects/Line.js +1 -1
- package/src/objects/Mesh.js +1 -1
- package/src/objects/Points.js +1 -1
- package/src/objects/Skeleton.js +9 -0
- package/src/renderers/WebGLRenderer.js +178 -92
- package/src/renderers/common/Backend.js +29 -0
- package/src/renderers/common/Background.js +24 -11
- package/src/renderers/common/BindGroup.js +1 -9
- package/src/renderers/common/Binding.js +11 -0
- package/src/renderers/common/Bindings.js +27 -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/ChainMap.js +30 -6
- package/src/renderers/common/CubeRenderTarget.js +50 -6
- package/src/renderers/common/Geometries.js +29 -3
- package/src/renderers/common/Lighting.js +5 -21
- package/src/renderers/common/Pipelines.js +4 -4
- package/src/renderers/common/PostProcessing.js +8 -206
- package/src/renderers/common/RenderBundles.js +2 -1
- package/src/renderers/common/RenderContext.js +16 -0
- package/src/renderers/common/RenderContexts.js +33 -49
- package/src/renderers/common/RenderLists.js +2 -1
- package/src/renderers/common/RenderObject.js +15 -3
- package/src/renderers/common/RenderObjectPipeline.js +40 -0
- package/src/renderers/common/RenderObjects.js +18 -2
- package/src/renderers/common/RenderPipeline.js +203 -17
- package/src/renderers/common/Renderer.js +257 -72
- package/src/renderers/common/Sampler.js +4 -4
- package/src/renderers/common/StorageBuffer.js +13 -1
- package/src/renderers/common/Textures.js +17 -1
- package/src/renderers/common/TimestampQueryPool.js +5 -3
- package/src/renderers/common/Uniform.js +8 -0
- package/src/renderers/common/UniformsGroup.js +61 -0
- package/src/renderers/common/XRManager.js +3 -2
- package/src/renderers/common/extras/PMREMGenerator.js +2 -8
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/{Nodes.js → NodeManager.js} +18 -6
- package/src/renderers/common/nodes/NodeStorageBuffer.js +13 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +52 -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/envmap_fragment.glsl.js +7 -11
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +5 -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_physical_fragment.glsl.js +8 -4
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +112 -51
- package/src/renderers/shaders/ShaderChunk/packing.glsl.js +20 -4
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +225 -186
- 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 +3 -3
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +3 -0
- 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 -5
- package/src/renderers/shaders/UniformsLib.js +0 -3
- package/src/renderers/webgl/WebGLBackground.js +2 -2
- package/src/renderers/webgl/WebGLBindingStates.js +99 -27
- package/src/renderers/webgl/WebGLCapabilities.js +3 -4
- package/src/renderers/webgl/WebGLEnvironments.js +228 -0
- package/src/renderers/webgl/WebGLGeometries.js +10 -7
- package/src/renderers/webgl/WebGLLights.js +18 -1
- package/src/renderers/webgl/WebGLMaterials.js +12 -0
- package/src/renderers/webgl/WebGLObjects.js +3 -1
- package/src/renderers/webgl/WebGLOutput.js +267 -0
- package/src/renderers/webgl/WebGLProgram.js +45 -109
- package/src/renderers/webgl/WebGLPrograms.js +45 -49
- package/src/renderers/webgl/WebGLRenderLists.js +15 -0
- package/src/renderers/webgl/WebGLShadowMap.js +188 -24
- package/src/renderers/webgl/WebGLState.js +32 -37
- package/src/renderers/webgl/WebGLTextures.js +89 -28
- package/src/renderers/webgl/WebGLUniforms.js +40 -3
- package/src/renderers/webgl/WebGLUtils.js +6 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +148 -18
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +156 -35
- package/src/renderers/webgl-fallback/utils/WebGLState.js +181 -5
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +5 -3
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +9 -9
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +6 -2
- package/src/renderers/webgpu/WebGPUBackend.js +119 -13
- package/src/renderers/webgpu/WebGPURenderer.js +2 -1
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +322 -68
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +4 -17
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +357 -200
- package/src/renderers/webgpu/utils/WebGPUConstants.js +2 -0
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +61 -23
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +152 -200
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +65 -42
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +7 -7
- package/src/renderers/webgpu/utils/WebGPUUtils.js +17 -11
- package/src/renderers/webxr/WebXRManager.js +2 -2
- package/src/textures/CubeDepthTexture.js +76 -0
- package/src/textures/Source.js +1 -1
- package/src/textures/Texture.js +3 -3
- package/src/utils.js +258 -3
- 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 -145
- 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/SpriteSheetUVNode.js +0 -90
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -99
- package/src/renderers/webgl/WebGLCubeUVMaps.js +0 -134
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { interleavedGradientNoise, Fn, vec2, vec4, mix, uv, Loop, premultiplyAlpha, unpremultiplyAlpha, int, float, nodeObject, convertToTexture, screenCoordinate } from 'three/tsl';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This TSL function blurs an image in a circular pattern, radiating from a configurable center point in screen space.
|
|
5
|
+
*
|
|
6
|
+
* Radial blurs can be used for different kind of effects like producing simple faked lighting effects also known as
|
|
7
|
+
* "light shafts". The major limitation of this specific usage is the center point can only be defined in 2D so the
|
|
8
|
+
* effect does not honor the depth of 3D objects. Consequently, it is not intended for physically correct lit scenes.
|
|
9
|
+
*
|
|
10
|
+
* @tsl
|
|
11
|
+
* @function
|
|
12
|
+
* @param {Node<vec4>} textureNode - The texture node that should be blurred.
|
|
13
|
+
* @param {Object} [options={}] - Additional options for the radial blur effect.
|
|
14
|
+
* @param {Node<vec2>} [options.center=vec2(0.5, 0.5)] - The center of the light in screen uvs.
|
|
15
|
+
* @param {Node<int>} [options.weight=float(0.9)] - Base weight factor for each sample in the range `[0,1]`.
|
|
16
|
+
* @param {Node<int>} [options.decay=float(0.95)] - Decreases the weight factor so each iteration adds less to the sum. Must be in the range `[0,1]`.
|
|
17
|
+
* If you increase the sample count, you have to increase this option as well to avoid a darking effect.
|
|
18
|
+
* @param {Node<int>} [options.count=int(32)] - The number if iterations. Should be in the range `[16,64]`.
|
|
19
|
+
* @param {Node<int>} [options.exposure=float(5)] - Exposure control of the blur.
|
|
20
|
+
* @return {Node<vec4>} The blurred texture node.
|
|
21
|
+
*/
|
|
22
|
+
export const radialBlur = /*#__PURE__*/ Fn( ( [ textureNode, options = {} ] ) => {
|
|
23
|
+
|
|
24
|
+
textureNode = convertToTexture( textureNode );
|
|
25
|
+
|
|
26
|
+
const center = nodeObject( options.center ) || vec2( 0.5, 0.5 );
|
|
27
|
+
const weight = nodeObject( options.weight ) || float( 0.9 );
|
|
28
|
+
const decay = nodeObject( options.decay ) || float( 0.95 );
|
|
29
|
+
const count = nodeObject( options.count ) || int( 32 );
|
|
30
|
+
const exposure = nodeObject( options.exposure ) || float( 5 );
|
|
31
|
+
const premultipliedAlpha = options.premultipliedAlpha || false;
|
|
32
|
+
|
|
33
|
+
const tap = ( uv ) => {
|
|
34
|
+
|
|
35
|
+
const sample = textureNode.sample( uv );
|
|
36
|
+
|
|
37
|
+
return premultipliedAlpha ? premultiplyAlpha( sample ) : sample;
|
|
38
|
+
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const sampleUv = vec2( textureNode.uvNode || uv() );
|
|
42
|
+
|
|
43
|
+
const base = tap( sampleUv ).toConst();
|
|
44
|
+
const blur = vec4().toVar();
|
|
45
|
+
const offset = center.sub( sampleUv ).div( count ).toConst();
|
|
46
|
+
const w = float( weight ).toVar();
|
|
47
|
+
|
|
48
|
+
const noise = interleavedGradientNoise( screenCoordinate );
|
|
49
|
+
sampleUv.addAssign( offset.mul( noise ) ); // mitigate banding
|
|
50
|
+
|
|
51
|
+
Loop( { start: int( 0 ), end: int( count ), type: 'int', condition: '<' }, () => {
|
|
52
|
+
|
|
53
|
+
sampleUv.addAssign( offset );
|
|
54
|
+
const sample = tap( sampleUv );
|
|
55
|
+
|
|
56
|
+
blur.addAssign( sample.mul( w ) );
|
|
57
|
+
w.mulAssign( decay );
|
|
58
|
+
|
|
59
|
+
} );
|
|
60
|
+
|
|
61
|
+
blur.divAssign( count );
|
|
62
|
+
blur.mulAssign( exposure );
|
|
63
|
+
|
|
64
|
+
const color = mix( blur, base.mul( 2 ), 0.5 );
|
|
65
|
+
|
|
66
|
+
return premultipliedAlpha ? unpremultiplyAlpha( color ) : color;
|
|
67
|
+
|
|
68
|
+
} );
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TextureLoader } from 'three';
|
|
2
|
-
import { Fn, int, ivec2, textureLoad } from 'three/tsl';
|
|
2
|
+
import { Fn, int, ivec2, textureLoad, screenUV, screenSize, mod, floor, float, vec3 } from 'three/tsl';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @module Bayer
|
|
@@ -32,3 +32,42 @@ export const bayer16 = Fn( ( [ uv ] ) => {
|
|
|
32
32
|
return textureLoad( bayer16Texture, ivec2( uv ).mod( int( 16 ) ) );
|
|
33
33
|
|
|
34
34
|
} );
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* This TSL function applies Bayer dithering to a color input. It uses a 4x4 Bayer matrix
|
|
38
|
+
* pattern to add structured noise before color quantization, which helps reduce visible
|
|
39
|
+
* color banding when limiting color depth.
|
|
40
|
+
*
|
|
41
|
+
* @tsl
|
|
42
|
+
* @function
|
|
43
|
+
* @param {Node<vec3>} color - The input color to apply dithering to.
|
|
44
|
+
* @param {Node<float>} [steps=32] - The number of color steps per channel.
|
|
45
|
+
* @return {Node<vec3>} The dithered color ready for quantization.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* // Apply dithering with posterize
|
|
49
|
+
* const ditheredColor = bayerDither( inputColor, 32 );
|
|
50
|
+
* const finalColor = posterize( ditheredColor, 32 );
|
|
51
|
+
*/
|
|
52
|
+
export const bayerDither = Fn( ( [ color, steps = float( 32.0 ) ] ) => {
|
|
53
|
+
|
|
54
|
+
const screenPos = screenUV.mul( screenSize );
|
|
55
|
+
const x = mod( floor( screenPos.x ), float( 4.0 ) );
|
|
56
|
+
const y = mod( floor( screenPos.y ), float( 4.0 ) );
|
|
57
|
+
|
|
58
|
+
// Simplified Bayer matrix approximation
|
|
59
|
+
const bayer = mod(
|
|
60
|
+
floor( x.add( 1.0 ) ).mul( floor( y.add( 1.0 ) ) ).mul( 17.0 ),
|
|
61
|
+
16.0
|
|
62
|
+
).div( 16.0 ).sub( 0.5 );
|
|
63
|
+
|
|
64
|
+
// Apply dither offset before quantization
|
|
65
|
+
const ditherOffset = bayer.div( steps );
|
|
66
|
+
|
|
67
|
+
return vec3(
|
|
68
|
+
color.r.add( ditherOffset ),
|
|
69
|
+
color.g.add( ditherOffset ),
|
|
70
|
+
color.b.add( ditherOffset )
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
} );
|
|
@@ -6,10 +6,8 @@ import {
|
|
|
6
6
|
OrthographicCamera,
|
|
7
7
|
PlaneGeometry,
|
|
8
8
|
Scene,
|
|
9
|
-
ShaderMaterial
|
|
10
|
-
UniformsUtils
|
|
9
|
+
ShaderMaterial
|
|
11
10
|
} from 'three';
|
|
12
|
-
import { UnpackDepthRGBAShader } from '../shaders/UnpackDepthRGBAShader.js';
|
|
13
11
|
|
|
14
12
|
/**
|
|
15
13
|
* This is a helper for visualising a given light's shadow map.
|
|
@@ -57,13 +55,29 @@ class ShadowMapViewer {
|
|
|
57
55
|
const scene = new Scene();
|
|
58
56
|
|
|
59
57
|
//HUD for shadow map
|
|
60
|
-
const shader = UnpackDepthRGBAShader;
|
|
61
|
-
|
|
62
|
-
const uniforms = UniformsUtils.clone( shader.uniforms );
|
|
63
58
|
const material = new ShaderMaterial( {
|
|
64
|
-
uniforms:
|
|
65
|
-
|
|
66
|
-
|
|
59
|
+
uniforms: {
|
|
60
|
+
tDiffuse: { value: null },
|
|
61
|
+
opacity: { value: 1.0 }
|
|
62
|
+
},
|
|
63
|
+
vertexShader: /* glsl */`
|
|
64
|
+
varying vec2 vUv;
|
|
65
|
+
void main() {
|
|
66
|
+
vUv = uv;
|
|
67
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
68
|
+
}`,
|
|
69
|
+
fragmentShader: /* glsl */`
|
|
70
|
+
uniform float opacity;
|
|
71
|
+
uniform sampler2D tDiffuse;
|
|
72
|
+
varying vec2 vUv;
|
|
73
|
+
void main() {
|
|
74
|
+
float depth = texture2D( tDiffuse, vUv ).r;
|
|
75
|
+
#ifdef USE_REVERSED_DEPTH_BUFFER
|
|
76
|
+
gl_FragColor = vec4( vec3( depth ), opacity );
|
|
77
|
+
#else
|
|
78
|
+
gl_FragColor = vec4( vec3( 1.0 - depth ), opacity );
|
|
79
|
+
#endif
|
|
80
|
+
}`
|
|
67
81
|
} );
|
|
68
82
|
const plane = new PlaneGeometry( frame.width, frame.height );
|
|
69
83
|
const mesh = new Mesh( plane, material );
|
|
@@ -177,7 +191,7 @@ class ShadowMapViewer {
|
|
|
177
191
|
//always end up with the scene's first added shadow casting light's shadowMap
|
|
178
192
|
//in the shader
|
|
179
193
|
//See: https://github.com/mrdoob/three.js/issues/5932
|
|
180
|
-
uniforms.tDiffuse.value = light.shadow.map.texture;
|
|
194
|
+
material.uniforms.tDiffuse.value = light.shadow.map.texture;
|
|
181
195
|
|
|
182
196
|
userAutoClearSetting = renderer.autoClear;
|
|
183
197
|
renderer.autoClear = false; // To allow render overlay
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plastic-software/three",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.183.0",
|
|
4
4
|
"description": "JavaScript 3D library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/three.cjs",
|
|
@@ -46,23 +46,20 @@
|
|
|
46
46
|
"start": "npm run dev",
|
|
47
47
|
"test": "npm run lint && npm run test-unit && npm run test-unit-addons",
|
|
48
48
|
"build": "rollup -c utils/build/rollup.config.js",
|
|
49
|
+
"build-docs": "jsdoc -c utils/docs/jsdoc.config.json && npm run build-llms",
|
|
50
|
+
"build-llms": "node utils/llms/build.js",
|
|
49
51
|
"build-module": "rollup -c utils/build/rollup.config.js --configOnlyModule",
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"dev-ssl": "node utils/build/dev.js && servez -p 8080 --ssl",
|
|
53
|
-
"preview": "concurrently --names \"ROLLUP,HTTP\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080\"",
|
|
54
|
-
"preview-ssl": "concurrently --names \"ROLLUP,HTTPS\" -c \"bgBlue.bold,bgGreen.bold\" \"rollup -c utils/build/rollup.config.js -w -m inline\" \"servez -p 8080 --ssl\"",
|
|
52
|
+
"dev": "node utils/build/dev.js && node utils/server.js -p 8080",
|
|
53
|
+
"preview": "node utils/build/preview.js",
|
|
55
54
|
"lint-core": "eslint src",
|
|
56
|
-
"lint-addons": "eslint examples/jsm
|
|
57
|
-
"lint-examples": "eslint examples
|
|
58
|
-
"lint-
|
|
59
|
-
"lint-
|
|
60
|
-
"lint-
|
|
61
|
-
"lint-
|
|
62
|
-
"lint-test": "eslint test --ignore-pattern vendor",
|
|
63
|
-
"lint-utils": "eslint utils --ignore-pattern prettify --ignore-pattern fuse",
|
|
55
|
+
"lint-addons": "eslint examples/jsm",
|
|
56
|
+
"lint-examples": "eslint examples",
|
|
57
|
+
"lint-editor": "eslint editor",
|
|
58
|
+
"lint-manual": "eslint manual",
|
|
59
|
+
"lint-test": "eslint test",
|
|
60
|
+
"lint-utils": "eslint utils",
|
|
64
61
|
"lint": "npm run lint-core",
|
|
65
|
-
"lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-
|
|
62
|
+
"lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-editor -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
|
|
66
63
|
"test-unit": "qunit test/unit/three.source.unit.js",
|
|
67
64
|
"test-unit-addons": "qunit test/unit/three.addons.unit.js",
|
|
68
65
|
"test-e2e": "node test/e2e/puppeteer.js",
|
|
@@ -94,26 +91,23 @@
|
|
|
94
91
|
},
|
|
95
92
|
"homepage": "https://threejs.org/",
|
|
96
93
|
"devDependencies": {
|
|
94
|
+
"@eslint/js": "^9.0.0",
|
|
97
95
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
98
96
|
"@rollup/plugin-terser": "^0.4.0",
|
|
99
|
-
"
|
|
100
|
-
"eslint": "^8.37.0",
|
|
97
|
+
"eslint": "^9.0.0",
|
|
101
98
|
"eslint-config-mdcs": "^5.0.0",
|
|
102
99
|
"eslint-plugin-compat": "^6.0.0",
|
|
103
|
-
"eslint-plugin-html": "^8.
|
|
104
|
-
"eslint-plugin-
|
|
105
|
-
"
|
|
100
|
+
"eslint-plugin-html": "^8.1.3",
|
|
101
|
+
"eslint-plugin-jsdoc": "^62.0.0",
|
|
102
|
+
"globals": "^17.0.0",
|
|
103
|
+
"jpeg-js": "^0.4.4",
|
|
106
104
|
"jsdoc": "^4.0.5",
|
|
107
105
|
"magic-string": "^0.30.0",
|
|
108
|
-
"
|
|
106
|
+
"pngjs": "^7.0.0",
|
|
109
107
|
"puppeteer": "^24.25.0",
|
|
110
108
|
"qunit": "^2.19.4",
|
|
111
109
|
"rollup": "^4.6.0",
|
|
112
|
-
"
|
|
113
|
-
"servez": "^2.2.4"
|
|
114
|
-
},
|
|
115
|
-
"overrides": {
|
|
116
|
-
"jpeg-js": "^0.4.4"
|
|
110
|
+
"turndown": "^7.2.2"
|
|
117
111
|
},
|
|
118
112
|
"jspm": {
|
|
119
113
|
"files": [
|
package/src/Three.Core.js
CHANGED
|
@@ -3,7 +3,6 @@ import { warn } from './utils.js';
|
|
|
3
3
|
|
|
4
4
|
export { WebGLArrayRenderTarget } from './renderers/WebGLArrayRenderTarget.js';
|
|
5
5
|
export { WebGL3DRenderTarget } from './renderers/WebGL3DRenderTarget.js';
|
|
6
|
-
export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
|
|
7
6
|
export { WebGLRenderTarget } from './renderers/WebGLRenderTarget.js';
|
|
8
7
|
export { WebXRController } from './renderers/webxr/WebXRController.js';
|
|
9
8
|
export { FogExp2 } from './scenes/FogExp2.js';
|
|
@@ -35,6 +34,7 @@ export { CompressedCubeTexture } from './textures/CompressedCubeTexture.js';
|
|
|
35
34
|
export { CubeTexture } from './textures/CubeTexture.js';
|
|
36
35
|
export { CanvasTexture } from './textures/CanvasTexture.js';
|
|
37
36
|
export { DepthTexture } from './textures/DepthTexture.js';
|
|
37
|
+
export { CubeDepthTexture } from './textures/CubeDepthTexture.js';
|
|
38
38
|
export { ExternalTexture } from './textures/ExternalTexture.js';
|
|
39
39
|
export { Texture } from './textures/Texture.js';
|
|
40
40
|
export * from './geometries/Geometries.js';
|
|
@@ -110,6 +110,7 @@ export { QuaternionLinearInterpolant } from './math/interpolants/QuaternionLinea
|
|
|
110
110
|
export { LinearInterpolant } from './math/interpolants/LinearInterpolant.js';
|
|
111
111
|
export { DiscreteInterpolant } from './math/interpolants/DiscreteInterpolant.js';
|
|
112
112
|
export { CubicInterpolant } from './math/interpolants/CubicInterpolant.js';
|
|
113
|
+
export { BezierInterpolant } from './math/interpolants/BezierInterpolant.js';
|
|
113
114
|
export { Interpolant } from './math/Interpolant.js';
|
|
114
115
|
export { Triangle } from './math/Triangle.js';
|
|
115
116
|
export { MathUtils } from './math/MathUtils.js';
|
package/src/Three.TSL.js
CHANGED
|
@@ -7,7 +7,7 @@ export const BasicShadowFilter = TSL.BasicShadowFilter;
|
|
|
7
7
|
export const Break = TSL.Break;
|
|
8
8
|
export const Const = TSL.Const;
|
|
9
9
|
export const Continue = TSL.Continue;
|
|
10
|
-
export const
|
|
10
|
+
export const DFGLUT = TSL.DFGLUT;
|
|
11
11
|
export const D_GGX = TSL.D_GGX;
|
|
12
12
|
export const Discard = TSL.Discard;
|
|
13
13
|
export const EPSILON = TSL.EPSILON;
|
|
@@ -29,7 +29,6 @@ export const HALF_PI = TSL.HALF_PI;
|
|
|
29
29
|
export const PointShadowFilter = TSL.PointShadowFilter;
|
|
30
30
|
export const Return = TSL.Return;
|
|
31
31
|
export const Schlick_to_F0 = TSL.Schlick_to_F0;
|
|
32
|
-
export const ScriptableNodeResources = TSL.ScriptableNodeResources;
|
|
33
32
|
export const ShaderNode = TSL.ShaderNode;
|
|
34
33
|
export const Stack = TSL.Stack;
|
|
35
34
|
export const Switch = TSL.Switch;
|
|
@@ -58,7 +57,6 @@ export const arrayBuffer = TSL.arrayBuffer;
|
|
|
58
57
|
export const asin = TSL.asin;
|
|
59
58
|
export const assign = TSL.assign;
|
|
60
59
|
export const atan = TSL.atan;
|
|
61
|
-
export const atan2 = TSL.atan2;
|
|
62
60
|
export const atomicAdd = TSL.atomicAdd;
|
|
63
61
|
export const atomicAnd = TSL.atomicAnd;
|
|
64
62
|
export const atomicFunc = TSL.atomicFunc;
|
|
@@ -98,8 +96,9 @@ export const bool = TSL.bool;
|
|
|
98
96
|
export const buffer = TSL.buffer;
|
|
99
97
|
export const bufferAttribute = TSL.bufferAttribute;
|
|
100
98
|
export const bumpMap = TSL.bumpMap;
|
|
101
|
-
export const burn = TSL.burn;
|
|
102
99
|
export const builtin = TSL.builtin;
|
|
100
|
+
export const builtinAOContext = TSL.builtinAOContext;
|
|
101
|
+
export const builtinShadowContext = TSL.builtinShadowContext;
|
|
103
102
|
export const bvec2 = TSL.bvec2;
|
|
104
103
|
export const bvec3 = TSL.bvec3;
|
|
105
104
|
export const bvec4 = TSL.bvec4;
|
|
@@ -125,6 +124,7 @@ export const clamp = TSL.clamp;
|
|
|
125
124
|
export const clearcoat = TSL.clearcoat;
|
|
126
125
|
export const clearcoatNormalView = TSL.clearcoatNormalView;
|
|
127
126
|
export const clearcoatRoughness = TSL.clearcoatRoughness;
|
|
127
|
+
export const clipSpace = TSL.clipSpace;
|
|
128
128
|
export const code = TSL.code;
|
|
129
129
|
export const color = TSL.color;
|
|
130
130
|
export const colorSpaceToWorking = TSL.colorSpaceToWorking;
|
|
@@ -136,11 +136,13 @@ export const context = TSL.context;
|
|
|
136
136
|
export const convert = TSL.convert;
|
|
137
137
|
export const convertColorSpace = TSL.convertColorSpace;
|
|
138
138
|
export const convertToTexture = TSL.convertToTexture;
|
|
139
|
+
export const countLeadingZeros = TSL.countLeadingZeros;
|
|
140
|
+
export const countOneBits = TSL.countOneBits;
|
|
141
|
+
export const countTrailingZeros = TSL.countTrailingZeros;
|
|
139
142
|
export const cos = TSL.cos;
|
|
140
143
|
export const cross = TSL.cross;
|
|
141
144
|
export const cubeTexture = TSL.cubeTexture;
|
|
142
145
|
export const cubeTextureBase = TSL.cubeTextureBase;
|
|
143
|
-
export const cubeToUV = TSL.cubeToUV;
|
|
144
146
|
export const dFdx = TSL.dFdx;
|
|
145
147
|
export const dFdy = TSL.dFdy;
|
|
146
148
|
export const dashSize = TSL.dashSize;
|
|
@@ -165,17 +167,16 @@ export const directionToFaceDirection = TSL.directionToFaceDirection;
|
|
|
165
167
|
export const dispersion = TSL.dispersion;
|
|
166
168
|
export const distance = TSL.distance;
|
|
167
169
|
export const div = TSL.div;
|
|
168
|
-
export const dodge = TSL.dodge;
|
|
169
170
|
export const dot = TSL.dot;
|
|
170
171
|
export const drawIndex = TSL.drawIndex;
|
|
171
172
|
export const dynamicBufferAttribute = TSL.dynamicBufferAttribute;
|
|
172
173
|
export const element = TSL.element;
|
|
173
174
|
export const emissive = TSL.emissive;
|
|
174
175
|
export const equal = TSL.equal;
|
|
175
|
-
export const equals = TSL.equals;
|
|
176
176
|
export const equirectUV = TSL.equirectUV;
|
|
177
177
|
export const exp = TSL.exp;
|
|
178
178
|
export const exp2 = TSL.exp2;
|
|
179
|
+
export const exponentialHeightFogFactor = TSL.exponentialHeightFogFactor;
|
|
179
180
|
export const expression = TSL.expression;
|
|
180
181
|
export const faceDirection = TSL.faceDirection;
|
|
181
182
|
export const faceForward = TSL.faceForward;
|
|
@@ -199,6 +200,7 @@ export const getDistanceAttenuation = TSL.getDistanceAttenuation;
|
|
|
199
200
|
export const getGeometryRoughness = TSL.getGeometryRoughness;
|
|
200
201
|
export const getNormalFromDepth = TSL.getNormalFromDepth;
|
|
201
202
|
export const interleavedGradientNoise = TSL.interleavedGradientNoise;
|
|
203
|
+
export const vogelDiskSample = TSL.vogelDiskSample;
|
|
202
204
|
export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
|
|
203
205
|
export const getRoughness = TSL.getRoughness;
|
|
204
206
|
export const getScreenPosition = TSL.getScreenPosition;
|
|
@@ -412,8 +414,10 @@ export const oscSquare = TSL.oscSquare;
|
|
|
412
414
|
export const oscTriangle = TSL.oscTriangle;
|
|
413
415
|
export const output = TSL.output;
|
|
414
416
|
export const outputStruct = TSL.outputStruct;
|
|
415
|
-
export const overlay = TSL.overlay;
|
|
416
417
|
export const overloadingFn = TSL.overloadingFn;
|
|
418
|
+
export const packHalf2x16 = TSL.packHalf2x16;
|
|
419
|
+
export const packSnorm2x16 = TSL.packSnorm2x16;
|
|
420
|
+
export const packUnorm2x16 = TSL.packUnorm2x16;
|
|
417
421
|
export const parabola = TSL.parabola;
|
|
418
422
|
export const parallaxDirection = TSL.parallaxDirection;
|
|
419
423
|
export const parallaxUV = TSL.parallaxUV;
|
|
@@ -461,6 +465,7 @@ export const remapClamp = TSL.remapClamp;
|
|
|
461
465
|
export const renderGroup = TSL.renderGroup;
|
|
462
466
|
export const renderOutput = TSL.renderOutput;
|
|
463
467
|
export const rendererReference = TSL.rendererReference;
|
|
468
|
+
export const replaceDefaultUV = TSL.replaceDefaultUV;
|
|
464
469
|
export const rotate = TSL.rotate;
|
|
465
470
|
export const rotateUV = TSL.rotateUV;
|
|
466
471
|
export const roughness = TSL.roughness;
|
|
@@ -478,8 +483,6 @@ export const screenCoordinate = TSL.screenCoordinate;
|
|
|
478
483
|
export const screenDPR = TSL.screenDPR;
|
|
479
484
|
export const screenSize = TSL.screenSize;
|
|
480
485
|
export const screenUV = TSL.screenUV;
|
|
481
|
-
export const scriptable = TSL.scriptable;
|
|
482
|
-
export const scriptableValue = TSL.scriptableValue;
|
|
483
486
|
export const select = TSL.select;
|
|
484
487
|
export const setCurrentStack = TSL.setCurrentStack;
|
|
485
488
|
export const setName = TSL.setName;
|
|
@@ -510,7 +513,6 @@ export const step = TSL.step;
|
|
|
510
513
|
export const stepElement = TSL.stepElement;
|
|
511
514
|
export const storage = TSL.storage;
|
|
512
515
|
export const storageBarrier = TSL.storageBarrier;
|
|
513
|
-
export const storageObject = TSL.storageObject;
|
|
514
516
|
export const storageTexture = TSL.storageTexture;
|
|
515
517
|
export const string = TSL.string;
|
|
516
518
|
export const struct = TSL.struct;
|
|
@@ -579,6 +581,9 @@ export const uniformCubeTexture = TSL.uniformCubeTexture;
|
|
|
579
581
|
export const uniformGroup = TSL.uniformGroup;
|
|
580
582
|
export const uniformFlow = TSL.uniformFlow;
|
|
581
583
|
export const uniformTexture = TSL.uniformTexture;
|
|
584
|
+
export const unpackHalf2x16 = TSL.unpackHalf2x16;
|
|
585
|
+
export const unpackSnorm2x16 = TSL.unpackSnorm2x16;
|
|
586
|
+
export const unpackUnorm2x16 = TSL.unpackUnorm2x16;
|
|
582
587
|
export const unpremultiplyAlpha = TSL.unpremultiplyAlpha;
|
|
583
588
|
export const userData = TSL.userData;
|
|
584
589
|
export const uv = TSL.uv;
|
|
@@ -599,11 +604,14 @@ export const vibrance = TSL.vibrance;
|
|
|
599
604
|
export const viewZToLogarithmicDepth = TSL.viewZToLogarithmicDepth;
|
|
600
605
|
export const viewZToOrthographicDepth = TSL.viewZToOrthographicDepth;
|
|
601
606
|
export const viewZToPerspectiveDepth = TSL.viewZToPerspectiveDepth;
|
|
607
|
+
export const viewZToReversedOrthographicDepth = TSL.viewZToReversedOrthographicDepth;
|
|
608
|
+
export const viewZToReversedPerspectiveDepth = TSL.viewZToReversedPerspectiveDepth;
|
|
602
609
|
export const viewport = TSL.viewport;
|
|
603
610
|
export const viewportCoordinate = TSL.viewportCoordinate;
|
|
604
611
|
export const viewportDepthTexture = TSL.viewportDepthTexture;
|
|
605
612
|
export const viewportLinearDepth = TSL.viewportLinearDepth;
|
|
606
613
|
export const viewportMipTexture = TSL.viewportMipTexture;
|
|
614
|
+
export const viewportOpaqueMipTexture = TSL.viewportOpaqueMipTexture;
|
|
607
615
|
export const viewportResolution = TSL.viewportResolution;
|
|
608
616
|
export const viewportSafeUV = TSL.viewportSafeUV;
|
|
609
617
|
export const viewportSharedTexture = TSL.viewportSharedTexture;
|
|
@@ -6,6 +6,7 @@ export { default as Lighting } from './renderers/common/Lighting.js';
|
|
|
6
6
|
export { default as BundleGroup } from './renderers/common/BundleGroup.js';
|
|
7
7
|
export { default as QuadMesh } from './renderers/common/QuadMesh.js';
|
|
8
8
|
export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
|
|
9
|
+
export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
|
|
9
10
|
export { default as PostProcessing } from './renderers/common/PostProcessing.js';
|
|
10
11
|
import * as RendererUtils from './renderers/common/RendererUtils.js';
|
|
11
12
|
export { RendererUtils };
|
|
@@ -20,6 +21,7 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
|
|
|
20
21
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
21
22
|
export { default as InspectorBase } from './renderers/common/InspectorBase.js';
|
|
22
23
|
export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
|
|
24
|
+
export { default as BlendMode } from './renderers/common/BlendMode.js';
|
|
23
25
|
export { ClippingGroup } from './objects/ClippingGroup.js';
|
|
24
26
|
export * from './nodes/Nodes.js';
|
|
25
27
|
import * as TSL from './nodes/TSL.js';
|
package/src/Three.WebGPU.js
CHANGED
|
@@ -6,9 +6,11 @@ export { default as Lighting } from './renderers/common/Lighting.js';
|
|
|
6
6
|
export { default as BundleGroup } from './renderers/common/BundleGroup.js';
|
|
7
7
|
export { default as QuadMesh } from './renderers/common/QuadMesh.js';
|
|
8
8
|
export { default as PMREMGenerator } from './renderers/common/extras/PMREMGenerator.js';
|
|
9
|
+
export { default as RenderPipeline } from './renderers/common/RenderPipeline.js';
|
|
9
10
|
export { default as PostProcessing } from './renderers/common/PostProcessing.js';
|
|
10
11
|
import * as RendererUtils from './renderers/common/RendererUtils.js';
|
|
11
12
|
export { RendererUtils };
|
|
13
|
+
export { default as CubeRenderTarget } from './renderers/common/CubeRenderTarget.js';
|
|
12
14
|
export { default as StorageTexture } from './renderers/common/StorageTexture.js';
|
|
13
15
|
export { default as Storage3DTexture } from './renderers/common/Storage3DTexture.js';
|
|
14
16
|
export { default as StorageArrayTexture } from './renderers/common/StorageArrayTexture.js';
|
|
@@ -22,6 +24,7 @@ export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js
|
|
|
22
24
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
23
25
|
export { default as InspectorBase } from './renderers/common/InspectorBase.js';
|
|
24
26
|
export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
|
|
27
|
+
export { default as BlendMode } from './renderers/common/BlendMode.js';
|
|
25
28
|
export { ClippingGroup } from './objects/ClippingGroup.js';
|
|
26
29
|
export * from './nodes/Nodes.js';
|
|
27
30
|
import * as TSL from './nodes/TSL.js';
|
package/src/Three.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './Three.Core.js';
|
|
2
2
|
|
|
3
3
|
export { WebGLRenderer } from './renderers/WebGLRenderer.js';
|
|
4
|
+
export { WebGLCubeRenderTarget } from './renderers/WebGLCubeRenderTarget.js';
|
|
4
5
|
export { ShaderLib } from './renderers/shaders/ShaderLib.js';
|
|
5
6
|
export { UniformsLib } from './renderers/shaders/UniformsLib.js';
|
|
6
7
|
export { UniformsUtils } from './renderers/shaders/UniformsUtils.js';
|
|
@@ -301,7 +301,7 @@ class AnimationClip {
|
|
|
301
301
|
* @static
|
|
302
302
|
* @deprecated since r175.
|
|
303
303
|
* @param {Object} animation - A serialized animation clip as JSON.
|
|
304
|
-
* @param {Array<
|
|
304
|
+
* @param {Array<Bone>} bones - An array of bones.
|
|
305
305
|
* @return {?AnimationClip} The new animation clip.
|
|
306
306
|
*/
|
|
307
307
|
static parseAnimation( animation, bones ) {
|
|
@@ -48,6 +48,12 @@ class AnimationMixer extends EventDispatcher {
|
|
|
48
48
|
*/
|
|
49
49
|
this.timeScale = 1.0;
|
|
50
50
|
|
|
51
|
+
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
52
|
+
|
|
53
|
+
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );
|
|
54
|
+
|
|
55
|
+
}
|
|
56
|
+
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
_bindAction( action, prototypeAction ) {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Quaternion } from '../math/Quaternion.js';
|
|
2
2
|
import { AdditiveAnimationBlendMode } from '../constants.js';
|
|
3
|
+
import { isTypedArray } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Converts an array to a specific type.
|
|
@@ -22,18 +23,6 @@ function convertArray( array, type ) {
|
|
|
22
23
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
|
-
/**
|
|
26
|
-
* Returns `true` if the given object is a typed array.
|
|
27
|
-
*
|
|
28
|
-
* @param {any} object - The object to check.
|
|
29
|
-
* @return {boolean} Whether the given object is a typed array.
|
|
30
|
-
*/
|
|
31
|
-
function isTypedArray( object ) {
|
|
32
|
-
|
|
33
|
-
return ArrayBuffer.isView( object ) && ! ( object instanceof DataView );
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
26
|
/**
|
|
38
27
|
* Returns an array by which times and values can be sorted.
|
|
39
28
|
*
|