@plastic-software/three 0.180.0 → 0.181.1
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/build/three.cjs +943 -486
- package/build/three.core.js +506 -327
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +435 -163
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +8 -2
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +3753 -1177
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +3752 -1176
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
- package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +1 -1
- package/examples/jsm/controls/DragControls.js +1 -1
- package/examples/jsm/controls/FirstPersonControls.js +1 -1
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -2
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +1 -1
- package/examples/jsm/effects/AsciiEffect.js +8 -8
- package/examples/jsm/exporters/DRACOExporter.js +2 -2
- package/examples/jsm/exporters/EXRExporter.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +3 -3
- package/examples/jsm/exporters/USDZExporter.js +9 -2
- package/examples/jsm/geometries/DecalGeometry.js +2 -2
- package/examples/jsm/geometries/ParametricGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +3 -2
- package/examples/jsm/gpgpu/BitonicSort.js +715 -0
- package/examples/jsm/helpers/ViewHelper.js +43 -5
- package/examples/jsm/inspector/Inspector.js +427 -0
- package/examples/jsm/inspector/RendererInspector.js +415 -0
- package/examples/jsm/inspector/tabs/Console.js +204 -0
- package/examples/jsm/inspector/tabs/Parameters.js +332 -0
- package/examples/jsm/inspector/tabs/Performance.js +268 -0
- package/examples/jsm/inspector/tabs/Viewer.js +166 -0
- package/examples/jsm/inspector/ui/Graph.js +95 -0
- package/examples/jsm/inspector/ui/Item.js +170 -0
- package/examples/jsm/inspector/ui/List.js +75 -0
- package/examples/jsm/inspector/ui/Profiler.js +170 -0
- package/examples/jsm/inspector/ui/Style.js +654 -0
- package/examples/jsm/inspector/ui/Tab.js +46 -0
- package/examples/jsm/inspector/ui/Values.js +423 -0
- package/examples/jsm/inspector/ui/utils.js +56 -0
- package/examples/jsm/interactive/HTMLMesh.js +6 -10
- package/examples/jsm/interactive/InteractiveGroup.js +1 -1
- package/examples/jsm/interactive/SelectionBox.js +30 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +2 -2
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/FBXLoader.js +2 -2
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +5 -3
- package/examples/jsm/loaders/KTX2Loader.js +28 -21
- package/examples/jsm/loaders/KTXLoader.js +2 -2
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
- package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
- package/examples/jsm/loaders/LWOLoader.js +2 -2
- package/examples/jsm/loaders/MaterialXLoader.js +22 -5
- package/examples/jsm/loaders/OBJLoader.js +1 -1
- package/examples/jsm/loaders/PDBLoader.js +1 -1
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/UltraHDRLoader.js +1 -1
- package/examples/jsm/math/ConvexHull.js +1 -1
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/SkyMesh.js +1 -1
- package/examples/jsm/objects/Water.js +3 -3
- package/examples/jsm/objects/WaterMesh.js +6 -6
- package/examples/jsm/postprocessing/GlitchPass.js +2 -2
- package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
- package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
- package/examples/jsm/renderers/SVGRenderer.js +1 -1
- package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
- package/examples/jsm/shaders/AfterimageShader.js +1 -1
- package/examples/jsm/shaders/BleachBypassShader.js +1 -1
- package/examples/jsm/shaders/BokehShader.js +1 -1
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/DotScreenShader.js +1 -1
- package/examples/jsm/shaders/FocusShader.js +1 -1
- package/examples/jsm/shaders/GTAOShader.js +2 -2
- package/examples/jsm/shaders/GodRaysShader.js +1 -1
- package/examples/jsm/shaders/KaleidoShader.js +1 -1
- package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SepiaShader.js +1 -1
- package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
- package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/TSLEncoder.js +7 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +2 -1
- package/examples/jsm/tsl/display/BloomNode.js +4 -0
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +7 -0
- package/examples/jsm/tsl/display/GTAONode.js +45 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +5 -3
- package/examples/jsm/tsl/display/OutlineNode.js +11 -0
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +2 -0
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +123 -6
- package/examples/jsm/tsl/display/boxBlur.js +1 -0
- package/examples/jsm/tsl/display/hashBlur.js +1 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
- package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
- package/package.json +5 -10
- package/src/Three.Core.js +3 -2
- package/src/Three.TSL.js +7 -1
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +2 -0
- package/src/animation/AnimationClip.js +3 -2
- package/src/animation/AnimationMixer.js +3 -3
- package/src/animation/AnimationObjectGroup.js +2 -1
- package/src/animation/KeyframeTrack.js +7 -6
- package/src/animation/PropertyBinding.js +12 -11
- package/src/audio/Audio.js +10 -9
- package/src/audio/PositionalAudio.js +1 -1
- package/src/cameras/OrthographicCamera.js +1 -1
- package/src/cameras/PerspectiveCamera.js +1 -1
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +1 -1
- package/src/core/BufferGeometry.js +8 -8
- package/src/core/EventDispatcher.js +1 -1
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +3 -2
- package/src/core/Object3D.js +3 -2
- package/src/core/Raycaster.js +2 -1
- package/src/core/RenderTarget.js +10 -1
- package/src/extras/Controls.js +5 -4
- package/src/extras/DataUtils.js +2 -1
- package/src/extras/Earcut.js +6 -0
- package/src/extras/ImageUtils.js +2 -2
- package/src/extras/PMREMGenerator.js +268 -55
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +7 -7
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +8 -6
- package/src/geometries/IcosahedronGeometry.js +1 -0
- package/src/geometries/LatheGeometry.js +1 -0
- package/src/geometries/OctahedronGeometry.js +1 -0
- package/src/geometries/PlaneGeometry.js +1 -0
- package/src/geometries/RingGeometry.js +1 -0
- package/src/geometries/ShapeGeometry.js +1 -0
- package/src/geometries/SphereGeometry.js +1 -0
- package/src/geometries/TetrahedronGeometry.js +1 -0
- package/src/geometries/TorusGeometry.js +1 -0
- package/src/geometries/TorusKnotGeometry.js +1 -0
- package/src/geometries/TubeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +1 -1
- package/src/loaders/AnimationLoader.js +2 -1
- package/src/loaders/AudioLoader.js +2 -1
- package/src/loaders/BufferGeometryLoader.js +2 -2
- package/src/loaders/Cache.js +2 -2
- package/src/loaders/DataTextureLoader.js +1 -1
- package/src/loaders/FileLoader.js +3 -2
- package/src/loaders/ImageBitmapLoader.js +5 -4
- package/src/loaders/ImageLoader.js +1 -1
- package/src/loaders/Loader.js +3 -3
- package/src/loaders/LoadingManager.js +25 -3
- package/src/loaders/MaterialLoader.js +3 -2
- package/src/loaders/ObjectLoader.js +13 -13
- package/src/loaders/TextureLoader.js +1 -1
- package/src/loaders/nodes/NodeLoader.js +3 -2
- package/src/materials/Material.js +4 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshLambertMaterial.js +2 -1
- package/src/materials/MeshMatcapMaterial.js +22 -0
- package/src/materials/MeshNormalMaterial.js +1 -0
- package/src/materials/MeshPhongMaterial.js +2 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -1
- package/src/materials/MeshStandardMaterial.js +8 -7
- package/src/materials/MeshToonMaterial.js +1 -0
- package/src/materials/PointsMaterial.js +1 -1
- package/src/materials/ShaderMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +2 -2
- package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
- package/src/materials/nodes/NodeMaterial.js +62 -22
- package/src/materials/nodes/manager/NodeMaterialObserver.js +2 -1
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +2 -2
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/MathUtils.js +13 -11
- package/src/math/Matrix2.js +1 -1
- package/src/math/Matrix3.js +2 -2
- package/src/math/Matrix4.js +7 -7
- package/src/math/Plane.js +1 -1
- package/src/math/Quaternion.js +68 -66
- package/src/math/Spherical.js +1 -1
- package/src/nodes/Nodes.js +1 -1
- package/src/nodes/TSL.js +1 -1
- package/src/nodes/accessors/CubeTextureNode.js +3 -2
- package/src/nodes/accessors/InstanceNode.js +22 -4
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +5 -4
- package/src/nodes/accessors/Position.js +18 -2
- package/src/nodes/accessors/ReferenceNode.js +2 -1
- package/src/nodes/accessors/SceneNode.js +2 -1
- package/src/nodes/accessors/StorageBufferNode.js +2 -1
- package/src/nodes/accessors/StorageTextureNode.js +22 -0
- package/src/nodes/accessors/Texture3DNode.js +1 -1
- package/src/nodes/accessors/TextureNode.js +61 -27
- package/src/nodes/code/FunctionCallNode.js +5 -4
- package/src/nodes/core/ArrayNode.js +1 -0
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +5 -10
- package/src/nodes/core/IndexNode.js +2 -2
- package/src/nodes/core/InputNode.js +2 -1
- package/src/nodes/core/InspectorNode.js +128 -0
- package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
- package/src/nodes/core/Node.js +137 -12
- package/src/nodes/core/NodeBuilder.js +135 -21
- package/src/nodes/core/NodeFrame.js +20 -20
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUtils.js +17 -90
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +16 -14
- package/src/nodes/core/UniformNode.js +2 -1
- package/src/nodes/core/VarNode.js +70 -12
- package/src/nodes/core/VaryingNode.js +3 -2
- package/src/nodes/display/BlendModes.js +5 -4
- package/src/nodes/display/BumpMapNode.js +1 -1
- package/src/nodes/display/ColorAdjustment.js +1 -1
- package/src/nodes/display/NormalMapNode.js +2 -1
- package/src/nodes/display/PassNode.js +51 -10
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +2 -1
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/fog/Fog.js +3 -2
- package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
- package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
- package/src/nodes/functions/BasicLightingModel.js +2 -1
- package/src/nodes/functions/PhysicalLightingModel.js +3 -2
- package/src/nodes/functions/VolumetricLightingModel.js +5 -5
- package/src/nodes/geometry/RangeNode.js +40 -4
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
- package/src/nodes/gpgpu/ComputeNode.js +17 -5
- package/src/nodes/gpgpu/SubgroupFunctionNode.js +25 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
- package/src/nodes/lighting/EnvironmentNode.js +6 -6
- package/src/nodes/lighting/LightsNode.js +2 -3
- package/src/nodes/lighting/PointShadowNode.js +6 -0
- package/src/nodes/lighting/ShadowFilterNode.js +2 -0
- package/src/nodes/lighting/ShadowNode.js +75 -8
- package/src/nodes/math/ConditionalNode.js +6 -5
- package/src/nodes/math/MathNode.js +22 -4
- package/src/nodes/math/OperatorNode.js +3 -2
- package/src/nodes/pmrem/PMREMUtils.js +117 -2
- package/src/nodes/shapes/Shapes.js +1 -1
- package/src/nodes/tsl/TSLBase.js +5 -2
- package/src/nodes/tsl/TSLCore.js +36 -15
- package/src/nodes/utils/DebugNode.js +2 -1
- package/src/nodes/utils/EventNode.js +36 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
- package/src/nodes/utils/JoinNode.js +3 -2
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +2 -1
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +12 -2
- package/src/nodes/utils/ReflectorNode.js +10 -3
- package/src/objects/Line.js +2 -1
- package/src/objects/LineSegments.js +2 -1
- package/src/objects/Skeleton.js +3 -2
- package/src/objects/SkinnedMesh.js +3 -1
- package/src/objects/Sprite.js +2 -1
- package/src/renderers/WebGLRenderer.js +48 -32
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Backend.js +93 -30
- package/src/renderers/common/Background.js +2 -1
- package/src/renderers/common/Bindings.js +56 -2
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/Geometries.js +26 -0
- package/src/renderers/common/Info.js +4 -2
- package/src/renderers/common/InspectorBase.js +146 -0
- package/src/renderers/common/PostProcessing.js +6 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +3 -1
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +436 -228
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +8 -0
- package/src/renderers/common/Sampler.js +37 -11
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +89 -35
- package/src/renderers/common/TimestampQueryPool.js +63 -1
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +7 -3
- package/src/renderers/common/extras/PMREMGenerator.js +160 -65
- package/src/renderers/common/nodes/NodeLibrary.js +4 -2
- package/src/renderers/common/nodes/NodeSampler.js +13 -1
- package/src/renderers/common/nodes/Nodes.js +38 -16
- package/src/renderers/shaders/DFGLUTData.js +64 -0
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
- package/src/renderers/shaders/UniformsLib.js +1 -0
- package/src/renderers/shaders/UniformsUtils.js +25 -4
- package/src/renderers/webgl/WebGLCapabilities.js +2 -1
- package/src/renderers/webgl/WebGLExtensions.js +2 -25
- package/src/renderers/webgl/WebGLInfo.js +3 -1
- package/src/renderers/webgl/WebGLProgram.js +11 -10
- package/src/renderers/webgl/WebGLPrograms.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +2 -1
- package/src/renderers/webgl/WebGLState.js +15 -14
- package/src/renderers/webgl/WebGLTextures.js +18 -14
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl-fallback/WebGLBackend.js +22 -41
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +74 -11
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +6 -5
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +117 -16
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +42 -12
- package/src/renderers/webgpu/WebGPUBackend.js +134 -108
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -19
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
- package/src/renderers/webgpu/utils/WebGPUConstants.js +5 -0
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +44 -16
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +146 -74
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +29 -6
- package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
- package/src/renderers/webxr/WebXRManager.js +3 -2
- package/src/textures/Source.js +2 -1
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +2 -0
- package/src/utils.js +67 -3
|
@@ -5,6 +5,17 @@ import {
|
|
|
5
5
|
Fn, If, Return, textureLoad, instanceIndex, screenCoordinate, directPointLight
|
|
6
6
|
} from 'three/tsl';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* TSL function that checks if a circle intersects with an axis-aligned bounding box (AABB).
|
|
10
|
+
*
|
|
11
|
+
* @tsl
|
|
12
|
+
* @function
|
|
13
|
+
* @param {Node<vec2>} circleCenter - The center of the circle.
|
|
14
|
+
* @param {Node<float>} radius - The radius of the circle.
|
|
15
|
+
* @param {Node<vec2>} minBounds - The minimum bounds of the AABB.
|
|
16
|
+
* @param {Node<vec2>} maxBounds - The maximum bounds of the AABB.
|
|
17
|
+
* @return {Node<bool>} True if the circle intersects the AABB.
|
|
18
|
+
*/
|
|
8
19
|
export const circleIntersectsAABB = /*@__PURE__*/ Fn( ( [ circleCenter, radius, minBounds, maxBounds ] ) => {
|
|
9
20
|
|
|
10
21
|
// Find the closest point on the AABB to the circle's center using method chaining
|
|
@@ -392,7 +403,7 @@ class TiledLightsNode extends LightsNode {
|
|
|
392
403
|
|
|
393
404
|
} );
|
|
394
405
|
|
|
395
|
-
} )().compute( count );
|
|
406
|
+
} )().compute( count ).setName( 'Update Tiled Lights' );
|
|
396
407
|
|
|
397
408
|
// screen coordinate lighting indexes
|
|
398
409
|
|
|
@@ -419,4 +430,13 @@ class TiledLightsNode extends LightsNode {
|
|
|
419
430
|
|
|
420
431
|
export default TiledLightsNode;
|
|
421
432
|
|
|
433
|
+
/**
|
|
434
|
+
* TSL function that creates a tiled lights node.
|
|
435
|
+
*
|
|
436
|
+
* @tsl
|
|
437
|
+
* @function
|
|
438
|
+
* @param {number} [maxLights=1024] - The maximum number of lights.
|
|
439
|
+
* @param {number} [tileSize=32] - The tile size.
|
|
440
|
+
* @return {TiledLightsNode} The tiled lights node.
|
|
441
|
+
*/
|
|
422
442
|
export const tiledLights = /*@__PURE__*/ nodeProxy( TiledLightsNode );
|
|
@@ -245,7 +245,7 @@ function addAssetSceneToControllerModel( controllerModel, scene ) {
|
|
|
245
245
|
* attached to the object returned from getControllerGrip in order to match the orientation of
|
|
246
246
|
* the held device.
|
|
247
247
|
*
|
|
248
|
-
* This module depends on the [motion-controllers]
|
|
248
|
+
* This module depends on the [motion-controllers](https://github.com/immersive-web/webxr-input-profiles/blob/main/packages/motion-controllers/README.md)
|
|
249
249
|
* third-part library.
|
|
250
250
|
*
|
|
251
251
|
* ```js
|
|
@@ -179,16 +179,12 @@ class XRHandModelFactory {
|
|
|
179
179
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
-
controller.visible = true;
|
|
183
|
-
|
|
184
182
|
} );
|
|
185
183
|
|
|
186
184
|
controller.addEventListener( 'disconnected', () => {
|
|
187
185
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
// handModel.remove( scene );
|
|
191
|
-
// scene = null;
|
|
186
|
+
handModel.clear();
|
|
187
|
+
handModel.motionController = null;
|
|
192
188
|
|
|
193
189
|
} );
|
|
194
190
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plastic-software/three",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.181.1",
|
|
4
4
|
"description": "JavaScript 3D library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/three.cjs",
|
|
@@ -63,13 +63,12 @@
|
|
|
63
63
|
"lint-utils": "eslint utils --ignore-pattern prettify --ignore-pattern fuse",
|
|
64
64
|
"lint": "npm run lint-core",
|
|
65
65
|
"lint-fix": "npm run lint-core -- --fix && npm run lint-addons -- --fix && npm run lint-examples -- --fix && npm run lint-docs -- --fix && npm run lint-editor -- --fix && npm run lint-playground -- --fix && npm run lint-manual -- --fix && npm run lint-test -- --fix && npm run lint-utils -- --fix",
|
|
66
|
-
"test-unit": "qunit
|
|
67
|
-
"test-unit-addons": "qunit
|
|
66
|
+
"test-unit": "qunit test/unit/three.source.unit.js",
|
|
67
|
+
"test-unit-addons": "qunit test/unit/three.addons.unit.js",
|
|
68
68
|
"test-e2e": "node test/e2e/puppeteer.js",
|
|
69
69
|
"test-e2e-cov": "node test/e2e/check-coverage.js",
|
|
70
70
|
"test-e2e-webgpu": "node test/e2e/puppeteer.js --webgpu",
|
|
71
71
|
"test-treeshake": "rollup -c test/rollup.treeshake.config.js",
|
|
72
|
-
"test-circular-deps": "dpdm --no-warning --no-tree --exit-code circular:1 src/nodes/Nodes.js",
|
|
73
72
|
"make-screenshot": "node test/e2e/puppeteer.js --make"
|
|
74
73
|
},
|
|
75
74
|
"keywords": [
|
|
@@ -97,24 +96,20 @@
|
|
|
97
96
|
"devDependencies": {
|
|
98
97
|
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
99
98
|
"@rollup/plugin-terser": "^0.4.0",
|
|
100
|
-
"chalk": "^5.2.0",
|
|
101
99
|
"concurrently": "^9.0.0",
|
|
102
|
-
"dpdm": "^3.14.0",
|
|
103
100
|
"eslint": "^8.37.0",
|
|
104
101
|
"eslint-config-mdcs": "^5.0.0",
|
|
105
102
|
"eslint-plugin-compat": "^6.0.0",
|
|
106
103
|
"eslint-plugin-html": "^8.0.0",
|
|
107
104
|
"eslint-plugin-import": "^2.27.5",
|
|
108
|
-
"failonlyreporter": "^1.0.0",
|
|
109
105
|
"jimp": "^1.6.0",
|
|
110
|
-
"jsdoc": "^4.0.
|
|
106
|
+
"jsdoc": "^4.0.5",
|
|
111
107
|
"magic-string": "^0.30.0",
|
|
112
108
|
"pixelmatch": "^7.0.0",
|
|
113
|
-
"puppeteer": "^
|
|
109
|
+
"puppeteer": "^24.25.0",
|
|
114
110
|
"qunit": "^2.19.4",
|
|
115
111
|
"rollup": "^4.6.0",
|
|
116
112
|
"rollup-plugin-filesize": "^10.0.0",
|
|
117
|
-
"rollup-plugin-visualizer": "^6.0.0",
|
|
118
113
|
"servez": "^2.2.4"
|
|
119
114
|
},
|
|
120
115
|
"overrides": {
|
package/src/Three.Core.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { REVISION } from './constants.js';
|
|
2
|
+
import { warn } from './utils.js';
|
|
2
3
|
|
|
3
4
|
export { WebGLArrayRenderTarget } from './renderers/WebGLArrayRenderTarget.js';
|
|
4
5
|
export { WebGL3DRenderTarget } from './renderers/WebGL3DRenderTarget.js';
|
|
@@ -157,7 +158,7 @@ export { DataUtils } from './extras/DataUtils.js';
|
|
|
157
158
|
export { ImageUtils } from './extras/ImageUtils.js';
|
|
158
159
|
export { ShapeUtils } from './extras/ShapeUtils.js';
|
|
159
160
|
export { TextureUtils } from './extras/TextureUtils.js';
|
|
160
|
-
export { createCanvasElement } from './utils.js';
|
|
161
|
+
export { createCanvasElement, setConsoleFunction, getConsoleFunction, log, warn, error, warnOnce } from './utils.js';
|
|
161
162
|
export * from './constants.js';
|
|
162
163
|
export * from './Three.Legacy.js';
|
|
163
164
|
|
|
@@ -173,7 +174,7 @@ if ( typeof window !== 'undefined' ) {
|
|
|
173
174
|
|
|
174
175
|
if ( window.__THREE__ ) {
|
|
175
176
|
|
|
176
|
-
|
|
177
|
+
warn( 'WARNING: Multiple instances of Three.js being imported.' );
|
|
177
178
|
|
|
178
179
|
} else {
|
|
179
180
|
|
package/src/Three.TSL.js
CHANGED
|
@@ -24,6 +24,8 @@ export const PCFShadowFilter = TSL.PCFShadowFilter;
|
|
|
24
24
|
export const PCFSoftShadowFilter = TSL.PCFSoftShadowFilter;
|
|
25
25
|
export const PI = TSL.PI;
|
|
26
26
|
export const PI2 = TSL.PI2;
|
|
27
|
+
export const TWO_PI = TSL.TWO_PI;
|
|
28
|
+
export const HALF_PI = TSL.HALF_PI;
|
|
27
29
|
export const PointShadowFilter = TSL.PointShadowFilter;
|
|
28
30
|
export const Return = TSL.Return;
|
|
29
31
|
export const Schlick_to_F0 = TSL.Schlick_to_F0;
|
|
@@ -196,6 +198,7 @@ export const getDirection = TSL.getDirection;
|
|
|
196
198
|
export const getDistanceAttenuation = TSL.getDistanceAttenuation;
|
|
197
199
|
export const getGeometryRoughness = TSL.getGeometryRoughness;
|
|
198
200
|
export const getNormalFromDepth = TSL.getNormalFromDepth;
|
|
201
|
+
export const interleavedGradientNoise = TSL.interleavedGradientNoise;
|
|
199
202
|
export const getParallaxCorrectNormal = TSL.getParallaxCorrectNormal;
|
|
200
203
|
export const getRoughness = TSL.getRoughness;
|
|
201
204
|
export const getScreenPosition = TSL.getScreenPosition;
|
|
@@ -396,6 +399,8 @@ export const objectRadius = TSL.objectRadius;
|
|
|
396
399
|
export const objectScale = TSL.objectScale;
|
|
397
400
|
export const objectViewPosition = TSL.objectViewPosition;
|
|
398
401
|
export const objectWorldMatrix = TSL.objectWorldMatrix;
|
|
402
|
+
export const OnBeforeObjectUpdate = TSL.OnBeforeObjectUpdate;
|
|
403
|
+
export const OnBeforeMaterialUpdate = TSL.OnBeforeMaterialUpdate;
|
|
399
404
|
export const OnObjectUpdate = TSL.OnObjectUpdate;
|
|
400
405
|
export const OnMaterialUpdate = TSL.OnMaterialUpdate;
|
|
401
406
|
export const oneMinus = TSL.oneMinus;
|
|
@@ -547,6 +552,7 @@ export const textureBicubicLevel = TSL.textureBicubicLevel;
|
|
|
547
552
|
export const textureCubeUV = TSL.textureCubeUV;
|
|
548
553
|
export const textureLoad = TSL.textureLoad;
|
|
549
554
|
export const textureSize = TSL.textureSize;
|
|
555
|
+
export const textureLevel = TSL.textureLevel;
|
|
550
556
|
export const textureStore = TSL.textureStore;
|
|
551
557
|
export const thickness = TSL.thickness;
|
|
552
558
|
export const time = TSL.time;
|
|
@@ -623,5 +629,5 @@ for ( const key of Object.keys( THREE.TSL ) ) {
|
|
|
623
629
|
|
|
624
630
|
}
|
|
625
631
|
|
|
626
|
-
|
|
632
|
+
log( code );
|
|
627
633
|
//*/
|
|
@@ -18,6 +18,8 @@ export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
|
|
|
18
18
|
export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
|
|
19
19
|
export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
|
|
20
20
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
21
|
+
export { default as InspectorBase } from './renderers/common/InspectorBase.js';
|
|
22
|
+
export { default as CanvasTarget } from './renderers/common/CanvasTarget.js';
|
|
21
23
|
export { ClippingGroup } from './objects/ClippingGroup.js';
|
|
22
24
|
export * from './nodes/Nodes.js';
|
|
23
25
|
import * as TSL from './nodes/TSL.js';
|
package/src/Three.WebGPU.js
CHANGED
|
@@ -20,6 +20,8 @@ export { default as ProjectorLight } from './lights/webgpu/ProjectorLight.js';
|
|
|
20
20
|
export { default as NodeLoader } from './loaders/nodes/NodeLoader.js';
|
|
21
21
|
export { default as NodeObjectLoader } from './loaders/nodes/NodeObjectLoader.js';
|
|
22
22
|
export { default as NodeMaterialLoader } from './loaders/nodes/NodeMaterialLoader.js';
|
|
23
|
+
export { default as InspectorBase } from './renderers/common/InspectorBase.js';
|
|
24
|
+
export { default as CanvasTarget } from './renderers/common/CanvasTarget.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';
|
|
@@ -8,6 +8,7 @@ import { StringKeyframeTrack } from './tracks/StringKeyframeTrack.js';
|
|
|
8
8
|
import { VectorKeyframeTrack } from './tracks/VectorKeyframeTrack.js';
|
|
9
9
|
import { generateUUID } from '../math/MathUtils.js';
|
|
10
10
|
import { NormalAnimationBlendMode } from '../constants.js';
|
|
11
|
+
import { warn, error } from '../utils.js';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* A reusable set of keyframe tracks which represent an animation.
|
|
@@ -305,11 +306,11 @@ class AnimationClip {
|
|
|
305
306
|
*/
|
|
306
307
|
static parseAnimation( animation, bones ) {
|
|
307
308
|
|
|
308
|
-
|
|
309
|
+
warn( 'AnimationClip: parseAnimation() is deprecated and will be removed with r185' );
|
|
309
310
|
|
|
310
311
|
if ( ! animation ) {
|
|
311
312
|
|
|
312
|
-
|
|
313
|
+
error( 'AnimationClip: No animation in JSONLoader data.' );
|
|
313
314
|
return null;
|
|
314
315
|
|
|
315
316
|
}
|
|
@@ -641,7 +641,7 @@ class AnimationMixer extends EventDispatcher {
|
|
|
641
641
|
/**
|
|
642
642
|
* Deactivates all previously scheduled actions on this mixer.
|
|
643
643
|
*
|
|
644
|
-
* @return {AnimationMixer} A reference to
|
|
644
|
+
* @return {AnimationMixer} A reference to this animation mixer.
|
|
645
645
|
*/
|
|
646
646
|
stopAllAction() {
|
|
647
647
|
|
|
@@ -665,7 +665,7 @@ class AnimationMixer extends EventDispatcher {
|
|
|
665
665
|
* time from {@link Clock} or {@link Timer}.
|
|
666
666
|
*
|
|
667
667
|
* @param {number} deltaTime - The delta time in seconds.
|
|
668
|
-
* @return {AnimationMixer} A reference to
|
|
668
|
+
* @return {AnimationMixer} A reference to this animation mixer.
|
|
669
669
|
*/
|
|
670
670
|
update( deltaTime ) {
|
|
671
671
|
|
|
@@ -711,7 +711,7 @@ class AnimationMixer extends EventDispatcher {
|
|
|
711
711
|
* input parameter will be scaled by {@link AnimationMixer#timeScale}
|
|
712
712
|
*
|
|
713
713
|
* @param {number} time - The time to set in seconds.
|
|
714
|
-
* @return {AnimationMixer} A reference to
|
|
714
|
+
* @return {AnimationMixer} A reference to this animation mixer.
|
|
715
715
|
*/
|
|
716
716
|
setTime( time ) {
|
|
717
717
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PropertyBinding } from './PropertyBinding.js';
|
|
2
2
|
import { generateUUID } from '../math/MathUtils.js';
|
|
3
|
+
import { error } from '../utils.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* A group of objects that receives a shared animation state.
|
|
@@ -175,7 +176,7 @@ class AnimationObjectGroup {
|
|
|
175
176
|
|
|
176
177
|
} else if ( objects[ index ] !== knownObject ) {
|
|
177
178
|
|
|
178
|
-
|
|
179
|
+
error( 'AnimationObjectGroup: Different objects with the same UUID ' +
|
|
179
180
|
'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );
|
|
180
181
|
|
|
181
182
|
} // else the object is already where we want it to be
|
|
@@ -7,6 +7,7 @@ import { CubicInterpolant } from '../math/interpolants/CubicInterpolant.js';
|
|
|
7
7
|
import { LinearInterpolant } from '../math/interpolants/LinearInterpolant.js';
|
|
8
8
|
import { DiscreteInterpolant } from '../math/interpolants/DiscreteInterpolant.js';
|
|
9
9
|
import * as AnimationUtils from './AnimationUtils.js';
|
|
10
|
+
import { warn, error } from '../utils.js';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Represents s a timed sequence of keyframes, which are composed of lists of
|
|
@@ -191,7 +192,7 @@ class KeyframeTrack {
|
|
|
191
192
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
|
-
|
|
195
|
+
warn( 'KeyframeTrack:', message );
|
|
195
196
|
return this;
|
|
196
197
|
|
|
197
198
|
}
|
|
@@ -351,7 +352,7 @@ class KeyframeTrack {
|
|
|
351
352
|
const valueSize = this.getValueSize();
|
|
352
353
|
if ( valueSize - Math.floor( valueSize ) !== 0 ) {
|
|
353
354
|
|
|
354
|
-
|
|
355
|
+
error( 'KeyframeTrack: Invalid value size in track.', this );
|
|
355
356
|
valid = false;
|
|
356
357
|
|
|
357
358
|
}
|
|
@@ -363,7 +364,7 @@ class KeyframeTrack {
|
|
|
363
364
|
|
|
364
365
|
if ( nKeys === 0 ) {
|
|
365
366
|
|
|
366
|
-
|
|
367
|
+
error( 'KeyframeTrack: Track is empty.', this );
|
|
367
368
|
valid = false;
|
|
368
369
|
|
|
369
370
|
}
|
|
@@ -376,7 +377,7 @@ class KeyframeTrack {
|
|
|
376
377
|
|
|
377
378
|
if ( typeof currTime === 'number' && isNaN( currTime ) ) {
|
|
378
379
|
|
|
379
|
-
|
|
380
|
+
error( 'KeyframeTrack: Time is not a valid number.', this, i, currTime );
|
|
380
381
|
valid = false;
|
|
381
382
|
break;
|
|
382
383
|
|
|
@@ -384,7 +385,7 @@ class KeyframeTrack {
|
|
|
384
385
|
|
|
385
386
|
if ( prevTime !== null && prevTime > currTime ) {
|
|
386
387
|
|
|
387
|
-
|
|
388
|
+
error( 'KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );
|
|
388
389
|
valid = false;
|
|
389
390
|
break;
|
|
390
391
|
|
|
@@ -404,7 +405,7 @@ class KeyframeTrack {
|
|
|
404
405
|
|
|
405
406
|
if ( isNaN( value ) ) {
|
|
406
407
|
|
|
407
|
-
|
|
408
|
+
error( 'KeyframeTrack: Value is not a valid number.', this, i, value );
|
|
408
409
|
valid = false;
|
|
409
410
|
break;
|
|
410
411
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { warn, error } from '../utils.js';
|
|
1
2
|
// Characters [].:/ are reserved for track binding syntax.
|
|
2
3
|
const _RESERVED_CHARS_RE = '\\[\\]\\.:\\/';
|
|
3
4
|
const _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );
|
|
@@ -507,7 +508,7 @@ class PropertyBinding {
|
|
|
507
508
|
// ensure there is a value node
|
|
508
509
|
if ( ! targetObject ) {
|
|
509
510
|
|
|
510
|
-
|
|
511
|
+
warn( 'PropertyBinding: No target node found for track: ' + this.path + '.' );
|
|
511
512
|
return;
|
|
512
513
|
|
|
513
514
|
}
|
|
@@ -523,14 +524,14 @@ class PropertyBinding {
|
|
|
523
524
|
|
|
524
525
|
if ( ! targetObject.material ) {
|
|
525
526
|
|
|
526
|
-
|
|
527
|
+
error( 'PropertyBinding: Can not bind to material as node does not have a material.', this );
|
|
527
528
|
return;
|
|
528
529
|
|
|
529
530
|
}
|
|
530
531
|
|
|
531
532
|
if ( ! targetObject.material.materials ) {
|
|
532
533
|
|
|
533
|
-
|
|
534
|
+
error( 'PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );
|
|
534
535
|
return;
|
|
535
536
|
|
|
536
537
|
}
|
|
@@ -543,7 +544,7 @@ class PropertyBinding {
|
|
|
543
544
|
|
|
544
545
|
if ( ! targetObject.skeleton ) {
|
|
545
546
|
|
|
546
|
-
|
|
547
|
+
error( 'PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );
|
|
547
548
|
return;
|
|
548
549
|
|
|
549
550
|
}
|
|
@@ -578,14 +579,14 @@ class PropertyBinding {
|
|
|
578
579
|
|
|
579
580
|
if ( ! targetObject.material ) {
|
|
580
581
|
|
|
581
|
-
|
|
582
|
+
error( 'PropertyBinding: Can not bind to material as node does not have a material.', this );
|
|
582
583
|
return;
|
|
583
584
|
|
|
584
585
|
}
|
|
585
586
|
|
|
586
587
|
if ( ! targetObject.material.map ) {
|
|
587
588
|
|
|
588
|
-
|
|
589
|
+
error( 'PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );
|
|
589
590
|
return;
|
|
590
591
|
|
|
591
592
|
}
|
|
@@ -597,7 +598,7 @@ class PropertyBinding {
|
|
|
597
598
|
|
|
598
599
|
if ( targetObject[ objectName ] === undefined ) {
|
|
599
600
|
|
|
600
|
-
|
|
601
|
+
error( 'PropertyBinding: Can not bind to objectName of node undefined.', this );
|
|
601
602
|
return;
|
|
602
603
|
|
|
603
604
|
}
|
|
@@ -611,7 +612,7 @@ class PropertyBinding {
|
|
|
611
612
|
|
|
612
613
|
if ( targetObject[ objectIndex ] === undefined ) {
|
|
613
614
|
|
|
614
|
-
|
|
615
|
+
error( 'PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );
|
|
615
616
|
return;
|
|
616
617
|
|
|
617
618
|
}
|
|
@@ -629,7 +630,7 @@ class PropertyBinding {
|
|
|
629
630
|
|
|
630
631
|
const nodeName = parsedPath.nodeName;
|
|
631
632
|
|
|
632
|
-
|
|
633
|
+
error( 'PropertyBinding: Trying to update property for track: ' + nodeName +
|
|
633
634
|
'.' + propertyName + ' but it wasn\'t found.', targetObject );
|
|
634
635
|
return;
|
|
635
636
|
|
|
@@ -664,14 +665,14 @@ class PropertyBinding {
|
|
|
664
665
|
// support resolving morphTarget names into indices.
|
|
665
666
|
if ( ! targetObject.geometry ) {
|
|
666
667
|
|
|
667
|
-
|
|
668
|
+
error( 'PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );
|
|
668
669
|
return;
|
|
669
670
|
|
|
670
671
|
}
|
|
671
672
|
|
|
672
673
|
if ( ! targetObject.geometry.morphAttributes ) {
|
|
673
674
|
|
|
674
|
-
|
|
675
|
+
error( 'PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );
|
|
675
676
|
return;
|
|
676
677
|
|
|
677
678
|
}
|
package/src/audio/Audio.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Object3D } from '../core/Object3D.js';
|
|
2
|
+
import { warn } from '../utils.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Represents a non-positional ( global ) audio object.
|
|
5
6
|
*
|
|
6
|
-
* This and related audio modules make use of the [Web Audio API]
|
|
7
|
+
* This and related audio modules make use of the [Web Audio API](https://www.w3.org/TR/webaudio-1.1/).
|
|
7
8
|
*
|
|
8
9
|
* ```js
|
|
9
10
|
* // create an AudioListener and add it to the camera
|
|
@@ -314,14 +315,14 @@ class Audio extends Object3D {
|
|
|
314
315
|
|
|
315
316
|
if ( this.isPlaying === true ) {
|
|
316
317
|
|
|
317
|
-
|
|
318
|
+
warn( 'Audio: Audio is already playing.' );
|
|
318
319
|
return;
|
|
319
320
|
|
|
320
321
|
}
|
|
321
322
|
|
|
322
323
|
if ( this.hasPlaybackControl === false ) {
|
|
323
324
|
|
|
324
|
-
|
|
325
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
325
326
|
return;
|
|
326
327
|
|
|
327
328
|
}
|
|
@@ -358,7 +359,7 @@ class Audio extends Object3D {
|
|
|
358
359
|
|
|
359
360
|
if ( this.hasPlaybackControl === false ) {
|
|
360
361
|
|
|
361
|
-
|
|
362
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
362
363
|
return;
|
|
363
364
|
|
|
364
365
|
}
|
|
@@ -400,7 +401,7 @@ class Audio extends Object3D {
|
|
|
400
401
|
|
|
401
402
|
if ( this.hasPlaybackControl === false ) {
|
|
402
403
|
|
|
403
|
-
|
|
404
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
404
405
|
return;
|
|
405
406
|
|
|
406
407
|
}
|
|
@@ -593,7 +594,7 @@ class Audio extends Object3D {
|
|
|
593
594
|
|
|
594
595
|
if ( this.hasPlaybackControl === false ) {
|
|
595
596
|
|
|
596
|
-
|
|
597
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
597
598
|
return;
|
|
598
599
|
|
|
599
600
|
}
|
|
@@ -642,7 +643,7 @@ class Audio extends Object3D {
|
|
|
642
643
|
|
|
643
644
|
if ( this.hasPlaybackControl === false ) {
|
|
644
645
|
|
|
645
|
-
|
|
646
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
646
647
|
return false;
|
|
647
648
|
|
|
648
649
|
}
|
|
@@ -663,7 +664,7 @@ class Audio extends Object3D {
|
|
|
663
664
|
|
|
664
665
|
if ( this.hasPlaybackControl === false ) {
|
|
665
666
|
|
|
666
|
-
|
|
667
|
+
warn( 'Audio: this Audio has no playback control.' );
|
|
667
668
|
return;
|
|
668
669
|
|
|
669
670
|
}
|
|
@@ -741,7 +742,7 @@ class Audio extends Object3D {
|
|
|
741
742
|
|
|
742
743
|
if ( source.sourceType !== 'buffer' ) {
|
|
743
744
|
|
|
744
|
-
|
|
745
|
+
warn( 'Audio: Audio source type cannot be copied.' );
|
|
745
746
|
|
|
746
747
|
return this;
|
|
747
748
|
|
|
@@ -154,7 +154,7 @@ class PositionalAudio extends Audio {
|
|
|
154
154
|
* Defines which algorithm to use to reduce the volume of the audio source
|
|
155
155
|
* as it moves away from the listener.
|
|
156
156
|
*
|
|
157
|
-
* Read [the spec]
|
|
157
|
+
* Read [the spec](https://www.w3.org/TR/webaudio-1.1/#enumdef-distancemodeltype)
|
|
158
158
|
* for more details.
|
|
159
159
|
*
|
|
160
160
|
* @param {('linear'|'inverse'|'exponential')} value - The distance model to set.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Camera } from './Camera.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Camera that uses [orthographic projection]
|
|
4
|
+
* Camera that uses [orthographic projection](https://en.wikipedia.org/wiki/Orthographic_projection).
|
|
5
5
|
*
|
|
6
6
|
* In this projection mode, an object's size in the rendered image stays
|
|
7
7
|
* constant regardless of its distance from the camera. This can be useful
|
|
@@ -8,7 +8,7 @@ const _minTarget = /*@__PURE__*/ new Vector2();
|
|
|
8
8
|
const _maxTarget = /*@__PURE__*/ new Vector2();
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Camera that uses [perspective projection]
|
|
11
|
+
* Camera that uses [perspective projection](https://en.wikipedia.org/wiki/Perspective_(graphical)).
|
|
12
12
|
*
|
|
13
13
|
* This projection mode is designed to mimic the way the human eye sees. It
|
|
14
14
|
* is the most common projection mode used for rendering a 3D scene.
|
|
@@ -9,8 +9,8 @@ const _projectionMatrix = /*@__PURE__*/ new Matrix4();
|
|
|
9
9
|
/**
|
|
10
10
|
* A special type of camera that uses two perspective cameras with
|
|
11
11
|
* stereoscopic projection. Can be used for rendering stereo effects
|
|
12
|
-
* like [3D Anaglyph]
|
|
13
|
-
* [Parallax Barrier]
|
|
12
|
+
* like [3D Anaglyph](https://en.wikipedia.org/wiki/Anaglyph_3D) or
|
|
13
|
+
* [Parallax Barrier](https://en.wikipedia.org/wiki/parallax_barrier).
|
|
14
14
|
*/
|
|
15
15
|
class StereoCamera {
|
|
16
16
|
|
package/src/constants.js
CHANGED
|
@@ -8,7 +8,7 @@ import { Object3D } from './Object3D.js';
|
|
|
8
8
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
9
9
|
import { Matrix3 } from '../math/Matrix3.js';
|
|
10
10
|
import { generateUUID } from '../math/MathUtils.js';
|
|
11
|
-
import { arrayNeedsUint32 } from '../utils.js';
|
|
11
|
+
import { arrayNeedsUint32, warn, error } from '../utils.js';
|
|
12
12
|
|
|
13
13
|
let _id = 0;
|
|
14
14
|
|
|
@@ -596,7 +596,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
596
596
|
|
|
597
597
|
if ( points.length > positionAttribute.count ) {
|
|
598
598
|
|
|
599
|
-
|
|
599
|
+
warn( 'BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.' );
|
|
600
600
|
|
|
601
601
|
}
|
|
602
602
|
|
|
@@ -626,7 +626,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
626
626
|
|
|
627
627
|
if ( position && position.isGLBufferAttribute ) {
|
|
628
628
|
|
|
629
|
-
|
|
629
|
+
error( 'BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );
|
|
630
630
|
|
|
631
631
|
this.boundingBox.set(
|
|
632
632
|
new Vector3( - Infinity, - Infinity, - Infinity ),
|
|
@@ -677,7 +677,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
677
677
|
|
|
678
678
|
if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {
|
|
679
679
|
|
|
680
|
-
|
|
680
|
+
error( 'BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.', this );
|
|
681
681
|
|
|
682
682
|
}
|
|
683
683
|
|
|
@@ -701,7 +701,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
701
701
|
|
|
702
702
|
if ( position && position.isGLBufferAttribute ) {
|
|
703
703
|
|
|
704
|
-
|
|
704
|
+
error( 'BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );
|
|
705
705
|
|
|
706
706
|
this.boundingSphere.set( new Vector3(), Infinity );
|
|
707
707
|
|
|
@@ -792,7 +792,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
792
792
|
|
|
793
793
|
if ( isNaN( this.boundingSphere.radius ) ) {
|
|
794
794
|
|
|
795
|
-
|
|
795
|
+
error( 'BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.', this );
|
|
796
796
|
|
|
797
797
|
}
|
|
798
798
|
|
|
@@ -820,7 +820,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
820
820
|
attributes.normal === undefined ||
|
|
821
821
|
attributes.uv === undefined ) {
|
|
822
822
|
|
|
823
|
-
|
|
823
|
+
error( 'BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );
|
|
824
824
|
return;
|
|
825
825
|
|
|
826
826
|
}
|
|
@@ -1130,7 +1130,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
1130
1130
|
|
|
1131
1131
|
if ( this.index === null ) {
|
|
1132
1132
|
|
|
1133
|
-
|
|
1133
|
+
warn( 'BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );
|
|
1134
1134
|
return this;
|
|
1135
1135
|
|
|
1136
1136
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* This modules allows to dispatch event objects on custom JavaScript objects.
|
|
3
3
|
*
|
|
4
|
-
* Main repository: [eventdispatcher.js]
|
|
4
|
+
* Main repository: [eventdispatcher.js](https://github.com/mrdoob/eventdispatcher.js/)
|
|
5
5
|
*
|
|
6
6
|
* Code Example:
|
|
7
7
|
* ```js
|
|
@@ -5,7 +5,7 @@ import { StaticDrawUsage } from '../constants.js';
|
|
|
5
5
|
* "Interleaved" means that multiple attributes, possibly of different types,
|
|
6
6
|
* (e.g., position, normal, uv, color) are packed into a single array buffer.
|
|
7
7
|
*
|
|
8
|
-
* An introduction into interleaved arrays can be found here: [Interleaved array basics]
|
|
8
|
+
* An introduction into interleaved arrays can be found here: [Interleaved array basics](https://blog.tojicode.com/2011/05/interleaved-array-basics.html)
|
|
9
9
|
*/
|
|
10
10
|
class InterleavedBuffer {
|
|
11
11
|
|