three-stdlib 2.16.0 → 2.16.2
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/BufferGeometryUtils-1a7a235c.js +655 -0
- package/BufferGeometryUtils-971dfde3.js +1 -0
- package/Nodes-4f766d71.js +471 -0
- package/Nodes-9aa16d74.js +1 -0
- package/animation/AnimationClipCreator.cjs.js +1 -0
- package/animation/AnimationClipCreator.js +52 -32
- package/animation/CCDIKSolver.cjs.js +1 -0
- package/animation/CCDIKSolver.js +143 -64
- package/animation/MMDAnimationHelper.cjs.js +1 -0
- package/animation/MMDAnimationHelper.js +341 -150
- package/animation/MMDPhysics.cjs.js +1 -0
- package/animation/MMDPhysics.js +361 -154
- package/cameras/CinematicCamera.cjs.js +1 -0
- package/cameras/CinematicCamera.js +77 -67
- package/controls/ArcballControls.cjs.js +1 -0
- package/controls/ArcballControls.js +1449 -544
- package/controls/DeviceOrientationControls.cjs.js +1 -0
- package/controls/DeviceOrientationControls.js +97 -52
- package/controls/DragControls.cjs.js +1 -0
- package/controls/DragControls.js +187 -85
- package/controls/FirstPersonControls.cjs.js +1 -0
- package/controls/FirstPersonControls.js +193 -123
- package/controls/FlyControls.cjs.js +1 -0
- package/controls/FlyControls.d.ts +5 -4
- package/controls/FlyControls.js +160 -90
- package/controls/OrbitControls.cjs.js +1 -0
- package/controls/OrbitControls.js +481 -232
- package/controls/PointerLockControls.cjs.js +1 -0
- package/controls/PointerLockControls.js +99 -63
- package/controls/TrackballControls.cjs.js +1 -0
- package/controls/TrackballControls.js +383 -211
- package/controls/TransformControls.cjs.js +1 -0
- package/controls/TransformControls.js +782 -575
- package/controls/experimental/CameraControls.cjs.js +1 -0
- package/controls/experimental/CameraControls.js +609 -329
- package/csm/CSM.cjs.js +1 -0
- package/csm/CSM.js +108 -47
- package/csm/CSMFrustum.cjs.js +1 -0
- package/csm/CSMFrustum.js +29 -14
- package/csm/CSMHelper.cjs.js +1 -0
- package/csm/CSMHelper.js +34 -20
- package/csm/CSMShader.cjs.js +1 -0
- package/csm/CSMShader.js +11 -7
- package/curves/CurveExtras.cjs.js +1 -0
- package/curves/CurveExtras.js +115 -73
- package/curves/NURBSCurve.cjs.js +1 -0
- package/curves/NURBSCurve.js +43 -15
- package/curves/NURBSSurface.cjs.js +1 -0
- package/curves/NURBSSurface.js +27 -11
- package/curves/NURBSUtils.cjs.js +1 -0
- package/curves/NURBSUtils.js +203 -54
- package/custom.d.cjs.js +1 -0
- package/{shaders/types.mjs → custom.d.js} +0 -0
- package/deprecated/Geometry.cjs.js +1 -0
- package/deprecated/Geometry.js +486 -191
- package/effects/AnaglyphEffect.cjs.js +1 -0
- package/effects/AnaglyphEffect.js +60 -95
- package/effects/AsciiEffect.cjs.js +1 -0
- package/effects/AsciiEffect.js +110 -80
- package/effects/OutlineEffect.cjs.js +1 -0
- package/effects/OutlineEffect.js +204 -121
- package/effects/ParallaxBarrierEffect.cjs.js +1 -0
- package/effects/ParallaxBarrierEffect.js +38 -39
- package/effects/PeppersGhostEffect.cjs.js +1 -0
- package/effects/PeppersGhostEffect.js +68 -19
- package/effects/StereoEffect.cjs.js +1 -0
- package/effects/StereoEffect.js +16 -12
- package/environments/RoomEnvironment.cjs.js +1 -0
- package/environments/RoomEnvironment.js +47 -52
- package/exporters/ColladaExporter.cjs.js +1 -0
- package/exporters/ColladaExporter.js +241 -115
- package/exporters/DRACOExporter.cjs.js +1 -0
- package/exporters/DRACOExporter.js +121 -67
- package/exporters/GLTFExporter.cjs.js +1 -0
- package/exporters/GLTFExporter.js +1014 -463
- package/exporters/MMDExporter.cjs.js +1 -0
- package/exporters/MMDExporter.js +102 -44
- package/exporters/OBJExporter.cjs.js +1 -0
- package/exporters/OBJExporter.js +140 -78
- package/exporters/PLYExporter.cjs.js +1 -0
- package/exporters/PLYExporter.js +154 -93
- package/exporters/STLExporter.cjs.js +1 -0
- package/exporters/STLExporter.js +81 -30
- package/exporters/USDZExporter.cjs.js +1 -0
- package/exporters/USDZExporter.js +144 -84
- package/geometries/BoxLineGeometry.cjs.js +1 -0
- package/geometries/BoxLineGeometry.js +14 -7
- package/geometries/ConvexGeometry.cjs.js +1 -0
- package/geometries/ConvexGeometry.js +23 -14
- package/geometries/DecalGeometry.cjs.js +1 -0
- package/geometries/DecalGeometry.js +162 -108
- package/geometries/LightningStrike.cjs.js +1 -0
- package/geometries/LightningStrike.js +294 -101
- package/geometries/ParametricGeometries.cjs.js +1 -0
- package/geometries/ParametricGeometries.js +76 -26
- package/geometries/ParametricGeometry.cjs.js +1 -0
- package/geometries/ParametricGeometry.js +48 -24
- package/geometries/RoundedBoxGeometry.cjs.js +1 -0
- package/geometries/RoundedBoxGeometry.js +64 -33
- package/geometries/TeapotGeometry.cjs.js +1 -0
- package/geometries/TeapotGeometry.js +174 -1434
- package/geometries/TextGeometry.cjs.js +1 -0
- package/geometries/TextGeometry.js +17 -9
- package/helpers/LightProbeHelper.cjs.js +1 -0
- package/helpers/LightProbeHelper.js +21 -53
- package/helpers/PositionalAudioHelper.cjs.js +1 -0
- package/helpers/PositionalAudioHelper.js +30 -23
- package/helpers/RectAreaLightHelper.cjs.js +1 -0
- package/helpers/RectAreaLightHelper.js +33 -17
- package/helpers/VertexNormalsHelper.cjs.js +1 -0
- package/helpers/VertexNormalsHelper.js +41 -20
- package/helpers/VertexTangentsHelper.cjs.js +1 -0
- package/helpers/VertexTangentsHelper.js +36 -18
- package/index.cjs.js +1 -0
- package/index.js +333 -969
- package/interactive/InteractiveGroup.cjs.js +1 -0
- package/interactive/InteractiveGroup.d.ts +5 -0
- package/interactive/InteractiveGroup.js +87 -0
- package/interactive/SelectionBox.cjs.js +1 -0
- package/interactive/SelectionBox.js +46 -31
- package/interactive/SelectionHelper.cjs.js +1 -0
- package/interactive/SelectionHelper.js +21 -16
- package/libs/MeshoptDecoder.cjs.js +1 -0
- package/libs/MeshoptDecoder.js +58 -147
- package/libs/MotionControllers.cjs.js +1 -0
- package/libs/MotionControllers.js +208 -66
- package/lights/LightProbeGenerator.cjs.js +1 -0
- package/lights/LightProbeGenerator.js +96 -40
- package/lights/RectAreaLightUniformsLib.cjs.js +1 -0
- package/lights/RectAreaLightUniformsLib.js +9 -32842
- package/lines/Line2.cjs.js +1 -0
- package/lines/Line2.js +12 -9
- package/lines/LineGeometry.cjs.js +1 -0
- package/lines/LineGeometry.js +19 -7
- package/lines/LineMaterial.cjs.js +1 -0
- package/lines/LineMaterial.js +89 -51
- package/lines/LineSegments2.cjs.js +1 -0
- package/lines/LineSegments2.js +165 -56
- package/lines/LineSegmentsGeometry.cjs.js +1 -0
- package/lines/LineSegmentsGeometry.js +71 -29
- package/lines/Wireframe.cjs.js +1 -0
- package/lines/Wireframe.js +29 -15
- package/lines/WireframeGeometry2.cjs.js +1 -0
- package/lines/WireframeGeometry2.js +9 -8
- package/loaders/3DMLoader.cjs.js +1 -0
- package/loaders/3DMLoader.js +469 -234
- package/loaders/3MFLoader.cjs.js +1 -0
- package/loaders/3MFLoader.js +555 -340
- package/loaders/AMFLoader.cjs.js +1 -0
- package/loaders/AMFLoader.js +219 -114
- package/loaders/AssimpLoader.cjs.js +1 -0
- package/loaders/AssimpLoader.js +725 -328
- package/loaders/BVHLoader.cjs.js +1 -0
- package/loaders/BVHLoader.js +200 -94
- package/loaders/BasisTextureLoader.cjs.js +1 -0
- package/loaders/BasisTextureLoader.js +357 -229
- package/loaders/ColladaLoader.cjs.js +1 -0
- package/loaders/ColladaLoader.js +1522 -932
- package/loaders/DDSLoader.cjs.js +1 -0
- package/loaders/DDSLoader.js +108 -42
- package/loaders/DRACOLoader.cjs.js +1 -0
- package/loaders/DRACOLoader.js +210 -103
- package/loaders/EXRLoader.cjs.js +1 -0
- package/loaders/EXRLoader.js +809 -461
- package/loaders/FBXLoader.cjs.js +1 -0
- package/loaders/FBXLoader.js +1397 -842
- package/loaders/FontLoader.cjs.js +1 -0
- package/loaders/FontLoader.js +66 -33
- package/loaders/GCodeLoader.cjs.js +1 -0
- package/loaders/GCodeLoader.js +111 -63
- package/loaders/GLTFLoader.cjs.js +1 -0
- package/loaders/GLTFLoader.js +1484 -771
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -0
- package/loaders/HDRCubeTextureLoader.js +50 -45
- package/loaders/KMZLoader.cjs.js +1 -0
- package/loaders/KMZLoader.js +55 -42
- package/loaders/KTX2Loader.cjs.js +1 -0
- package/loaders/KTX2Loader.js +362 -229
- package/loaders/KTXLoader.cjs.js +1 -0
- package/loaders/KTXLoader.js +99 -37
- package/loaders/LDrawLoader.cjs.js +1 -0
- package/loaders/LDrawLoader.js +746 -313
- package/loaders/LUT3dlLoader.cjs.js +1 -0
- package/loaders/LUT3dlLoader.js +62 -50
- package/loaders/LUTCubeLoader.cjs.js +1 -0
- package/loaders/LUTCubeLoader.js +56 -45
- package/loaders/LWOLoader.cjs.js +1 -0
- package/loaders/LWOLoader.js +339 -227
- package/loaders/LottieLoader.cjs.js +1 -0
- package/loaders/LottieLoader.js +38 -36
- package/loaders/MD2Loader.cjs.js +1 -0
- package/loaders/MD2Loader.js +91 -248
- package/loaders/MDDLoader.cjs.js +1 -0
- package/loaders/MDDLoader.js +45 -25
- package/loaders/MMDLoader.cjs.js +1 -0
- package/loaders/MMDLoader.js +795 -359
- package/loaders/MTLLoader.cjs.js +1 -0
- package/loaders/MTLLoader.js +201 -91
- package/loaders/NRRDLoader.cjs.js +1 -0
- package/loaders/NRRDLoader.js +263 -182
- package/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/loaders/NodeMaterialLoader.js +14 -121
- package/loaders/OBJLoader.cjs.js +1 -0
- package/loaders/OBJLoader.js +283 -161
- package/loaders/PCDLoader.cjs.js +1 -0
- package/loaders/PCDLoader.js +164 -145
- package/loaders/PDBLoader.cjs.js +1 -0
- package/loaders/PDBLoader.js +63 -45
- package/loaders/PLYLoader.cjs.js +1 -0
- package/loaders/PLYLoader.js +203 -106
- package/loaders/PRWMLoader.cjs.js +1 -0
- package/loaders/PRWMLoader.js +110 -73
- package/loaders/PVRLoader.cjs.js +1 -0
- package/loaders/PVRLoader.js +93 -32
- package/loaders/RGBELoader.cjs.js +1 -0
- package/loaders/RGBELoader.js +233 -96
- package/loaders/RGBMLoader.cjs.js +1 -0
- package/loaders/RGBMLoader.js +514 -344
- package/loaders/STLLoader.cjs.js +1 -0
- package/loaders/STLLoader.js +165 -59
- package/loaders/SVGLoader.cjs.js +1 -0
- package/loaders/SVGLoader.js +851 -481
- package/loaders/TDSLoader.cjs.js +1 -0
- package/loaders/TDSLoader.js +527 -137
- package/loaders/TGALoader.cjs.js +1 -0
- package/loaders/TGALoader.js +205 -94
- package/loaders/TTFLoader.cjs.js +1 -0
- package/loaders/TTFLoader.js +79 -58
- package/loaders/TiltLoader.cjs.js +1 -0
- package/loaders/TiltLoader.js +167 -129
- package/loaders/VOXLoader.cjs.js +1 -0
- package/loaders/VOXLoader.js +84 -320
- package/loaders/VRMLLoader.cjs.js +1 -0
- package/loaders/VRMLLoader.js +1268 -786
- package/loaders/VRMLoader.cjs.js +1 -0
- package/loaders/VRMLoader.js +31 -23
- package/loaders/VTKLoader.cjs.js +1 -0
- package/loaders/VTKLoader.js +407 -219
- package/loaders/XLoader.cjs.js +1 -0
- package/loaders/XLoader.js +1259 -1083
- package/loaders/XYZLoader.cjs.js +1 -0
- package/loaders/XYZLoader.js +34 -28
- package/loaders/lwo/IFFParser.cjs.js +1 -0
- package/loaders/lwo/IFFParser.js +492 -238
- package/loaders/lwo/LWO2Parser.cjs.js +1 -0
- package/loaders/lwo/LWO2Parser.js +279 -176
- package/loaders/lwo/LWO3Parser.cjs.js +1 -0
- package/loaders/lwo/LWO3Parser.js +247 -160
- package/math/Capsule.cjs.js +1 -0
- package/math/Capsule.js +43 -56
- package/math/ColorConverter.cjs.js +1 -0
- package/math/ColorConverter.js +32 -18
- package/math/ConvexHull.cjs.js +1 -0
- package/math/ConvexHull.js +357 -97
- package/math/ImprovedNoise.cjs.js +1 -0
- package/math/ImprovedNoise.js +32 -282
- package/math/Lut.cjs.js +1 -0
- package/math/Lut.js +35 -51
- package/math/MeshSurfaceSampler.cjs.js +1 -0
- package/math/MeshSurfaceSampler.js +68 -25
- package/math/OBB.cjs.js +1 -0
- package/math/OBB.js +152 -91
- package/math/Octree.cjs.js +1 -0
- package/math/Octree.js +139 -76
- package/math/SimplexNoise.cjs.js +1 -0
- package/math/SimplexNoise.js +238 -217
- package/misc/ConvexObjectBreaker.cjs.js +1 -0
- package/misc/ConvexObjectBreaker.js +185 -79
- package/misc/GPUComputationRenderer.cjs.js +1 -0
- package/misc/GPUComputationRenderer.js +194 -69
- package/misc/Gyroscope.cjs.js +1 -0
- package/misc/Gyroscope.js +22 -16
- package/misc/MD2Character.cjs.js +1 -0
- package/misc/MD2Character.js +74 -52
- package/misc/MD2CharacterComplex.cjs.js +1 -0
- package/misc/MD2CharacterComplex.js +163 -112
- package/misc/MorphAnimMesh.cjs.js +1 -0
- package/misc/MorphAnimMesh.js +28 -20
- package/misc/MorphBlendMesh.cjs.js +1 -0
- package/misc/MorphBlendMesh.js +69 -45
- package/misc/ProgressiveLightmap.cjs.js +1 -0
- package/misc/ProgressiveLightmap.js +187 -70
- package/misc/RollerCoaster.cjs.js +1 -0
- package/misc/RollerCoaster.js +135 -106
- package/misc/TubePainter.cjs.js +1 -0
- package/misc/TubePainter.js +92 -74
- package/misc/Volume.cjs.js +1 -0
- package/misc/Volume.js +270 -108
- package/misc/VolumeSlice.cjs.js +1 -0
- package/misc/VolumeSlice.js +122 -34
- package/misc/WebGL.cjs.js +1 -0
- package/misc/WebGL.js +34 -37
- package/modifiers/CurveModifier.cjs.js +1 -0
- package/modifiers/CurveModifier.js +151 -46
- package/modifiers/EdgeSplitModifier.cjs.js +1 -0
- package/modifiers/EdgeSplitModifier.js +90 -46
- package/modifiers/SimplifyModifier.cjs.js +1 -0
- package/modifiers/SimplifyModifier.js +202 -77
- package/modifiers/TessellateModifier.cjs.js +1 -0
- package/modifiers/TessellateModifier.js +90 -65
- package/nodes/Nodes.cjs.js +1 -0
- package/nodes/Nodes.js +140 -274
- package/nodes/ShaderNode.cjs.js +1 -0
- package/nodes/ShaderNode.js +196 -296
- package/nodes/accessors/BufferNode.cjs.js +1 -0
- package/nodes/accessors/BufferNode.js +8 -4
- package/nodes/accessors/CameraNode.cjs.js +1 -0
- package/nodes/accessors/CameraNode.js +25 -20
- package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
- package/nodes/accessors/CubeTextureNode.js +26 -14
- package/nodes/accessors/MaterialNode.cjs.js +1 -0
- package/nodes/accessors/MaterialNode.js +53 -43
- package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
- package/nodes/accessors/MaterialReferenceNode.js +6 -3
- package/nodes/accessors/ModelNode.cjs.js +1 -0
- package/nodes/accessors/ModelNode.js +5 -3
- package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/nodes/accessors/ModelViewProjectionNode.js +13 -14
- package/nodes/accessors/NormalNode.cjs.js +1 -0
- package/nodes/accessors/NormalNode.js +39 -40
- package/nodes/accessors/Object3DNode.cjs.js +1 -0
- package/nodes/accessors/Object3DNode.js +50 -40
- package/nodes/accessors/PointUVNode.cjs.js +1 -0
- package/nodes/accessors/PointUVNode.js +9 -5
- package/nodes/accessors/PositionNode.cjs.js +1 -0
- package/nodes/accessors/PositionNode.js +41 -42
- package/nodes/accessors/ReferenceNode.cjs.js +1 -0
- package/nodes/accessors/ReferenceNode.js +17 -10
- package/nodes/accessors/ReflectNode.cjs.js +1 -0
- package/nodes/accessors/ReflectNode.js +26 -23
- package/nodes/accessors/SkinningNode.cjs.js +1 -0
- package/nodes/accessors/SkinningNode.js +48 -46
- package/nodes/accessors/TextureNode.cjs.js +1 -0
- package/nodes/accessors/TextureNode.js +29 -14
- package/nodes/accessors/UVNode.cjs.js +1 -0
- package/nodes/accessors/UVNode.js +11 -5
- package/nodes/core/ArrayUniformNode.cjs.js +1 -0
- package/nodes/core/ArrayUniformNode.js +7 -3
- package/nodes/core/AttributeNode.cjs.js +1 -0
- package/nodes/core/AttributeNode.js +12 -5
- package/nodes/core/BypassNode.cjs.js +1 -0
- package/nodes/core/BypassNode.js +12 -5
- package/nodes/core/CodeNode.cjs.js +1 -0
- package/nodes/core/CodeNode.js +12 -4
- package/nodes/core/ConstNode.cjs.js +1 -0
- package/nodes/core/ConstNode.js +7 -3
- package/nodes/core/ContextNode.cjs.js +1 -0
- package/nodes/core/ContextNode.js +8 -3
- package/nodes/core/ExpressionNode.cjs.js +1 -0
- package/nodes/core/ExpressionNode.js +9 -5
- package/nodes/core/FunctionCallNode.cjs.js +1 -0
- package/nodes/core/FunctionCallNode.js +15 -6
- package/nodes/core/FunctionNode.cjs.js +1 -0
- package/nodes/core/FunctionNode.js +25 -10
- package/nodes/core/InputNode.cjs.js +1 -0
- package/nodes/core/InputNode.js +23 -12
- package/nodes/core/Node.cjs.js +1 -0
- package/nodes/core/Node.js +75 -35
- package/nodes/core/NodeAttribute.cjs.js +1 -0
- package/nodes/core/NodeAttribute.js +4 -2
- package/nodes/core/NodeBuilder.cjs.js +1 -0
- package/nodes/core/NodeBuilder.js +224 -110
- package/nodes/core/NodeCode.cjs.js +1 -0
- package/nodes/core/NodeCode.js +7 -4
- package/nodes/core/NodeFrame.cjs.js +1 -0
- package/nodes/core/NodeFrame.js +12 -9
- package/nodes/core/NodeFunction.cjs.js +1 -0
- package/nodes/core/NodeFunction.js +17 -0
- package/nodes/core/NodeFunctionInput.cjs.js +1 -0
- package/nodes/core/NodeFunctionInput.js +5 -3
- package/nodes/core/NodeKeywords.cjs.js +1 -0
- package/nodes/core/NodeKeywords.js +16 -5
- package/nodes/core/NodeParser.cjs.js +1 -0
- package/nodes/core/NodeParser.js +8 -0
- package/nodes/core/NodeUniform.cjs.js +1 -0
- package/nodes/core/NodeUniform.js +7 -3
- package/nodes/core/NodeUtils.cjs.js +1 -0
- package/nodes/core/NodeUtils.js +43 -39
- package/nodes/core/NodeVar.cjs.js +1 -0
- package/nodes/core/NodeVar.js +4 -2
- package/nodes/core/NodeVary.cjs.js +1 -0
- package/nodes/core/NodeVary.js +4 -2
- package/nodes/core/PropertyNode.cjs.js +1 -0
- package/nodes/core/PropertyNode.js +10 -4
- package/nodes/core/TempNode.cjs.js +1 -0
- package/nodes/core/TempNode.js +11 -5
- package/nodes/core/UniformNode.cjs.js +1 -0
- package/nodes/core/UniformNode.js +10 -4
- package/nodes/core/VarNode.cjs.js +1 -0
- package/nodes/core/VarNode.js +11 -3
- package/nodes/core/VaryNode.cjs.js +1 -0
- package/nodes/core/VaryNode.js +15 -6
- package/nodes/core/constants.cjs.js +1 -0
- package/nodes/core/constants.js +7 -20
- package/nodes/display/ColorSpaceNode.cjs.js +1 -0
- package/nodes/display/ColorSpaceNode.js +38 -34
- package/nodes/display/NormalMapNode.cjs.js +1 -0
- package/nodes/display/NormalMapNode.js +53 -35
- package/nodes/fog/FogNode.cjs.js +1 -0
- package/nodes/fog/FogNode.js +9 -5
- package/nodes/fog/FogRangeNode.cjs.js +1 -0
- package/nodes/fog/FogRangeNode.js +9 -5
- package/nodes/functions/BSDFs.cjs.js +1 -0
- package/nodes/functions/BSDFs.js +118 -61
- package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
- package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
- package/nodes/lights/LightContextNode.cjs.js +1 -0
- package/nodes/lights/LightContextNode.js +23 -14
- package/nodes/lights/LightNode.cjs.js +1 -0
- package/nodes/lights/LightNode.js +31 -27
- package/nodes/lights/LightsNode.cjs.js +1 -0
- package/nodes/lights/LightsNode.js +28 -9
- package/nodes/loaders/NodeLoader.cjs.js +1 -0
- package/nodes/loaders/NodeLoader.js +42 -27
- package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
- package/nodes/loaders/NodeMaterialLoader.js +10 -4
- package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
- package/nodes/loaders/NodeObjectLoader.js +19 -9
- package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/LineBasicNodeMaterial.js +10 -5
- package/nodes/materials/Materials.cjs.js +1 -0
- package/nodes/materials/Materials.js +17 -14
- package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshBasicNodeMaterial.js +10 -5
- package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -0
- package/nodes/materials/MeshStandardNodeMaterial.js +8 -5
- package/nodes/materials/NodeMaterial.cjs.js +1 -0
- package/nodes/materials/NodeMaterial.js +36 -20
- package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
- package/nodes/materials/PointsNodeMaterial.js +10 -5
- package/nodes/math/CondNode.cjs.js +1 -0
- package/nodes/math/CondNode.js +23 -11
- package/nodes/math/MathNode.cjs.js +1 -0
- package/nodes/math/MathNode.js +142 -98
- package/nodes/math/OperatorNode.cjs.js +1 -0
- package/nodes/math/OperatorNode.js +46 -24
- package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeFunction.js +101 -0
- package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/GLSLNodeParser.js +13 -0
- package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeFunction.js +71 -0
- package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
- package/nodes/parsers/WGSLNodeParser.js +13 -0
- package/nodes/procedural/CheckerNode.cjs.js +1 -0
- package/nodes/procedural/CheckerNode.js +19 -13
- package/nodes/utils/ArrayElementNode.cjs.js +1 -0
- package/nodes/utils/ArrayElementNode.js +8 -4
- package/nodes/utils/ConvertNode.cjs.js +1 -0
- package/nodes/utils/ConvertNode.js +8 -3
- package/nodes/utils/JoinNode.cjs.js +1 -0
- package/nodes/utils/JoinNode.js +11 -7
- package/nodes/utils/MatcapUVNode.cjs.js +1 -0
- package/nodes/utils/MatcapUVNode.js +11 -8
- package/nodes/utils/OscNode.cjs.js +1 -0
- package/nodes/utils/OscNode.js +33 -27
- package/nodes/utils/SplitNode.cjs.js +1 -0
- package/nodes/utils/SplitNode.js +20 -6
- package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
- package/nodes/utils/SpriteSheetUVNode.js +23 -23
- package/nodes/utils/TimerNode.cjs.js +1 -0
- package/nodes/utils/TimerNode.js +24 -20
- package/objects/GroundProjectedEnv.cjs.js +1 -0
- package/objects/GroundProjectedEnv.js +37 -22
- package/objects/Lensflare.cjs.js +1 -0
- package/objects/Lensflare.js +156 -86
- package/objects/LightningStorm.cjs.js +1 -0
- package/objects/LightningStorm.js +102 -38
- package/objects/MarchingCubes.cjs.js +1 -0
- package/objects/MarchingCubes.js +303 -150
- package/objects/Reflector.cjs.js +1 -0
- package/objects/Reflector.js +72 -50
- package/objects/ReflectorForSSRPass.cjs.js +1 -0
- package/objects/ReflectorForSSRPass.js +131 -80
- package/objects/ReflectorRTT.cjs.js +1 -0
- package/objects/ReflectorRTT.js +7 -6
- package/objects/Refractor.cjs.js +1 -0
- package/objects/Refractor.js +106 -64
- package/objects/ShadowMesh.cjs.js +1 -0
- package/objects/ShadowMesh.js +17 -8
- package/objects/Sky.cjs.js +1 -0
- package/objects/Sky.js +80 -119
- package/objects/Water.cjs.js +1 -0
- package/objects/Water.js +127 -83
- package/objects/Water2.cjs.js +1 -0
- package/objects/Water2.js +108 -72
- package/offscreen/jank.cjs.js +1 -0
- package/offscreen/jank.js +14 -10
- package/offscreen/offscreen.cjs.js +1 -0
- package/offscreen/offscreen.js +5 -4
- package/offscreen/scene.cjs.js +1 -0
- package/offscreen/scene.js +48 -45
- package/package.json +3 -3
- package/physics/AmmoPhysics.cjs.js +1 -0
- package/physics/AmmoPhysics.js +71 -30
- package/postprocessing/AdaptiveToneMappingPass.cjs.js +1 -0
- package/postprocessing/AdaptiveToneMappingPass.js +123 -97
- package/postprocessing/AfterimagePass.cjs.js +1 -0
- package/postprocessing/AfterimagePass.js +49 -28
- package/postprocessing/BloomPass.cjs.js +1 -0
- package/postprocessing/BloomPass.js +69 -43
- package/postprocessing/BokehPass.cjs.js +1 -0
- package/postprocessing/BokehPass.js +69 -39
- package/postprocessing/ClearPass.cjs.js +1 -0
- package/postprocessing/ClearPass.js +25 -10
- package/postprocessing/CubeTexturePass.cjs.js +1 -0
- package/postprocessing/CubeTexturePass.js +27 -28
- package/postprocessing/DotScreenPass.cjs.js +1 -0
- package/postprocessing/DotScreenPass.js +32 -24
- package/postprocessing/EffectComposer.cjs.js +1 -0
- package/postprocessing/EffectComposer.js +86 -39
- package/postprocessing/FilmPass.cjs.js +1 -0
- package/postprocessing/FilmPass.js +30 -25
- package/postprocessing/GlitchPass.cjs.js +1 -0
- package/postprocessing/GlitchPass.js +61 -38
- package/postprocessing/HalftonePass.cjs.js +1 -0
- package/postprocessing/HalftonePass.js +39 -19
- package/postprocessing/LUTPass.cjs.js +1 -0
- package/postprocessing/LUTPass.js +38 -13
- package/postprocessing/MaskPass.cjs.js +1 -0
- package/postprocessing/MaskPass.js +38 -19
- package/postprocessing/OutlinePass.cjs.js +1 -0
- package/postprocessing/OutlinePass.js +277 -135
- package/postprocessing/Pass.cjs.js +1 -0
- package/postprocessing/Pass.js +44 -20
- package/postprocessing/RenderPass.cjs.js +1 -0
- package/postprocessing/RenderPass.js +36 -13
- package/postprocessing/RenderPixelatedPass.cjs.js +1 -0
- package/postprocessing/RenderPixelatedPass.js +58 -44
- package/postprocessing/SAOPass.cjs.js +1 -0
- package/postprocessing/SAOPass.js +189 -154
- package/postprocessing/SMAAPass.cjs.js +1 -0
- package/postprocessing/SMAAPass.js +84 -64
- package/postprocessing/SSAARenderPass.cjs.js +1 -0
- package/postprocessing/SSAARenderPass.js +69 -121
- package/postprocessing/SSAOPass.cjs.js +1 -0
- package/postprocessing/SSAOPass.js +172 -123
- package/postprocessing/SSRPass.cjs.js +1 -0
- package/postprocessing/SSRPass.js +280 -211
- package/postprocessing/SavePass.cjs.js +1 -0
- package/postprocessing/SavePass.js +25 -20
- package/postprocessing/ShaderPass.cjs.js +1 -0
- package/postprocessing/ShaderPass.js +30 -14
- package/postprocessing/TAARenderPass.cjs.js +1 -0
- package/postprocessing/TAARenderPass.js +61 -42
- package/postprocessing/TexturePass.cjs.js +1 -0
- package/postprocessing/TexturePass.js +22 -21
- package/postprocessing/UnrealBloomPass.cjs.js +1 -0
- package/postprocessing/UnrealBloomPass.js +213 -105
- package/renderers/CSS2DRenderer.cjs.js +1 -0
- package/renderers/CSS2DRenderer.js +56 -44
- package/renderers/CSS3DRenderer.cjs.js +1 -0
- package/renderers/CSS3DRenderer.js +86 -53
- package/renderers/Projector.cjs.js +1 -0
- package/renderers/Projector.js +274 -107
- package/renderers/SVGRenderer.cjs.js +1 -0
- package/renderers/SVGRenderer.js +182 -72
- package/renderers/nodes/accessors/CameraNode.cjs.js +1 -0
- package/renderers/nodes/accessors/CameraNode.js +40 -29
- package/renderers/nodes/accessors/ModelNode.cjs.js +1 -0
- package/renderers/nodes/accessors/ModelNode.js +37 -28
- package/renderers/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
- package/renderers/nodes/accessors/ModelViewProjectionNode.js +23 -10
- package/renderers/nodes/accessors/NormalNode.cjs.js +1 -0
- package/renderers/nodes/accessors/NormalNode.js +45 -35
- package/renderers/nodes/accessors/PositionNode.cjs.js +1 -0
- package/renderers/nodes/accessors/PositionNode.js +19 -18
- package/renderers/nodes/accessors/UVNode.cjs.js +1 -0
- package/renderers/nodes/accessors/UVNode.js +10 -5
- package/renderers/nodes/core/AttributeNode.cjs.js +1 -0
- package/renderers/nodes/core/AttributeNode.js +14 -5
- package/renderers/nodes/core/InputNode.cjs.js +1 -0
- package/renderers/nodes/core/InputNode.js +14 -4
- package/renderers/nodes/core/Node.cjs.js +1 -0
- package/renderers/nodes/core/Node.js +17 -7
- package/renderers/nodes/core/NodeAttribute.cjs.js +1 -0
- package/renderers/nodes/core/NodeAttribute.js +6 -3
- package/renderers/nodes/core/NodeBuilder.cjs.js +1 -0
- package/renderers/nodes/core/NodeBuilder.js +154 -87
- package/renderers/nodes/core/NodeFrame.cjs.js +1 -0
- package/renderers/nodes/core/NodeFrame.js +12 -9
- package/renderers/nodes/core/NodeSlot.cjs.js +1 -0
- package/renderers/nodes/core/NodeSlot.js +3 -2
- package/renderers/nodes/core/NodeUniform.cjs.js +1 -0
- package/renderers/nodes/core/NodeUniform.js +9 -4
- package/renderers/nodes/core/NodeVary.cjs.js +1 -0
- package/renderers/nodes/core/NodeVary.js +7 -4
- package/renderers/nodes/core/VaryNode.cjs.js +1 -0
- package/renderers/nodes/core/VaryNode.js +12 -6
- package/renderers/nodes/core/constants.cjs.js +1 -0
- package/renderers/nodes/core/constants.js +13 -16
- package/renderers/nodes/inputs/ColorNode.cjs.js +1 -0
- package/renderers/nodes/inputs/ColorNode.js +11 -5
- package/renderers/nodes/inputs/FloatNode.cjs.js +1 -0
- package/renderers/nodes/inputs/FloatNode.js +11 -5
- package/renderers/nodes/inputs/Matrix3Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Matrix3Node.js +13 -7
- package/renderers/nodes/inputs/Matrix4Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Matrix4Node.js +13 -7
- package/renderers/nodes/inputs/TextureNode.cjs.js +1 -0
- package/renderers/nodes/inputs/TextureNode.js +15 -7
- package/renderers/nodes/inputs/Vector2Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector2Node.js +11 -5
- package/renderers/nodes/inputs/Vector3Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector3Node.js +13 -7
- package/renderers/nodes/inputs/Vector4Node.cjs.js +1 -0
- package/renderers/nodes/inputs/Vector4Node.js +13 -7
- package/renderers/nodes/math/MathNode.cjs.js +1 -0
- package/renderers/nodes/math/MathNode.js +30 -20
- package/renderers/nodes/math/OperatorNode.cjs.js +1 -0
- package/renderers/nodes/math/OperatorNode.js +20 -4
- package/renderers/nodes/utils/SwitchNode.cjs.js +1 -0
- package/renderers/nodes/utils/SwitchNode.js +9 -4
- package/renderers/nodes/utils/TimerNode.cjs.js +1 -0
- package/renderers/nodes/utils/TimerNode.js +10 -5
- package/renderers/webgpu/WebGPU.cjs.js +1 -0
- package/renderers/webgpu/WebGPU.js +16 -14
- package/renderers/webgpu/WebGPUAttributes.cjs.js +1 -0
- package/renderers/webgpu/WebGPUAttributes.js +23 -16
- package/renderers/webgpu/WebGPUBackground.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBackground.js +30 -13
- package/renderers/webgpu/WebGPUBinding.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBinding.js +7 -4
- package/renderers/webgpu/WebGPUBindings.cjs.js +1 -0
- package/renderers/webgpu/WebGPUBindings.js +57 -21
- package/renderers/webgpu/WebGPUComputePipelines.cjs.js +1 -0
- package/renderers/webgpu/WebGPUComputePipelines.js +25 -14
- package/renderers/webgpu/WebGPUGeometries.cjs.js +1 -0
- package/renderers/webgpu/WebGPUGeometries.js +15 -5
- package/renderers/webgpu/WebGPUInfo.cjs.js +1 -0
- package/renderers/webgpu/WebGPUInfo.js +8 -3
- package/renderers/webgpu/WebGPUObjects.cjs.js +1 -0
- package/renderers/webgpu/WebGPUObjects.js +10 -5
- package/renderers/webgpu/WebGPUProperties.cjs.js +1 -0
- package/renderers/webgpu/WebGPUProperties.js +11 -5
- package/renderers/webgpu/WebGPURenderLists.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderLists.js +36 -20
- package/renderers/webgpu/WebGPURenderPipelines.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderPipelines.js +387 -260
- package/renderers/webgpu/WebGPURenderer.cjs.js +1 -0
- package/renderers/webgpu/WebGPURenderer.js +262 -124
- package/renderers/webgpu/WebGPUSampledTexture.cjs.js +1 -0
- package/renderers/webgpu/WebGPUSampledTexture.js +31 -18
- package/renderers/webgpu/WebGPUSampler.cjs.js +1 -0
- package/renderers/webgpu/WebGPUSampler.js +12 -7
- package/renderers/webgpu/WebGPUStorageBuffer.cjs.js +1 -0
- package/renderers/webgpu/WebGPUStorageBuffer.js +12 -7
- package/renderers/webgpu/WebGPUTextureRenderer.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextureRenderer.js +11 -5
- package/renderers/webgpu/WebGPUTextureUtils.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextureUtils.js +40 -29
- package/renderers/webgpu/WebGPUTextures.cjs.js +1 -0
- package/renderers/webgpu/WebGPUTextures.js +333 -186
- package/renderers/webgpu/WebGPUUniform.cjs.js +1 -0
- package/renderers/webgpu/WebGPUUniform.js +51 -25
- package/renderers/webgpu/WebGPUUniformsGroup.cjs.js +1 -0
- package/renderers/webgpu/WebGPUUniformsGroup.js +72 -32
- package/renderers/webgpu/constants.cjs.js +1 -0
- package/renderers/webgpu/constants.js +181 -190
- package/renderers/webgpu/nodes/ShaderLib.cjs.js +1 -0
- package/renderers/webgpu/nodes/ShaderLib.js +2 -2
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.js +124 -53
- package/renderers/webgpu/nodes/WebGPUNodeUniform.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniform.js +31 -17
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +9 -8
- package/renderers/webgpu/nodes/WebGPUNodes.cjs.js +1 -0
- package/renderers/webgpu/nodes/WebGPUNodes.js +45 -7
- package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -0
- package/shaders/ACESFilmicToneMappingShader.js +24 -44
- package/shaders/AfterimageShader.cjs.js +1 -0
- package/shaders/AfterimageShader.js +18 -28
- package/shaders/BasicShader.cjs.js +1 -0
- package/shaders/BasicShader.js +7 -9
- package/shaders/BleachBypassShader.cjs.js +1 -0
- package/shaders/BleachBypassShader.js +15 -31
- package/shaders/BlendShader.cjs.js +1 -0
- package/shaders/BlendShader.js +19 -26
- package/shaders/BokehShader.cjs.js +1 -0
- package/shaders/BokehShader.js +36 -98
- package/shaders/BokehShader2.cjs.js +1 -0
- package/shaders/BokehShader2.js +90 -261
- package/shaders/BrightnessContrastShader.cjs.js +1 -0
- package/shaders/BrightnessContrastShader.js +19 -28
- package/shaders/ColorCorrectionShader.cjs.js +1 -0
- package/shaders/ColorCorrectionShader.js +22 -26
- package/shaders/ColorifyShader.cjs.js +1 -0
- package/shaders/ColorifyShader.js +16 -24
- package/shaders/ConvolutionShader.cjs.js +1 -0
- package/shaders/ConvolutionShader.js +36 -40
- package/shaders/CopyShader.cjs.js +1 -0
- package/shaders/CopyShader.js +13 -21
- package/shaders/DOFMipMapShader.cjs.js +1 -0
- package/shaders/DOFMipMapShader.js +21 -28
- package/shaders/DepthLimitedBlurShader.cjs.js +1 -0
- package/shaders/DepthLimitedBlurShader.js +40 -85
- package/shaders/DigitalGlitch.cjs.js +1 -0
- package/shaders/DigitalGlitch.js +46 -74
- package/shaders/DotScreenShader.cjs.js +1 -0
- package/shaders/DotScreenShader.js +27 -35
- package/shaders/FXAAShader.cjs.js +1 -0
- package/shaders/FXAAShader.js +19 -1094
- package/shaders/FilmShader.cjs.js +1 -0
- package/shaders/FilmShader.js +52 -38
- package/shaders/FocusShader.cjs.js +1 -0
- package/shaders/FocusShader.js +24 -51
- package/shaders/FreiChenShader.cjs.js +1 -0
- package/shaders/FreiChenShader.js +24 -57
- package/shaders/FresnelShader.cjs.js +1 -0
- package/shaders/FresnelShader.js +22 -43
- package/shaders/GammaCorrectionShader.cjs.js +1 -0
- package/shaders/GammaCorrectionShader.js +11 -19
- package/shaders/GodRaysShader.cjs.js +1 -0
- package/shaders/GodRaysShader.js +94 -103
- package/shaders/HalftoneShader.cjs.js +1 -0
- package/shaders/HalftoneShader.js +65 -208
- package/shaders/HorizontalBlurShader.cjs.js +1 -0
- package/shaders/HorizontalBlurShader.js +23 -7
- package/shaders/HorizontalTiltShiftShader.cjs.js +1 -0
- package/shaders/HorizontalTiltShiftShader.js +21 -33
- package/shaders/HueSaturationShader.cjs.js +1 -0
- package/shaders/HueSaturationShader.js +21 -37
- package/shaders/KaleidoShader.cjs.js +1 -0
- package/shaders/KaleidoShader.js +22 -30
- package/shaders/LuminosityHighPassShader.cjs.js +1 -0
- package/shaders/LuminosityHighPassShader.js +27 -33
- package/shaders/LuminosityShader.cjs.js +1 -0
- package/shaders/LuminosityShader.js +11 -21
- package/shaders/MirrorShader.cjs.js +1 -0
- package/shaders/MirrorShader.js +16 -31
- package/shaders/NormalMapShader.cjs.js +1 -0
- package/shaders/NormalMapShader.js +23 -27
- package/shaders/ParallaxShader.cjs.js +1 -0
- package/shaders/ParallaxShader.js +48 -107
- package/shaders/PixelShader.cjs.js +1 -0
- package/shaders/PixelShader.js +16 -24
- package/shaders/RGBShiftShader.cjs.js +1 -0
- package/shaders/RGBShiftShader.js +22 -26
- package/shaders/SAOShader.cjs.js +1 -0
- package/shaders/SAOShader.js +48 -132
- package/shaders/SMAAShader.cjs.js +1 -0
- package/shaders/SMAAShader.js +135 -256
- package/shaders/SSAOShader.cjs.js +1 -0
- package/shaders/SSAOShader.js +81 -153
- package/shaders/SSRShader.cjs.js +1 -0
- package/shaders/SSRShader.js +87 -32
- package/shaders/SepiaShader.cjs.js +1 -0
- package/shaders/SepiaShader.js +15 -25
- package/shaders/SobelOperatorShader.cjs.js +1 -0
- package/shaders/SobelOperatorShader.js +29 -40
- package/shaders/SubsurfaceScatteringShader.cjs.js +1 -0
- package/shaders/SubsurfaceScatteringShader.js +39 -53
- package/shaders/TechnicolorShader.cjs.js +1 -0
- package/shaders/TechnicolorShader.js +13 -20
- package/shaders/ToneMapShader.cjs.js +1 -0
- package/shaders/ToneMapShader.js +28 -44
- package/shaders/ToonShader.cjs.js +1 -0
- package/shaders/ToonShader.js +96 -172
- package/shaders/TriangleBlurShader.cjs.js +1 -0
- package/shaders/TriangleBlurShader.js +23 -32
- package/shaders/UnpackDepthRGBAShader.cjs.js +1 -0
- package/shaders/UnpackDepthRGBAShader.js +14 -22
- package/shaders/VerticalBlurShader.cjs.js +1 -0
- package/shaders/VerticalBlurShader.js +23 -7
- package/shaders/VerticalTiltShiftShader.cjs.js +1 -0
- package/shaders/VerticalTiltShiftShader.js +21 -33
- package/shaders/VignetteShader.cjs.js +1 -0
- package/shaders/VignetteShader.js +28 -24
- package/shaders/VolumeShader.cjs.js +1 -0
- package/shaders/VolumeShader.js +77 -174
- package/shaders/WaterRefractionShader.cjs.js +1 -0
- package/shaders/WaterRefractionShader.js +6 -38
- package/shaders/types.cjs.js +1 -0
- package/shaders/types.js +1 -1
- package/textures/FlakesTexture.cjs.js +1 -0
- package/textures/FlakesTexture.js +10 -8
- package/types/helpers.cjs.js +1 -0
- package/types/helpers.js +2 -3
- package/types/shared.cjs.js +1 -0
- package/types/shared.js +1 -0
- package/types/utils.cjs.js +1 -0
- package/types/utils.js +1 -0
- package/utils/BufferGeometryUtils.cjs.js +1 -0
- package/utils/BufferGeometryUtils.js +325 -251
- package/utils/GeometryCompressionUtils.cjs.js +1 -0
- package/utils/GeometryCompressionUtils.js +239 -241
- package/utils/GeometryUtils.cjs.js +1 -0
- package/utils/GeometryUtils.js +94 -41
- package/utils/LDrawUtils.cjs.js +1 -0
- package/utils/LDrawUtils.d.ts +5 -0
- package/utils/LDrawUtils.js +144 -0
- package/utils/RoughnessMipmapper.cjs.js +1 -0
- package/utils/RoughnessMipmapper.js +82 -38
- package/utils/SceneUtils.cjs.js +1 -0
- package/utils/SceneUtils.js +20 -15
- package/utils/ShadowMapViewer.cjs.js +1 -0
- package/utils/ShadowMapViewer.js +95 -49
- package/utils/SkeletonUtils.cjs.js +1 -0
- package/utils/SkeletonUtils.js +165 -74
- package/utils/UVsDebug.cjs.js +1 -0
- package/utils/UVsDebug.js +62 -32
- package/utils/WorkerPool.cjs.js +1 -0
- package/utils/WorkerPool.js +33 -13
- package/webxr/ARButton.cjs.js +1 -0
- package/webxr/ARButton.js +98 -72
- package/webxr/OculusHandModel.cjs.js +1 -0
- package/webxr/OculusHandModel.js +37 -18
- package/webxr/OculusHandPointerModel.cjs.js +1 -0
- package/webxr/OculusHandPointerModel.js +80 -58
- package/webxr/Text2D.cjs.js +1 -0
- package/webxr/Text2D.js +19 -37
- package/webxr/VRButton.cjs.js +1 -0
- package/webxr/VRButton.js +90 -59
- package/webxr/XRControllerModelFactory.cjs.js +1 -0
- package/webxr/XRControllerModelFactory.js +116 -58
- package/webxr/XREstimatedLight.cjs.js +1 -0
- package/webxr/XREstimatedLight.js +66 -39
- package/webxr/XRHandMeshModel.cjs.js +1 -0
- package/webxr/XRHandMeshModel.js +29 -40
- package/webxr/XRHandModelFactory.cjs.js +1 -0
- package/webxr/XRHandModelFactory.js +31 -28
- package/webxr/XRHandPrimitiveModel.cjs.js +1 -0
- package/webxr/XRHandPrimitiveModel.js +27 -41
- package/animation/AnimationClipCreator.mjs +0 -57
- package/animation/CCDIKSolver.mjs +0 -223
- package/animation/MMDAnimationHelper.mjs +0 -514
- package/animation/MMDPhysics.mjs +0 -769
- package/cameras/CinematicCamera.mjs +0 -129
- package/controls/ArcballControls.mjs +0 -1737
- package/controls/DeviceOrientationControls.mjs +0 -74
- package/controls/DragControls.mjs +0 -172
- package/controls/FirstPersonControls.mjs +0 -220
- package/controls/FlyControls.mjs +0 -239
- package/controls/OrbitControls.mjs +0 -731
- package/controls/PointerLockControls.mjs +0 -88
- package/controls/TrackballControls.mjs +0 -481
- package/controls/TransformControls.mjs +0 -1068
- package/controls/experimental/CameraControls.mjs +0 -673
- package/csm/CSM.mjs +0 -244
- package/csm/CSMFrustum.mjs +0 -75
- package/csm/CSMHelper.mjs +0 -114
- package/csm/CSMShader.mjs +0 -251
- package/curves/CurveExtras.mjs +0 -224
- package/curves/NURBSCurve.mjs +0 -35
- package/curves/NURBSSurface.mjs +0 -28
- package/curves/NURBSUtils.mjs +0 -226
- package/deprecated/Geometry.mjs +0 -966
- package/effects/AnaglyphEffect.mjs +0 -120
- package/effects/AsciiEffect.mjs +0 -173
- package/effects/OutlineEffect.mjs +0 -295
- package/effects/ParallaxBarrierEffect.mjs +0 -64
- package/effects/PeppersGhostEffect.mjs +0 -85
- package/effects/StereoEffect.mjs +0 -32
- package/environments/RoomEnvironment.mjs +0 -78
- package/exporters/ColladaExporter.mjs +0 -299
- package/exporters/DRACOExporter.mjs +0 -132
- package/exporters/GLTFExporter.mjs +0 -1381
- package/exporters/MMDExporter.mjs +0 -102
- package/exporters/OBJExporter.mjs +0 -166
- package/exporters/PLYExporter.mjs +0 -278
- package/exporters/STLExporter.mjs +0 -129
- package/exporters/USDZExporter.mjs +0 -328
- package/geometries/BoxLineGeometry.mjs +0 -45
- package/geometries/ConvexGeometry.mjs +0 -29
- package/geometries/DecalGeometry.mjs +0 -184
- package/geometries/LightningStrike.mjs +0 -547
- package/geometries/ParametricGeometries.mjs +0 -129
- package/geometries/ParametricGeometry.mjs +0 -63
- package/geometries/RoundedBoxGeometry.mjs +0 -91
- package/geometries/TeapotGeometry.mjs +0 -1557
- package/geometries/TextGeometry.mjs +0 -23
- package/helpers/LightProbeHelper.mjs +0 -72
- package/helpers/PositionalAudioHelper.mjs +0 -68
- package/helpers/RectAreaLightHelper.mjs +0 -44
- package/helpers/VertexNormalsHelper.mjs +0 -54
- package/helpers/VertexTangentsHelper.mjs +0 -45
- package/index.mjs +0 -969
- package/interactive/SelectionBox.mjs +0 -137
- package/interactive/SelectionHelper.mjs +0 -54
- package/libs/MeshoptDecoder.mjs +0 -210
- package/libs/MotionControllers.mjs +0 -261
- package/lights/LightProbeGenerator.mjs +0 -145
- package/lights/RectAreaLightUniformsLib.mjs +0 -32842
- package/lines/Line2.mjs +0 -13
- package/lines/LineGeometry.mjs +0 -44
- package/lines/LineMaterial.mjs +0 -539
- package/lines/LineSegments2.mjs +0 -202
- package/lines/LineSegmentsGeometry.mjs +0 -124
- package/lines/Wireframe.mjs +0 -31
- package/lines/WireframeGeometry2.mjs +0 -13
- package/loaders/3DMLoader.mjs +0 -802
- package/loaders/3MFLoader.mjs +0 -837
- package/loaders/AMFLoader.mjs +0 -284
- package/loaders/AssimpLoader.mjs +0 -1396
- package/loaders/BVHLoader.mjs +0 -207
- package/loaders/BasisTextureLoader.mjs +0 -474
- package/loaders/ColladaLoader.mjs +0 -2403
- package/loaders/DDSLoader.mjs +0 -148
- package/loaders/DRACOLoader.mjs +0 -340
- package/loaders/EXRLoader.mjs +0 -1351
- package/loaders/FBXLoader.mjs +0 -2362
- package/loaders/FontLoader.mjs +0 -111
- package/loaders/GCodeLoader.mjs +0 -141
- package/loaders/GLTFLoader.mjs +0 -2316
- package/loaders/HDRCubeTextureLoader.mjs +0 -77
- package/loaders/KMZLoader.mjs +0 -75
- package/loaders/KTX2Loader.mjs +0 -427
- package/loaders/KTXLoader.mjs +0 -87
- package/loaders/LDrawLoader.mjs +0 -1409
- package/loaders/LUT3dlLoader.mjs +0 -100
- package/loaders/LUTCubeLoader.mjs +0 -104
- package/loaders/LWOLoader.mjs +0 -625
- package/loaders/LottieLoader.mjs +0 -47
- package/loaders/MD2Loader.mjs +0 -359
- package/loaders/MDDLoader.mjs +0 -58
- package/loaders/MMDLoader.mjs +0 -998
- package/loaders/MTLLoader.mjs +0 -280
- package/loaders/NRRDLoader.mjs +0 -401
- package/loaders/NodeMaterialLoader.mjs +0 -146
- package/loaders/OBJLoader.mjs +0 -487
- package/loaders/PCDLoader.mjs +0 -248
- package/loaders/PDBLoader.mjs +0 -246
- package/loaders/PLYLoader.mjs +0 -317
- package/loaders/PRWMLoader.mjs +0 -160
- package/loaders/PVRLoader.mjs +0 -131
- package/loaders/RGBELoader.mjs +0 -244
- package/loaders/RGBMLoader.mjs +0 -998
- package/loaders/STLLoader.mjs +0 -190
- package/loaders/SVGLoader.mjs +0 -1709
- package/loaders/TDSLoader.mjs +0 -480
- package/loaders/TGALoader.mjs +0 -285
- package/loaders/TTFLoader.mjs +0 -131
- package/loaders/TiltLoader.mjs +0 -373
- package/loaders/VOXLoader.mjs +0 -431
- package/loaders/VRMLLoader.mjs +0 -2093
- package/loaders/VRMLoader.mjs +0 -38
- package/loaders/VTKLoader.mjs +0 -646
- package/loaders/XLoader.mjs +0 -1258
- package/loaders/XYZLoader.mjs +0 -60
- package/loaders/lwo/IFFParser.mjs +0 -697
- package/loaders/lwo/LWO2Parser.mjs +0 -327
- package/loaders/lwo/LWO3Parser.mjs +0 -298
- package/math/Capsule.mjs +0 -100
- package/math/ColorConverter.mjs +0 -51
- package/math/ConvexHull.mjs +0 -574
- package/math/ImprovedNoise.mjs +0 -302
- package/math/Lut.mjs +0 -135
- package/math/MeshSurfaceSampler.mjs +0 -107
- package/math/OBB.mjs +0 -235
- package/math/Octree.mjs +0 -278
- package/math/SimplexNoise.mjs +0 -425
- package/misc/ConvexObjectBreaker.mjs +0 -292
- package/misc/GPUComputationRenderer.mjs +0 -171
- package/misc/Gyroscope.mjs +0 -35
- package/misc/MD2Character.mjs +0 -162
- package/misc/MD2CharacterComplex.mjs +0 -328
- package/misc/MorphAnimMesh.mjs +0 -40
- package/misc/MorphBlendMesh.mjs +0 -179
- package/misc/ProgressiveLightmap.mjs +0 -166
- package/misc/RollerCoaster.mjs +0 -346
- package/misc/TubePainter.mjs +0 -123
- package/misc/Volume.mjs +0 -244
- package/misc/VolumeSlice.mjs +0 -106
- package/misc/WebGL.mjs +0 -74
- package/modifiers/CurveModifier.mjs +0 -182
- package/modifiers/EdgeSplitModifier.mjs +0 -162
- package/modifiers/SimplifyModifier.mjs +0 -282
- package/modifiers/TessellateModifier.mjs +0 -206
- package/nodes/Nodes.mjs +0 -400
- package/nodes/ShaderNode.mjs +0 -408
- package/nodes/accessors/BufferNode.mjs +0 -15
- package/nodes/accessors/CameraNode.mjs +0 -44
- package/nodes/accessors/CubeTextureNode.mjs +0 -42
- package/nodes/accessors/MaterialNode.mjs +0 -71
- package/nodes/accessors/MaterialReferenceNode.mjs +0 -14
- package/nodes/accessors/ModelNode.mjs +0 -9
- package/nodes/accessors/ModelViewProjectionNode.mjs +0 -24
- package/nodes/accessors/NormalNode.mjs +0 -62
- package/nodes/accessors/Object3DNode.mjs +0 -76
- package/nodes/accessors/PointUVNode.mjs +0 -13
- package/nodes/accessors/PositionNode.mjs +0 -65
- package/nodes/accessors/ReferenceNode.mjs +0 -37
- package/nodes/accessors/ReflectNode.mjs +0 -43
- package/nodes/accessors/SkinningNode.mjs +0 -58
- package/nodes/accessors/TextureNode.mjs +0 -54
- package/nodes/accessors/UVNode.mjs +0 -23
- package/nodes/core/ArrayUniformNode.mjs +0 -14
- package/nodes/core/AttributeNode.mjs +0 -30
- package/nodes/core/BypassNode.mjs +0 -22
- package/nodes/core/CodeNode.mjs +0 -28
- package/nodes/core/ConstNode.mjs +0 -14
- package/nodes/core/ContextNode.mjs +0 -22
- package/nodes/core/ExpressionNode.mjs +0 -19
- package/nodes/core/FunctionCallNode.mjs +0 -37
- package/nodes/core/FunctionNode.mjs +0 -56
- package/nodes/core/InputNode.mjs +0 -38
- package/nodes/core/Node.mjs +0 -139
- package/nodes/core/NodeAttribute.mjs +0 -10
- package/nodes/core/NodeBuilder.mjs +0 -395
- package/nodes/core/NodeCode.mjs +0 -11
- package/nodes/core/NodeFrame.mjs +0 -35
- package/nodes/core/NodeFunctionInput.mjs +0 -13
- package/nodes/core/NodeKeywords.mjs +0 -44
- package/nodes/core/NodeUniform.mjs +0 -18
- package/nodes/core/NodeUtils.mjs +0 -57
- package/nodes/core/NodeVar.mjs +0 -10
- package/nodes/core/NodeVary.mjs +0 -10
- package/nodes/core/PropertyNode.mjs +0 -21
- package/nodes/core/TempNode.mjs +0 -25
- package/nodes/core/UniformNode.mjs +0 -23
- package/nodes/core/VarNode.mjs +0 -31
- package/nodes/core/VaryNode.mjs +0 -30
- package/nodes/core/constants.mjs +0 -24
- package/nodes/display/ColorSpaceNode.mjs +0 -63
- package/nodes/display/NormalMapNode.mjs +0 -54
- package/nodes/fog/FogNode.mjs +0 -15
- package/nodes/fog/FogRangeNode.mjs +0 -17
- package/nodes/functions/BSDFs.mjs +0 -64
- package/nodes/lights/LightContextNode.mjs +0 -35
- package/nodes/lights/LightNode.mjs +0 -58
- package/nodes/lights/LightsNode.mjs +0 -59
- package/nodes/loaders/NodeLoader.mjs +0 -66
- package/nodes/loaders/NodeMaterialLoader.mjs +0 -24
- package/nodes/loaders/NodeObjectLoader.mjs +0 -40
- package/nodes/materials/LineBasicNodeMaterial.mjs +0 -27
- package/nodes/materials/Materials.mjs +0 -28
- package/nodes/materials/MeshBasicNodeMaterial.mjs +0 -28
- package/nodes/materials/MeshStandardNodeMaterial.mjs +0 -41
- package/nodes/materials/NodeMaterial.mjs +0 -64
- package/nodes/materials/PointsNodeMaterial.mjs +0 -30
- package/nodes/math/CondNode.mjs +0 -38
- package/nodes/math/MathNode.mjs +0 -163
- package/nodes/math/OperatorNode.mjs +0 -103
- package/nodes/procedural/CheckerNode.mjs +0 -21
- package/nodes/utils/ArrayElementNode.mjs +0 -19
- package/nodes/utils/ConvertNode.mjs +0 -25
- package/nodes/utils/JoinNode.mjs +0 -26
- package/nodes/utils/MatcapUVNode.mjs +0 -16
- package/nodes/utils/OscNode.mjs +0 -50
- package/nodes/utils/SplitNode.mjs +0 -45
- package/nodes/utils/SpriteSheetUVNode.mjs +0 -40
- package/nodes/utils/TimerNode.mjs +0 -44
- package/objects/GroundProjectedEnv.mjs +0 -130
- package/objects/Lensflare.mjs +0 -262
- package/objects/LightningStorm.mjs +0 -110
- package/objects/MarchingCubes.mjs +0 -457
- package/objects/Reflector.mjs +0 -166
- package/objects/ReflectorForSSRPass.mjs +0 -247
- package/objects/ReflectorRTT.mjs +0 -10
- package/objects/Refractor.mjs +0 -178
- package/objects/ShadowMesh.mjs +0 -41
- package/objects/Sky.mjs +0 -124
- package/objects/Water.mjs +0 -235
- package/objects/Water2.mjs +0 -252
- package/offscreen/jank.mjs +0 -27
- package/offscreen/offscreen.mjs +0 -5
- package/offscreen/scene.mjs +0 -52
- package/physics/AmmoPhysics.mjs +0 -165
- package/postprocessing/AdaptiveToneMappingPass.mjs +0 -221
- package/postprocessing/AfterimagePass.mjs +0 -55
- package/postprocessing/BloomPass.mjs +0 -90
- package/postprocessing/BokehPass.mjs +0 -76
- package/postprocessing/ClearPass.mjs +0 -27
- package/postprocessing/CubeTexturePass.mjs +0 -49
- package/postprocessing/DotScreenPass.mjs +0 -40
- package/postprocessing/EffectComposer.mjs +0 -139
- package/postprocessing/FilmPass.mjs +0 -42
- package/postprocessing/GlitchPass.mjs +0 -75
- package/postprocessing/HalftonePass.mjs +0 -44
- package/postprocessing/LUTPass.mjs +0 -136
- package/postprocessing/MaskPass.mjs +0 -60
- package/postprocessing/OutlinePass.mjs +0 -438
- package/postprocessing/Pass.mjs +0 -37
- package/postprocessing/RenderPass.mjs +0 -48
- package/postprocessing/RenderPixelatedPass.mjs +0 -199
- package/postprocessing/SAOPass.mjs +0 -282
- package/postprocessing/SMAAPass.mjs +0 -112
- package/postprocessing/SSAARenderPass.mjs +0 -170
- package/postprocessing/SSAOPass.mjs +0 -265
- package/postprocessing/SSRPass.mjs +0 -432
- package/postprocessing/SavePass.mjs +0 -37
- package/postprocessing/ShaderPass.mjs +0 -39
- package/postprocessing/TAARenderPass.mjs +0 -88
- package/postprocessing/TexturePass.mjs +0 -39
- package/postprocessing/UnrealBloomPass.mjs +0 -220
- package/renderers/CSS2DRenderer.mjs +0 -112
- package/renderers/CSS3DRenderer.mjs +0 -133
- package/renderers/Projector.mjs +0 -511
- package/renderers/SVGRenderer.mjs +0 -306
- package/renderers/nodes/accessors/CameraNode.mjs +0 -63
- package/renderers/nodes/accessors/ModelNode.mjs +0 -61
- package/renderers/nodes/accessors/ModelViewProjectionNode.mjs +0 -21
- package/renderers/nodes/accessors/NormalNode.mjs +0 -61
- package/renderers/nodes/accessors/PositionNode.mjs +0 -30
- package/renderers/nodes/accessors/UVNode.mjs +0 -13
- package/renderers/nodes/core/AttributeNode.mjs +0 -35
- package/renderers/nodes/core/InputNode.mjs +0 -31
- package/renderers/nodes/core/Node.mjs +0 -34
- package/renderers/nodes/core/NodeAttribute.mjs +0 -10
- package/renderers/nodes/core/NodeBuilder.mjs +0 -243
- package/renderers/nodes/core/NodeFrame.mjs +0 -35
- package/renderers/nodes/core/NodeSlot.mjs +0 -10
- package/renderers/nodes/core/NodeUniform.mjs +0 -18
- package/renderers/nodes/core/NodeVary.mjs +0 -11
- package/renderers/nodes/core/VaryNode.mjs +0 -22
- package/renderers/nodes/core/constants.mjs +0 -22
- package/renderers/nodes/inputs/ColorNode.mjs +0 -11
- package/renderers/nodes/inputs/FloatNode.mjs +0 -11
- package/renderers/nodes/inputs/Matrix3Node.mjs +0 -12
- package/renderers/nodes/inputs/Matrix4Node.mjs +0 -12
- package/renderers/nodes/inputs/TextureNode.mjs +0 -20
- package/renderers/nodes/inputs/Vector2Node.mjs +0 -11
- package/renderers/nodes/inputs/Vector3Node.mjs +0 -12
- package/renderers/nodes/inputs/Vector4Node.mjs +0 -12
- package/renderers/nodes/math/MathNode.mjs +0 -55
- package/renderers/nodes/math/OperatorNode.mjs +0 -42
- package/renderers/nodes/utils/SwitchNode.mjs +0 -20
- package/renderers/nodes/utils/TimerNode.mjs +0 -14
- package/renderers/webgpu/WebGPU.mjs +0 -24
- package/renderers/webgpu/WebGPUAttributes.mjs +0 -69
- package/renderers/webgpu/WebGPUBackground.mjs +0 -61
- package/renderers/webgpu/WebGPUBinding.mjs +0 -14
- package/renderers/webgpu/WebGPUBindings.mjs +0 -155
- package/renderers/webgpu/WebGPUComputePipelines.mjs +0 -44
- package/renderers/webgpu/WebGPUGeometries.mjs +0 -41
- package/renderers/webgpu/WebGPUInfo.mjs +0 -46
- package/renderers/webgpu/WebGPUObjects.mjs +0 -25
- package/renderers/webgpu/WebGPUProperties.mjs +0 -22
- package/renderers/webgpu/WebGPURenderLists.mjs +0 -119
- package/renderers/webgpu/WebGPURenderPipelines.mjs +0 -545
- package/renderers/webgpu/WebGPURenderer.mjs +0 -574
- package/renderers/webgpu/WebGPUSampledTexture.mjs +0 -40
- package/renderers/webgpu/WebGPUSampler.mjs +0 -15
- package/renderers/webgpu/WebGPUStorageBuffer.mjs +0 -15
- package/renderers/webgpu/WebGPUTextureRenderer.mjs +0 -23
- package/renderers/webgpu/WebGPUTextureUtils.mjs +0 -98
- package/renderers/webgpu/WebGPUTextures.mjs +0 -484
- package/renderers/webgpu/WebGPUUniform.mjs +0 -81
- package/renderers/webgpu/WebGPUUniformsGroup.mjs +0 -176
- package/renderers/webgpu/constants.mjs +0 -230
- package/renderers/webgpu/nodes/ShaderLib.mjs +0 -42
- package/renderers/webgpu/nodes/WebGPUNodeBuilder.mjs +0 -165
- package/renderers/webgpu/nodes/WebGPUNodeUniform.mjs +0 -73
- package/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.mjs +0 -15
- package/renderers/webgpu/nodes/WebGPUNodes.mjs +0 -40
- package/shaders/ACESFilmicToneMappingShader.mjs +0 -48
- package/shaders/AfterimageShader.mjs +0 -32
- package/shaders/BasicShader.mjs +0 -12
- package/shaders/BleachBypassShader.mjs +0 -35
- package/shaders/BlendShader.mjs +0 -30
- package/shaders/BokehShader.mjs +0 -106
- package/shaders/BokehShader2.mjs +0 -269
- package/shaders/BrightnessContrastShader.mjs +0 -32
- package/shaders/ColorCorrectionShader.mjs +0 -30
- package/shaders/ColorifyShader.mjs +0 -28
- package/shaders/ConvolutionShader.mjs +0 -55
- package/shaders/CopyShader.mjs +0 -25
- package/shaders/DOFMipMapShader.mjs +0 -32
- package/shaders/DepthLimitedBlurShader.mjs +0 -114
- package/shaders/DigitalGlitch.mjs +0 -78
- package/shaders/DotScreenShader.mjs +0 -39
- package/shaders/FXAAShader.mjs +0 -1098
- package/shaders/FilmShader.mjs +0 -42
- package/shaders/FocusShader.mjs +0 -55
- package/shaders/FreiChenShader.mjs +0 -61
- package/shaders/FresnelShader.mjs +0 -47
- package/shaders/GammaCorrectionShader.mjs +0 -23
- package/shaders/GodRaysShader.mjs +0 -146
- package/shaders/HalftoneShader.mjs +0 -212
- package/shaders/HorizontalBlurShader.mjs +0 -43
- package/shaders/HorizontalTiltShiftShader.mjs +0 -37
- package/shaders/HueSaturationShader.mjs +0 -41
- package/shaders/KaleidoShader.mjs +0 -34
- package/shaders/LuminosityHighPassShader.mjs +0 -37
- package/shaders/LuminosityShader.mjs +0 -25
- package/shaders/MirrorShader.mjs +0 -35
- package/shaders/NormalMapShader.mjs +0 -31
- package/shaders/ParallaxShader.mjs +0 -113
- package/shaders/PixelShader.mjs +0 -28
- package/shaders/RGBShiftShader.mjs +0 -30
- package/shaders/SAOShader.mjs +0 -144
- package/shaders/SMAAShader.mjs +0 -272
- package/shaders/SSAOShader.mjs +0 -172
- package/shaders/SSRShader.mjs +0 -324
- package/shaders/SepiaShader.mjs +0 -29
- package/shaders/SobelOperatorShader.mjs +0 -44
- package/shaders/SubsurfaceScatteringShader.mjs +0 -59
- package/shaders/TechnicolorShader.mjs +0 -24
- package/shaders/ToneMapShader.mjs +0 -48
- package/shaders/ToonShader.mjs +0 -188
- package/shaders/TriangleBlurShader.mjs +0 -36
- package/shaders/UnpackDepthRGBAShader.mjs +0 -26
- package/shaders/VerticalBlurShader.mjs +0 -44
- package/shaders/VerticalTiltShiftShader.mjs +0 -37
- package/shaders/VignetteShader.mjs +0 -28
- package/shaders/VolumeShader.mjs +0 -178
- package/shaders/WaterRefractionShader.mjs +0 -57
- package/textures/FlakesTexture.mjs +0 -30
- package/types/helpers.mjs +0 -4
- package/utils/BufferGeometryUtils.mjs +0 -570
- package/utils/GeometryCompressionUtils.mjs +0 -547
- package/utils/GeometryUtils.mjs +0 -108
- package/utils/RoughnessMipmapper.mjs +0 -213
- package/utils/SceneUtils.mjs +0 -36
- package/utils/ShadowMapViewer.mjs +0 -114
- package/utils/SkeletonUtils.mjs +0 -292
- package/utils/UVsDebug.mjs +0 -85
- package/utils/WorkerPool.mjs +0 -62
- package/webxr/ARButton.mjs +0 -119
- package/webxr/OculusHandModel.mjs +0 -71
- package/webxr/OculusHandPointerModel.mjs +0 -207
- package/webxr/Text2D.mjs +0 -31
- package/webxr/VRButton.mjs +0 -105
- package/webxr/XRControllerModelFactory.mjs +0 -146
- package/webxr/XREstimatedLight.mjs +0 -126
- package/webxr/XRHandMeshModel.mjs +0 -73
- package/webxr/XRHandModelFactory.mjs +0 -61
- package/webxr/XRHandPrimitiveModel.mjs +0 -68
|
@@ -1,20 +1,124 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { BufferGeometry, Vector3, Uint32BufferAttribute, Float32BufferAttribute, DynamicDrawUsage, MathUtils } from 'three';
|
|
2
|
+
import { SimplexNoise } from '../math/SimplexNoise.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @fileoverview LightningStrike object for creating lightning strikes and voltaic arcs.
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
* Usage
|
|
9
|
+
*
|
|
10
|
+
* var myRay = new LightningStrike( paramsObject );
|
|
11
|
+
* var myRayMesh = new THREE.Mesh( myRay, myMaterial );
|
|
12
|
+
* scene.add( myRayMesh );
|
|
13
|
+
* ...
|
|
14
|
+
* myRay.update( currentTime );
|
|
15
|
+
*
|
|
16
|
+
* The "currentTime" can vary its rate, go forwards, backwards or even jump, but it cannot be negative.
|
|
17
|
+
*
|
|
18
|
+
* You should normally leave the ray position to (0, 0, 0). You should control it by changing the sourceOffset and destOffset parameters.
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
* LightningStrike parameters
|
|
22
|
+
*
|
|
23
|
+
* The paramsObject can contain any of the following parameters.
|
|
24
|
+
*
|
|
25
|
+
* Legend:
|
|
26
|
+
* 'LightningStrike' (also called 'ray'): An independent voltaic arc with its ramifications and defined with a set of parameters.
|
|
27
|
+
* 'Subray': A ramification of the ray. It is not a LightningStrike object.
|
|
28
|
+
* 'Segment': A linear segment piece of a subray.
|
|
29
|
+
* 'Leaf segment': A ray segment which cannot be smaller.
|
|
30
|
+
*
|
|
31
|
+
*
|
|
32
|
+
* The following parameters can be changed any time and if they vary smoothly, the ray form will also change smoothly:
|
|
33
|
+
*
|
|
34
|
+
* @param {Vector3} sourceOffset The point where the ray starts.
|
|
35
|
+
*
|
|
36
|
+
* @param {Vector3} destOffset The point where the ray ends.
|
|
37
|
+
*
|
|
38
|
+
* @param {double} timeScale The rate at wich the ray form changes in time. Default: 1
|
|
39
|
+
*
|
|
40
|
+
* @param {double} roughness From 0 to 1. The higher the value, the more wrinkled is the ray. Default: 0.9
|
|
41
|
+
*
|
|
42
|
+
* @param {double} straightness From 0 to 1. The higher the value, the more straight will be a subray path. Default: 0.7
|
|
43
|
+
*
|
|
44
|
+
* @param {Vector3} up0 Ray 'up' direction at the ray starting point. Must be normalized. It should be perpendicular to the ray forward direction but it doesn't matter much.
|
|
45
|
+
*
|
|
46
|
+
* @param {Vector3} up1 Like the up0 parameter but at the end of the ray. Must be normalized.
|
|
47
|
+
*
|
|
48
|
+
* @param {double} radius0 Radius of the main ray trunk at the start point. Default: 1
|
|
49
|
+
*
|
|
50
|
+
* @param {double} radius1 Radius of the main ray trunk at the end point. Default: 1
|
|
51
|
+
*
|
|
52
|
+
* @param {double} radius0Factor The radius0 of a subray is this factor times the radius0 of its parent subray. Default: 0.5
|
|
53
|
+
*
|
|
54
|
+
* @param {double} radius1Factor The radius1 of a subray is this factor times the radius1 of its parent subray. Default: 0.2
|
|
55
|
+
*
|
|
56
|
+
* @param {minRadius} Minimum value a subray radius0 or radius1 can get. Default: 0.1
|
|
57
|
+
*
|
|
58
|
+
*
|
|
59
|
+
* The following parameters should not be changed after lightning creation. They can be changed but the ray will change its form abruptly:
|
|
60
|
+
*
|
|
61
|
+
* @param {boolean} isEternal If true the ray never extinguishes. Otherwise its life is controlled by the 'birthTime' and 'deathTime' parameters. Default: true if any of those two parameters is undefined.
|
|
62
|
+
*
|
|
63
|
+
* @param {double} birthTime The time at which the ray starts its life and begins propagating. Only if isEternal is false. Default: None.
|
|
64
|
+
*
|
|
65
|
+
* @param {double} deathTime The time at which the ray ends vanishing and its life. Only if isEternal is false. Default: None.
|
|
66
|
+
*
|
|
67
|
+
* @param {double} propagationTimeFactor From 0 to 1. Lifetime factor at which the ray ends propagating and enters the steady phase. For example, 0.1 means it is propagating 1/10 of its lifetime. Default: 0.1
|
|
68
|
+
*
|
|
69
|
+
* @param {double} vanishingTimeFactor From 0 to 1. Lifetime factor at which the ray ends the steady phase and begins vanishing. For example, 0.9 means it is vanishing 1/10 of its lifetime. Default: 0.9
|
|
70
|
+
*
|
|
71
|
+
* @param {double} subrayPeriod Subrays cycle periodically. This is their time period. Default: 4
|
|
72
|
+
*
|
|
73
|
+
* @param {double} subrayDutyCycle From 0 to 1. This is the fraction of time a subray is active. Default: 0.6
|
|
74
|
+
*
|
|
75
|
+
*
|
|
76
|
+
* These parameters cannot change after lightning creation:
|
|
77
|
+
*
|
|
78
|
+
* @param {integer} maxIterations: Greater than 0. The number of ray's leaf segments is 2**maxIterations. Default: 9
|
|
79
|
+
*
|
|
80
|
+
* @param {boolean} isStatic Set to true only for rays which won't change over time and are not attached to moving objects (Rare case). It is used to set the vertex buffers non-dynamic. You can omit calling update() for these rays.
|
|
81
|
+
*
|
|
82
|
+
* @param {integer} ramification Greater than 0. Maximum number of child subrays a subray can have. Default: 5
|
|
83
|
+
*
|
|
84
|
+
* @param {integer} maxSubrayRecursion Greater than 0. Maximum level of recursion (subray descendant generations). Default: 3
|
|
85
|
+
*
|
|
86
|
+
* @param {double} recursionProbability From 0 to 1. The lower the value, the less chance each new generation of subrays has to generate new subrays. Default: 0.6
|
|
87
|
+
*
|
|
88
|
+
* @param {boolean} generateUVs If true, the ray geometry will have uv coordinates generated. u runs along the ray, and v across its perimeter. Default: false.
|
|
89
|
+
*
|
|
90
|
+
* @param {Object} randomGenerator Set here your random number generator which will seed the SimplexNoise and other decisions during ray tree creation.
|
|
91
|
+
* It can be used to generate repeatable rays. For that, set also the noiseSeed parameter, and each ray created with that generator and seed pair will be identical in time.
|
|
92
|
+
* The randomGenerator parameter should be an object with a random() function similar to Math.random, but seedable.
|
|
93
|
+
* It must have also a getSeed() method, which returns the current seed, and a setSeed( seed ) method, which accepts as seed a fractional number from 0 to 1, as well as any other number.
|
|
94
|
+
* The default value is an internal generator for some uses and Math.random for others (It is non-repeatable even if noiseSeed is supplied)
|
|
95
|
+
*
|
|
96
|
+
* @param {double} noiseSeed Seed used to make repeatable rays (see the randomGenerator)
|
|
97
|
+
*
|
|
98
|
+
* @param {function} onDecideSubrayCreation Set this to change the callback which decides subray creation. You can look at the default callback in the code (createDefaultSubrayCreationCallbacks)for more info.
|
|
99
|
+
*
|
|
100
|
+
* @param {function} onSubrayCreation This is another callback, more simple than the previous one. It can be used to adapt the form of subrays or other parameters once a subray has been created and initialized. It is used in the examples to adapt subrays to a sphere or to a plane.
|
|
101
|
+
*
|
|
102
|
+
*
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
class LightningStrike extends BufferGeometry {
|
|
6
106
|
constructor(rayParameters) {
|
|
7
107
|
super();
|
|
8
|
-
this.type =
|
|
108
|
+
this.type = 'LightningStrike'; // Set parameters, and set undefined parameters to default values
|
|
109
|
+
|
|
9
110
|
rayParameters = rayParameters || {};
|
|
10
|
-
this.init(LightningStrike.copyParameters(rayParameters, rayParameters));
|
|
111
|
+
this.init(LightningStrike.copyParameters(rayParameters, rayParameters)); // Creates and populates the mesh
|
|
112
|
+
|
|
11
113
|
this.createMesh();
|
|
12
114
|
}
|
|
115
|
+
|
|
13
116
|
update(time) {
|
|
14
|
-
if (this.isStatic)
|
|
15
|
-
|
|
117
|
+
if (this.isStatic) return;
|
|
118
|
+
|
|
16
119
|
if (this.rayParameters.isEternal || this.rayParameters.birthTime <= time && time <= this.rayParameters.deathTime) {
|
|
17
120
|
this.updateMesh(time);
|
|
121
|
+
|
|
18
122
|
if (time < this.subrays[0].endPropagationTime) {
|
|
19
123
|
this.state = LightningStrike.RAY_PROPAGATING;
|
|
20
124
|
} else if (time > this.subrays[0].beginVanishingTime) {
|
|
@@ -22,9 +126,11 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
22
126
|
} else {
|
|
23
127
|
this.state = LightningStrike.RAY_STEADY;
|
|
24
128
|
}
|
|
129
|
+
|
|
25
130
|
this.visible = true;
|
|
26
131
|
} else {
|
|
27
132
|
this.visible = false;
|
|
133
|
+
|
|
28
134
|
if (time < this.rayParameters.birthTime) {
|
|
29
135
|
this.state = LightningStrike.RAY_UNBORN;
|
|
30
136
|
} else {
|
|
@@ -32,50 +138,64 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
32
138
|
}
|
|
33
139
|
}
|
|
34
140
|
}
|
|
141
|
+
|
|
35
142
|
init(rayParameters) {
|
|
36
|
-
|
|
37
|
-
this.
|
|
143
|
+
// Init all the state from the parameters
|
|
144
|
+
this.rayParameters = rayParameters; // These parameters cannot change after lightning creation:
|
|
145
|
+
|
|
146
|
+
this.maxIterations = rayParameters.maxIterations !== undefined ? Math.floor(rayParameters.maxIterations) : 9;
|
|
38
147
|
rayParameters.maxIterations = this.maxIterations;
|
|
39
|
-
this.isStatic = rayParameters.isStatic !==
|
|
148
|
+
this.isStatic = rayParameters.isStatic !== undefined ? rayParameters.isStatic : false;
|
|
40
149
|
rayParameters.isStatic = this.isStatic;
|
|
41
|
-
this.ramification = rayParameters.ramification !==
|
|
150
|
+
this.ramification = rayParameters.ramification !== undefined ? Math.floor(rayParameters.ramification) : 5;
|
|
42
151
|
rayParameters.ramification = this.ramification;
|
|
43
|
-
this.maxSubrayRecursion = rayParameters.maxSubrayRecursion !==
|
|
152
|
+
this.maxSubrayRecursion = rayParameters.maxSubrayRecursion !== undefined ? Math.floor(rayParameters.maxSubrayRecursion) : 3;
|
|
44
153
|
rayParameters.maxSubrayRecursion = this.maxSubrayRecursion;
|
|
45
|
-
this.recursionProbability = rayParameters.recursionProbability !==
|
|
154
|
+
this.recursionProbability = rayParameters.recursionProbability !== undefined ? rayParameters.recursionProbability : 0.6;
|
|
46
155
|
rayParameters.recursionProbability = this.recursionProbability;
|
|
47
|
-
this.generateUVs = rayParameters.generateUVs !==
|
|
48
|
-
rayParameters.generateUVs = this.generateUVs;
|
|
49
|
-
|
|
156
|
+
this.generateUVs = rayParameters.generateUVs !== undefined ? rayParameters.generateUVs : false;
|
|
157
|
+
rayParameters.generateUVs = this.generateUVs; // Random generator
|
|
158
|
+
|
|
159
|
+
if (rayParameters.randomGenerator !== undefined) {
|
|
50
160
|
this.randomGenerator = rayParameters.randomGenerator;
|
|
51
161
|
this.seedGenerator = rayParameters.randomGenerator;
|
|
52
|
-
|
|
162
|
+
|
|
163
|
+
if (rayParameters.noiseSeed !== undefined) {
|
|
53
164
|
this.seedGenerator.setSeed(rayParameters.noiseSeed);
|
|
54
165
|
}
|
|
55
166
|
} else {
|
|
56
167
|
this.randomGenerator = LightningStrike.createRandomGenerator();
|
|
57
168
|
this.seedGenerator = Math;
|
|
58
|
-
}
|
|
59
|
-
|
|
169
|
+
} // Ray creation callbacks
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
if (rayParameters.onDecideSubrayCreation !== undefined) {
|
|
60
173
|
this.onDecideSubrayCreation = rayParameters.onDecideSubrayCreation;
|
|
61
174
|
} else {
|
|
62
175
|
this.createDefaultSubrayCreationCallbacks();
|
|
63
|
-
|
|
176
|
+
|
|
177
|
+
if (rayParameters.onSubrayCreation !== undefined) {
|
|
64
178
|
this.onSubrayCreation = rayParameters.onSubrayCreation;
|
|
65
179
|
}
|
|
66
|
-
}
|
|
180
|
+
} // Internal state
|
|
181
|
+
|
|
182
|
+
|
|
67
183
|
this.state = LightningStrike.RAY_INITIALIZED;
|
|
68
184
|
this.maxSubrays = Math.ceil(1 + Math.pow(this.ramification, Math.max(0, this.maxSubrayRecursion - 1)));
|
|
69
185
|
rayParameters.maxSubrays = this.maxSubrays;
|
|
70
186
|
this.maxRaySegments = 2 * (1 << this.maxIterations);
|
|
71
187
|
this.subrays = [];
|
|
188
|
+
|
|
72
189
|
for (let i = 0; i < this.maxSubrays; i++) {
|
|
73
190
|
this.subrays.push(this.createSubray());
|
|
74
191
|
}
|
|
192
|
+
|
|
75
193
|
this.raySegments = [];
|
|
194
|
+
|
|
76
195
|
for (let i = 0; i < this.maxRaySegments; i++) {
|
|
77
196
|
this.raySegments.push(this.createSegment());
|
|
78
197
|
}
|
|
198
|
+
|
|
79
199
|
this.time = 0;
|
|
80
200
|
this.timeFraction = 0;
|
|
81
201
|
this.currentSegmentCallback = null;
|
|
@@ -94,58 +214,72 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
94
214
|
this.indices = null;
|
|
95
215
|
this.positionAttribute = null;
|
|
96
216
|
this.uvsAttribute = null;
|
|
97
|
-
this.simplexX = new SimplexNoise
|
|
98
|
-
this.simplexY = new SimplexNoise
|
|
99
|
-
this.simplexZ = new SimplexNoise
|
|
100
|
-
|
|
101
|
-
this.
|
|
102
|
-
this.
|
|
103
|
-
this.
|
|
104
|
-
this.
|
|
105
|
-
this.
|
|
106
|
-
this.
|
|
107
|
-
this.
|
|
108
|
-
this.
|
|
217
|
+
this.simplexX = new SimplexNoise(this.seedGenerator);
|
|
218
|
+
this.simplexY = new SimplexNoise(this.seedGenerator);
|
|
219
|
+
this.simplexZ = new SimplexNoise(this.seedGenerator); // Temp vectors
|
|
220
|
+
|
|
221
|
+
this.forwards = new Vector3();
|
|
222
|
+
this.forwardsFill = new Vector3();
|
|
223
|
+
this.side = new Vector3();
|
|
224
|
+
this.down = new Vector3();
|
|
225
|
+
this.middlePos = new Vector3();
|
|
226
|
+
this.middleLinPos = new Vector3();
|
|
227
|
+
this.newPos = new Vector3();
|
|
228
|
+
this.vPos = new Vector3();
|
|
229
|
+
this.cross1 = new Vector3();
|
|
109
230
|
}
|
|
231
|
+
|
|
110
232
|
createMesh() {
|
|
111
233
|
const maxDrawableSegmentsPerSubRay = 1 << this.maxIterations;
|
|
112
234
|
const maxVerts = 3 * (maxDrawableSegmentsPerSubRay + 1) * this.maxSubrays;
|
|
113
235
|
const maxIndices = 18 * maxDrawableSegmentsPerSubRay * this.maxSubrays;
|
|
114
236
|
this.vertices = new Float32Array(maxVerts * 3);
|
|
115
237
|
this.indices = new Uint32Array(maxIndices);
|
|
238
|
+
|
|
116
239
|
if (this.generateUVs) {
|
|
117
240
|
this.uvs = new Float32Array(maxVerts * 2);
|
|
118
|
-
}
|
|
241
|
+
} // Populate the mesh
|
|
242
|
+
|
|
243
|
+
|
|
119
244
|
this.fillMesh(0);
|
|
120
|
-
this.setIndex(new
|
|
121
|
-
this.positionAttribute = new
|
|
122
|
-
this.setAttribute(
|
|
245
|
+
this.setIndex(new Uint32BufferAttribute(this.indices, 1));
|
|
246
|
+
this.positionAttribute = new Float32BufferAttribute(this.vertices, 3);
|
|
247
|
+
this.setAttribute('position', this.positionAttribute);
|
|
248
|
+
|
|
123
249
|
if (this.generateUVs) {
|
|
124
|
-
this.uvsAttribute = new
|
|
125
|
-
this.setAttribute(
|
|
250
|
+
this.uvsAttribute = new Float32BufferAttribute(new Float32Array(this.uvs), 2);
|
|
251
|
+
this.setAttribute('uv', this.uvsAttribute);
|
|
126
252
|
}
|
|
253
|
+
|
|
127
254
|
if (!this.isStatic) {
|
|
128
|
-
this.index.usage =
|
|
129
|
-
this.positionAttribute.usage =
|
|
255
|
+
this.index.usage = DynamicDrawUsage;
|
|
256
|
+
this.positionAttribute.usage = DynamicDrawUsage;
|
|
257
|
+
|
|
130
258
|
if (this.generateUVs) {
|
|
131
|
-
this.uvsAttribute.usage =
|
|
259
|
+
this.uvsAttribute.usage = DynamicDrawUsage;
|
|
132
260
|
}
|
|
133
|
-
}
|
|
261
|
+
} // Store buffers for later modification
|
|
262
|
+
|
|
263
|
+
|
|
134
264
|
this.vertices = this.positionAttribute.array;
|
|
135
265
|
this.indices = this.index.array;
|
|
266
|
+
|
|
136
267
|
if (this.generateUVs) {
|
|
137
268
|
this.uvs = this.uvsAttribute.array;
|
|
138
269
|
}
|
|
139
270
|
}
|
|
271
|
+
|
|
140
272
|
updateMesh(time) {
|
|
141
273
|
this.fillMesh(time);
|
|
142
274
|
this.drawRange.count = this.currentIndex;
|
|
143
275
|
this.index.needsUpdate = true;
|
|
144
276
|
this.positionAttribute.needsUpdate = true;
|
|
277
|
+
|
|
145
278
|
if (this.generateUVs) {
|
|
146
279
|
this.uvsAttribute.needsUpdate = true;
|
|
147
280
|
}
|
|
148
281
|
}
|
|
282
|
+
|
|
149
283
|
fillMesh(time) {
|
|
150
284
|
const scope = this;
|
|
151
285
|
this.currentVertex = 0;
|
|
@@ -154,30 +288,41 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
154
288
|
this.currentUVCoordinate = 0;
|
|
155
289
|
this.fractalRay(time, function fillVertices(segment) {
|
|
156
290
|
const subray = scope.currentSubray;
|
|
291
|
+
|
|
157
292
|
if (time < subray.birthTime) {
|
|
293
|
+
//&& ( ! this.rayParameters.isEternal || scope.currentSubray.recursion > 0 ) ) {
|
|
158
294
|
return;
|
|
159
295
|
} else if (this.rayParameters.isEternal && scope.currentSubray.recursion == 0) {
|
|
296
|
+
// Eternal rays don't propagate nor vanish, but its subrays do
|
|
160
297
|
scope.createPrism(segment);
|
|
161
298
|
scope.onDecideSubrayCreation(segment, scope);
|
|
162
299
|
} else if (time < subray.endPropagationTime) {
|
|
163
300
|
if (scope.timeFraction >= segment.fraction0 * subray.propagationTimeFactor) {
|
|
301
|
+
// Ray propagation has arrived to this segment
|
|
164
302
|
scope.createPrism(segment);
|
|
165
303
|
scope.onDecideSubrayCreation(segment, scope);
|
|
166
304
|
}
|
|
167
305
|
} else if (time < subray.beginVanishingTime) {
|
|
306
|
+
// Ray is steady (nor propagating nor vanishing)
|
|
168
307
|
scope.createPrism(segment);
|
|
169
308
|
scope.onDecideSubrayCreation(segment, scope);
|
|
170
309
|
} else {
|
|
171
310
|
if (scope.timeFraction <= subray.vanishingTimeFactor + segment.fraction1 * (1 - subray.vanishingTimeFactor)) {
|
|
311
|
+
// Segment has not yet vanished
|
|
172
312
|
scope.createPrism(segment);
|
|
173
313
|
}
|
|
314
|
+
|
|
174
315
|
scope.onDecideSubrayCreation(segment, scope);
|
|
175
316
|
}
|
|
176
317
|
});
|
|
177
318
|
}
|
|
178
|
-
|
|
319
|
+
|
|
320
|
+
addNewSubray()
|
|
321
|
+
/*rayParameters*/
|
|
322
|
+
{
|
|
179
323
|
return this.subrays[this.numSubrays++];
|
|
180
324
|
}
|
|
325
|
+
|
|
181
326
|
initSubray(subray, rayParameters) {
|
|
182
327
|
subray.pos0.copy(rayParameters.sourceOffset);
|
|
183
328
|
subray.pos1.copy(rayParameters.destOffset);
|
|
@@ -193,23 +338,26 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
193
338
|
subray.propagationTimeFactor = rayParameters.propagationTimeFactor;
|
|
194
339
|
subray.vanishingTimeFactor = rayParameters.vanishingTimeFactor;
|
|
195
340
|
subray.maxIterations = this.maxIterations;
|
|
196
|
-
subray.seed = rayParameters.noiseSeed !==
|
|
341
|
+
subray.seed = rayParameters.noiseSeed !== undefined ? rayParameters.noiseSeed : 0;
|
|
197
342
|
subray.recursion = 0;
|
|
198
343
|
}
|
|
344
|
+
|
|
199
345
|
fractalRay(time, segmentCallback) {
|
|
200
346
|
this.time = time;
|
|
201
347
|
this.currentSegmentCallback = segmentCallback;
|
|
202
|
-
this.numSubrays = 0;
|
|
203
|
-
|
|
348
|
+
this.numSubrays = 0; // Add the top level subray
|
|
349
|
+
|
|
350
|
+
this.initSubray(this.addNewSubray(), this.rayParameters); // Process all subrays that are being generated until consuming all of them
|
|
351
|
+
|
|
204
352
|
for (let subrayIndex = 0; subrayIndex < this.numSubrays; subrayIndex++) {
|
|
205
353
|
const subray = this.subrays[subrayIndex];
|
|
206
354
|
this.currentSubray = subray;
|
|
207
355
|
this.randomGenerator.setSeed(subray.seed);
|
|
208
|
-
subray.endPropagationTime =
|
|
209
|
-
subray.beginVanishingTime =
|
|
356
|
+
subray.endPropagationTime = MathUtils.lerp(subray.birthTime, subray.deathTime, subray.propagationTimeFactor);
|
|
357
|
+
subray.beginVanishingTime = MathUtils.lerp(subray.deathTime, subray.birthTime, 1 - subray.vanishingTimeFactor);
|
|
210
358
|
const random1 = this.randomGenerator.random;
|
|
211
|
-
subray.linPos0.set(random1(), random1(), random1()).multiplyScalar(
|
|
212
|
-
subray.linPos1.set(random1(), random1(), random1()).multiplyScalar(
|
|
359
|
+
subray.linPos0.set(random1(), random1(), random1()).multiplyScalar(1000);
|
|
360
|
+
subray.linPos1.set(random1(), random1(), random1()).multiplyScalar(1000);
|
|
213
361
|
this.timeFraction = (time - subray.birthTime) / (subray.deathTime - subray.birthTime);
|
|
214
362
|
this.currentSegmentIndex = 0;
|
|
215
363
|
this.isInitialSegment = true;
|
|
@@ -229,33 +377,38 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
229
377
|
this.subrayProbability = this.ramification * Math.pow(this.recursionProbability, subray.recursion) / (1 << subray.maxIterations);
|
|
230
378
|
this.fractalRayRecursive(segment);
|
|
231
379
|
}
|
|
380
|
+
|
|
232
381
|
this.currentSegmentCallback = null;
|
|
233
382
|
this.currentSubray = null;
|
|
234
383
|
}
|
|
384
|
+
|
|
235
385
|
fractalRayRecursive(segment) {
|
|
386
|
+
// Leave recursion condition
|
|
236
387
|
if (segment.iteration >= this.currentSubray.maxIterations) {
|
|
237
388
|
this.currentSegmentCallback(segment);
|
|
238
389
|
return;
|
|
239
|
-
}
|
|
390
|
+
} // Interpolation
|
|
391
|
+
|
|
392
|
+
|
|
240
393
|
this.forwards.subVectors(segment.pos1, segment.pos0);
|
|
241
394
|
let lForwards = this.forwards.length();
|
|
242
|
-
|
|
395
|
+
|
|
396
|
+
if (lForwards < 0.000001) {
|
|
243
397
|
this.forwards.set(0, 0, 0.01);
|
|
244
398
|
lForwards = this.forwards.length();
|
|
245
399
|
}
|
|
400
|
+
|
|
246
401
|
const middleRadius = (segment.radius0 + segment.radius1) * 0.5;
|
|
247
402
|
const middleFraction = (segment.fraction0 + segment.fraction1) * 0.5;
|
|
248
403
|
const timeDimension = this.time * this.currentSubray.timeScale * Math.pow(2, segment.iteration);
|
|
249
404
|
this.middlePos.lerpVectors(segment.pos0, segment.pos1, 0.5);
|
|
250
405
|
this.middleLinPos.lerpVectors(segment.linPos0, segment.linPos1, 0.5);
|
|
251
|
-
const p = this.middleLinPos;
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
this.simplexY.noise4d(p.x, p.y, p.z, timeDimension),
|
|
255
|
-
this.simplexZ.noise4d(p.x, p.y, p.z, timeDimension)
|
|
256
|
-
);
|
|
406
|
+
const p = this.middleLinPos; // Noise
|
|
407
|
+
|
|
408
|
+
this.newPos.set(this.simplexX.noise4d(p.x, p.y, p.z, timeDimension), this.simplexY.noise4d(p.x, p.y, p.z, timeDimension), this.simplexZ.noise4d(p.x, p.y, p.z, timeDimension));
|
|
257
409
|
this.newPos.multiplyScalar(segment.positionVariationFactor * lForwards);
|
|
258
|
-
this.newPos.add(this.middlePos);
|
|
410
|
+
this.newPos.add(this.middlePos); // Recursion
|
|
411
|
+
|
|
259
412
|
const newSegment1 = this.getNewSegment();
|
|
260
413
|
newSegment1.pos0.copy(segment.pos0);
|
|
261
414
|
newSegment1.pos1.copy(this.newPos);
|
|
@@ -286,16 +439,22 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
286
439
|
this.fractalRayRecursive(newSegment1);
|
|
287
440
|
this.fractalRayRecursive(newSegment2);
|
|
288
441
|
}
|
|
442
|
+
|
|
289
443
|
createPrism(segment) {
|
|
444
|
+
// Creates one triangular prism and its vertices at the segment
|
|
290
445
|
this.forwardsFill.subVectors(segment.pos1, segment.pos0).normalize();
|
|
446
|
+
|
|
291
447
|
if (this.isInitialSegment) {
|
|
292
448
|
this.currentCreateTriangleVertices(segment.pos0, segment.up0, this.forwardsFill, segment.radius0, 0);
|
|
293
449
|
this.isInitialSegment = false;
|
|
294
450
|
}
|
|
451
|
+
|
|
295
452
|
this.currentCreateTriangleVertices(segment.pos1, segment.up0, this.forwardsFill, segment.radius1, segment.fraction1);
|
|
296
453
|
this.createPrismFaces();
|
|
297
454
|
}
|
|
455
|
+
|
|
298
456
|
createTriangleVerticesWithoutUVs(pos, up, forwards, radius) {
|
|
457
|
+
// Create an equilateral triangle (only vertices)
|
|
299
458
|
this.side.crossVectors(up, forwards).multiplyScalar(radius * LightningStrike.COS30DEG);
|
|
300
459
|
this.down.copy(up).multiplyScalar(-radius * LightningStrike.SIN30DEG);
|
|
301
460
|
const p = this.vPos;
|
|
@@ -314,7 +473,9 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
314
473
|
v[this.currentCoordinate++] = p.z;
|
|
315
474
|
this.currentVertex += 3;
|
|
316
475
|
}
|
|
476
|
+
|
|
317
477
|
createTriangleVerticesWithUVs(pos, up, forwards, radius, u) {
|
|
478
|
+
// Create an equilateral triangle (only vertices)
|
|
318
479
|
this.side.crossVectors(up, forwards).multiplyScalar(radius * LightningStrike.COS30DEG);
|
|
319
480
|
this.down.copy(up).multiplyScalar(-radius * LightningStrike.SIN30DEG);
|
|
320
481
|
const p = this.vPos;
|
|
@@ -340,7 +501,10 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
340
501
|
uv[this.currentUVCoordinate++] = 1;
|
|
341
502
|
this.currentVertex += 3;
|
|
342
503
|
}
|
|
343
|
-
|
|
504
|
+
|
|
505
|
+
createPrismFaces(vertex
|
|
506
|
+
/*, index*/
|
|
507
|
+
) {
|
|
344
508
|
const indices = this.indices;
|
|
345
509
|
var vertex = this.currentVertex - 6;
|
|
346
510
|
indices[this.currentIndex++] = vertex + 1;
|
|
@@ -362,21 +526,26 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
362
526
|
indices[this.currentIndex++] = vertex + 3;
|
|
363
527
|
indices[this.currentIndex++] = vertex + 5;
|
|
364
528
|
}
|
|
529
|
+
|
|
365
530
|
createDefaultSubrayCreationCallbacks() {
|
|
366
531
|
const random1 = this.randomGenerator.random;
|
|
532
|
+
|
|
367
533
|
this.onDecideSubrayCreation = (segment, lightningStrike) => {
|
|
534
|
+
// Decide subrays creation at parent (sub)ray segment
|
|
368
535
|
const subray = lightningStrike.currentSubray;
|
|
369
536
|
const period = lightningStrike.rayParameters.subrayPeriod;
|
|
370
537
|
const dutyCycle = lightningStrike.rayParameters.subrayDutyCycle;
|
|
371
|
-
const phase0 = lightningStrike.rayParameters.isEternal && subray.recursion == 0 ? -random1() * period :
|
|
538
|
+
const phase0 = lightningStrike.rayParameters.isEternal && subray.recursion == 0 ? -random1() * period : MathUtils.lerp(subray.birthTime, subray.endPropagationTime, segment.fraction0) - random1() * period;
|
|
372
539
|
const phase = lightningStrike.time - phase0;
|
|
373
540
|
const currentCycle = Math.floor(phase / period);
|
|
374
541
|
const childSubraySeed = random1() * (currentCycle + 1);
|
|
375
542
|
const isActive = phase % period <= dutyCycle * period;
|
|
376
543
|
let probability = 0;
|
|
544
|
+
|
|
377
545
|
if (isActive) {
|
|
378
|
-
probability = lightningStrike.subrayProbability;
|
|
546
|
+
probability = lightningStrike.subrayProbability; // Distribution test: probability *= segment.fraction0 > 0.5 && segment.fraction0 < 0.9 ? 1 / 0.4 : 0;
|
|
379
547
|
}
|
|
548
|
+
|
|
380
549
|
if (subray.recursion < lightningStrike.maxSubrayRecursion && lightningStrike.numSubrays < lightningStrike.maxSubrays && random1() < probability) {
|
|
381
550
|
const childSubray = lightningStrike.addNewSubray();
|
|
382
551
|
const parentSeed = lightningStrike.randomGenerator.getSeed();
|
|
@@ -384,21 +553,20 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
384
553
|
lightningStrike.randomGenerator.setSeed(childSubraySeed);
|
|
385
554
|
childSubray.recursion = subray.recursion + 1;
|
|
386
555
|
childSubray.maxIterations = Math.max(1, subray.maxIterations - 1);
|
|
387
|
-
childSubray.linPos0.set(random1(), random1(), random1()).multiplyScalar(
|
|
388
|
-
childSubray.linPos1.set(random1(), random1(), random1()).multiplyScalar(
|
|
556
|
+
childSubray.linPos0.set(random1(), random1(), random1()).multiplyScalar(1000);
|
|
557
|
+
childSubray.linPos1.set(random1(), random1(), random1()).multiplyScalar(1000);
|
|
389
558
|
childSubray.up0.copy(subray.up0);
|
|
390
559
|
childSubray.up1.copy(subray.up1);
|
|
391
560
|
childSubray.radius0 = segment.radius0 * lightningStrike.rayParameters.radius0Factor;
|
|
392
|
-
childSubray.radius1 = Math.min(
|
|
393
|
-
lightningStrike.rayParameters.minRadius,
|
|
394
|
-
segment.radius1 * lightningStrike.rayParameters.radius1Factor
|
|
395
|
-
);
|
|
561
|
+
childSubray.radius1 = Math.min(lightningStrike.rayParameters.minRadius, segment.radius1 * lightningStrike.rayParameters.radius1Factor);
|
|
396
562
|
childSubray.birthTime = phase0 + currentCycle * period;
|
|
397
563
|
childSubray.deathTime = childSubray.birthTime + period * dutyCycle;
|
|
564
|
+
|
|
398
565
|
if (!lightningStrike.rayParameters.isEternal && subray.recursion == 0) {
|
|
399
566
|
childSubray.birthTime = Math.max(childSubray.birthTime, subray.birthTime);
|
|
400
567
|
childSubray.deathTime = Math.min(childSubray.deathTime, subray.deathTime);
|
|
401
568
|
}
|
|
569
|
+
|
|
402
570
|
childSubray.timeScale = subray.timeScale * 2;
|
|
403
571
|
childSubray.roughness = subray.roughness;
|
|
404
572
|
childSubray.straightness = subray.straightness;
|
|
@@ -408,14 +576,20 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
408
576
|
lightningStrike.randomGenerator.setSeed(parentSeed);
|
|
409
577
|
}
|
|
410
578
|
};
|
|
411
|
-
|
|
412
|
-
const
|
|
413
|
-
const
|
|
414
|
-
const
|
|
579
|
+
|
|
580
|
+
const vec1Pos = new Vector3();
|
|
581
|
+
const vec2Forward = new Vector3();
|
|
582
|
+
const vec3Side = new Vector3();
|
|
583
|
+
const vec4Up = new Vector3();
|
|
584
|
+
|
|
415
585
|
this.onSubrayCreation = (segment, parentSubray, childSubray, lightningStrike) => {
|
|
586
|
+
// Decide childSubray origin and destination positions (pos0 and pos1) and possibly other properties of childSubray
|
|
587
|
+
// Just use the default cone position generator
|
|
416
588
|
lightningStrike.subrayCylinderPosition(segment, parentSubray, childSubray, 0.5, 0.6, 0.2);
|
|
417
589
|
};
|
|
590
|
+
|
|
418
591
|
this.subrayConePosition = (segment, parentSubray, childSubray, heightFactor, sideWidthFactor, minSideWidthFactor) => {
|
|
592
|
+
// Sets childSubray pos0 and pos1 in a cone
|
|
419
593
|
childSubray.pos0.copy(segment.pos0);
|
|
420
594
|
vec1Pos.subVectors(parentSubray.pos1, parentSubray.pos0);
|
|
421
595
|
vec2Forward.copy(vec1Pos).normalize();
|
|
@@ -427,7 +601,9 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
427
601
|
vec4Up.copy(parentSubray.up0).multiplyScalar(Math.sin(angle));
|
|
428
602
|
childSubray.pos1.copy(vec3Side).add(vec4Up).multiplyScalar(length * sideWidthFactor * (minSideWidthFactor + random1() * (1 - minSideWidthFactor))).add(vec1Pos).add(parentSubray.pos0);
|
|
429
603
|
};
|
|
604
|
+
|
|
430
605
|
this.subrayCylinderPosition = (segment, parentSubray, childSubray, heightFactor, sideWidthFactor, minSideWidthFactor) => {
|
|
606
|
+
// Sets childSubray pos0 and pos1 in a cylinder
|
|
431
607
|
childSubray.pos0.copy(segment.pos0);
|
|
432
608
|
vec1Pos.subVectors(parentSubray.pos1, parentSubray.pos0);
|
|
433
609
|
vec2Forward.copy(vec1Pos).normalize();
|
|
@@ -440,17 +616,18 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
440
616
|
childSubray.pos1.copy(vec3Side).add(vec4Up).multiplyScalar(length * sideWidthFactor * (minSideWidthFactor + random1() * (1 - minSideWidthFactor))).add(vec1Pos).add(parentSubray.pos0);
|
|
441
617
|
};
|
|
442
618
|
}
|
|
619
|
+
|
|
443
620
|
createSubray() {
|
|
444
621
|
return {
|
|
445
622
|
seed: 0,
|
|
446
623
|
maxIterations: 0,
|
|
447
624
|
recursion: 0,
|
|
448
|
-
pos0: new
|
|
449
|
-
pos1: new
|
|
450
|
-
linPos0: new
|
|
451
|
-
linPos1: new
|
|
452
|
-
up0: new
|
|
453
|
-
up1: new
|
|
625
|
+
pos0: new Vector3(),
|
|
626
|
+
pos1: new Vector3(),
|
|
627
|
+
linPos0: new Vector3(),
|
|
628
|
+
linPos1: new Vector3(),
|
|
629
|
+
up0: new Vector3(),
|
|
630
|
+
up1: new Vector3(),
|
|
454
631
|
radius0: 0,
|
|
455
632
|
radius1: 0,
|
|
456
633
|
birthTime: 0,
|
|
@@ -464,15 +641,16 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
464
641
|
beginVanishingTime: 0
|
|
465
642
|
};
|
|
466
643
|
}
|
|
644
|
+
|
|
467
645
|
createSegment() {
|
|
468
646
|
return {
|
|
469
647
|
iteration: 0,
|
|
470
|
-
pos0: new
|
|
471
|
-
pos1: new
|
|
472
|
-
linPos0: new
|
|
473
|
-
linPos1: new
|
|
474
|
-
up0: new
|
|
475
|
-
up1: new
|
|
648
|
+
pos0: new Vector3(),
|
|
649
|
+
pos1: new Vector3(),
|
|
650
|
+
linPos0: new Vector3(),
|
|
651
|
+
linPos1: new Vector3(),
|
|
652
|
+
up0: new Vector3(),
|
|
653
|
+
up1: new Vector3(),
|
|
476
654
|
radius0: 0,
|
|
477
655
|
radius1: 0,
|
|
478
656
|
fraction0: 0,
|
|
@@ -480,19 +658,25 @@ class LightningStrike extends THREE.BufferGeometry {
|
|
|
480
658
|
positionVariationFactor: 0
|
|
481
659
|
};
|
|
482
660
|
}
|
|
661
|
+
|
|
483
662
|
getNewSegment() {
|
|
484
663
|
return this.raySegments[this.currentSegmentIndex++];
|
|
485
664
|
}
|
|
665
|
+
|
|
486
666
|
copy(source) {
|
|
487
667
|
super.copy(source);
|
|
488
668
|
this.init(LightningStrike.copyParameters({}, source.rayParameters));
|
|
489
669
|
return this;
|
|
490
670
|
}
|
|
671
|
+
|
|
491
672
|
clone() {
|
|
492
673
|
return new this.constructor(LightningStrike.copyParameters({}, this.rayParameters));
|
|
493
674
|
}
|
|
675
|
+
|
|
494
676
|
}
|
|
495
|
-
|
|
677
|
+
|
|
678
|
+
LightningStrike.prototype.isLightningStrike = true; // Ray states
|
|
679
|
+
|
|
496
680
|
LightningStrike.RAY_INITIALIZED = 0;
|
|
497
681
|
LightningStrike.RAY_UNBORN = 1;
|
|
498
682
|
LightningStrike.RAY_PROPAGATING = 2;
|
|
@@ -501,47 +685,56 @@ LightningStrike.RAY_VANISHING = 4;
|
|
|
501
685
|
LightningStrike.RAY_EXTINGUISHED = 5;
|
|
502
686
|
LightningStrike.COS30DEG = Math.cos(30 * Math.PI / 180);
|
|
503
687
|
LightningStrike.SIN30DEG = Math.sin(30 * Math.PI / 180);
|
|
688
|
+
|
|
504
689
|
LightningStrike.createRandomGenerator = () => {
|
|
505
690
|
const numSeeds = 2053;
|
|
506
691
|
const seeds = [];
|
|
692
|
+
|
|
507
693
|
for (let i = 0; i < numSeeds; i++) {
|
|
508
694
|
seeds.push(Math.random());
|
|
509
695
|
}
|
|
696
|
+
|
|
510
697
|
const generator = {
|
|
511
698
|
currentSeed: 0,
|
|
512
|
-
random: function() {
|
|
699
|
+
random: function () {
|
|
513
700
|
const value = seeds[generator.currentSeed];
|
|
514
701
|
generator.currentSeed = (generator.currentSeed + 1) % numSeeds;
|
|
515
702
|
return value;
|
|
516
703
|
},
|
|
517
|
-
getSeed: function() {
|
|
704
|
+
getSeed: function () {
|
|
518
705
|
return generator.currentSeed / numSeeds;
|
|
519
706
|
},
|
|
520
|
-
setSeed: function(seed) {
|
|
707
|
+
setSeed: function (seed) {
|
|
521
708
|
generator.currentSeed = Math.floor(seed * numSeeds) % numSeeds;
|
|
522
709
|
}
|
|
523
710
|
};
|
|
524
711
|
return generator;
|
|
525
712
|
};
|
|
713
|
+
|
|
526
714
|
LightningStrike.copyParameters = (dest, source) => {
|
|
527
715
|
source = source || {};
|
|
528
716
|
dest = dest || {};
|
|
529
|
-
|
|
717
|
+
|
|
718
|
+
const vecCopy = v => {
|
|
530
719
|
if (source === dest) {
|
|
531
720
|
return v;
|
|
532
721
|
} else {
|
|
533
722
|
return v.clone();
|
|
534
723
|
}
|
|
535
724
|
};
|
|
536
|
-
|
|
537
|
-
dest.
|
|
538
|
-
dest.
|
|
539
|
-
dest.
|
|
540
|
-
|
|
541
|
-
dest.
|
|
542
|
-
dest.
|
|
543
|
-
dest.
|
|
725
|
+
|
|
726
|
+
dest.sourceOffset = source.sourceOffset !== undefined ? vecCopy(source.sourceOffset) : new Vector3(0, 100, 0), dest.destOffset = source.destOffset !== undefined ? vecCopy(source.destOffset) : new Vector3(0, 0, 0), dest.timeScale = source.timeScale !== undefined ? source.timeScale : 1, dest.roughness = source.roughness !== undefined ? source.roughness : 0.9, dest.straightness = source.straightness !== undefined ? source.straightness : 0.7, dest.up0 = source.up0 !== undefined ? vecCopy(source.up0) : new Vector3(0, 0, 1);
|
|
727
|
+
dest.up1 = source.up1 !== undefined ? vecCopy(source.up1) : new Vector3(0, 0, 1), dest.radius0 = source.radius0 !== undefined ? source.radius0 : 1, dest.radius1 = source.radius1 !== undefined ? source.radius1 : 1, dest.radius0Factor = source.radius0Factor !== undefined ? source.radius0Factor : 0.5, dest.radius1Factor = source.radius1Factor !== undefined ? source.radius1Factor : 0.2, dest.minRadius = source.minRadius !== undefined ? source.minRadius : 0.2, // These parameters should not be changed after lightning creation. They can be changed but the ray will change its form abruptly:
|
|
728
|
+
dest.isEternal = source.isEternal !== undefined ? source.isEternal : source.birthTime === undefined || source.deathTime === undefined, dest.birthTime = source.birthTime, dest.deathTime = source.deathTime, dest.propagationTimeFactor = source.propagationTimeFactor !== undefined ? source.propagationTimeFactor : 0.1, dest.vanishingTimeFactor = source.vanishingTimeFactor !== undefined ? source.vanishingTimeFactor : 0.9, dest.subrayPeriod = source.subrayPeriod !== undefined ? source.subrayPeriod : 4, dest.subrayDutyCycle = source.subrayDutyCycle !== undefined ? source.subrayDutyCycle : 0.6; // These parameters cannot change after lightning creation:
|
|
729
|
+
|
|
730
|
+
dest.maxIterations = source.maxIterations !== undefined ? source.maxIterations : 9;
|
|
731
|
+
dest.isStatic = source.isStatic !== undefined ? source.isStatic : false;
|
|
732
|
+
dest.ramification = source.ramification !== undefined ? source.ramification : 5;
|
|
733
|
+
dest.maxSubrayRecursion = source.maxSubrayRecursion !== undefined ? source.maxSubrayRecursion : 3;
|
|
734
|
+
dest.recursionProbability = source.recursionProbability !== undefined ? source.recursionProbability : 0.6;
|
|
735
|
+
dest.generateUVs = source.generateUVs !== undefined ? source.generateUVs : false;
|
|
544
736
|
dest.randomGenerator = source.randomGenerator, dest.noiseSeed = source.noiseSeed, dest.onDecideSubrayCreation = source.onDecideSubrayCreation, dest.onSubrayCreation = source.onSubrayCreation;
|
|
545
737
|
return dest;
|
|
546
738
|
};
|
|
547
|
-
|
|
739
|
+
|
|
740
|
+
export { LightningStrike };
|