@plastic-software/three 0.179.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 +1108 -591
- package/build/three.core.js +616 -345
- package/build/three.core.min.js +1 -1
- package/build/three.module.js +488 -250
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +37 -6
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +6576 -2152
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +6575 -2151
- 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/Addons.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +8 -8
- package/examples/jsm/controls/DragControls.js +7 -57
- package/examples/jsm/controls/FirstPersonControls.js +3 -3
- package/examples/jsm/controls/FlyControls.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +2 -2
- package/examples/jsm/controls/PointerLockControls.js +2 -10
- 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 +33 -25
- package/examples/jsm/exporters/KTX2Exporter.js +4 -2
- package/examples/jsm/exporters/PLYExporter.js +1 -1
- 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/libs/ktx-parse.module.js +1 -1
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/Line2.js +3 -3
- package/examples/jsm/lines/LineGeometry.js +1 -1
- package/examples/jsm/lines/LineSegments2.js +2 -2
- package/examples/jsm/lines/Wireframe.js +2 -2
- package/examples/jsm/lines/WireframeGeometry2.js +1 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +1 -1
- package/examples/jsm/lines/webgpu/Wireframe.js +1 -1
- package/examples/jsm/loaders/3MFLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +3 -3
- package/examples/jsm/loaders/DDSLoader.js +1 -1
- package/examples/jsm/loaders/DRACOLoader.js +73 -22
- package/examples/jsm/loaders/EXRLoader.js +5 -5
- package/examples/jsm/loaders/FBXLoader.js +2 -2
- package/examples/jsm/loaders/FontLoader.js +23 -5
- package/examples/jsm/loaders/GLTFLoader.js +14 -8
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +5 -5
- package/examples/jsm/loaders/HDRLoader.js +486 -0
- package/examples/jsm/loaders/KTX2Loader.js +136 -49
- 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/RGBELoader.js +7 -473
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TTFLoader.js +4 -4
- package/examples/jsm/loaders/UltraHDRLoader.js +2 -2
- package/examples/jsm/loaders/lwo/IFFParser.js +1 -1
- package/examples/jsm/materials/WoodNodeMaterial.js +533 -0
- package/examples/jsm/math/ColorSpaces.js +19 -1
- package/examples/jsm/math/ConvexHull.js +3 -3
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/math/Lut.js +2 -2
- package/examples/jsm/math/SimplexNoise.js +1 -1
- package/examples/jsm/misc/MD2CharacterComplex.js +1 -1
- package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
- package/examples/jsm/misc/TubePainter.js +383 -40
- package/examples/jsm/misc/Volume.js +1 -1
- 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/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/SSRPass.js +37 -8
- 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/UnpackDepthRGBAShader.js +1 -1
- package/examples/jsm/shaders/VignetteShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +22 -19
- package/examples/jsm/transpiler/TSLEncoder.js +9 -10
- package/examples/jsm/transpiler/WGSLEncoder.js +24 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
- package/examples/jsm/tsl/display/AnamorphicNode.js +28 -4
- package/examples/jsm/tsl/display/BloomNode.js +7 -3
- package/examples/jsm/tsl/display/ChromaticAberrationNode.js +2 -1
- package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +446 -90
- package/examples/jsm/tsl/display/GTAONode.js +53 -5
- package/examples/jsm/tsl/display/GaussianBlurNode.js +49 -35
- package/examples/jsm/tsl/display/OutlineNode.js +13 -2
- package/examples/jsm/tsl/display/SSGINode.js +654 -0
- package/examples/jsm/tsl/display/SSRNode.js +182 -65
- package/examples/jsm/tsl/display/SSSNode.js +488 -0
- package/examples/jsm/tsl/display/TRAANode.js +124 -7
- package/examples/jsm/tsl/display/boxBlur.js +65 -0
- package/examples/jsm/tsl/display/hashBlur.js +16 -18
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/ShadowMapViewerGPU.js +12 -5
- package/examples/jsm/webxr/OculusHandModel.js +1 -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 +4 -2
- package/src/Three.TSL.js +36 -5
- package/src/Three.WebGPU.Nodes.js +2 -0
- package/src/Three.WebGPU.js +2 -0
- package/src/animation/AnimationClip.js +20 -4
- 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 +11 -3
- package/src/core/BufferGeometry.js +10 -10
- 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/TextureUtils.js +2 -1
- package/src/extras/core/Curve.js +2 -1
- package/src/extras/core/Interpolations.js +7 -1
- package/src/extras/core/ShapePath.js +4 -4
- package/src/extras/lib/earcut.js +8 -8
- package/src/geometries/BoxGeometry.js +1 -0
- package/src/geometries/CapsuleGeometry.js +1 -0
- package/src/geometries/CircleGeometry.js +1 -0
- package/src/geometries/ConeGeometry.js +1 -0
- package/src/geometries/CylinderGeometry.js +1 -0
- package/src/geometries/DodecahedronGeometry.js +1 -0
- package/src/geometries/ExtrudeGeometry.js +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/lights/webgpu/ProjectorLight.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 +16 -3
- package/src/materials/MeshBasicMaterial.js +1 -0
- package/src/materials/MeshDepthMaterial.js +1 -0
- package/src/materials/MeshDistanceMaterial.js +1 -1
- package/src/materials/MeshLambertMaterial.js +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/PointsNodeMaterial.js +81 -28
- package/src/materials/nodes/SpriteNodeMaterial.js +3 -15
- package/src/materials/nodes/manager/NodeMaterialObserver.js +3 -2
- package/src/math/Color.js +6 -5
- package/src/math/ColorManagement.js +9 -3
- package/src/math/Cylindrical.js +1 -1
- package/src/math/Euler.js +2 -1
- package/src/math/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 +4 -1
- package/src/nodes/TSL.js +4 -1
- package/src/nodes/accessors/BufferNode.js +1 -1
- package/src/nodes/accessors/Camera.js +133 -7
- package/src/nodes/accessors/ClippingNode.js +6 -5
- package/src/nodes/accessors/CubeTextureNode.js +5 -4
- package/src/nodes/accessors/InstanceNode.js +25 -5
- package/src/nodes/accessors/Lights.js +10 -0
- package/src/nodes/accessors/Normal.js +5 -4
- package/src/nodes/accessors/Object3DNode.js +1 -1
- package/src/nodes/accessors/Position.js +18 -2
- package/src/nodes/accessors/ReferenceBaseNode.js +1 -1
- package/src/nodes/accessors/ReferenceNode.js +3 -2
- 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 +14 -1
- package/src/nodes/accessors/TextureNode.js +130 -44
- package/src/nodes/code/FunctionCallNode.js +24 -4
- package/src/nodes/code/FunctionNode.js +23 -0
- package/src/nodes/core/ArrayNode.js +1 -0
- package/src/nodes/core/AssignNode.js +4 -3
- package/src/nodes/core/AttributeNode.js +2 -1
- package/src/nodes/core/ContextNode.js +29 -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 +152 -31
- package/src/nodes/core/NodeBuilder.js +183 -35
- package/src/nodes/core/NodeFrame.js +21 -21
- package/src/nodes/core/NodeFunction.js +2 -1
- package/src/nodes/core/NodeParser.js +2 -1
- package/src/nodes/core/NodeUniform.js +1 -1
- package/src/nodes/core/NodeUtils.js +17 -91
- package/src/nodes/core/ParameterNode.js +31 -0
- package/src/nodes/core/PropertyNode.js +7 -0
- package/src/nodes/core/StackNode.js +43 -16
- package/src/nodes/core/StructNode.js +5 -5
- package/src/nodes/core/StructTypeNode.js +1 -0
- package/src/nodes/core/SubBuildNode.js +2 -2
- package/src/nodes/core/UniformNode.js +18 -10
- package/src/nodes/core/VarNode.js +70 -33
- 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/FrontFacingNode.js +4 -8
- package/src/nodes/display/NormalMapNode.js +2 -1
- package/src/nodes/display/PassNode.js +52 -11
- package/src/nodes/display/RenderOutputNode.js +28 -2
- package/src/nodes/display/ScreenNode.js +44 -14
- package/src/nodes/display/ToneMappingNode.js +31 -4
- package/src/nodes/display/ToonOutlinePassNode.js +8 -0
- package/src/nodes/display/ViewportDepthTextureNode.js +16 -4
- package/src/nodes/display/ViewportSharedTextureNode.js +12 -0
- package/src/nodes/display/ViewportTextureNode.js +42 -12
- 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 +455 -0
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
- package/src/nodes/lighting/EnvironmentNode.js +6 -6
- package/src/nodes/lighting/LightsNode.js +3 -4
- 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/BitcastNode.js +156 -0
- package/src/nodes/math/ConditionalNode.js +24 -7
- package/src/nodes/math/MathNode.js +25 -19
- package/src/nodes/math/OperatorNode.js +7 -5
- 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 +460 -159
- 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 +6 -3
- package/src/nodes/utils/LoopNode.js +20 -24
- package/src/nodes/utils/MemberNode.js +59 -7
- package/src/nodes/utils/PostProcessingUtils.js +28 -1
- package/src/nodes/utils/RTTNode.js +13 -3
- package/src/nodes/utils/ReflectorNode.js +58 -7
- package/src/nodes/utils/SampleNode.js +12 -2
- package/src/nodes/utils/SplitNode.js +11 -0
- package/src/nodes/utils/Timer.js +0 -47
- package/src/objects/BatchedMesh.js +2 -2
- package/src/objects/LOD.js +1 -1
- 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 +4 -3
- package/src/renderers/WebGLRenderer.js +48 -41
- package/src/renderers/common/Animation.js +13 -1
- package/src/renderers/common/Attributes.js +1 -1
- package/src/renderers/common/Backend.js +108 -27
- package/src/renderers/common/Background.js +2 -1
- package/src/renderers/common/Bindings.js +58 -2
- package/src/renderers/common/CanvasTarget.js +341 -0
- package/src/renderers/common/ChainMap.js +1 -1
- package/src/renderers/common/DataMap.js +1 -1
- 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/Pipelines.js +1 -1
- package/src/renderers/common/PostProcessing.js +6 -25
- package/src/renderers/common/QuadMesh.js +7 -1
- package/src/renderers/common/RenderContext.js +2 -2
- package/src/renderers/common/RenderList.js +7 -3
- package/src/renderers/common/RenderObject.js +16 -2
- package/src/renderers/common/RenderObjects.js +1 -1
- package/src/renderers/common/Renderer.js +473 -245
- package/src/renderers/common/RendererUtils.js +9 -0
- package/src/renderers/common/SampledTexture.js +9 -1
- package/src/renderers/common/Sampler.js +50 -12
- package/src/renderers/common/StorageTexture.js +9 -1
- package/src/renderers/common/Textures.js +121 -45
- package/src/renderers/common/TimestampQueryPool.js +65 -3
- package/src/renderers/common/UniformsGroup.js +2 -1
- package/src/renderers/common/XRManager.js +42 -22
- package/src/renderers/common/extras/PMREMGenerator.js +160 -65
- package/src/renderers/common/nodes/NodeBuilderState.js +1 -1
- package/src/renderers/common/nodes/NodeLibrary.js +9 -7
- 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/ShaderChunk/logdepthbuf_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +7 -15
- package/src/renderers/shaders/ShaderLib/depth.glsl.js +1 -1
- 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 +15 -14
- package/src/renderers/webgl/WebGLPrograms.js +2 -1
- package/src/renderers/webgl/WebGLShadowMap.js +3 -2
- package/src/renderers/webgl/WebGLState.js +15 -14
- package/src/renderers/webgl/WebGLTextures.js +19 -14
- package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
- package/src/renderers/webgl/WebGLUtils.js +3 -2
- package/src/renderers/webgl-fallback/WebGLBackend.js +199 -167
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +181 -25
- package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
- package/src/renderers/webgl-fallback/utils/WebGLState.js +7 -6
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +169 -19
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +51 -22
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -2
- package/src/renderers/webgpu/WebGPUBackend.js +153 -123
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
- package/src/renderers/webgpu/WebGPURenderer.js +3 -2
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +142 -50
- 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 +7 -2
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +53 -34
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +260 -99
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +32 -9
- package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
- package/src/renderers/webxr/WebXRManager.js +42 -26
- package/src/textures/ExternalTexture.js +15 -4
- package/src/textures/Source.js +3 -2
- package/src/textures/Texture.js +3 -2
- package/src/textures/VideoTexture.js +2 -3
- package/src/utils.js +67 -3
- package/examples/jsm/loaders/RGBMLoader.js +0 -1148
|
@@ -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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const REVISION = '
|
|
1
|
+
export const REVISION = '181';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Represents mouse buttons and interaction types in context of controls.
|
|
@@ -724,6 +724,14 @@ export const UnsignedInt248Type = 1020;
|
|
|
724
724
|
*/
|
|
725
725
|
export const UnsignedInt5999Type = 35902;
|
|
726
726
|
|
|
727
|
+
/**
|
|
728
|
+
* An unsigned int 10_11_11 (packed) data type for textures.
|
|
729
|
+
*
|
|
730
|
+
* @type {number}
|
|
731
|
+
* @constant
|
|
732
|
+
*/
|
|
733
|
+
export const UnsignedInt101111Type = 35899;
|
|
734
|
+
|
|
727
735
|
/**
|
|
728
736
|
* Discards the red, green and blue components and reads just the alpha component.
|
|
729
737
|
*
|
|
@@ -1665,6 +1673,6 @@ export const InterpolationSamplingMode = {
|
|
|
1665
1673
|
* @property {string} NORMAL - Normal sampling mode.
|
|
1666
1674
|
* @property {string} CENTROID - Centroid sampling mode.
|
|
1667
1675
|
* @property {string} SAMPLE - Sample-specific sampling mode.
|
|
1668
|
-
* @property {string}
|
|
1669
|
-
* @property {string}
|
|
1676
|
+
* @property {string} FIRST - Flat interpolation using the first vertex.
|
|
1677
|
+
* @property {string} EITHER - Flat interpolation using either vertex.
|
|
1670
1678
|
*/
|
|
@@ -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
|
|
|
@@ -156,7 +156,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
156
156
|
/**
|
|
157
157
|
* Bounding box for the geometry which can be calculated with `computeBoundingBox()`.
|
|
158
158
|
*
|
|
159
|
-
* @type {Box3}
|
|
159
|
+
* @type {?Box3}
|
|
160
160
|
* @default null
|
|
161
161
|
*/
|
|
162
162
|
this.boundingBox = null;
|
|
@@ -164,7 +164,7 @@ class BufferGeometry extends EventDispatcher {
|
|
|
164
164
|
/**
|
|
165
165
|
* Bounding sphere for the geometry which can be calculated with `computeBoundingSphere()`.
|
|
166
166
|
*
|
|
167
|
-
* @type {Sphere}
|
|
167
|
+
* @type {?Sphere}
|
|
168
168
|
* @default null
|
|
169
169
|
*/
|
|
170
170
|
this.boundingSphere = null;
|
|
@@ -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
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Vector3 } from '../math/Vector3.js';
|
|
2
2
|
import { BufferAttribute } from './BufferAttribute.js';
|
|
3
3
|
import { denormalize, normalize } from '../math/MathUtils.js';
|
|
4
|
+
import { log } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
const _vector = /*@__PURE__*/ new Vector3();
|
|
6
7
|
|
|
@@ -439,7 +440,7 @@ class InterleavedBufferAttribute {
|
|
|
439
440
|
|
|
440
441
|
if ( data === undefined ) {
|
|
441
442
|
|
|
442
|
-
|
|
443
|
+
log( 'InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.' );
|
|
443
444
|
|
|
444
445
|
const array = [];
|
|
445
446
|
|
|
@@ -489,7 +490,7 @@ class InterleavedBufferAttribute {
|
|
|
489
490
|
|
|
490
491
|
if ( data === undefined ) {
|
|
491
492
|
|
|
492
|
-
|
|
493
|
+
log( 'InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.' );
|
|
493
494
|
|
|
494
495
|
const array = [];
|
|
495
496
|
|
package/src/core/Object3D.js
CHANGED
|
@@ -6,6 +6,7 @@ import { Euler } from '../math/Euler.js';
|
|
|
6
6
|
import { Layers } from './Layers.js';
|
|
7
7
|
import { Matrix3 } from '../math/Matrix3.js';
|
|
8
8
|
import { generateUUID } from '../math/MathUtils.js';
|
|
9
|
+
import { error } from '../utils.js';
|
|
9
10
|
|
|
10
11
|
let _object3DId = 0;
|
|
11
12
|
|
|
@@ -733,7 +734,7 @@ class Object3D extends EventDispatcher {
|
|
|
733
734
|
|
|
734
735
|
if ( object === this ) {
|
|
735
736
|
|
|
736
|
-
|
|
737
|
+
error( 'Object3D.add: object can\'t be added as a child of itself.', object );
|
|
737
738
|
return this;
|
|
738
739
|
|
|
739
740
|
}
|
|
@@ -752,7 +753,7 @@ class Object3D extends EventDispatcher {
|
|
|
752
753
|
|
|
753
754
|
} else {
|
|
754
755
|
|
|
755
|
-
|
|
756
|
+
error( 'Object3D.add: object not an instance of THREE.Object3D.', object );
|
|
756
757
|
|
|
757
758
|
}
|
|
758
759
|
|
package/src/core/Raycaster.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Matrix4 } from '../math/Matrix4.js';
|
|
2
2
|
import { Ray } from '../math/Ray.js';
|
|
3
3
|
import { Layers } from './Layers.js';
|
|
4
|
+
import { error } from '../utils.js';
|
|
4
5
|
|
|
5
6
|
const _matrix = /*@__PURE__*/ new Matrix4();
|
|
6
7
|
|
|
@@ -131,7 +132,7 @@ class Raycaster {
|
|
|
131
132
|
|
|
132
133
|
} else {
|
|
133
134
|
|
|
134
|
-
|
|
135
|
+
error( 'Raycaster: Unsupported camera type: ' + camera.type );
|
|
135
136
|
|
|
136
137
|
}
|
|
137
138
|
|
package/src/core/RenderTarget.js
CHANGED
|
@@ -294,7 +294,16 @@ class RenderTarget extends EventDispatcher {
|
|
|
294
294
|
this.textures[ i ].image.width = width;
|
|
295
295
|
this.textures[ i ].image.height = height;
|
|
296
296
|
this.textures[ i ].image.depth = depth;
|
|
297
|
-
|
|
297
|
+
|
|
298
|
+
if ( this.textures[ i ].isData3DTexture !== true ) { // Fix for #31693
|
|
299
|
+
|
|
300
|
+
// TODO: Reconsider setting isArrayTexture flag here and in the ctor of Texture.
|
|
301
|
+
// Maybe a method `isArrayTexture()` or just a getter could replace a flag since
|
|
302
|
+
// both are evaluated on each call?
|
|
303
|
+
|
|
304
|
+
this.textures[ i ].isArrayTexture = this.textures[ i ].image.depth > 1;
|
|
305
|
+
|
|
306
|
+
}
|
|
298
307
|
|
|
299
308
|
}
|
|
300
309
|
|
package/src/extras/Controls.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EventDispatcher } from '../core/EventDispatcher.js';
|
|
2
|
+
import { warn } from '../utils.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Abstract base class for controls.
|
|
@@ -12,7 +13,7 @@ class Controls extends EventDispatcher {
|
|
|
12
13
|
* Constructs a new controls instance.
|
|
13
14
|
*
|
|
14
15
|
* @param {Object3D} object - The object that is managed by the controls.
|
|
15
|
-
* @param {?
|
|
16
|
+
* @param {?HTMLElement} domElement - The HTML element used for event listeners.
|
|
16
17
|
*/
|
|
17
18
|
constructor( object, domElement = null ) {
|
|
18
19
|
|
|
@@ -28,7 +29,7 @@ class Controls extends EventDispatcher {
|
|
|
28
29
|
/**
|
|
29
30
|
* The HTML element used for event listeners.
|
|
30
31
|
*
|
|
31
|
-
* @type {?
|
|
32
|
+
* @type {?HTMLElement}
|
|
32
33
|
* @default null
|
|
33
34
|
*/
|
|
34
35
|
this.domElement = domElement;
|
|
@@ -78,13 +79,13 @@ class Controls extends EventDispatcher {
|
|
|
78
79
|
* Connects the controls to the DOM. This method has so called "side effects" since
|
|
79
80
|
* it adds the module's event listeners to the DOM.
|
|
80
81
|
*
|
|
81
|
-
* @param {
|
|
82
|
+
* @param {HTMLElement} element - The DOM element to connect to.
|
|
82
83
|
*/
|
|
83
84
|
connect( element ) {
|
|
84
85
|
|
|
85
86
|
if ( element === undefined ) {
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
warn( 'Controls: connect() now requires an element.' ); // @deprecated, the warning can be removed with r185
|
|
88
89
|
return;
|
|
89
90
|
|
|
90
91
|
}
|
package/src/extras/DataUtils.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { clamp } from '../math/MathUtils.js';
|
|
2
|
+
import { warn } from '../utils.js';
|
|
2
3
|
|
|
3
4
|
// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
|
|
4
5
|
|
|
@@ -148,7 +149,7 @@ function _generateTables() {
|
|
|
148
149
|
*/
|
|
149
150
|
function toHalfFloat( val ) {
|
|
150
151
|
|
|
151
|
-
if ( Math.abs( val ) > 65504 )
|
|
152
|
+
if ( Math.abs( val ) > 65504 ) warn( 'DataUtils.toHalfFloat(): Value out of range.' );
|
|
152
153
|
|
|
153
154
|
val = clamp( val, - 65504, 65504 );
|
|
154
155
|
|
package/src/extras/Earcut.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import earcut from './lib/earcut.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* An implementation of the earcut polygon triangulation algorithm.
|
|
5
|
+
* The code is a port of [mapbox/earcut](https://github.com/mapbox/earcut).
|
|
6
|
+
*
|
|
7
|
+
* @see https://github.com/mapbox/earcut
|
|
8
|
+
*/
|
|
3
9
|
class Earcut {
|
|
4
10
|
|
|
5
11
|
/**
|
package/src/extras/ImageUtils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createElementNS } from '../utils.js';
|
|
1
|
+
import { createElementNS, warn } from '../utils.js';
|
|
2
2
|
import { SRGBToLinear } from '../math/ColorManagement.js';
|
|
3
3
|
|
|
4
4
|
let _canvas;
|
|
@@ -125,7 +125,7 @@ class ImageUtils {
|
|
|
125
125
|
|
|
126
126
|
} else {
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
warn( 'ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );
|
|
129
129
|
return image;
|
|
130
130
|
|
|
131
131
|
}
|