super-three 0.171.0 → 0.173.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 +1 -1
- package/build/three.cjs +594 -427
- package/build/three.core.js +515 -81
- package/build/three.core.min.js +2 -2
- package/build/three.module.js +79 -350
- package/build/three.module.min.js +2 -2
- package/build/three.tsl.js +20 -7
- package/build/three.tsl.min.js +2 -2
- package/build/three.webgpu.js +29362 -3427
- package/build/three.webgpu.min.js +2 -2
- package/build/three.webgpu.nodes.js +29361 -3427
- package/build/three.webgpu.nodes.min.js +2 -2
- package/examples/jsm/Addons.js +0 -5
- package/examples/jsm/animation/CCDIKSolver.js +9 -7
- package/examples/jsm/capabilities/WebGPU.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +48 -37
- package/examples/jsm/controls/OrbitControls.js +5 -4
- package/examples/jsm/csm/CSMShadowNode.js +16 -11
- package/examples/jsm/curves/NURBSCurve.js +1 -1
- package/examples/jsm/curves/NURBSUtils.js +3 -0
- package/examples/jsm/effects/OutlineEffect.js +1 -1
- package/examples/jsm/exporters/GLTFExporter.js +34 -29
- package/examples/jsm/exporters/KTX2Exporter.js +1 -1
- package/examples/jsm/exporters/PLYExporter.js +2 -2
- package/examples/jsm/geometries/TextGeometry.js +1 -12
- package/examples/jsm/helpers/TextureHelperGPU.js +15 -5
- package/examples/jsm/helpers/VertexNormalsHelper.js +2 -0
- package/examples/jsm/interactive/InteractiveGroup.js +108 -51
- package/examples/jsm/libs/demuxer_mp4.js +109 -0
- package/examples/jsm/lights/LightProbeGenerator.js +3 -3
- package/examples/jsm/lines/webgpu/LineSegments2.js +15 -6
- package/examples/jsm/loaders/3MFLoader.js +6 -3
- package/examples/jsm/loaders/BVHLoader.js +1 -1
- package/examples/jsm/loaders/ColladaLoader.js +5 -5
- package/examples/jsm/loaders/DDSLoader.js +42 -0
- package/examples/jsm/loaders/GCodeLoader.js +4 -2
- package/examples/jsm/loaders/GLTFLoader.js +22 -4
- package/examples/jsm/loaders/KTX2Loader.js +6 -1
- package/examples/jsm/loaders/KTXLoader.js +4 -4
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/LottieLoader.js +1 -1
- package/examples/jsm/loaders/MTLLoader.js +1 -0
- package/examples/jsm/loaders/NRRDLoader.js +1 -1
- package/examples/jsm/loaders/PLYLoader.js +7 -7
- package/examples/jsm/loaders/PVRLoader.js +1 -1
- package/examples/jsm/loaders/SVGLoader.js +2 -2
- package/examples/jsm/loaders/TDSLoader.js +1 -2
- package/examples/jsm/loaders/VRMLLoader.js +7 -7
- package/examples/jsm/loaders/lwo/IFFParser.js +4 -4
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +1 -1
- package/examples/jsm/materials/MeshGouraudMaterial.js +2 -0
- package/examples/jsm/math/ConvexHull.js +1 -1
- package/examples/jsm/math/OBB.js +17 -0
- package/examples/jsm/misc/GPUComputationRenderer.js +6 -7
- package/examples/jsm/misc/ProgressiveLightMap.js +4 -3
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +14 -13
- package/examples/jsm/misc/Volume.js +27 -17
- package/examples/jsm/misc/VolumeSlice.js +7 -5
- package/examples/jsm/modifiers/CurveModifier.js +10 -8
- package/examples/jsm/modifiers/CurveModifierGPU.js +9 -7
- package/examples/jsm/modifiers/SimplifyModifier.js +2 -2
- package/examples/jsm/objects/GroundedSkybox.js +4 -4
- package/examples/jsm/objects/Sky.js +2 -2
- package/examples/jsm/objects/SkyMesh.js +3 -3
- package/examples/jsm/objects/Water2.js +1 -1
- package/examples/jsm/objects/Water2Mesh.js +2 -2
- package/examples/jsm/objects/WaterMesh.js +29 -24
- package/examples/jsm/physics/JoltPhysics.js +7 -7
- package/examples/jsm/physics/RapierPhysics.js +4 -4
- package/examples/jsm/postprocessing/BloomPass.js +2 -2
- package/examples/jsm/postprocessing/EffectComposer.js +1 -2
- package/examples/jsm/postprocessing/OutlinePass.js +4 -4
- package/examples/jsm/postprocessing/OutputPass.js +2 -0
- package/examples/jsm/postprocessing/SAOPass.js +1 -2
- package/examples/jsm/postprocessing/SMAAPass.js +1 -3
- package/examples/jsm/postprocessing/SSAOPass.js +2 -4
- package/examples/jsm/postprocessing/SSRPass.js +2 -4
- package/examples/jsm/postprocessing/UnrealBloomPass.js +2 -2
- package/examples/jsm/renderers/SVGRenderer.js +6 -4
- package/examples/jsm/shaders/BokehShader2.js +1 -1
- package/examples/jsm/shaders/GodRaysShader.js +3 -3
- package/examples/jsm/shaders/OutputShader.js +5 -1
- package/examples/jsm/shaders/SobelOperatorShader.js +1 -1
- package/examples/jsm/transpiler/GLSLDecoder.js +2 -2
- package/examples/jsm/transpiler/TSLEncoder.js +2 -0
- package/examples/jsm/tsl/display/AfterImageNode.js +93 -4
- package/examples/jsm/tsl/display/AnaglyphPassNode.js +46 -2
- package/examples/jsm/tsl/display/AnamorphicNode.js +118 -5
- package/examples/jsm/tsl/display/BleachBypass.js +10 -0
- package/examples/jsm/tsl/display/BloomNode.js +233 -26
- package/examples/jsm/tsl/display/DenoiseNode.js +141 -25
- package/examples/jsm/tsl/display/DepthOfFieldNode.js +80 -1
- package/examples/jsm/tsl/display/DotScreenNode.js +50 -5
- package/examples/jsm/tsl/display/FXAANode.js +52 -3
- package/examples/jsm/tsl/display/FilmNode.js +47 -1
- package/examples/jsm/tsl/display/GTAONode.js +210 -14
- package/examples/jsm/tsl/display/GaussianBlurNode.js +152 -8
- package/examples/jsm/tsl/display/LensflareNode.js +131 -13
- package/examples/jsm/tsl/display/Lut3DNode.js +55 -1
- package/examples/jsm/tsl/display/MotionBlur.js +12 -2
- package/examples/jsm/tsl/display/OutlineNode.js +343 -26
- package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +36 -2
- package/examples/jsm/tsl/display/PixelationPassNode.js +142 -9
- package/examples/jsm/tsl/display/RGBShiftNode.js +49 -2
- package/examples/jsm/tsl/display/SMAANode.js +187 -46
- package/examples/jsm/tsl/display/SSAAPassNode.js +110 -25
- package/examples/jsm/tsl/display/SSRNode.js +194 -21
- package/examples/jsm/tsl/display/Sepia.js +9 -0
- package/examples/jsm/tsl/display/SobelOperatorNode.js +54 -4
- package/examples/jsm/tsl/display/StereoCompositePassNode.js +79 -3
- package/examples/jsm/tsl/display/StereoPassNode.js +41 -3
- package/examples/jsm/tsl/display/TRAAPassNode.js +116 -21
- package/examples/jsm/tsl/display/TransitionNode.js +71 -6
- package/examples/jsm/tsl/display/hashBlur.js +14 -3
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +40 -34
- package/examples/jsm/utils/BufferGeometryUtils.js +1 -1
- package/examples/jsm/utils/CameraUtils.js +4 -1
- package/examples/jsm/utils/GeometryUtils.js +22 -19
- package/examples/jsm/utils/SceneUtils.js +2 -2
- package/examples/jsm/webxr/XRControllerModelFactory.js +6 -1
- package/examples/jsm/webxr/XREstimatedLight.js +1 -1
- package/package.json +8 -3
- package/src/Three.Core.js +4 -0
- package/src/Three.Legacy.js +0 -21
- package/src/Three.TSL.js +18 -5
- package/src/Three.WebGPU.Nodes.js +2 -2
- package/src/Three.WebGPU.js +2 -2
- package/src/animation/PropertyBinding.js +2 -2
- package/src/cameras/ArrayCamera.js +1 -0
- package/src/cameras/PerspectiveCamera.js +18 -2
- package/src/constants.js +6 -1
- package/src/core/BufferAttribute.js +4 -0
- package/src/core/EventDispatcher.js +8 -6
- package/src/core/RenderTarget.js +18 -0
- package/src/core/RenderTarget3D.js +22 -0
- package/src/core/RenderTargetArray.js +22 -0
- package/src/extras/Earcut.js +1 -1
- package/src/extras/ImageUtils.js +1 -11
- package/src/extras/PMREMGenerator.js +20 -0
- package/src/extras/TextureUtils.js +6 -0
- package/src/helpers/CameraHelper.js +16 -13
- package/src/loaders/nodes/NodeLoader.js +59 -0
- package/src/loaders/nodes/NodeMaterialLoader.js +45 -0
- package/src/loaders/nodes/NodeObjectLoader.js +61 -0
- package/src/materials/nodes/Line2NodeMaterial.js +128 -34
- package/src/materials/nodes/LineBasicNodeMaterial.js +17 -2
- package/src/materials/nodes/LineDashedNodeMaterial.js +78 -5
- package/src/materials/nodes/MeshBasicNodeMaterial.js +56 -0
- package/src/materials/nodes/MeshLambertNodeMaterial.js +35 -0
- package/src/materials/nodes/MeshMatcapNodeMaterial.js +22 -2
- package/src/materials/nodes/MeshNormalNodeMaterial.js +21 -2
- package/src/materials/nodes/MeshPhongNodeMaterial.js +64 -1
- package/src/materials/nodes/MeshPhysicalNodeMaterial.js +269 -0
- package/src/materials/nodes/MeshSSSNodeMaterial.js +97 -6
- package/src/materials/nodes/MeshStandardNodeMaterial.js +78 -0
- package/src/materials/nodes/MeshToonNodeMaterial.js +28 -0
- package/src/materials/nodes/NodeMaterial.js +476 -23
- package/src/materials/nodes/NodeMaterials.js +0 -1
- package/src/materials/nodes/PointsNodeMaterial.js +121 -10
- package/src/materials/nodes/ShadowNodeMaterial.js +29 -0
- package/src/materials/nodes/SpriteNodeMaterial.js +78 -20
- package/src/materials/nodes/VolumeNodeMaterial.js +80 -4
- package/src/materials/nodes/manager/NodeMaterialObserver.js +95 -0
- package/src/nodes/Nodes.js +5 -6
- package/src/nodes/TSL.js +6 -3
- package/src/nodes/accessors/AccessorsUtils.js +27 -0
- package/src/nodes/accessors/Arrays.js +47 -6
- package/src/nodes/accessors/BatchNode.js +42 -6
- package/src/nodes/accessors/Bitangent.js +37 -0
- package/src/nodes/accessors/BufferAttributeNode.js +178 -5
- package/src/nodes/accessors/BufferNode.js +63 -0
- package/src/nodes/accessors/BuiltinNode.js +38 -0
- package/src/nodes/accessors/Camera.js +113 -3
- package/src/nodes/accessors/ClippingNode.js +71 -2
- package/src/nodes/accessors/CubeTextureNode.js +64 -0
- package/src/nodes/accessors/InstanceNode.js +85 -2
- package/src/nodes/accessors/InstancedMeshNode.js +28 -3
- package/src/nodes/accessors/Lights.js +50 -1
- package/src/nodes/accessors/MaterialNode.js +306 -12
- package/src/nodes/accessors/MaterialProperties.js +7 -0
- package/src/nodes/accessors/MaterialReferenceNode.js +53 -13
- package/src/nodes/accessors/ModelNode.js +100 -5
- package/src/nodes/accessors/ModelViewProjectionNode.js +10 -38
- package/src/nodes/accessors/MorphNode.js +48 -4
- package/src/nodes/accessors/Normal.js +65 -5
- package/src/nodes/accessors/Object3DNode.js +101 -1
- package/src/nodes/accessors/PointUVNode.js +26 -0
- package/src/nodes/accessors/Position.js +56 -7
- package/src/nodes/accessors/ReferenceBaseNode.js +186 -0
- package/src/nodes/accessors/ReferenceNode.js +201 -2
- package/src/nodes/accessors/ReflectVector.js +24 -0
- package/src/nodes/accessors/RendererReferenceNode.js +46 -1
- package/src/nodes/accessors/SceneNode.js +54 -0
- package/src/nodes/accessors/SkinningNode.js +127 -1
- package/src/nodes/accessors/StorageBufferNode.js +209 -8
- package/src/nodes/accessors/StorageTextureNode.js +118 -0
- package/src/nodes/accessors/Tangent.js +38 -2
- package/src/nodes/accessors/Texture3DNode.js +91 -7
- package/src/nodes/accessors/TextureBicubic.js +12 -2
- package/src/nodes/accessors/TextureNode.js +316 -10
- package/src/nodes/accessors/TextureSizeNode.js +42 -0
- package/src/nodes/accessors/UV.js +10 -1
- package/src/nodes/accessors/UniformArrayNode.js +231 -25
- package/src/nodes/accessors/UserDataNode.js +46 -0
- package/src/nodes/accessors/VelocityNode.js +80 -0
- package/src/nodes/accessors/VertexColorNode.js +39 -2
- package/src/nodes/code/CodeNode.js +95 -1
- package/src/nodes/code/ExpressionNode.js +28 -0
- package/src/nodes/code/FunctionCallNode.js +37 -0
- package/src/nodes/code/FunctionNode.js +45 -0
- package/src/nodes/code/ScriptableNode.js +223 -1
- package/src/nodes/code/ScriptableValueNode.js +85 -1
- package/src/nodes/core/ArrayNode.js +125 -0
- package/src/nodes/core/AssignNode.js +48 -2
- package/src/nodes/core/AttributeNode.js +43 -0
- package/src/nodes/core/BypassNode.js +47 -2
- package/src/nodes/core/CacheNode.js +53 -2
- package/src/nodes/core/ConstNode.js +32 -0
- package/src/nodes/core/ContextNode.js +65 -0
- package/src/nodes/core/IndexNode.js +68 -7
- package/src/nodes/core/InputNode.js +48 -0
- package/src/nodes/core/LightingModel.js +60 -0
- package/src/nodes/core/MRTNode.js +66 -0
- package/src/nodes/core/Node.js +350 -12
- package/src/nodes/core/NodeAttribute.js +38 -0
- package/src/nodes/core/NodeBuilder.js +1166 -26
- package/src/nodes/core/NodeCache.js +41 -2
- package/src/nodes/core/NodeCode.js +31 -0
- package/src/nodes/core/NodeFrame.js +123 -2
- package/src/nodes/core/NodeFunction.js +46 -0
- package/src/nodes/core/NodeFunctionInput.js +44 -0
- package/src/nodes/core/NodeParser.js +11 -0
- package/src/nodes/core/NodeUniform.js +52 -0
- package/src/nodes/core/NodeUtils.js +152 -1
- package/src/nodes/core/NodeVar.js +47 -1
- package/src/nodes/core/NodeVarying.js +28 -0
- package/src/nodes/core/OutputStructNode.js +51 -10
- package/src/nodes/core/ParameterNode.js +28 -0
- package/src/nodes/core/PropertyNode.js +232 -0
- package/src/nodes/core/StackNode.js +98 -1
- package/src/nodes/core/StructNode.js +121 -0
- package/src/nodes/core/StructType.js +13 -0
- package/src/nodes/core/StructTypeNode.js +105 -6
- package/src/nodes/core/TempNode.js +31 -5
- package/src/nodes/core/UniformGroupNode.js +82 -7
- package/src/nodes/core/UniformNode.js +66 -0
- package/src/nodes/core/VarNode.js +146 -7
- package/src/nodes/core/VaryingNode.js +100 -3
- package/src/nodes/core/constants.js +36 -0
- package/src/nodes/display/BlendModes.js +88 -1
- package/src/nodes/display/BumpMapNode.js +37 -0
- package/src/nodes/display/ColorAdjustment.js +53 -11
- package/src/nodes/display/ColorSpaceFunctions.js +16 -0
- package/src/nodes/display/ColorSpaceNode.js +82 -0
- package/src/nodes/display/FrontFacingNode.js +29 -0
- package/src/nodes/display/NormalMapNode.js +43 -0
- package/src/nodes/display/PassNode.js +300 -7
- package/src/nodes/display/PosterizeNode.js +33 -0
- package/src/nodes/display/RenderOutputNode.js +66 -1
- package/src/nodes/display/ScreenNode.js +96 -0
- package/src/nodes/display/ToneMappingFunctions.js +58 -10
- package/src/nodes/display/ToneMappingNode.js +55 -2
- package/src/nodes/display/ToonOutlinePassNode.js +73 -0
- package/src/nodes/display/ViewportDepthNode.js +122 -8
- package/src/nodes/display/ViewportDepthTextureNode.js +23 -0
- package/src/nodes/display/ViewportSharedTextureNode.js +23 -0
- package/src/nodes/display/ViewportTextureNode.js +57 -0
- package/src/nodes/fog/Fog.js +110 -0
- package/src/nodes/functions/BasicLightingModel.js +24 -0
- package/src/nodes/functions/PhongLightingModel.js +34 -2
- package/src/nodes/functions/PhysicalLightingModel.js +167 -8
- package/src/nodes/functions/ShadowMaskModel.js +23 -0
- package/src/nodes/functions/ToonLightingModel.js +20 -0
- package/src/nodes/functions/material/getAlphaHashThreshold.js +1 -3
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +16 -1
- package/src/nodes/geometry/RangeNode.js +54 -2
- package/src/nodes/gpgpu/AtomicFunctionNode.js +174 -2
- package/src/nodes/gpgpu/BarrierNode.js +47 -0
- package/src/nodes/gpgpu/ComputeBuiltinNode.js +134 -0
- package/src/nodes/gpgpu/ComputeNode.js +106 -2
- package/src/nodes/gpgpu/WorkgroupInfoNode.js +115 -6
- package/src/nodes/lighting/AONode.js +18 -0
- package/src/nodes/lighting/AmbientLightNode.js +10 -0
- package/src/nodes/lighting/AnalyticLightNode.js +97 -2
- package/src/nodes/lighting/BasicEnvironmentNode.js +19 -0
- package/src/nodes/lighting/BasicLightMapNode.js +17 -0
- package/src/nodes/lighting/DirectionalLightNode.js +10 -0
- package/src/nodes/lighting/EnvironmentNode.js +18 -0
- package/src/nodes/lighting/HemisphereLightNode.js +31 -0
- package/src/nodes/lighting/IESSpotLightNode.js +11 -0
- package/src/nodes/lighting/IrradianceNode.js +17 -0
- package/src/nodes/lighting/LightProbeNode.js +20 -0
- package/src/nodes/lighting/LightUtils.js +12 -0
- package/src/nodes/lighting/LightingContextNode.js +48 -0
- package/src/nodes/lighting/LightingNode.js +15 -6
- package/src/nodes/lighting/LightsNode.js +132 -1
- package/src/nodes/lighting/PointLightNode.js +32 -1
- package/src/nodes/lighting/PointShadowNode.js +54 -1
- package/src/nodes/lighting/RectAreaLightNode.js +44 -6
- package/src/nodes/lighting/ShadowBaseNode.js +93 -0
- package/src/nodes/lighting/ShadowNode.js +241 -35
- package/src/nodes/lighting/SpotLightNode.js +43 -0
- package/src/nodes/math/ConditionalNode.js +78 -4
- package/src/nodes/math/Hash.js +9 -0
- package/src/nodes/math/MathNode.js +627 -11
- package/src/nodes/math/MathUtils.js +45 -1
- package/src/nodes/math/OperatorNode.js +329 -18
- package/src/nodes/math/TriNoise3D.js +18 -7
- package/src/nodes/parsers/GLSLNodeFunction.js +16 -0
- package/src/nodes/parsers/GLSLNodeParser.js +11 -0
- package/src/nodes/pmrem/PMREMNode.js +133 -0
- package/src/nodes/pmrem/PMREMUtils.js +2 -2
- package/src/nodes/procedural/Checker.js +9 -0
- package/src/nodes/shapes/Shapes.js +33 -0
- package/src/nodes/tsl/TSLBase.js +3 -2
- package/src/nodes/tsl/TSLCore.js +22 -2
- package/src/nodes/utils/ArrayElementNode.js +39 -3
- package/src/nodes/utils/ConvertNode.js +31 -0
- package/src/nodes/utils/CubeMapNode.js +78 -0
- package/src/nodes/utils/Discard.js +16 -0
- package/src/nodes/utils/EquirectUVNode.js +31 -1
- package/src/nodes/utils/FlipNode.js +38 -0
- package/src/nodes/utils/FunctionOverloadingNode.js +53 -1
- package/src/nodes/utils/JoinNode.js +25 -0
- package/src/nodes/utils/LoopNode.js +82 -2
- package/src/nodes/utils/MatcapUVNode.js +17 -0
- package/src/nodes/utils/MaxMipLevelNode.js +49 -0
- package/src/nodes/utils/MemberNode.js +68 -0
- package/src/nodes/utils/Oscillators.js +33 -0
- package/src/nodes/utils/Packing.js +17 -0
- package/src/nodes/utils/PostProcessingUtils.js +28 -23
- package/src/nodes/utils/RTTNode.js +123 -2
- package/src/nodes/utils/ReflectorNode.js +174 -4
- package/src/nodes/utils/RemapNode.js +79 -0
- package/src/nodes/utils/RotateNode.js +41 -0
- package/src/nodes/utils/SetNode.js +44 -1
- package/src/nodes/utils/SplitNode.js +55 -3
- package/src/nodes/utils/SpriteSheetUVNode.js +46 -0
- package/src/nodes/utils/SpriteUtils.js +17 -0
- package/src/nodes/utils/StorageArrayElementNode.js +54 -0
- package/src/nodes/utils/Timer.js +40 -0
- package/src/nodes/utils/TriplanarTexturesNode.js +84 -0
- package/src/nodes/utils/UVUtils.js +20 -0
- package/src/nodes/utils/ViewportUtils.js +13 -0
- package/src/objects/BatchedMesh.js +2 -3
- package/src/objects/ClippingGroup.js +49 -0
- package/src/objects/Line.js +6 -6
- package/src/renderers/WebGLRenderer.js +30 -4
- package/src/renderers/common/Animation.js +85 -0
- package/src/renderers/common/Attributes.js +36 -0
- package/src/renderers/common/Backend.js +502 -44
- package/src/renderers/common/Background.js +48 -1
- package/src/renderers/common/BindGroup.js +43 -0
- package/src/renderers/common/Binding.js +35 -0
- package/src/renderers/common/Bindings.js +93 -1
- package/src/renderers/common/Buffer.js +49 -0
- package/src/renderers/common/BufferUtils.js +27 -0
- package/src/renderers/common/BundleGroup.js +57 -0
- package/src/renderers/common/ChainMap.js +45 -6
- package/src/renderers/common/ClippingContext.js +108 -15
- package/src/renderers/common/Color4.js +40 -0
- package/src/renderers/common/ComputePipeline.js +24 -0
- package/src/renderers/common/CubeRenderTarget.js +13 -0
- package/src/renderers/common/DataMap.js +37 -1
- package/src/renderers/common/Geometries.js +91 -14
- package/src/renderers/common/IndirectStorageBufferAttribute.js +25 -2
- package/src/renderers/common/Info.js +78 -35
- package/src/renderers/common/Lighting.js +34 -6
- package/src/renderers/common/Pipeline.js +22 -0
- package/src/renderers/common/Pipelines.js +148 -5
- package/src/renderers/common/PostProcessing.js +99 -11
- package/src/renderers/common/ProgrammableStage.js +60 -2
- package/src/renderers/common/QuadMesh.js +54 -5
- package/src/renderers/common/RenderBundle.js +14 -8
- package/src/renderers/common/RenderBundles.js +39 -10
- package/src/renderers/common/RenderContext.js +201 -2
- package/src/renderers/common/RenderContexts.js +59 -6
- package/src/renderers/common/RenderList.js +178 -0
- package/src/renderers/common/RenderLists.js +40 -3
- package/src/renderers/common/RenderObject.js +400 -17
- package/src/renderers/common/RenderObjects.js +103 -7
- package/src/renderers/common/RenderPipeline.js +24 -0
- package/src/renderers/common/Renderer.js +1170 -86
- package/src/renderers/common/RendererUtils.js +193 -0
- package/src/renderers/common/SampledTexture.js +120 -0
- package/src/renderers/common/Sampler.js +30 -0
- package/src/renderers/common/StorageBuffer.js +24 -0
- package/src/renderers/common/StorageBufferAttribute.js +31 -2
- package/src/renderers/common/StorageInstancedBufferAttribute.js +31 -2
- package/src/renderers/common/StorageTexture.js +38 -0
- package/src/renderers/common/Textures.js +97 -7
- package/src/renderers/common/TimestampQueryPool.js +39 -0
- package/src/renderers/common/Uniform.js +225 -3
- package/src/renderers/common/UniformBuffer.js +19 -0
- package/src/renderers/common/UniformsGroup.js +141 -2
- package/src/renderers/common/XRManager.js +1193 -0
- package/src/renderers/common/XRRenderTarget.js +74 -0
- package/src/renderers/common/extras/PMREMGenerator.js +76 -10
- package/src/renderers/common/nodes/NodeBuilderState.js +99 -5
- package/src/renderers/common/nodes/NodeLibrary.js +89 -0
- package/src/renderers/common/nodes/NodeSampledTexture.js +90 -2
- package/src/renderers/common/nodes/NodeSampler.js +28 -0
- package/src/renderers/common/nodes/NodeStorageBuffer.js +35 -0
- package/src/renderers/common/nodes/NodeUniform.js +243 -2
- package/src/renderers/common/nodes/NodeUniformBuffer.js +29 -0
- package/src/renderers/common/nodes/NodeUniformsGroup.js +31 -18
- package/src/renderers/common/nodes/Nodes.js +352 -78
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +7 -7
- package/src/renderers/webgl/WebGLBackground.js +4 -0
- package/src/renderers/webgl-fallback/WebGLBackend.js +819 -116
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +347 -18
- package/src/renderers/webgl-fallback/utils/WebGLAttributeUtils.js +58 -1
- package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +28 -0
- package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +45 -0
- package/src/renderers/webgl-fallback/utils/WebGLState.js +323 -11
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +168 -22
- package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +359 -0
- package/src/renderers/webgl-fallback/utils/WebGLUtils.js +43 -0
- package/src/renderers/webgpu/WebGPUBackend.js +578 -164
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +36 -0
- package/src/renderers/webgpu/WebGPURenderer.js +36 -0
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +20 -8
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +21 -8
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +674 -52
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +17 -0
- package/src/renderers/webgpu/nodes/WGSLNodeParser.js +11 -0
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +95 -14
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +94 -1
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +102 -3
- package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +98 -1
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +262 -18
- package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +274 -0
- package/src/renderers/webgpu/utils/WebGPUUtils.js +116 -4
- package/src/renderers/webxr/WebXRDepthSensing.js +1 -1
- package/src/renderers/webxr/WebXRManager.js +19 -2
- package/src/textures/Data3DTexture.js +2 -2
- package/src/textures/Texture.js +4 -0
- package/src/textures/VideoFrameTexture.js +35 -0
- package/examples/jsm/animation/MMDAnimationHelper.js +0 -1209
- package/examples/jsm/animation/MMDPhysics.js +0 -1408
- package/examples/jsm/exporters/MMDExporter.js +0 -223
- package/examples/jsm/geometries/InstancedPointsGeometry.js +0 -176
- package/examples/jsm/libs/mmdparser.module.js +0 -11530
- package/examples/jsm/loaders/MMDLoader.js +0 -2298
- package/examples/jsm/objects/InstancedPoints.js +0 -19
- package/examples/jsm/shaders/MMDToonShader.js +0 -134
- package/src/materials/nodes/InstancedPointsNodeMaterial.js +0 -156
- package/src/nodes/accessors/InstancedPointsMaterialNode.js +0 -24
- package/src/nodes/core/UniformGroup.js +0 -13
- package/src/nodes/fog/FogExp2Node.js +0 -35
- package/src/nodes/fog/FogNode.js +0 -50
- package/src/nodes/fog/FogRangeNode.js +0 -36
- package/src/renderers/common/PostProcessingUtils.js +0 -86
package/build/three.core.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* Copyright 2010-
|
|
3
|
+
* Copyright 2010-2025 Three.js Authors
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
const REVISION = '
|
|
6
|
+
const REVISION = '173';
|
|
7
7
|
|
|
8
8
|
const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
|
|
9
9
|
const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
|
|
@@ -215,6 +215,11 @@ const GLSL3 = '300 es';
|
|
|
215
215
|
const WebGLCoordinateSystem = 2000;
|
|
216
216
|
const WebGPUCoordinateSystem = 2001;
|
|
217
217
|
|
|
218
|
+
const TimestampQuery = {
|
|
219
|
+
COMPUTE: 'compute',
|
|
220
|
+
RENDER: 'render'
|
|
221
|
+
};
|
|
222
|
+
|
|
218
223
|
/**
|
|
219
224
|
* https://github.com/mrdoob/eventdispatcher.js/
|
|
220
225
|
*/
|
|
@@ -243,19 +248,20 @@ class EventDispatcher {
|
|
|
243
248
|
|
|
244
249
|
hasEventListener( type, listener ) {
|
|
245
250
|
|
|
246
|
-
if ( this._listeners === undefined ) return false;
|
|
247
|
-
|
|
248
251
|
const listeners = this._listeners;
|
|
249
252
|
|
|
253
|
+
if ( listeners === undefined ) return false;
|
|
254
|
+
|
|
250
255
|
return listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;
|
|
251
256
|
|
|
252
257
|
}
|
|
253
258
|
|
|
254
259
|
removeEventListener( type, listener ) {
|
|
255
260
|
|
|
256
|
-
if ( this._listeners === undefined ) return;
|
|
257
|
-
|
|
258
261
|
const listeners = this._listeners;
|
|
262
|
+
|
|
263
|
+
if ( listeners === undefined ) return;
|
|
264
|
+
|
|
259
265
|
const listenerArray = listeners[ type ];
|
|
260
266
|
|
|
261
267
|
if ( listenerArray !== undefined ) {
|
|
@@ -274,9 +280,10 @@ class EventDispatcher {
|
|
|
274
280
|
|
|
275
281
|
dispatchEvent( event ) {
|
|
276
282
|
|
|
277
|
-
if ( this._listeners === undefined ) return;
|
|
278
|
-
|
|
279
283
|
const listeners = this._listeners;
|
|
284
|
+
|
|
285
|
+
if ( listeners === undefined ) return;
|
|
286
|
+
|
|
280
287
|
const listenerArray = listeners[ event.type ];
|
|
281
288
|
|
|
282
289
|
if ( listenerArray !== undefined ) {
|
|
@@ -1854,17 +1861,7 @@ class ImageUtils {
|
|
|
1854
1861
|
|
|
1855
1862
|
}
|
|
1856
1863
|
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
console.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );
|
|
1860
|
-
|
|
1861
|
-
return canvas.toDataURL( 'image/jpeg', 0.6 );
|
|
1862
|
-
|
|
1863
|
-
} else {
|
|
1864
|
-
|
|
1865
|
-
return canvas.toDataURL( 'image/png' );
|
|
1866
|
-
|
|
1867
|
-
}
|
|
1864
|
+
return canvas.toDataURL( 'image/png' );
|
|
1868
1865
|
|
|
1869
1866
|
}
|
|
1870
1867
|
|
|
@@ -2110,6 +2107,7 @@ class Texture extends EventDispatcher {
|
|
|
2110
2107
|
this.version = 0;
|
|
2111
2108
|
this.onUpdate = null;
|
|
2112
2109
|
|
|
2110
|
+
this.renderTarget = null; // assign texture to a render target
|
|
2113
2111
|
this.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not
|
|
2114
2112
|
this.pmremVersion = 0; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)
|
|
2115
2113
|
|
|
@@ -2175,6 +2173,9 @@ class Texture extends EventDispatcher {
|
|
|
2175
2173
|
this.unpackAlignment = source.unpackAlignment;
|
|
2176
2174
|
this.colorSpace = source.colorSpace;
|
|
2177
2175
|
|
|
2176
|
+
this.renderTarget = source.renderTarget;
|
|
2177
|
+
this.isRenderTargetTexture = source.isRenderTargetTexture;
|
|
2178
|
+
|
|
2178
2179
|
this.userData = JSON.parse( JSON.stringify( source.userData ) );
|
|
2179
2180
|
|
|
2180
2181
|
this.needsUpdate = true;
|
|
@@ -3075,6 +3076,7 @@ class RenderTarget extends EventDispatcher {
|
|
|
3075
3076
|
|
|
3076
3077
|
this.textures[ i ] = texture.clone();
|
|
3077
3078
|
this.textures[ i ].isRenderTargetTexture = true;
|
|
3079
|
+
this.textures[ i ].renderTarget = this;
|
|
3078
3080
|
|
|
3079
3081
|
}
|
|
3080
3082
|
|
|
@@ -3084,6 +3086,7 @@ class RenderTarget extends EventDispatcher {
|
|
|
3084
3086
|
this.resolveDepthBuffer = options.resolveDepthBuffer;
|
|
3085
3087
|
this.resolveStencilBuffer = options.resolveStencilBuffer;
|
|
3086
3088
|
|
|
3089
|
+
this._depthTexture = null;
|
|
3087
3090
|
this.depthTexture = options.depthTexture;
|
|
3088
3091
|
|
|
3089
3092
|
this.samples = options.samples;
|
|
@@ -3102,6 +3105,21 @@ class RenderTarget extends EventDispatcher {
|
|
|
3102
3105
|
|
|
3103
3106
|
}
|
|
3104
3107
|
|
|
3108
|
+
set depthTexture( current ) {
|
|
3109
|
+
|
|
3110
|
+
if ( this._depthTexture !== null ) this._depthTexture.renderTarget = null;
|
|
3111
|
+
if ( current !== null ) current.renderTarget = this;
|
|
3112
|
+
|
|
3113
|
+
this._depthTexture = current;
|
|
3114
|
+
|
|
3115
|
+
}
|
|
3116
|
+
|
|
3117
|
+
get depthTexture() {
|
|
3118
|
+
|
|
3119
|
+
return this._depthTexture;
|
|
3120
|
+
|
|
3121
|
+
}
|
|
3122
|
+
|
|
3105
3123
|
setSize( width, height, depth = 1 ) {
|
|
3106
3124
|
|
|
3107
3125
|
if ( this.width !== width || this.height !== height || this.depth !== depth ) {
|
|
@@ -3150,6 +3168,7 @@ class RenderTarget extends EventDispatcher {
|
|
|
3150
3168
|
|
|
3151
3169
|
this.textures[ i ] = source.textures[ i ].clone();
|
|
3152
3170
|
this.textures[ i ].isRenderTargetTexture = true;
|
|
3171
|
+
this.textures[ i ].renderTarget = this;
|
|
3153
3172
|
|
|
3154
3173
|
}
|
|
3155
3174
|
|
|
@@ -3252,9 +3271,9 @@ class Data3DTexture extends Texture {
|
|
|
3252
3271
|
constructor( data = null, width = 1, height = 1, depth = 1 ) {
|
|
3253
3272
|
|
|
3254
3273
|
// We're going to add .setXXX() methods for setting properties later.
|
|
3255
|
-
// Users can still set in
|
|
3274
|
+
// Users can still set in Data3DTexture directly.
|
|
3256
3275
|
//
|
|
3257
|
-
// const texture = new THREE.
|
|
3276
|
+
// const texture = new THREE.Data3DTexture( data, width, height, depth );
|
|
3258
3277
|
// texture.anisotropy = 16;
|
|
3259
3278
|
//
|
|
3260
3279
|
// See #14839
|
|
@@ -9978,6 +9997,8 @@ const DataUtils = {
|
|
|
9978
9997
|
const _vector$9 = /*@__PURE__*/ new Vector3();
|
|
9979
9998
|
const _vector2$1 = /*@__PURE__*/ new Vector2();
|
|
9980
9999
|
|
|
10000
|
+
let _id$2 = 0;
|
|
10001
|
+
|
|
9981
10002
|
class BufferAttribute {
|
|
9982
10003
|
|
|
9983
10004
|
constructor( array, itemSize, normalized = false ) {
|
|
@@ -9990,6 +10011,8 @@ class BufferAttribute {
|
|
|
9990
10011
|
|
|
9991
10012
|
this.isBufferAttribute = true;
|
|
9992
10013
|
|
|
10014
|
+
Object.defineProperty( this, 'id', { value: _id$2 ++ } );
|
|
10015
|
+
|
|
9993
10016
|
this.name = '';
|
|
9994
10017
|
|
|
9995
10018
|
this.array = array;
|
|
@@ -12675,7 +12698,7 @@ class PerspectiveCamera extends Camera {
|
|
|
12675
12698
|
* The default film gauge is 35, so that the focal length can be specified for
|
|
12676
12699
|
* a 35mm (full frame) camera.
|
|
12677
12700
|
*
|
|
12678
|
-
* Values for focal length and film gauge must have the same unit.
|
|
12701
|
+
* @param {number} focalLength - Values for focal length and film gauge must have the same unit.
|
|
12679
12702
|
*/
|
|
12680
12703
|
setFocalLength( focalLength ) {
|
|
12681
12704
|
|
|
@@ -12689,6 +12712,8 @@ class PerspectiveCamera extends Camera {
|
|
|
12689
12712
|
|
|
12690
12713
|
/**
|
|
12691
12714
|
* Calculates the focal length from the current .fov and .filmGauge.
|
|
12715
|
+
*
|
|
12716
|
+
* @returns {number}
|
|
12692
12717
|
*/
|
|
12693
12718
|
getFocalLength() {
|
|
12694
12719
|
|
|
@@ -12722,6 +12747,10 @@ class PerspectiveCamera extends Camera {
|
|
|
12722
12747
|
/**
|
|
12723
12748
|
* Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.
|
|
12724
12749
|
* Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.
|
|
12750
|
+
*
|
|
12751
|
+
* @param {number} distance
|
|
12752
|
+
* @param {Vector2} minTarget
|
|
12753
|
+
* @param {Vector2} maxTarget
|
|
12725
12754
|
*/
|
|
12726
12755
|
getViewBounds( distance, minTarget, maxTarget ) {
|
|
12727
12756
|
|
|
@@ -12737,7 +12766,10 @@ class PerspectiveCamera extends Camera {
|
|
|
12737
12766
|
|
|
12738
12767
|
/**
|
|
12739
12768
|
* Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.
|
|
12740
|
-
*
|
|
12769
|
+
*
|
|
12770
|
+
* @param {number} distance
|
|
12771
|
+
* @param {Vector2} target - Vector2 target used to store result where x is width and y is height.
|
|
12772
|
+
* @returns {Vector2}
|
|
12741
12773
|
*/
|
|
12742
12774
|
getViewSize( distance, target ) {
|
|
12743
12775
|
|
|
@@ -12781,6 +12813,13 @@ class PerspectiveCamera extends Camera {
|
|
|
12781
12813
|
* camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
|
|
12782
12814
|
*
|
|
12783
12815
|
* Note there is no reason monitors have to be the same size or in a grid.
|
|
12816
|
+
*
|
|
12817
|
+
* @param {number} fullWidth
|
|
12818
|
+
* @param {number} fullHeight
|
|
12819
|
+
* @param {number} x
|
|
12820
|
+
* @param {number} y
|
|
12821
|
+
* @param {number} width
|
|
12822
|
+
* @param {number} height
|
|
12784
12823
|
*/
|
|
12785
12824
|
setViewOffset( fullWidth, fullHeight, x, y, width, height ) {
|
|
12786
12825
|
|
|
@@ -13211,6 +13250,358 @@ class WebGLCubeRenderTarget extends WebGLRenderTarget {
|
|
|
13211
13250
|
|
|
13212
13251
|
}
|
|
13213
13252
|
|
|
13253
|
+
class Group extends Object3D {
|
|
13254
|
+
|
|
13255
|
+
constructor() {
|
|
13256
|
+
|
|
13257
|
+
super();
|
|
13258
|
+
|
|
13259
|
+
this.isGroup = true;
|
|
13260
|
+
|
|
13261
|
+
this.type = 'Group';
|
|
13262
|
+
|
|
13263
|
+
}
|
|
13264
|
+
|
|
13265
|
+
}
|
|
13266
|
+
|
|
13267
|
+
const _moveEvent = { type: 'move' };
|
|
13268
|
+
|
|
13269
|
+
class WebXRController {
|
|
13270
|
+
|
|
13271
|
+
constructor() {
|
|
13272
|
+
|
|
13273
|
+
this._targetRay = null;
|
|
13274
|
+
this._grip = null;
|
|
13275
|
+
this._hand = null;
|
|
13276
|
+
|
|
13277
|
+
}
|
|
13278
|
+
|
|
13279
|
+
getHandSpace() {
|
|
13280
|
+
|
|
13281
|
+
if ( this._hand === null ) {
|
|
13282
|
+
|
|
13283
|
+
this._hand = new Group();
|
|
13284
|
+
this._hand.matrixAutoUpdate = false;
|
|
13285
|
+
this._hand.visible = false;
|
|
13286
|
+
|
|
13287
|
+
this._hand.joints = {};
|
|
13288
|
+
this._hand.inputState = { pinching: false };
|
|
13289
|
+
|
|
13290
|
+
}
|
|
13291
|
+
|
|
13292
|
+
return this._hand;
|
|
13293
|
+
|
|
13294
|
+
}
|
|
13295
|
+
|
|
13296
|
+
getTargetRaySpace() {
|
|
13297
|
+
|
|
13298
|
+
if ( this._targetRay === null ) {
|
|
13299
|
+
|
|
13300
|
+
this._targetRay = new Group();
|
|
13301
|
+
this._targetRay.matrixAutoUpdate = false;
|
|
13302
|
+
this._targetRay.visible = false;
|
|
13303
|
+
this._targetRay.hasLinearVelocity = false;
|
|
13304
|
+
this._targetRay.linearVelocity = new Vector3();
|
|
13305
|
+
this._targetRay.hasAngularVelocity = false;
|
|
13306
|
+
this._targetRay.angularVelocity = new Vector3();
|
|
13307
|
+
|
|
13308
|
+
}
|
|
13309
|
+
|
|
13310
|
+
return this._targetRay;
|
|
13311
|
+
|
|
13312
|
+
}
|
|
13313
|
+
|
|
13314
|
+
getGripSpace() {
|
|
13315
|
+
|
|
13316
|
+
if ( this._grip === null ) {
|
|
13317
|
+
|
|
13318
|
+
this._grip = new Group();
|
|
13319
|
+
this._grip.matrixAutoUpdate = false;
|
|
13320
|
+
this._grip.visible = false;
|
|
13321
|
+
this._grip.hasLinearVelocity = false;
|
|
13322
|
+
this._grip.linearVelocity = new Vector3();
|
|
13323
|
+
this._grip.hasAngularVelocity = false;
|
|
13324
|
+
this._grip.angularVelocity = new Vector3();
|
|
13325
|
+
|
|
13326
|
+
}
|
|
13327
|
+
|
|
13328
|
+
return this._grip;
|
|
13329
|
+
|
|
13330
|
+
}
|
|
13331
|
+
|
|
13332
|
+
dispatchEvent( event ) {
|
|
13333
|
+
|
|
13334
|
+
if ( this._targetRay !== null ) {
|
|
13335
|
+
|
|
13336
|
+
this._targetRay.dispatchEvent( event );
|
|
13337
|
+
|
|
13338
|
+
}
|
|
13339
|
+
|
|
13340
|
+
if ( this._grip !== null ) {
|
|
13341
|
+
|
|
13342
|
+
this._grip.dispatchEvent( event );
|
|
13343
|
+
|
|
13344
|
+
}
|
|
13345
|
+
|
|
13346
|
+
if ( this._hand !== null ) {
|
|
13347
|
+
|
|
13348
|
+
this._hand.dispatchEvent( event );
|
|
13349
|
+
|
|
13350
|
+
}
|
|
13351
|
+
|
|
13352
|
+
return this;
|
|
13353
|
+
|
|
13354
|
+
}
|
|
13355
|
+
|
|
13356
|
+
connect( inputSource ) {
|
|
13357
|
+
|
|
13358
|
+
if ( inputSource && inputSource.hand ) {
|
|
13359
|
+
|
|
13360
|
+
const hand = this._hand;
|
|
13361
|
+
|
|
13362
|
+
if ( hand ) {
|
|
13363
|
+
|
|
13364
|
+
for ( const inputjoint of inputSource.hand.values() ) {
|
|
13365
|
+
|
|
13366
|
+
// Initialize hand with joints when connected
|
|
13367
|
+
this._getHandJoint( hand, inputjoint );
|
|
13368
|
+
|
|
13369
|
+
}
|
|
13370
|
+
|
|
13371
|
+
}
|
|
13372
|
+
|
|
13373
|
+
}
|
|
13374
|
+
|
|
13375
|
+
this.dispatchEvent( { type: 'connected', data: inputSource } );
|
|
13376
|
+
|
|
13377
|
+
return this;
|
|
13378
|
+
|
|
13379
|
+
}
|
|
13380
|
+
|
|
13381
|
+
disconnect( inputSource ) {
|
|
13382
|
+
|
|
13383
|
+
this.dispatchEvent( { type: 'disconnected', data: inputSource } );
|
|
13384
|
+
|
|
13385
|
+
if ( this._targetRay !== null ) {
|
|
13386
|
+
|
|
13387
|
+
this._targetRay.visible = false;
|
|
13388
|
+
|
|
13389
|
+
}
|
|
13390
|
+
|
|
13391
|
+
if ( this._grip !== null ) {
|
|
13392
|
+
|
|
13393
|
+
this._grip.visible = false;
|
|
13394
|
+
|
|
13395
|
+
}
|
|
13396
|
+
|
|
13397
|
+
if ( this._hand !== null ) {
|
|
13398
|
+
|
|
13399
|
+
this._hand.visible = false;
|
|
13400
|
+
|
|
13401
|
+
}
|
|
13402
|
+
|
|
13403
|
+
return this;
|
|
13404
|
+
|
|
13405
|
+
}
|
|
13406
|
+
|
|
13407
|
+
update( inputSource, frame, referenceSpace ) {
|
|
13408
|
+
|
|
13409
|
+
let inputPose = null;
|
|
13410
|
+
let gripPose = null;
|
|
13411
|
+
let handPose = null;
|
|
13412
|
+
|
|
13413
|
+
const targetRay = this._targetRay;
|
|
13414
|
+
const grip = this._grip;
|
|
13415
|
+
const hand = this._hand;
|
|
13416
|
+
|
|
13417
|
+
if ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {
|
|
13418
|
+
|
|
13419
|
+
if ( hand && inputSource.hand ) {
|
|
13420
|
+
|
|
13421
|
+
handPose = true;
|
|
13422
|
+
|
|
13423
|
+
for ( const inputjoint of inputSource.hand.values() ) {
|
|
13424
|
+
|
|
13425
|
+
// Update the joints groups with the XRJoint poses
|
|
13426
|
+
const jointPose = frame.getJointPose( inputjoint, referenceSpace );
|
|
13427
|
+
|
|
13428
|
+
// The transform of this joint will be updated with the joint pose on each frame
|
|
13429
|
+
const joint = this._getHandJoint( hand, inputjoint );
|
|
13430
|
+
|
|
13431
|
+
if ( jointPose !== null ) {
|
|
13432
|
+
|
|
13433
|
+
joint.matrix.fromArray( jointPose.transform.matrix );
|
|
13434
|
+
joint.matrix.decompose( joint.position, joint.rotation, joint.scale );
|
|
13435
|
+
joint.matrixWorldNeedsUpdate = true;
|
|
13436
|
+
joint.jointRadius = jointPose.radius;
|
|
13437
|
+
|
|
13438
|
+
}
|
|
13439
|
+
|
|
13440
|
+
joint.visible = jointPose !== null;
|
|
13441
|
+
|
|
13442
|
+
}
|
|
13443
|
+
|
|
13444
|
+
// Custom events
|
|
13445
|
+
|
|
13446
|
+
// Check pinchz
|
|
13447
|
+
const indexTip = hand.joints[ 'index-finger-tip' ];
|
|
13448
|
+
const thumbTip = hand.joints[ 'thumb-tip' ];
|
|
13449
|
+
const distance = indexTip.position.distanceTo( thumbTip.position );
|
|
13450
|
+
|
|
13451
|
+
const distanceToPinch = 0.02;
|
|
13452
|
+
const threshold = 0.005;
|
|
13453
|
+
|
|
13454
|
+
if ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {
|
|
13455
|
+
|
|
13456
|
+
hand.inputState.pinching = false;
|
|
13457
|
+
this.dispatchEvent( {
|
|
13458
|
+
type: 'pinchend',
|
|
13459
|
+
handedness: inputSource.handedness,
|
|
13460
|
+
target: this
|
|
13461
|
+
} );
|
|
13462
|
+
|
|
13463
|
+
} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {
|
|
13464
|
+
|
|
13465
|
+
hand.inputState.pinching = true;
|
|
13466
|
+
this.dispatchEvent( {
|
|
13467
|
+
type: 'pinchstart',
|
|
13468
|
+
handedness: inputSource.handedness,
|
|
13469
|
+
target: this
|
|
13470
|
+
} );
|
|
13471
|
+
|
|
13472
|
+
}
|
|
13473
|
+
|
|
13474
|
+
} else {
|
|
13475
|
+
|
|
13476
|
+
if ( grip !== null && inputSource.gripSpace ) {
|
|
13477
|
+
|
|
13478
|
+
gripPose = frame.getPose( inputSource.gripSpace, referenceSpace );
|
|
13479
|
+
|
|
13480
|
+
if ( gripPose !== null ) {
|
|
13481
|
+
|
|
13482
|
+
grip.matrix.fromArray( gripPose.transform.matrix );
|
|
13483
|
+
grip.matrix.decompose( grip.position, grip.rotation, grip.scale );
|
|
13484
|
+
grip.matrixWorldNeedsUpdate = true;
|
|
13485
|
+
|
|
13486
|
+
if ( gripPose.linearVelocity ) {
|
|
13487
|
+
|
|
13488
|
+
grip.hasLinearVelocity = true;
|
|
13489
|
+
grip.linearVelocity.copy( gripPose.linearVelocity );
|
|
13490
|
+
|
|
13491
|
+
} else {
|
|
13492
|
+
|
|
13493
|
+
grip.hasLinearVelocity = false;
|
|
13494
|
+
|
|
13495
|
+
}
|
|
13496
|
+
|
|
13497
|
+
if ( gripPose.angularVelocity ) {
|
|
13498
|
+
|
|
13499
|
+
grip.hasAngularVelocity = true;
|
|
13500
|
+
grip.angularVelocity.copy( gripPose.angularVelocity );
|
|
13501
|
+
|
|
13502
|
+
} else {
|
|
13503
|
+
|
|
13504
|
+
grip.hasAngularVelocity = false;
|
|
13505
|
+
|
|
13506
|
+
}
|
|
13507
|
+
|
|
13508
|
+
}
|
|
13509
|
+
|
|
13510
|
+
}
|
|
13511
|
+
|
|
13512
|
+
}
|
|
13513
|
+
|
|
13514
|
+
if ( targetRay !== null ) {
|
|
13515
|
+
|
|
13516
|
+
inputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );
|
|
13517
|
+
|
|
13518
|
+
// Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it
|
|
13519
|
+
if ( inputPose === null && gripPose !== null ) {
|
|
13520
|
+
|
|
13521
|
+
inputPose = gripPose;
|
|
13522
|
+
|
|
13523
|
+
}
|
|
13524
|
+
|
|
13525
|
+
if ( inputPose !== null ) {
|
|
13526
|
+
|
|
13527
|
+
targetRay.matrix.fromArray( inputPose.transform.matrix );
|
|
13528
|
+
targetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );
|
|
13529
|
+
targetRay.matrixWorldNeedsUpdate = true;
|
|
13530
|
+
|
|
13531
|
+
if ( inputPose.linearVelocity ) {
|
|
13532
|
+
|
|
13533
|
+
targetRay.hasLinearVelocity = true;
|
|
13534
|
+
targetRay.linearVelocity.copy( inputPose.linearVelocity );
|
|
13535
|
+
|
|
13536
|
+
} else {
|
|
13537
|
+
|
|
13538
|
+
targetRay.hasLinearVelocity = false;
|
|
13539
|
+
|
|
13540
|
+
}
|
|
13541
|
+
|
|
13542
|
+
if ( inputPose.angularVelocity ) {
|
|
13543
|
+
|
|
13544
|
+
targetRay.hasAngularVelocity = true;
|
|
13545
|
+
targetRay.angularVelocity.copy( inputPose.angularVelocity );
|
|
13546
|
+
|
|
13547
|
+
} else {
|
|
13548
|
+
|
|
13549
|
+
targetRay.hasAngularVelocity = false;
|
|
13550
|
+
|
|
13551
|
+
}
|
|
13552
|
+
|
|
13553
|
+
this.dispatchEvent( _moveEvent );
|
|
13554
|
+
|
|
13555
|
+
}
|
|
13556
|
+
|
|
13557
|
+
}
|
|
13558
|
+
|
|
13559
|
+
|
|
13560
|
+
}
|
|
13561
|
+
|
|
13562
|
+
if ( targetRay !== null ) {
|
|
13563
|
+
|
|
13564
|
+
targetRay.visible = ( inputPose !== null );
|
|
13565
|
+
|
|
13566
|
+
}
|
|
13567
|
+
|
|
13568
|
+
if ( grip !== null ) {
|
|
13569
|
+
|
|
13570
|
+
grip.visible = ( gripPose !== null );
|
|
13571
|
+
|
|
13572
|
+
}
|
|
13573
|
+
|
|
13574
|
+
if ( hand !== null ) {
|
|
13575
|
+
|
|
13576
|
+
hand.visible = ( handPose !== null );
|
|
13577
|
+
|
|
13578
|
+
}
|
|
13579
|
+
|
|
13580
|
+
return this;
|
|
13581
|
+
|
|
13582
|
+
}
|
|
13583
|
+
|
|
13584
|
+
// private method
|
|
13585
|
+
|
|
13586
|
+
_getHandJoint( hand, inputjoint ) {
|
|
13587
|
+
|
|
13588
|
+
if ( hand.joints[ inputjoint.jointName ] === undefined ) {
|
|
13589
|
+
|
|
13590
|
+
const joint = new Group();
|
|
13591
|
+
joint.matrixAutoUpdate = false;
|
|
13592
|
+
joint.visible = false;
|
|
13593
|
+
hand.joints[ inputjoint.jointName ] = joint;
|
|
13594
|
+
|
|
13595
|
+
hand.add( joint );
|
|
13596
|
+
|
|
13597
|
+
}
|
|
13598
|
+
|
|
13599
|
+
return hand.joints[ inputjoint.jointName ];
|
|
13600
|
+
|
|
13601
|
+
}
|
|
13602
|
+
|
|
13603
|
+
}
|
|
13604
|
+
|
|
13214
13605
|
class FogExp2 {
|
|
13215
13606
|
|
|
13216
13607
|
constructor( color, density = 0.00025 ) {
|
|
@@ -16174,7 +16565,7 @@ class BatchedMesh extends Mesh {
|
|
|
16174
16565
|
const instanceInfo = this._instanceInfo;
|
|
16175
16566
|
for ( let i = 0, l = instanceInfo.length; i < l; i ++ ) {
|
|
16176
16567
|
|
|
16177
|
-
if ( instanceInfo[ i ].geometryIndex === geometryId ) {
|
|
16568
|
+
if ( instanceInfo[ i ].active && instanceInfo[ i ].geometryIndex === geometryId ) {
|
|
16178
16569
|
|
|
16179
16570
|
this.deleteInstance( i );
|
|
16180
16571
|
|
|
@@ -17025,7 +17416,7 @@ class Line extends Object3D {
|
|
|
17025
17416
|
const a = index.getX( i );
|
|
17026
17417
|
const b = index.getX( i + 1 );
|
|
17027
17418
|
|
|
17028
|
-
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );
|
|
17419
|
+
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b, i );
|
|
17029
17420
|
|
|
17030
17421
|
if ( intersect ) {
|
|
17031
17422
|
|
|
@@ -17040,7 +17431,7 @@ class Line extends Object3D {
|
|
|
17040
17431
|
const a = index.getX( end - 1 );
|
|
17041
17432
|
const b = index.getX( start );
|
|
17042
17433
|
|
|
17043
|
-
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );
|
|
17434
|
+
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b, end - 1 );
|
|
17044
17435
|
|
|
17045
17436
|
if ( intersect ) {
|
|
17046
17437
|
|
|
@@ -17057,7 +17448,7 @@ class Line extends Object3D {
|
|
|
17057
17448
|
|
|
17058
17449
|
for ( let i = start, l = end - 1; i < l; i += step ) {
|
|
17059
17450
|
|
|
17060
|
-
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );
|
|
17451
|
+
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1, i );
|
|
17061
17452
|
|
|
17062
17453
|
if ( intersect ) {
|
|
17063
17454
|
|
|
@@ -17069,7 +17460,7 @@ class Line extends Object3D {
|
|
|
17069
17460
|
|
|
17070
17461
|
if ( this.isLineLoop ) {
|
|
17071
17462
|
|
|
17072
|
-
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );
|
|
17463
|
+
const intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start, end - 1 );
|
|
17073
17464
|
|
|
17074
17465
|
if ( intersect ) {
|
|
17075
17466
|
|
|
@@ -17116,7 +17507,7 @@ class Line extends Object3D {
|
|
|
17116
17507
|
|
|
17117
17508
|
}
|
|
17118
17509
|
|
|
17119
|
-
function checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {
|
|
17510
|
+
function checkIntersection( object, raycaster, ray, thresholdSq, a, b, i ) {
|
|
17120
17511
|
|
|
17121
17512
|
const positionAttribute = object.geometry.attributes.position;
|
|
17122
17513
|
|
|
@@ -17139,7 +17530,7 @@ function checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {
|
|
|
17139
17530
|
// What do we want? intersection point on the ray or on the segment??
|
|
17140
17531
|
// point: raycaster.ray.at( distance ),
|
|
17141
17532
|
point: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),
|
|
17142
|
-
index:
|
|
17533
|
+
index: i,
|
|
17143
17534
|
face: null,
|
|
17144
17535
|
faceIndex: null,
|
|
17145
17536
|
barycoord: null,
|
|
@@ -17418,20 +17809,6 @@ function testPoint( point, index, localThresholdSq, matrixWorld, raycaster, inte
|
|
|
17418
17809
|
|
|
17419
17810
|
}
|
|
17420
17811
|
|
|
17421
|
-
class Group extends Object3D {
|
|
17422
|
-
|
|
17423
|
-
constructor() {
|
|
17424
|
-
|
|
17425
|
-
super();
|
|
17426
|
-
|
|
17427
|
-
this.isGroup = true;
|
|
17428
|
-
|
|
17429
|
-
this.type = 'Group';
|
|
17430
|
-
|
|
17431
|
-
}
|
|
17432
|
-
|
|
17433
|
-
}
|
|
17434
|
-
|
|
17435
17812
|
class VideoTexture extends Texture {
|
|
17436
17813
|
|
|
17437
17814
|
constructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
|
|
@@ -17483,6 +17860,38 @@ class VideoTexture extends Texture {
|
|
|
17483
17860
|
|
|
17484
17861
|
}
|
|
17485
17862
|
|
|
17863
|
+
class VideoFrameTexture extends VideoTexture {
|
|
17864
|
+
|
|
17865
|
+
constructor( mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
|
|
17866
|
+
|
|
17867
|
+
super( {}, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );
|
|
17868
|
+
|
|
17869
|
+
this.isVideoFrameTexture = true;
|
|
17870
|
+
|
|
17871
|
+
}
|
|
17872
|
+
|
|
17873
|
+
update() {
|
|
17874
|
+
|
|
17875
|
+
// overwrites `VideoTexture.update()` with an empty method since
|
|
17876
|
+
// this type of texture is updated via `setFrame()`.
|
|
17877
|
+
|
|
17878
|
+
}
|
|
17879
|
+
|
|
17880
|
+
clone() {
|
|
17881
|
+
|
|
17882
|
+
return new this.constructor().copy( this ); // restoring Texture.clone()
|
|
17883
|
+
|
|
17884
|
+
}
|
|
17885
|
+
|
|
17886
|
+
setFrame( frame ) {
|
|
17887
|
+
|
|
17888
|
+
this.image = frame;
|
|
17889
|
+
this.needsUpdate = true;
|
|
17890
|
+
|
|
17891
|
+
}
|
|
17892
|
+
|
|
17893
|
+
}
|
|
17894
|
+
|
|
17486
17895
|
class FramebufferTexture extends Texture {
|
|
17487
17896
|
|
|
17488
17897
|
constructor( width, height ) {
|
|
@@ -21372,7 +21781,7 @@ function pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {
|
|
|
21372
21781
|
// check if a diagonal between two polygon nodes is valid (lies in polygon interior)
|
|
21373
21782
|
function isValidDiagonal( a, b ) {
|
|
21374
21783
|
|
|
21375
|
-
return a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && //
|
|
21784
|
+
return a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // doesn't intersect other edges
|
|
21376
21785
|
( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible
|
|
21377
21786
|
( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors
|
|
21378
21787
|
equals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case
|
|
@@ -30664,6 +31073,7 @@ class ArrayCamera extends PerspectiveCamera {
|
|
|
30664
31073
|
this.isArrayCamera = true;
|
|
30665
31074
|
|
|
30666
31075
|
this.cameras = array;
|
|
31076
|
+
this.index = 0;
|
|
30667
31077
|
|
|
30668
31078
|
}
|
|
30669
31079
|
|
|
@@ -32372,11 +32782,11 @@ class PropertyBinding {
|
|
|
32372
32782
|
|
|
32373
32783
|
this.targetObject = targetObject;
|
|
32374
32784
|
|
|
32375
|
-
if ( targetObject.
|
|
32785
|
+
if ( targetObject.isMaterial === true ) {
|
|
32376
32786
|
|
|
32377
32787
|
versioning = this.Versioning.NeedsUpdate;
|
|
32378
32788
|
|
|
32379
|
-
} else if ( targetObject.
|
|
32789
|
+
} else if ( targetObject.isObject3D === true ) {
|
|
32380
32790
|
|
|
32381
32791
|
versioning = this.Versioning.MatrixWorldNeedsUpdate;
|
|
32382
32792
|
|
|
@@ -34356,6 +34766,42 @@ class AnimationMixer extends EventDispatcher {
|
|
|
34356
34766
|
|
|
34357
34767
|
}
|
|
34358
34768
|
|
|
34769
|
+
class RenderTarget3D extends RenderTarget {
|
|
34770
|
+
|
|
34771
|
+
constructor( width = 1, height = 1, depth = 1, options = {} ) {
|
|
34772
|
+
|
|
34773
|
+
super( width, height, options );
|
|
34774
|
+
|
|
34775
|
+
this.isRenderTarget3D = true;
|
|
34776
|
+
|
|
34777
|
+
this.depth = depth;
|
|
34778
|
+
|
|
34779
|
+
this.texture = new Data3DTexture( null, width, height, depth );
|
|
34780
|
+
|
|
34781
|
+
this.texture.isRenderTargetTexture = true;
|
|
34782
|
+
|
|
34783
|
+
}
|
|
34784
|
+
|
|
34785
|
+
}
|
|
34786
|
+
|
|
34787
|
+
class RenderTargetArray extends RenderTarget {
|
|
34788
|
+
|
|
34789
|
+
constructor( width = 1, height = 1, depth = 1, options = {} ) {
|
|
34790
|
+
|
|
34791
|
+
super( width, height, options );
|
|
34792
|
+
|
|
34793
|
+
this.isRenderTargetArray = true;
|
|
34794
|
+
|
|
34795
|
+
this.depth = depth;
|
|
34796
|
+
|
|
34797
|
+
this.texture = new DataArrayTexture( null, width, height, depth );
|
|
34798
|
+
|
|
34799
|
+
this.texture.isRenderTargetTexture = true;
|
|
34800
|
+
|
|
34801
|
+
}
|
|
34802
|
+
|
|
34803
|
+
}
|
|
34804
|
+
|
|
34359
34805
|
class Uniform {
|
|
34360
34806
|
|
|
34361
34807
|
constructor( value ) {
|
|
@@ -35995,17 +36441,19 @@ class CameraHelper extends LineSegments {
|
|
|
35995
36441
|
|
|
35996
36442
|
_camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );
|
|
35997
36443
|
|
|
35998
|
-
//
|
|
36444
|
+
// Adjust z values based on coordinate system
|
|
36445
|
+
const nearZ = this.camera.coordinateSystem === WebGLCoordinateSystem ? - 1 : 0;
|
|
35999
36446
|
|
|
36000
|
-
|
|
36447
|
+
// center / target
|
|
36448
|
+
setPoint( 'c', pointMap, geometry, _camera, 0, 0, nearZ );
|
|
36001
36449
|
setPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );
|
|
36002
36450
|
|
|
36003
36451
|
// near
|
|
36004
36452
|
|
|
36005
|
-
setPoint( 'n1', pointMap, geometry, _camera, - w, - h,
|
|
36006
|
-
setPoint( 'n2', pointMap, geometry, _camera, w, - h,
|
|
36007
|
-
setPoint( 'n3', pointMap, geometry, _camera, - w, h,
|
|
36008
|
-
setPoint( 'n4', pointMap, geometry, _camera, w, h,
|
|
36453
|
+
setPoint( 'n1', pointMap, geometry, _camera, - w, - h, nearZ );
|
|
36454
|
+
setPoint( 'n2', pointMap, geometry, _camera, w, - h, nearZ );
|
|
36455
|
+
setPoint( 'n3', pointMap, geometry, _camera, - w, h, nearZ );
|
|
36456
|
+
setPoint( 'n4', pointMap, geometry, _camera, w, h, nearZ );
|
|
36009
36457
|
|
|
36010
36458
|
// far
|
|
36011
36459
|
|
|
@@ -36016,9 +36464,9 @@ class CameraHelper extends LineSegments {
|
|
|
36016
36464
|
|
|
36017
36465
|
// up
|
|
36018
36466
|
|
|
36019
|
-
setPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1,
|
|
36020
|
-
setPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1,
|
|
36021
|
-
setPoint( 'u3', pointMap, geometry, _camera, 0, h * 2,
|
|
36467
|
+
setPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, nearZ );
|
|
36468
|
+
setPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, nearZ );
|
|
36469
|
+
setPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, nearZ );
|
|
36022
36470
|
|
|
36023
36471
|
// cross
|
|
36024
36472
|
|
|
@@ -36027,10 +36475,10 @@ class CameraHelper extends LineSegments {
|
|
|
36027
36475
|
setPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );
|
|
36028
36476
|
setPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );
|
|
36029
36477
|
|
|
36030
|
-
setPoint( 'cn1', pointMap, geometry, _camera, - w, 0,
|
|
36031
|
-
setPoint( 'cn2', pointMap, geometry, _camera, w, 0,
|
|
36032
|
-
setPoint( 'cn3', pointMap, geometry, _camera, 0, - h,
|
|
36033
|
-
setPoint( 'cn4', pointMap, geometry, _camera, 0, h,
|
|
36478
|
+
setPoint( 'cn1', pointMap, geometry, _camera, - w, 0, nearZ );
|
|
36479
|
+
setPoint( 'cn2', pointMap, geometry, _camera, w, 0, nearZ );
|
|
36480
|
+
setPoint( 'cn3', pointMap, geometry, _camera, 0, - h, nearZ );
|
|
36481
|
+
setPoint( 'cn4', pointMap, geometry, _camera, 0, h, nearZ );
|
|
36034
36482
|
|
|
36035
36483
|
geometry.getAttribute( 'position' ).needsUpdate = true;
|
|
36036
36484
|
|
|
@@ -36819,6 +37267,12 @@ function fill( texture ) {
|
|
|
36819
37267
|
/**
|
|
36820
37268
|
* Given the width, height, format, and type of a texture. Determines how many
|
|
36821
37269
|
* bytes must be used to represent the texture.
|
|
37270
|
+
*
|
|
37271
|
+
* @param {Number} width
|
|
37272
|
+
* @param {Number} height
|
|
37273
|
+
* @param {Number} format
|
|
37274
|
+
* @param {Number} type
|
|
37275
|
+
* @return {Number} The number of bytes required to represent the texture.
|
|
36822
37276
|
*/
|
|
36823
37277
|
function getByteLength( width, height, format, type ) {
|
|
36824
37278
|
|
|
@@ -36957,26 +37411,6 @@ const TextureUtils = {
|
|
|
36957
37411
|
getByteLength
|
|
36958
37412
|
};
|
|
36959
37413
|
|
|
36960
|
-
class WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162
|
|
36961
|
-
|
|
36962
|
-
constructor( width = 1, height = 1, count = 1, options = {} ) {
|
|
36963
|
-
|
|
36964
|
-
console.warn( 'THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the "count" parameter to enable MRT.' );
|
|
36965
|
-
|
|
36966
|
-
super( width, height, { ...options, count } );
|
|
36967
|
-
|
|
36968
|
-
this.isWebGLMultipleRenderTargets = true;
|
|
36969
|
-
|
|
36970
|
-
}
|
|
36971
|
-
|
|
36972
|
-
get texture() {
|
|
36973
|
-
|
|
36974
|
-
return this.textures;
|
|
36975
|
-
|
|
36976
|
-
}
|
|
36977
|
-
|
|
36978
|
-
}
|
|
36979
|
-
|
|
36980
37414
|
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
36981
37415
|
|
|
36982
37416
|
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {
|
|
@@ -36999,4 +37433,4 @@ if ( typeof window !== 'undefined' ) {
|
|
|
36999
37433
|
|
|
37000
37434
|
}
|
|
37001
37435
|
|
|
37002
|
-
export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget,
|
|
37436
|
+
export { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, PCFShadowMap, PCFSoftShadowMap, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RAD2DEG, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBDepthPacking, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGDepthPacking, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RenderTarget3D, RenderTargetArray, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TimestampQuery, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLRenderTarget, WebGPUCoordinateSystem, WebXRController, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, arrayNeedsUint32, cloneUniforms, createCanvasElement, createElementNS, getByteLength, getUnlitUniformColorSpace, mergeUniforms, probeAsync, toNormalizedProjectionMatrix, toReversedProjectionMatrix, warnOnce };
|