super-three 0.133.4 → 0.136.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/build/three.js +2285 -1983
- package/build/three.min.js +1 -1
- package/build/three.module.js +5983 -5358
- package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
- package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
- package/examples/fonts/open-sans/open-sans.css +9 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +3966 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
- package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
- package/examples/fonts/tabler-icons/tabler-icons.min.css +4 -0
- package/examples/js/animation/CCDIKSolver.js +0 -1
- package/examples/js/animation/MMDPhysics.js +2 -4
- package/examples/js/cameras/CinematicCamera.js +2 -7
- package/examples/js/controls/ArcballControls.js +99 -72
- package/examples/js/controls/DragControls.js +7 -0
- package/examples/js/controls/OrbitControls.js +5 -36
- package/examples/js/controls/TrackballControls.js +3 -2
- package/examples/js/controls/TransformControls.js +24 -1
- package/examples/js/csm/CSM.js +2 -2
- package/examples/js/csm/CSMFrustum.js +133 -0
- package/examples/js/curves/CurveExtras.js +0 -2
- package/examples/js/effects/AsciiEffect.js +2 -9
- package/examples/js/exporters/GLTFExporter.js +148 -64
- package/examples/js/exporters/MMDExporter.js +1 -1
- package/examples/js/exporters/USDZExporter.js +45 -26
- package/examples/js/geometries/ConvexGeometry.js +1 -1
- package/examples/js/geometries/TeapotGeometry.js +0 -1
- package/examples/js/interactive/SelectionBox.js +2 -0
- package/examples/js/interactive/SelectionHelper.js +22 -7
- package/examples/js/lights/RectAreaLightUniformsLib.js +4 -0
- package/examples/js/lines/LineMaterial.js +58 -20
- package/examples/js/lines/LineSegments2.js +29 -24
- package/examples/js/loaders/3DMLoader.js +24 -11
- package/examples/js/loaders/3MFLoader.js +2 -2
- package/examples/js/loaders/AMFLoader.js +0 -2
- package/examples/js/loaders/BasisTextureLoader.js +1 -0
- package/examples/js/loaders/ColladaLoader.js +61 -4
- package/examples/js/loaders/EXRLoader.js +201 -272
- package/examples/js/loaders/FBXLoader.js +4 -5
- package/examples/js/loaders/GLTFLoader.js +98 -35
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -10
- package/examples/js/loaders/KTX2Loader.js +23 -2
- package/examples/js/loaders/KTXLoader.js +1 -1
- package/examples/js/loaders/LDrawLoader.js +1169 -901
- package/examples/js/loaders/LUT3dlLoader.js +19 -10
- package/examples/js/loaders/LUTCubeLoader.js +5 -4
- package/examples/js/loaders/LWOLoader.js +8 -6
- package/examples/js/loaders/LogLuvLoader.js +766 -0
- package/examples/js/loaders/MMDLoader.js +0 -1
- package/examples/js/loaders/NRRDLoader.js +9 -2
- package/examples/js/loaders/OBJLoader.js +0 -2
- package/examples/js/loaders/PLYLoader.js +33 -8
- package/examples/js/loaders/RGBELoader.js +8 -22
- package/examples/js/loaders/RGBMLoader.js +56 -6
- package/examples/js/loaders/SVGLoader.js +12 -6
- package/examples/js/loaders/TDSLoader.js +237 -271
- package/examples/js/loaders/VOXLoader.js +1 -0
- package/examples/js/loaders/VRMLLoader.js +11 -22
- package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
- package/examples/js/math/ConvexHull.js +7 -13
- package/examples/js/math/ImprovedNoise.js +1 -1
- package/examples/js/misc/GPUComputationRenderer.js +3 -1
- package/examples/js/misc/Volume.js +2 -2
- package/examples/js/modifiers/CurveModifier.js +8 -7
- package/examples/js/modifiers/EdgeSplitModifier.js +1 -1
- package/examples/js/modifiers/SimplifyModifier.js +1 -1
- package/examples/js/objects/Lensflare.js +2 -10
- package/examples/js/objects/MarchingCubes.js +42 -128
- package/examples/js/objects/Reflector.js +8 -13
- package/examples/js/objects/ReflectorForSSRPass.js +0 -10
- package/examples/js/objects/Refractor.js +8 -13
- package/examples/js/objects/Sky.js +1 -1
- package/examples/js/objects/Water.js +3 -15
- package/examples/js/objects/Water2.js +4 -7
- package/examples/js/postprocessing/GlitchPass.js +6 -5
- package/examples/js/postprocessing/SMAAPass.js +2 -9
- package/examples/js/postprocessing/SSAOPass.js +10 -21
- package/examples/js/postprocessing/SavePass.js +1 -5
- package/examples/js/renderers/CSS2DRenderer.js +4 -4
- package/examples/js/renderers/CSS3DRenderer.js +4 -4
- package/examples/js/shaders/ConvolutionShader.js +0 -1
- package/examples/js/shaders/DigitalGlitch.js +3 -3
- package/examples/js/shaders/FXAAShader.js +1 -1
- package/examples/js/shaders/FilmShader.js +1 -1
- package/examples/js/shaders/GammaCorrectionShader.js +1 -1
- package/examples/js/shaders/HorizontalBlurShader.js +1 -2
- package/examples/js/shaders/MMDToonShader.js +0 -1
- package/examples/js/shaders/SSAOShader.js +1 -1
- package/examples/js/shaders/SSRShader.js +1 -1
- package/examples/js/shaders/SSRrShader.js +1 -1
- package/examples/js/shaders/VerticalBlurShader.js +1 -2
- package/examples/js/utils/GeometryUtils.js +1 -1
- package/examples/jsm/animation/CCDIKSolver.js +0 -1
- package/examples/jsm/animation/MMDPhysics.js +1 -3
- package/examples/jsm/cameras/CinematicCamera.js +2 -5
- package/examples/jsm/{WebGL.js → capabilities/WebGL.js} +2 -2
- package/examples/jsm/{renderers/webgpu → capabilities}/WebGPU.js +1 -1
- package/examples/jsm/controls/ArcballControls.js +80 -77
- package/examples/jsm/controls/DragControls.js +7 -0
- package/examples/jsm/controls/OrbitControls.js +9 -51
- package/examples/jsm/controls/TrackballControls.js +1 -1
- package/examples/jsm/controls/TransformControls.js +24 -1
- package/examples/jsm/csm/CSM.js +3 -3
- package/examples/jsm/csm/{Frustum.js → CSMFrustum.js} +3 -3
- package/examples/jsm/curves/CurveExtras.js +0 -2
- package/examples/jsm/effects/AsciiEffect.js +2 -9
- package/examples/jsm/exporters/GLTFExporter.js +169 -99
- package/examples/jsm/exporters/MMDExporter.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +47 -26
- package/examples/jsm/geometries/ConvexGeometry.js +1 -1
- package/examples/jsm/geometries/TeapotGeometry.js +0 -1
- package/examples/jsm/interactive/SelectionBox.js +1 -0
- package/examples/jsm/interactive/SelectionHelper.js +19 -7
- package/examples/jsm/libs/flow.module.js +3338 -0
- package/examples/jsm/libs/lil-gui.module.min.js +8 -0
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
- package/examples/jsm/lights/RectAreaLightUniformsLib.js +7 -0
- package/examples/jsm/lines/LineMaterial.js +59 -23
- package/examples/jsm/lines/LineSegments2.js +22 -18
- package/examples/jsm/loaders/3DMLoader.js +18 -12
- package/examples/jsm/loaders/3MFLoader.js +2 -2
- package/examples/jsm/loaders/AMFLoader.js +0 -2
- package/examples/jsm/loaders/BasisTextureLoader.js +7 -0
- package/examples/jsm/loaders/ColladaLoader.js +61 -4
- package/examples/jsm/loaders/EXRLoader.js +200 -306
- package/examples/jsm/loaders/FBXLoader.js +4 -5
- package/examples/jsm/loaders/GLTFLoader.js +102 -40
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -17
- package/examples/jsm/loaders/KTX2Loader.js +30 -2
- package/examples/jsm/loaders/KTXLoader.js +1 -1
- package/examples/jsm/loaders/LDrawLoader.js +1159 -898
- package/examples/jsm/loaders/LUT3dlLoader.js +19 -12
- package/examples/jsm/loaders/LUTCubeLoader.js +5 -5
- package/examples/jsm/loaders/LWOLoader.js +8 -6
- package/examples/jsm/loaders/LogLuvLoader.js +606 -0
- package/examples/jsm/loaders/MMDLoader.js +0 -1
- package/examples/jsm/loaders/NRRDLoader.js +10 -2
- package/examples/jsm/loaders/OBJLoader.js +0 -2
- package/examples/jsm/loaders/PLYLoader.js +34 -8
- package/examples/jsm/loaders/RGBELoader.js +7 -28
- package/examples/jsm/loaders/RGBMLoader.js +62 -8
- package/examples/jsm/loaders/SVGLoader.js +15 -7
- package/examples/jsm/loaders/TDSLoader.js +236 -275
- package/examples/jsm/loaders/VOXLoader.js +1 -0
- package/examples/jsm/loaders/VRMLLoader.js +11 -23
- package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
- package/examples/jsm/math/ConvexHull.js +7 -13
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +3 -1
- package/examples/jsm/misc/Volume.js +2 -2
- package/examples/jsm/modifiers/CurveModifier.js +9 -8
- package/examples/jsm/modifiers/EdgeSplitModifier.js +1 -1
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/node-editor/NodeEditor.js +455 -0
- package/examples/jsm/node-editor/accessors/NormalEditor.js +30 -0
- package/examples/jsm/node-editor/accessors/PositionEditor.js +30 -0
- package/examples/jsm/node-editor/accessors/UVEditor.js +26 -0
- package/examples/jsm/node-editor/display/BlendEditor.js +43 -0
- package/examples/jsm/node-editor/examples/animate-uv.json +1 -0
- package/examples/jsm/node-editor/examples/fake-top-light.json +1 -0
- package/examples/jsm/node-editor/examples/oscillator-color.json +1 -0
- package/examples/jsm/node-editor/examples/rim.json +1 -0
- package/examples/jsm/node-editor/inputs/ColorEditor.js +91 -0
- package/examples/jsm/node-editor/inputs/FloatEditor.js +24 -0
- package/examples/jsm/node-editor/inputs/SliderEditor.js +68 -0
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +28 -0
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +30 -0
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +37 -0
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +108 -0
- package/examples/jsm/node-editor/math/DotEditor.js +36 -0
- package/examples/jsm/node-editor/math/InvertEditor.js +38 -0
- package/examples/jsm/node-editor/math/LimiterEditor.js +48 -0
- package/examples/jsm/node-editor/math/NormalizeEditor.js +26 -0
- package/examples/jsm/node-editor/math/OperatorEditor.js +50 -0
- package/examples/jsm/node-editor/math/PowerEditor.js +34 -0
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +39 -0
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +26 -0
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +42 -0
- package/examples/jsm/node-editor/utils/TimerEditor.js +57 -0
- package/examples/jsm/nodes/core/NodeBuilder.js +2 -2
- package/examples/jsm/nodes/materials/StandardNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/nodes/StandardNode.js +7 -6
- package/examples/jsm/nodes/math/MathNode.js +12 -0
- package/examples/jsm/nodes/misc/BumpMapNode.js +1 -1
- package/examples/jsm/nodes/misc/TextureCubeUVNode.js +1 -4
- package/examples/jsm/nodes/utils/ColorSpaceNode.js +5 -177
- package/examples/jsm/objects/Lensflare.js +5 -16
- package/examples/jsm/objects/MarchingCubes.js +46 -152
- package/examples/jsm/objects/Reflector.js +8 -16
- package/examples/jsm/objects/ReflectorForSSRPass.js +0 -12
- package/examples/jsm/objects/Refractor.js +8 -16
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/Water.js +3 -18
- package/examples/jsm/objects/Water2.js +4 -8
- package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +1 -1
- package/examples/jsm/postprocessing/AfterimagePass.js +1 -1
- package/examples/jsm/postprocessing/BloomPass.js +1 -1
- package/examples/jsm/postprocessing/BokehPass.js +1 -1
- package/examples/jsm/postprocessing/ClearPass.js +1 -1
- package/examples/jsm/postprocessing/CubeTexturePass.js +1 -1
- package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
- package/examples/jsm/postprocessing/EffectComposer.js +3 -3
- package/examples/jsm/postprocessing/FilmPass.js +1 -1
- package/examples/jsm/postprocessing/GlitchPass.js +10 -7
- package/examples/jsm/postprocessing/HalftonePass.js +1 -1
- package/examples/jsm/postprocessing/MaskPass.js +1 -1
- package/examples/jsm/postprocessing/OutlinePass.js +1 -1
- package/examples/jsm/postprocessing/RenderPass.js +1 -1
- package/examples/jsm/postprocessing/SAOPass.js +2 -2
- package/examples/jsm/postprocessing/SMAAPass.js +3 -12
- package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
- package/examples/jsm/postprocessing/SSAOPass.js +15 -26
- package/examples/jsm/postprocessing/SSRPass.js +1 -1
- package/examples/jsm/postprocessing/SSRrPass.js +1 -1
- package/examples/jsm/postprocessing/SavePass.js +2 -4
- package/examples/jsm/postprocessing/ShaderPass.js +1 -1
- package/examples/jsm/postprocessing/TAARenderPass.js +1 -1
- package/examples/jsm/postprocessing/TexturePass.js +1 -1
- package/examples/jsm/postprocessing/UnrealBloomPass.js +1 -1
- package/examples/jsm/renderers/CSS2DRenderer.js +5 -4
- package/examples/jsm/renderers/CSS3DRenderer.js +5 -4
- package/examples/jsm/renderers/nodes/Nodes.js +17 -13
- package/examples/jsm/renderers/nodes/ShaderNode.js +229 -49
- package/examples/jsm/renderers/nodes/accessors/MaterialNode.js +6 -6
- package/examples/jsm/renderers/nodes/accessors/ModelViewProjectionNode.js +5 -5
- package/examples/jsm/renderers/nodes/accessors/NormalNode.js +14 -3
- package/examples/jsm/renderers/nodes/accessors/PointUVNode.js +3 -3
- package/examples/jsm/renderers/nodes/accessors/PositionNode.js +15 -5
- package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +107 -0
- package/examples/jsm/renderers/nodes/accessors/UVNode.js +7 -5
- package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +3 -3
- package/examples/jsm/renderers/nodes/core/AttributeNode.js +6 -0
- package/examples/jsm/renderers/nodes/core/BypassNode.js +38 -0
- package/examples/jsm/renderers/nodes/core/CodeNode.js +3 -3
- package/examples/jsm/renderers/nodes/core/ContextNode.js +4 -19
- package/examples/jsm/renderers/nodes/core/ExpressionNode.js +13 -2
- package/examples/jsm/renderers/nodes/core/FunctionNode.js +19 -132
- package/examples/jsm/renderers/nodes/core/InputNode.js +13 -3
- package/examples/jsm/renderers/nodes/core/Node.js +32 -10
- package/examples/jsm/renderers/nodes/core/NodeBuilder.js +146 -128
- package/examples/jsm/renderers/nodes/core/NodeFunction.js +22 -0
- package/examples/jsm/renderers/nodes/core/NodeFunctionInput.js +4 -4
- package/examples/jsm/renderers/nodes/core/NodeKeywords.js +18 -179
- package/examples/jsm/renderers/nodes/core/NodeParser.js +11 -0
- package/examples/jsm/renderers/nodes/core/NodeVar.js +2 -2
- package/examples/jsm/renderers/nodes/core/PropertyNode.js +14 -2
- package/examples/jsm/renderers/nodes/core/TempNode.js +10 -13
- package/examples/jsm/renderers/nodes/core/VarNode.js +12 -7
- package/examples/jsm/renderers/nodes/core/VaryNode.js +23 -8
- package/examples/jsm/renderers/nodes/core/constants.js +2 -0
- package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +43 -63
- package/examples/jsm/renderers/nodes/display/NormalMapNode.js +21 -22
- package/examples/jsm/renderers/nodes/functions/BSDFs.js +64 -101
- package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +27 -0
- package/examples/jsm/renderers/nodes/inputs/BufferNode.js +25 -0
- package/examples/jsm/renderers/nodes/inputs/IntNode.js +17 -0
- package/examples/jsm/renderers/nodes/inputs/TextureNode.js +13 -10
- package/examples/jsm/renderers/nodes/lights/LightContextNode.js +20 -14
- package/examples/jsm/renderers/nodes/lights/LightNode.js +32 -36
- package/examples/jsm/renderers/nodes/math/CondNode.js +60 -0
- package/examples/jsm/renderers/nodes/math/MathNode.js +91 -37
- package/examples/jsm/renderers/nodes/math/OperatorNode.js +124 -31
- package/examples/jsm/renderers/nodes/parsers/GLSLNodeFunction.js +137 -0
- package/examples/jsm/renderers/nodes/parsers/GLSLNodeParser.js +14 -0
- package/examples/jsm/renderers/nodes/parsers/WGSLNodeFunction.js +89 -0
- package/examples/jsm/renderers/nodes/parsers/WGSLNodeParser.js +14 -0
- package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +7 -9
- package/examples/jsm/renderers/nodes/utils/ArrayElementNode.js +31 -0
- package/examples/jsm/renderers/nodes/utils/ConvertNode.js +33 -0
- package/examples/jsm/renderers/nodes/utils/JoinNode.js +7 -7
- package/examples/jsm/renderers/nodes/utils/OscNode.js +58 -0
- package/examples/jsm/renderers/nodes/utils/SplitNode.js +18 -8
- package/examples/jsm/renderers/nodes/utils/SpriteSheetUVNode.js +7 -7
- package/examples/jsm/renderers/nodes/utils/TimerNode.js +1 -1
- package/examples/jsm/renderers/webgl/nodes/SlotNode.js +22 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +192 -95
- package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +2 -2
- package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUBindings.js +10 -9
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +2 -4
- package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +2 -4
- package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +15 -23
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +44 -65
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +13 -31
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +61 -28
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +35 -29
- package/examples/jsm/renderers/webgpu/constants.js +2 -2
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +459 -95
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
- package/examples/jsm/shaders/ConvolutionShader.js +0 -1
- package/examples/jsm/shaders/DigitalGlitch.js +3 -3
- package/examples/jsm/shaders/FXAAShader.js +1 -1
- package/examples/jsm/shaders/FilmShader.js +1 -1
- package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
- package/examples/jsm/shaders/HorizontalBlurShader.js +1 -2
- package/examples/jsm/shaders/MMDToonShader.js +0 -1
- package/examples/jsm/shaders/SSAOShader.js +1 -1
- package/examples/jsm/shaders/SSRShader.js +1 -1
- package/examples/jsm/shaders/SSRrShader.js +1 -1
- package/examples/jsm/shaders/VerticalBlurShader.js +1 -2
- package/examples/jsm/utils/GeometryUtils.js +1 -1
- package/examples/jsm/utils/LDrawUtils.js +195 -0
- package/examples/jsm/utils/WorkerPool.js +11 -11
- package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
- package/examples/jsm/webxr/VRButton.js +24 -0
- package/examples/jsm/webxr/XREstimatedLight.js +2 -0
- package/package.json +27 -18
- package/src/Three.Legacy.js +18 -0
- package/src/Three.js +1 -3
- package/src/animation/AnimationMixer.js +1 -0
- package/src/cameras/CubeCamera.js +2 -0
- package/src/cameras/StereoCamera.js +8 -7
- package/src/constants.js +3 -23
- package/src/core/Layers.js +7 -1
- package/src/core/Object3D.js +3 -1
- package/src/extras/ImageUtils.js +63 -0
- package/src/extras/PMREMGenerator.js +49 -185
- package/src/extras/core/Interpolations.js +1 -1
- package/src/geometries/LatheGeometry.js +70 -47
- package/src/helpers/CameraHelper.js +1 -1
- package/src/loaders/FileLoader.js +98 -144
- package/src/loaders/ImageLoader.js +9 -4
- package/src/loaders/LoaderUtils.js +26 -0
- package/src/loaders/MaterialLoader.js +8 -5
- package/src/loaders/ObjectLoader.js +2 -0
- package/src/materials/Material.js +8 -8
- package/src/materials/MeshPhysicalMaterial.js +20 -14
- package/src/math/Color.js +1 -39
- package/src/math/MathUtils.js +5 -16
- package/src/math/Quaternion.js +1 -1
- package/src/math/Ray.js +2 -2
- package/src/math/Sphere.js +10 -1
- package/src/objects/Skeleton.js +1 -0
- package/src/renderers/WebGLCubeRenderTarget.js +0 -2
- package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
- package/src/renderers/WebGLRenderer.js +106 -199
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +2 -24
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -78
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -2
- package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +19 -6
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +28 -2
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +10 -3
- package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +1 -2
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +9 -8
- package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -3
- package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -3
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -1
- package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -2
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +23 -5
- package/src/renderers/shaders/ShaderLib/vsm.glsl.js +2 -1
- package/src/renderers/shaders/ShaderLib.js +8 -6
- package/src/renderers/shaders/UniformsLib.js +1 -2
- package/src/renderers/webgl/WebGLCapabilities.js +0 -2
- package/src/renderers/webgl/WebGLCubeMaps.js +0 -4
- package/src/renderers/webgl/WebGLCubeUVMaps.js +29 -16
- package/src/renderers/webgl/WebGLExtensions.js +1 -0
- package/src/renderers/webgl/WebGLMaterials.js +27 -15
- package/src/renderers/webgl/WebGLMorphtargets.js +13 -0
- package/src/renderers/webgl/WebGLProgram.js +12 -37
- package/src/renderers/webgl/WebGLPrograms.js +192 -70
- package/src/renderers/webgl/WebGLRenderLists.js +4 -14
- package/src/renderers/webgl/WebGLShaderCache.js +120 -0
- package/src/renderers/webgl/WebGLShadowMap.js +14 -5
- package/src/renderers/webgl/WebGLState.js +157 -17
- package/src/renderers/webgl/WebGLTextures.js +442 -83
- package/src/renderers/webgl/WebGLUniforms.js +45 -1
- package/src/renderers/webgl/WebGLUtils.js +86 -28
- package/src/renderers/webxr/WebXRManager.js +77 -109
- package/src/scenes/Scene.js +1 -1
- package/src/textures/DataTexture.js +0 -2
- package/src/textures/DataTexture2DArray.js +0 -2
- package/src/textures/DataTexture3D.js +0 -2
- package/src/textures/FramebufferTexture.js +25 -0
- package/src/textures/Texture.js +8 -1
- package/src/textures/VideoTexture.js +1 -3
- package/examples/js/WebGL.js +0 -90
- package/examples/js/controls/DeviceOrientationControls.js +0 -147
- package/examples/js/libs/dat.gui.min.js +0 -14
- package/examples/js/utils/RoughnessMipmapper.js +0 -278
- package/examples/jsm/controls/DeviceOrientationControls.js +0 -153
- package/examples/jsm/libs/dat.gui.module.js +0 -3575
- package/examples/jsm/libs/glslang.js +0 -78
- package/examples/jsm/libs/glslang.wasm +0 -0
- package/examples/jsm/renderers/nodes/consts/MathConsts.js +0 -7
- package/examples/jsm/renderers/nodes/core/ConstNode.js +0 -39
- package/examples/jsm/renderers/nodes/core/NodeSlot.js +0 -13
- package/examples/jsm/renderers/nodes/core/StructNode.js +0 -80
- package/examples/jsm/renderers/nodes/core/StructVarNode.js +0 -75
- package/examples/jsm/renderers/nodes/functions/EncodingFunctions.js +0 -99
- package/examples/jsm/renderers/nodes/functions/MathFunctions.js +0 -47
- package/examples/jsm/renderers/webgpu/nodes/ShaderLib.js +0 -152
- package/examples/jsm/utils/RoughnessMipmapper.js +0 -300
- package/src/extras/objects/ImmediateRenderObject.js +0 -31
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
LineBasicMaterial,
|
|
7
7
|
Raycaster,
|
|
8
8
|
Group,
|
|
9
|
-
Object3D,
|
|
10
9
|
Box3,
|
|
11
10
|
Sphere,
|
|
12
11
|
Quaternion,
|
|
13
12
|
Vector2,
|
|
14
13
|
Vector3,
|
|
15
14
|
Matrix4,
|
|
16
|
-
MathUtils
|
|
15
|
+
MathUtils,
|
|
16
|
+
EventDispatcher
|
|
17
17
|
} from 'three';
|
|
18
18
|
|
|
19
19
|
//trackball state
|
|
@@ -64,14 +64,19 @@ const _changeEvent = { type: 'change' };
|
|
|
64
64
|
const _startEvent = { type: 'start' };
|
|
65
65
|
const _endEvent = { type: 'end' };
|
|
66
66
|
|
|
67
|
+
const _raycaster = new Raycaster();
|
|
68
|
+
const _offset = new Vector3();
|
|
67
69
|
|
|
70
|
+
const _gizmoMatrixStateTemp = new Matrix4();
|
|
71
|
+
const _cameraMatrixStateTemp = new Matrix4();
|
|
72
|
+
const _scalePointTemp = new Vector3();
|
|
68
73
|
/**
|
|
69
74
|
*
|
|
70
75
|
* @param {Camera} camera Virtual camera used in the scene
|
|
71
76
|
* @param {HTMLElement} domElement Renderer's dom element
|
|
72
77
|
* @param {Scene} scene The scene to be rendered
|
|
73
78
|
*/
|
|
74
|
-
class ArcballControls extends
|
|
79
|
+
class ArcballControls extends EventDispatcher {
|
|
75
80
|
|
|
76
81
|
constructor( camera, domElement, scene = null ) {
|
|
77
82
|
|
|
@@ -79,6 +84,9 @@ class ArcballControls extends Object3D {
|
|
|
79
84
|
this.camera = null;
|
|
80
85
|
this.domElement = domElement;
|
|
81
86
|
this.scene = scene;
|
|
87
|
+
this.target = new Vector3();
|
|
88
|
+
this._currentTarget = new Vector3();
|
|
89
|
+
this.radiusFactor = 0.67;
|
|
82
90
|
|
|
83
91
|
this.mouseActions = [];
|
|
84
92
|
this._mouseOp = null;
|
|
@@ -204,7 +212,6 @@ class ArcballControls extends Object3D {
|
|
|
204
212
|
this.maxZoom = Infinity;
|
|
205
213
|
|
|
206
214
|
//trackball parameters
|
|
207
|
-
this._tbCenter = new Vector3( 0, 0, 0 );
|
|
208
215
|
this._tbRadius = 1;
|
|
209
216
|
|
|
210
217
|
//FSA
|
|
@@ -228,7 +235,6 @@ class ArcballControls extends Object3D {
|
|
|
228
235
|
this.domElement.addEventListener( 'pointerdown', this.onPointerDown );
|
|
229
236
|
this.domElement.addEventListener( 'pointercancel', this.onPointerCancel );
|
|
230
237
|
|
|
231
|
-
window.addEventListener( 'keydown', this.onKeyDown );
|
|
232
238
|
window.addEventListener( 'resize', this.onWindowResize );
|
|
233
239
|
|
|
234
240
|
}
|
|
@@ -770,28 +776,6 @@ class ArcballControls extends Object3D {
|
|
|
770
776
|
|
|
771
777
|
};
|
|
772
778
|
|
|
773
|
-
onKeyDown = ( event ) => {
|
|
774
|
-
|
|
775
|
-
if ( event.key == 'c' ) {
|
|
776
|
-
|
|
777
|
-
if ( event.ctrlKey || event.metaKey ) {
|
|
778
|
-
|
|
779
|
-
this.copyState();
|
|
780
|
-
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
} else if ( event.key == 'v' ) {
|
|
784
|
-
|
|
785
|
-
if ( event.ctrlKey || event.metaKey ) {
|
|
786
|
-
|
|
787
|
-
this.pasteState();
|
|
788
|
-
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
}
|
|
792
|
-
|
|
793
|
-
};
|
|
794
|
-
|
|
795
779
|
onSinglePanStart = ( event, operation ) => {
|
|
796
780
|
|
|
797
781
|
if ( this.enabled ) {
|
|
@@ -1130,8 +1114,8 @@ class ArcballControls extends Object3D {
|
|
|
1130
1114
|
this.applyTransformMatrix( this.scale( size, this._v3_2, false ) );
|
|
1131
1115
|
|
|
1132
1116
|
//adjusting distance
|
|
1133
|
-
|
|
1134
|
-
this._m4_1.makeTranslation(
|
|
1117
|
+
_offset.copy( this._gizmos.position ).sub( this.camera.position ).normalize().multiplyScalar( newDistance / x );
|
|
1118
|
+
this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z );
|
|
1135
1119
|
|
|
1136
1120
|
}
|
|
1137
1121
|
|
|
@@ -1540,8 +1524,8 @@ class ArcballControls extends Object3D {
|
|
|
1540
1524
|
this.applyTransformMatrix( this.scale( size, this._v3_2, false ) );
|
|
1541
1525
|
|
|
1542
1526
|
//adjusting distance
|
|
1543
|
-
|
|
1544
|
-
this._m4_1.makeTranslation(
|
|
1527
|
+
_offset.copy( this._gizmos.position ).sub( this.camera.position ).normalize().multiplyScalar( newDistance / x );
|
|
1528
|
+
this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z );
|
|
1545
1529
|
|
|
1546
1530
|
this.dispatchEvent( _changeEvent );
|
|
1547
1531
|
|
|
@@ -1974,18 +1958,17 @@ class ArcballControls extends Object3D {
|
|
|
1974
1958
|
*/
|
|
1975
1959
|
calculateTbRadius = ( camera ) => {
|
|
1976
1960
|
|
|
1977
|
-
const factor = 0.67;
|
|
1978
1961
|
const distance = camera.position.distanceTo( this._gizmos.position );
|
|
1979
1962
|
|
|
1980
1963
|
if ( camera.type == 'PerspectiveCamera' ) {
|
|
1981
1964
|
|
|
1982
1965
|
const halfFovV = MathUtils.DEG2RAD * camera.fov * 0.5; //vertical fov/2 in radians
|
|
1983
1966
|
const halfFovH = Math.atan( ( camera.aspect ) * Math.tan( halfFovV ) ); //horizontal fov/2 in radians
|
|
1984
|
-
return Math.tan( Math.min( halfFovV, halfFovH ) ) * distance *
|
|
1967
|
+
return Math.tan( Math.min( halfFovV, halfFovH ) ) * distance * this.radiusFactor;
|
|
1985
1968
|
|
|
1986
1969
|
} else if ( camera.type == 'OrthographicCamera' ) {
|
|
1987
1970
|
|
|
1988
|
-
return Math.min( camera.top, camera.right ) *
|
|
1971
|
+
return Math.min( camera.top, camera.right ) * this.radiusFactor;
|
|
1989
1972
|
|
|
1990
1973
|
}
|
|
1991
1974
|
|
|
@@ -1999,17 +1982,15 @@ class ArcballControls extends Object3D {
|
|
|
1999
1982
|
*/
|
|
2000
1983
|
focus = ( point, size, amount = 1 ) => {
|
|
2001
1984
|
|
|
2002
|
-
const focusPoint = point.clone();
|
|
2003
|
-
|
|
2004
1985
|
//move center of camera (along with gizmos) towards point of interest
|
|
2005
|
-
|
|
2006
|
-
this._translationMatrix.makeTranslation(
|
|
1986
|
+
_offset.copy( point ).sub( this._gizmos.position ).multiplyScalar( amount );
|
|
1987
|
+
this._translationMatrix.makeTranslation( _offset.x, _offset.y, _offset.z );
|
|
2007
1988
|
|
|
2008
|
-
|
|
1989
|
+
_gizmoMatrixStateTemp.copy( this._gizmoMatrixState );
|
|
2009
1990
|
this._gizmoMatrixState.premultiply( this._translationMatrix );
|
|
2010
1991
|
this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale );
|
|
2011
1992
|
|
|
2012
|
-
|
|
1993
|
+
_cameraMatrixStateTemp.copy( this._cameraMatrixState );
|
|
2013
1994
|
this._cameraMatrixState.premultiply( this._translationMatrix );
|
|
2014
1995
|
this._cameraMatrixState.decompose( this.camera.position, this.camera.quaternion, this.camera.scale );
|
|
2015
1996
|
|
|
@@ -2020,8 +2001,8 @@ class ArcballControls extends Object3D {
|
|
|
2020
2001
|
|
|
2021
2002
|
}
|
|
2022
2003
|
|
|
2023
|
-
this._gizmoMatrixState.copy(
|
|
2024
|
-
this._cameraMatrixState.copy(
|
|
2004
|
+
this._gizmoMatrixState.copy( _gizmoMatrixStateTemp );
|
|
2005
|
+
this._cameraMatrixState.copy( _cameraMatrixStateTemp );
|
|
2025
2006
|
|
|
2026
2007
|
};
|
|
2027
2008
|
|
|
@@ -2097,9 +2078,8 @@ class ArcballControls extends Object3D {
|
|
|
2097
2078
|
window.removeEventListener( 'pointerup', this.onPointerUp );
|
|
2098
2079
|
|
|
2099
2080
|
window.removeEventListener( 'resize', this.onWindowResize );
|
|
2100
|
-
window.addEventListener( 'keydown', this.onKeyDown );
|
|
2101
2081
|
|
|
2102
|
-
this.scene.remove( this._gizmos );
|
|
2082
|
+
if ( this.scene !== null ) this.scene.remove( this._gizmos );
|
|
2103
2083
|
this.disposeGrid();
|
|
2104
2084
|
|
|
2105
2085
|
};
|
|
@@ -2193,7 +2173,7 @@ class ArcballControls extends Object3D {
|
|
|
2193
2173
|
*/
|
|
2194
2174
|
setCamera = ( camera ) => {
|
|
2195
2175
|
|
|
2196
|
-
camera.lookAt( this.
|
|
2176
|
+
camera.lookAt( this.target );
|
|
2197
2177
|
camera.updateMatrix();
|
|
2198
2178
|
|
|
2199
2179
|
//setting state
|
|
@@ -2211,11 +2191,11 @@ class ArcballControls extends Object3D {
|
|
|
2211
2191
|
this._zoomState = this._zoom0;
|
|
2212
2192
|
|
|
2213
2193
|
this._initialNear = camera.near;
|
|
2214
|
-
this._nearPos0 = camera.position.distanceTo( this.
|
|
2194
|
+
this._nearPos0 = camera.position.distanceTo( this.target ) - camera.near;
|
|
2215
2195
|
this._nearPos = this._initialNear;
|
|
2216
2196
|
|
|
2217
2197
|
this._initialFar = camera.far;
|
|
2218
|
-
this._farPos0 = camera.position.distanceTo( this.
|
|
2198
|
+
this._farPos0 = camera.position.distanceTo( this.target ) - camera.far;
|
|
2219
2199
|
this._farPos = this._initialFar;
|
|
2220
2200
|
|
|
2221
2201
|
this._up0.copy( camera.up );
|
|
@@ -2226,7 +2206,7 @@ class ArcballControls extends Object3D {
|
|
|
2226
2206
|
|
|
2227
2207
|
//making gizmos
|
|
2228
2208
|
this._tbRadius = this.calculateTbRadius( camera );
|
|
2229
|
-
this.makeGizmos( this.
|
|
2209
|
+
this.makeGizmos( this.target, this._tbRadius );
|
|
2230
2210
|
|
|
2231
2211
|
};
|
|
2232
2212
|
|
|
@@ -2241,6 +2221,30 @@ class ArcballControls extends Object3D {
|
|
|
2241
2221
|
|
|
2242
2222
|
}
|
|
2243
2223
|
|
|
2224
|
+
/**
|
|
2225
|
+
* Set gizmos radius factor and redraws gizmos
|
|
2226
|
+
* @param {Float} value Value of radius factor
|
|
2227
|
+
*/
|
|
2228
|
+
setTbRadius( value ) {
|
|
2229
|
+
|
|
2230
|
+
this.radiusFactor = value;
|
|
2231
|
+
this._tbRadius = this.calculateTbRadius( this.camera );
|
|
2232
|
+
|
|
2233
|
+
const curve = new EllipseCurve( 0, 0, this._tbRadius, this._tbRadius );
|
|
2234
|
+
const points = curve.getPoints( this._curvePts );
|
|
2235
|
+
const curveGeometry = new BufferGeometry().setFromPoints( points );
|
|
2236
|
+
|
|
2237
|
+
|
|
2238
|
+
for ( const gizmo in this._gizmos.children ) {
|
|
2239
|
+
|
|
2240
|
+
this._gizmos.children[ gizmo ].geometry = curveGeometry;
|
|
2241
|
+
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
this.dispatchEvent( _changeEvent );
|
|
2245
|
+
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2244
2248
|
/**
|
|
2245
2249
|
* Creates the rotation gizmos matching trackball center and radius
|
|
2246
2250
|
* @param {Vector3} tbCenter The trackball center
|
|
@@ -2598,7 +2602,7 @@ class ArcballControls extends Object3D {
|
|
|
2598
2602
|
*/
|
|
2599
2603
|
scale = ( size, point, scaleGizmos = true ) => {
|
|
2600
2604
|
|
|
2601
|
-
|
|
2605
|
+
_scalePointTemp.copy( point );
|
|
2602
2606
|
let sizeInverse = 1 / size;
|
|
2603
2607
|
|
|
2604
2608
|
if ( this.camera.isOrthographicCamera ) {
|
|
@@ -2633,12 +2637,12 @@ class ArcballControls extends Object3D {
|
|
|
2633
2637
|
|
|
2634
2638
|
|
|
2635
2639
|
//move camera and gizmos to obtain pinch effect
|
|
2636
|
-
|
|
2640
|
+
_scalePointTemp.sub( this._v3_1 );
|
|
2637
2641
|
|
|
2638
|
-
const amount =
|
|
2639
|
-
|
|
2642
|
+
const amount = _scalePointTemp.clone().multiplyScalar( sizeInverse );
|
|
2643
|
+
_scalePointTemp.sub( amount );
|
|
2640
2644
|
|
|
2641
|
-
this._m4_1.makeTranslation(
|
|
2645
|
+
this._m4_1.makeTranslation( _scalePointTemp.x, _scalePointTemp.y, _scalePointTemp.z );
|
|
2642
2646
|
this._m4_2.premultiply( this._m4_1 );
|
|
2643
2647
|
|
|
2644
2648
|
this.setTransformationMatrices( this._m4_1, this._m4_2 );
|
|
@@ -2650,7 +2654,7 @@ class ArcballControls extends Object3D {
|
|
|
2650
2654
|
this._v3_2.setFromMatrixPosition( this._gizmoMatrixState );
|
|
2651
2655
|
|
|
2652
2656
|
//move camera
|
|
2653
|
-
let distance = this._v3_1.distanceTo(
|
|
2657
|
+
let distance = this._v3_1.distanceTo( _scalePointTemp );
|
|
2654
2658
|
let amount = distance - ( distance * sizeInverse );
|
|
2655
2659
|
|
|
2656
2660
|
//check min and max distance
|
|
@@ -2667,9 +2671,9 @@ class ArcballControls extends Object3D {
|
|
|
2667
2671
|
|
|
2668
2672
|
}
|
|
2669
2673
|
|
|
2670
|
-
|
|
2674
|
+
_offset.copy( _scalePointTemp ).sub( this._v3_1 ).normalize().multiplyScalar( amount );
|
|
2671
2675
|
|
|
2672
|
-
this._m4_1.makeTranslation(
|
|
2676
|
+
this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z );
|
|
2673
2677
|
|
|
2674
2678
|
|
|
2675
2679
|
if ( scaleGizmos ) {
|
|
@@ -2677,14 +2681,14 @@ class ArcballControls extends Object3D {
|
|
|
2677
2681
|
//scale gizmos so they appear in the same spot having the same dimension
|
|
2678
2682
|
const pos = this._v3_2;
|
|
2679
2683
|
|
|
2680
|
-
distance = pos.distanceTo(
|
|
2684
|
+
distance = pos.distanceTo( _scalePointTemp );
|
|
2681
2685
|
amount = distance - ( distance * sizeInverse );
|
|
2682
|
-
|
|
2686
|
+
_offset.copy( _scalePointTemp ).sub( this._v3_2 ).normalize().multiplyScalar( amount );
|
|
2683
2687
|
|
|
2684
2688
|
this._translationMatrix.makeTranslation( pos.x, pos.y, pos.z );
|
|
2685
2689
|
this._scaleMatrix.makeScale( sizeInverse, sizeInverse, sizeInverse );
|
|
2686
2690
|
|
|
2687
|
-
this._m4_2.makeTranslation(
|
|
2691
|
+
this._m4_2.makeTranslation( _offset.x, _offset.y, _offset.z ).multiply( this._translationMatrix );
|
|
2688
2692
|
this._m4_2.multiply( this._scaleMatrix );
|
|
2689
2693
|
|
|
2690
2694
|
this._translationMatrix.makeTranslation( - pos.x, - pos.y, - pos.z );
|
|
@@ -2720,23 +2724,6 @@ class ArcballControls extends Object3D {
|
|
|
2720
2724
|
|
|
2721
2725
|
};
|
|
2722
2726
|
|
|
2723
|
-
/**
|
|
2724
|
-
* Set the trackball's center point
|
|
2725
|
-
* @param {Number} x X coordinate
|
|
2726
|
-
* @param {Number} y Y coordinate
|
|
2727
|
-
* @param {Number} z Z coordinate
|
|
2728
|
-
*/
|
|
2729
|
-
setTarget = ( x, y, z ) => {
|
|
2730
|
-
|
|
2731
|
-
this._tbCenter.set( x, y, z );
|
|
2732
|
-
this._gizmos.position.set( x, y, z ); //for correct radius calculation
|
|
2733
|
-
this._tbRadius = this.calculateTbRadius( this.camera );
|
|
2734
|
-
|
|
2735
|
-
this.makeGizmos( this._tbCenter, this._tbRadius );
|
|
2736
|
-
this.camera.lookAt( this._tbCenter );
|
|
2737
|
-
|
|
2738
|
-
};
|
|
2739
|
-
|
|
2740
2727
|
/**
|
|
2741
2728
|
* Set values in transformation object
|
|
2742
2729
|
* @param {Matrix4} camera Transformation to be applied to the camera
|
|
@@ -2809,6 +2796,13 @@ class ArcballControls extends Object3D {
|
|
|
2809
2796
|
};
|
|
2810
2797
|
|
|
2811
2798
|
|
|
2799
|
+
getRaycaster() {
|
|
2800
|
+
|
|
2801
|
+
return _raycaster;
|
|
2802
|
+
|
|
2803
|
+
}
|
|
2804
|
+
|
|
2805
|
+
|
|
2812
2806
|
/**
|
|
2813
2807
|
* Unproject the cursor on the 3D object surface
|
|
2814
2808
|
* @param {Vector2} cursor Cursor coordinates in NDC
|
|
@@ -2817,7 +2811,7 @@ class ArcballControls extends Object3D {
|
|
|
2817
2811
|
*/
|
|
2818
2812
|
unprojectOnObj = ( cursor, camera ) => {
|
|
2819
2813
|
|
|
2820
|
-
const raycaster =
|
|
2814
|
+
const raycaster = this.getRaycaster();
|
|
2821
2815
|
raycaster.near = camera.near;
|
|
2822
2816
|
raycaster.far = camera.far;
|
|
2823
2817
|
raycaster.setFromCamera( cursor, camera );
|
|
@@ -3091,6 +3085,15 @@ class ArcballControls extends Object3D {
|
|
|
3091
3085
|
|
|
3092
3086
|
const EPS = 0.000001;
|
|
3093
3087
|
|
|
3088
|
+
if ( this.target.equals( this._currentTarget ) === false ) {
|
|
3089
|
+
|
|
3090
|
+
this._gizmos.position.copy( this.target ); //for correct radius calculation
|
|
3091
|
+
this._tbRadius = this.calculateTbRadius( this.camera );
|
|
3092
|
+
this.makeGizmos( this.target, this._tbRadius );
|
|
3093
|
+
this._currentTarget.copy( this.target );
|
|
3094
|
+
|
|
3095
|
+
}
|
|
3096
|
+
|
|
3094
3097
|
//check min/max parameters
|
|
3095
3098
|
if ( this.camera.isOrthographicCamera ) {
|
|
3096
3099
|
|
|
@@ -64,6 +64,12 @@ class DragControls extends EventDispatcher {
|
|
|
64
64
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
function getRaycaster() {
|
|
68
|
+
|
|
69
|
+
return _raycaster;
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
|
|
67
73
|
function onPointerMove( event ) {
|
|
68
74
|
|
|
69
75
|
if ( scope.enabled === false ) return;
|
|
@@ -205,6 +211,7 @@ class DragControls extends EventDispatcher {
|
|
|
205
211
|
this.deactivate = deactivate;
|
|
206
212
|
this.dispose = dispose;
|
|
207
213
|
this.getObjects = getObjects;
|
|
214
|
+
this.getRaycaster = getRaycaster;
|
|
208
215
|
|
|
209
216
|
}
|
|
210
217
|
|
|
@@ -581,12 +581,6 @@ class OrbitControls extends EventDispatcher {
|
|
|
581
581
|
|
|
582
582
|
}
|
|
583
583
|
|
|
584
|
-
function handleMouseUp( /*event*/ ) {
|
|
585
|
-
|
|
586
|
-
// no-op
|
|
587
|
-
|
|
588
|
-
}
|
|
589
|
-
|
|
590
584
|
function handleMouseWheel( event ) {
|
|
591
585
|
|
|
592
586
|
if ( event.deltaY < 0 ) {
|
|
@@ -793,12 +787,6 @@ class OrbitControls extends EventDispatcher {
|
|
|
793
787
|
|
|
794
788
|
}
|
|
795
789
|
|
|
796
|
-
function handleTouchEnd( /*event*/ ) {
|
|
797
|
-
|
|
798
|
-
// no-op
|
|
799
|
-
|
|
800
|
-
}
|
|
801
|
-
|
|
802
790
|
//
|
|
803
791
|
// event handlers - FSM: listen for events and reset state
|
|
804
792
|
//
|
|
@@ -850,30 +838,20 @@ class OrbitControls extends EventDispatcher {
|
|
|
850
838
|
|
|
851
839
|
function onPointerUp( event ) {
|
|
852
840
|
|
|
853
|
-
|
|
841
|
+
removePointer( event );
|
|
854
842
|
|
|
855
|
-
|
|
843
|
+
if ( pointers.length === 0 ) {
|
|
856
844
|
|
|
857
|
-
|
|
845
|
+
scope.domElement.releasePointerCapture( event.pointerId );
|
|
858
846
|
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
onMouseUp( event );
|
|
847
|
+
scope.domElement.removeEventListener( 'pointermove', onPointerMove );
|
|
848
|
+
scope.domElement.removeEventListener( 'pointerup', onPointerUp );
|
|
862
849
|
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
removePointer( event );
|
|
866
|
-
|
|
867
|
-
//
|
|
868
|
-
|
|
869
|
-
if ( pointers.length === 0 ) {
|
|
850
|
+
}
|
|
870
851
|
|
|
871
|
-
|
|
852
|
+
scope.dispatchEvent( _endEvent );
|
|
872
853
|
|
|
873
|
-
|
|
874
|
-
scope.domElement.removeEventListener( 'pointerup', onPointerUp );
|
|
875
|
-
|
|
876
|
-
}
|
|
854
|
+
state = STATE.NONE;
|
|
877
855
|
|
|
878
856
|
}
|
|
879
857
|
|
|
@@ -1014,19 +992,9 @@ class OrbitControls extends EventDispatcher {
|
|
|
1014
992
|
|
|
1015
993
|
}
|
|
1016
994
|
|
|
1017
|
-
function onMouseUp( event ) {
|
|
1018
|
-
|
|
1019
|
-
handleMouseUp( event );
|
|
1020
|
-
|
|
1021
|
-
scope.dispatchEvent( _endEvent );
|
|
1022
|
-
|
|
1023
|
-
state = STATE.NONE;
|
|
1024
|
-
|
|
1025
|
-
}
|
|
1026
|
-
|
|
1027
995
|
function onMouseWheel( event ) {
|
|
1028
996
|
|
|
1029
|
-
if ( scope.enabled === false || scope.enableZoom === false ||
|
|
997
|
+
if ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return;
|
|
1030
998
|
|
|
1031
999
|
event.preventDefault();
|
|
1032
1000
|
|
|
@@ -1184,16 +1152,6 @@ class OrbitControls extends EventDispatcher {
|
|
|
1184
1152
|
|
|
1185
1153
|
}
|
|
1186
1154
|
|
|
1187
|
-
function onTouchEnd( event ) {
|
|
1188
|
-
|
|
1189
|
-
handleTouchEnd( event );
|
|
1190
|
-
|
|
1191
|
-
scope.dispatchEvent( _endEvent );
|
|
1192
|
-
|
|
1193
|
-
state = STATE.NONE;
|
|
1194
|
-
|
|
1195
|
-
}
|
|
1196
|
-
|
|
1197
1155
|
function onContextMenu( event ) {
|
|
1198
1156
|
|
|
1199
1157
|
if ( scope.enabled === false ) return;
|
|
@@ -564,6 +564,25 @@ class TransformControls extends Object3D {
|
|
|
564
564
|
|
|
565
565
|
}
|
|
566
566
|
|
|
567
|
+
reset() {
|
|
568
|
+
|
|
569
|
+
if ( ! this.enabled ) return;
|
|
570
|
+
|
|
571
|
+
if ( this.dragging ) {
|
|
572
|
+
|
|
573
|
+
this.object.position.copy( this._positionStart );
|
|
574
|
+
this.object.quaternion.copy( this._quaternionStart );
|
|
575
|
+
this.object.scale.copy( this._scaleStart );
|
|
576
|
+
|
|
577
|
+
this.dispatchEvent( _changeEvent );
|
|
578
|
+
this.dispatchEvent( _objectChangeEvent );
|
|
579
|
+
|
|
580
|
+
this.pointStart.copy( this.pointEnd );
|
|
581
|
+
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
}
|
|
585
|
+
|
|
567
586
|
getRaycaster() {
|
|
568
587
|
|
|
569
588
|
return _raycaster;
|
|
@@ -669,7 +688,11 @@ function onPointerDown( event ) {
|
|
|
669
688
|
|
|
670
689
|
if ( ! this.enabled ) return;
|
|
671
690
|
|
|
672
|
-
|
|
691
|
+
if ( ! document.pointerLockElement ) {
|
|
692
|
+
|
|
693
|
+
this.domElement.setPointerCapture( event.pointerId );
|
|
694
|
+
|
|
695
|
+
}
|
|
673
696
|
|
|
674
697
|
this.domElement.addEventListener( 'pointermove', this._onPointerMove );
|
|
675
698
|
|
package/examples/jsm/csm/CSM.js
CHANGED
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
Matrix4,
|
|
8
8
|
Box3
|
|
9
9
|
} from 'three';
|
|
10
|
-
import {
|
|
10
|
+
import { CSMFrustum } from './CSMFrustum.js';
|
|
11
11
|
import { CSMShader } from './CSMShader.js';
|
|
12
12
|
|
|
13
13
|
const _cameraToLightMatrix = new Matrix4();
|
|
14
|
-
const _lightSpaceFrustum = new
|
|
14
|
+
const _lightSpaceFrustum = new CSMFrustum();
|
|
15
15
|
const _center = new Vector3();
|
|
16
16
|
const _bbox = new Box3();
|
|
17
17
|
const _uniformArray = [];
|
|
@@ -37,7 +37,7 @@ export class CSM {
|
|
|
37
37
|
this.lightMargin = data.lightMargin || 200;
|
|
38
38
|
this.customSplitsCallback = data.customSplitsCallback;
|
|
39
39
|
this.fade = false;
|
|
40
|
-
this.mainFrustum = new
|
|
40
|
+
this.mainFrustum = new CSMFrustum();
|
|
41
41
|
this.frustums = [];
|
|
42
42
|
this.breaks = [];
|
|
43
43
|
|
|
@@ -2,7 +2,7 @@ import { Vector3, Matrix4 } from 'three';
|
|
|
2
2
|
|
|
3
3
|
const inverseProjectionMatrix = new Matrix4();
|
|
4
4
|
|
|
5
|
-
class
|
|
5
|
+
class CSMFrustum {
|
|
6
6
|
|
|
7
7
|
constructor( data ) {
|
|
8
8
|
|
|
@@ -81,7 +81,7 @@ class Frustum {
|
|
|
81
81
|
|
|
82
82
|
while ( breaks.length > target.length ) {
|
|
83
83
|
|
|
84
|
-
target.push( new
|
|
84
|
+
target.push( new CSMFrustum() );
|
|
85
85
|
|
|
86
86
|
}
|
|
87
87
|
|
|
@@ -149,4 +149,4 @@ class Frustum {
|
|
|
149
149
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
export {
|
|
152
|
+
export { CSMFrustum };
|
|
@@ -8,9 +8,7 @@ import {
|
|
|
8
8
|
*
|
|
9
9
|
* Formulas collected from various sources
|
|
10
10
|
* http://mathworld.wolfram.com/HeartCurve.html
|
|
11
|
-
* http://mathdl.maa.org/images/upload_library/23/stemkoski/knots/page6.html
|
|
12
11
|
* http://en.wikipedia.org/wiki/Viviani%27s_curve
|
|
13
|
-
* http://mathdl.maa.org/images/upload_library/23/stemkoski/knots/page4.html
|
|
14
12
|
* http://www.mi.sanu.ac.rs/vismath/taylorapril2011/Taylor.pdf
|
|
15
13
|
* https://prideout.net/blog/old/blog/index.html@p=44.html
|
|
16
14
|
*/
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Ascii generation is based on
|
|
3
|
-
* Maybe more about this later with a blog post at http://lab4games.net/zz85/blog
|
|
2
|
+
* Ascii generation is based on https://github.com/hassadee/jsascii/blob/master/jsascii.js
|
|
4
3
|
*
|
|
5
4
|
* 16 April 2012 - @blurspline
|
|
6
5
|
*/
|
|
@@ -57,13 +56,7 @@ class AsciiEffect {
|
|
|
57
56
|
this.domElement = domElement;
|
|
58
57
|
|
|
59
58
|
|
|
60
|
-
// Throw in ascii library from
|
|
61
|
-
|
|
62
|
-
/*
|
|
63
|
-
* jsAscii 0.1
|
|
64
|
-
* Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/
|
|
65
|
-
* MIT License [http://www.nihilogic.dk/licenses/mit-license.txt]
|
|
66
|
-
*/
|
|
59
|
+
// Throw in ascii library from https://github.com/hassadee/jsascii/blob/master/jsascii.js (MIT License)
|
|
67
60
|
|
|
68
61
|
function initAsciiSize() {
|
|
69
62
|
|