super-three 0.169.1 → 0.170.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/three.cjs +24628 -24228
- package/build/three.core.js +37002 -0
- package/build/three.core.min.js +6 -0
- package/build/three.module.js +10519 -47108
- package/build/three.module.min.js +1 -1
- package/build/three.tsl.js +533 -0
- package/build/three.tsl.min.js +6 -0
- package/build/three.webgpu.js +17071 -53583
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +17134 -53623
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/Addons.js +3 -3
- package/examples/jsm/animation/MMDAnimationHelper.js +2 -0
- package/examples/jsm/animation/MMDPhysics.js +2 -0
- package/examples/jsm/capabilities/WebGPU.js +1 -10
- package/examples/jsm/controls/ArcballControls.js +25 -21
- package/examples/jsm/controls/OrbitControls.js +41 -9
- package/examples/jsm/controls/PointerLockControls.js +2 -5
- package/examples/jsm/controls/TransformControls.js +22 -6
- package/examples/jsm/csm/CSM.js +2 -2
- package/examples/jsm/csm/CSMFrustum.js +7 -4
- package/examples/jsm/csm/CSMHelper.js +2 -0
- package/examples/jsm/csm/CSMShadowNode.js +437 -0
- package/examples/jsm/curves/NURBSCurve.js +34 -3
- package/examples/jsm/exporters/GLTFExporter.js +138 -71
- package/examples/jsm/exporters/KTX2Exporter.js +35 -12
- package/examples/jsm/exporters/MMDExporter.js +6 -0
- package/examples/jsm/exporters/USDZExporter.js +21 -3
- package/examples/jsm/geometries/DecalGeometry.js +70 -21
- package/examples/jsm/geometries/InstancedPointsGeometry.js +2 -0
- package/examples/jsm/helpers/TextureHelperGPU.js +175 -0
- package/examples/jsm/interactive/HTMLMesh.js +1 -0
- package/examples/jsm/lighting/TiledLighting.js +18 -0
- package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
- package/examples/jsm/lines/LineGeometry.js +25 -0
- package/examples/jsm/lines/LineMaterial.js +0 -1
- package/examples/jsm/lines/LineSegmentsGeometry.js +2 -0
- package/examples/jsm/lines/webgpu/Line2.js +2 -1
- package/examples/jsm/lines/webgpu/LineSegments2.js +2 -16
- package/examples/jsm/lines/webgpu/Wireframe.js +57 -0
- package/examples/jsm/loaders/3DMLoader.js +1 -0
- package/examples/jsm/loaders/3MFLoader.js +91 -0
- package/examples/jsm/loaders/FBXLoader.js +12 -2
- package/examples/jsm/loaders/GLTFLoader.js +2 -0
- package/examples/jsm/loaders/KTX2Loader.js +143 -49
- package/examples/jsm/loaders/LDrawLoader.js +22 -136
- package/examples/jsm/loaders/LottieLoader.js +1 -0
- package/examples/jsm/loaders/MMDLoader.js +3 -0
- package/examples/jsm/loaders/MaterialXLoader.js +2 -2
- package/examples/jsm/materials/LDrawConditionalLineMaterial.js +143 -0
- package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +114 -0
- package/examples/jsm/math/ColorSpaces.js +76 -0
- package/examples/jsm/misc/ProgressiveLightMap.js +52 -40
- package/examples/jsm/misc/ProgressiveLightMapGPU.js +293 -0
- package/examples/jsm/misc/VolumeSlice.js +1 -0
- package/examples/jsm/objects/InstancedPoints.js +2 -4
- package/examples/jsm/objects/LensflareMesh.js +4 -2
- package/examples/jsm/objects/SkyMesh.js +5 -3
- package/examples/jsm/objects/Water2Mesh.js +7 -3
- package/examples/jsm/objects/WaterMesh.js +12 -10
- package/examples/jsm/postprocessing/AfterimagePass.js +14 -3
- package/examples/jsm/postprocessing/SSRPass.js +6 -0
- package/examples/jsm/renderers/CSS2DRenderer.js +6 -3
- package/examples/jsm/renderers/CSS3DRenderer.js +7 -4
- package/examples/jsm/shaders/FXAAShader.js +225 -224
- package/examples/jsm/transpiler/AST.js +2 -2
- package/examples/jsm/transpiler/GLSLDecoder.js +57 -25
- package/examples/jsm/transpiler/ShaderToyDecoder.js +1 -1
- package/examples/jsm/transpiler/TSLEncoder.js +11 -6
- package/{src/nodes → examples/jsm/tsl}/display/AfterImageNode.js +18 -21
- package/{src/nodes → examples/jsm/tsl}/display/AnaglyphPassNode.js +2 -6
- package/{src/nodes → examples/jsm/tsl}/display/AnamorphicNode.js +12 -18
- package/{src/nodes → examples/jsm/tsl}/display/BleachBypass.js +1 -3
- package/{src/nodes → examples/jsm/tsl}/display/BloomNode.js +12 -41
- package/{src/nodes → examples/jsm/tsl}/display/DenoiseNode.js +60 -47
- package/{src/nodes → examples/jsm/tsl}/display/DepthOfFieldNode.js +4 -9
- package/{src/nodes → examples/jsm/tsl}/display/DotScreenNode.js +2 -9
- package/examples/jsm/tsl/display/FXAANode.js +316 -0
- package/{src/nodes → examples/jsm/tsl}/display/FilmNode.js +4 -7
- package/{src/nodes → examples/jsm/tsl}/display/GTAONode.js +73 -78
- package/{src/nodes → examples/jsm/tsl}/display/GaussianBlurNode.js +78 -42
- package/examples/jsm/tsl/display/LensflareNode.js +161 -0
- package/{src/nodes → examples/jsm/tsl}/display/Lut3DNode.js +3 -5
- package/{src/nodes → examples/jsm/tsl}/display/MotionBlur.js +2 -3
- package/examples/jsm/tsl/display/OutlineNode.js +434 -0
- package/{src/nodes → examples/jsm/tsl}/display/ParallaxBarrierPassNode.js +2 -5
- package/{src/nodes → examples/jsm/tsl}/display/PixelationPassNode.js +5 -17
- package/{src/nodes → examples/jsm/tsl}/display/RGBShiftNode.js +2 -6
- package/examples/jsm/tsl/display/SMAANode.js +620 -0
- package/{src/nodes → examples/jsm/tsl}/display/SSAAPassNode.js +10 -25
- package/examples/jsm/tsl/display/SSRNode.js +366 -0
- package/{src/nodes → examples/jsm/tsl}/display/Sepia.js +1 -2
- package/{src/nodes → examples/jsm/tsl}/display/SobelOperatorNode.js +4 -12
- package/{src/nodes → examples/jsm/tsl}/display/StereoCompositePassNode.js +9 -11
- package/{src/nodes → examples/jsm/tsl}/display/StereoPassNode.js +10 -11
- package/examples/jsm/tsl/display/TRAAPassNode.js +355 -0
- package/{src/nodes → examples/jsm/tsl}/display/TransitionNode.js +3 -7
- package/examples/jsm/tsl/display/hashBlur.js +24 -0
- package/examples/jsm/tsl/lighting/TiledLightsNode.js +389 -0
- package/examples/jsm/utils/SceneOptimizer.js +410 -0
- package/examples/jsm/utils/UVsDebug.js +1 -1
- package/examples/jsm/utils/{TextureUtilsGPU.js → WebGPUTextureUtils.js} +2 -1
- package/examples/jsm/webxr/OculusHandPointerModel.js +21 -21
- package/examples/jsm/webxr/Text2D.js +6 -6
- package/package.json +4 -4
- package/src/Three.Core.js +178 -0
- package/src/Three.TSL.js +526 -0
- package/src/Three.WebGPU.Nodes.js +9 -186
- package/src/Three.WebGPU.js +8 -186
- package/src/Three.js +1 -177
- package/src/animation/AnimationClip.js +2 -2
- package/src/animation/AnimationObjectGroup.js +2 -2
- package/src/audio/Audio.js +38 -0
- package/src/cameras/PerspectiveCamera.js +6 -6
- package/src/cameras/StereoCamera.js +2 -2
- package/src/constants.js +1 -6
- package/src/core/BufferGeometry.js +48 -8
- package/src/core/InterleavedBuffer.js +4 -4
- package/src/core/Object3D.js +2 -2
- package/src/extras/core/Curve.js +3 -3
- package/src/extras/core/Shape.js +2 -2
- package/src/geometries/CylinderGeometry.js +2 -2
- package/src/geometries/EdgesGeometry.js +2 -2
- package/src/geometries/LatheGeometry.js +2 -2
- package/src/lights/SpotLightShadow.js +2 -2
- package/src/materials/LineDashedMaterial.js +0 -1
- package/src/materials/Material.js +2 -2
- package/src/materials/MeshPhongMaterial.js +1 -1
- package/src/materials/MeshPhysicalMaterial.js +2 -2
- package/src/materials/MeshStandardMaterial.js +2 -2
- package/src/materials/nodes/Line2NodeMaterial.js +32 -13
- package/src/materials/nodes/LineDashedNodeMaterial.js +4 -2
- package/src/materials/nodes/NodeMaterial.js +93 -23
- package/src/materials/nodes/SpriteNodeMaterial.js +11 -2
- package/src/materials/nodes/manager/NodeMaterialObserver.js +119 -7
- package/src/math/ColorManagement.js +143 -102
- package/src/math/Line3.js +2 -2
- package/src/math/Quaternion.js +2 -2
- package/src/math/Spherical.js +3 -3
- package/src/math/Vector2.js +7 -7
- package/src/math/Vector3.js +9 -9
- package/src/math/Vector4.js +22 -9
- package/src/nodes/Nodes.js +2 -21
- package/src/nodes/TSL.js +9 -25
- package/src/nodes/accessors/Arrays.js +27 -0
- package/src/nodes/accessors/BuiltinNode.js +26 -0
- package/src/nodes/accessors/Camera.js +0 -1
- package/src/nodes/accessors/ClippingNode.js +76 -42
- package/src/nodes/accessors/InstanceNode.js +17 -20
- package/src/nodes/accessors/InstancedMeshNode.js +26 -0
- package/src/nodes/accessors/Lights.js +32 -0
- package/src/nodes/accessors/SceneNode.js +35 -1
- package/src/nodes/accessors/StorageBufferNode.js +61 -19
- package/src/nodes/accessors/StorageTextureNode.js +10 -4
- package/src/nodes/accessors/TextureNode.js +1 -1
- package/src/nodes/accessors/VelocityNode.js +13 -3
- package/src/nodes/code/FunctionCallNode.js +16 -5
- package/src/nodes/code/ScriptableNode.js +4 -4
- package/src/nodes/core/Node.js +1 -0
- package/src/nodes/core/NodeBuilder.js +31 -14
- package/src/nodes/core/NodeUtils.js +28 -0
- package/src/nodes/core/VarNode.js +15 -3
- package/src/nodes/core/constants.js +6 -0
- package/src/nodes/display/BlendModes.js +99 -0
- package/src/nodes/display/ColorAdjustment.js +53 -4
- package/src/nodes/display/ColorSpaceFunctions.js +5 -5
- package/src/nodes/display/ColorSpaceNode.js +27 -39
- package/src/nodes/display/PassNode.js +6 -4
- package/src/nodes/display/ToneMappingNode.js +1 -1
- package/src/nodes/display/ToonOutlinePassNode.js +3 -3
- package/src/nodes/display/ViewportDepthNode.js +48 -1
- package/src/nodes/functions/PhysicalLightingModel.js +21 -15
- package/src/nodes/functions/material/getAlphaHashThreshold.js +70 -0
- package/src/nodes/functions/material/getGeometryRoughness.js +8 -2
- package/src/nodes/functions/material/getParallaxCorrectNormal.js +22 -0
- package/src/nodes/gpgpu/ComputeNode.js +9 -1
- package/src/nodes/lighting/AnalyticLightNode.js +23 -419
- package/src/nodes/lighting/LightsNode.js +24 -12
- package/src/nodes/lighting/PointLightNode.js +41 -22
- package/src/nodes/lighting/PointShadowNode.js +254 -0
- package/src/nodes/lighting/RectAreaLightNode.js +3 -0
- package/src/nodes/lighting/ShadowNode.js +593 -0
- package/src/nodes/lighting/SpotLightNode.js +14 -2
- package/src/nodes/utils/LoopNode.js +2 -2
- package/src/nodes/utils/Oscillators.js +6 -0
- package/src/nodes/utils/PostProcessingUtils.js +89 -0
- package/src/nodes/utils/RTTNode.js +9 -1
- package/src/nodes/utils/ReflectorNode.js +101 -15
- package/src/nodes/utils/StorageArrayElementNode.js +2 -2
- package/src/nodes/utils/Timer.js +29 -0
- package/src/objects/BatchedMesh.js +472 -296
- package/src/objects/ClippingGroup.js +19 -0
- package/src/objects/Skeleton.js +2 -2
- package/src/renderers/WebGLRenderer.js +183 -109
- package/src/renderers/common/Animation.js +23 -11
- package/src/renderers/common/Attributes.js +4 -0
- package/src/renderers/common/Backend.js +2 -0
- package/src/renderers/common/Background.js +15 -5
- package/src/renderers/common/Bindings.js +23 -6
- package/src/renderers/common/ClippingContext.js +77 -85
- package/src/renderers/common/Constants.js +2 -1
- package/src/renderers/common/Geometries.js +20 -0
- package/src/renderers/common/IndirectStorageBufferAttribute.js +15 -0
- package/src/renderers/common/Lighting.js +45 -0
- package/src/renderers/common/PostProcessingUtils.js +86 -0
- package/src/renderers/common/RenderList.js +48 -17
- package/src/renderers/common/RenderLists.js +4 -2
- package/src/renderers/common/RenderObject.js +45 -28
- package/src/renderers/common/RenderObjects.js +12 -6
- package/src/renderers/common/Renderer.js +222 -77
- package/src/renderers/common/Textures.js +41 -17
- package/src/renderers/common/UniformsGroup.js +16 -4
- package/src/renderers/common/extras/PMREMGenerator.js +89 -13
- package/src/renderers/common/nodes/NodeLibrary.js +2 -15
- package/src/renderers/common/nodes/NodeStorageBuffer.js +2 -3
- package/src/renderers/common/nodes/NodeUniform.js +42 -0
- package/src/renderers/common/nodes/Nodes.js +2 -2
- package/src/renderers/shaders/ShaderChunk/colorspace_pars_fragment.glsl.js +4 -24
- package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +8 -0
- package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +2 -2
- package/src/renderers/webgl/WebGLBackground.js +20 -1
- package/src/renderers/webgl/WebGLBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLCapabilities.js +0 -7
- package/src/renderers/webgl/WebGLGeometries.js +0 -28
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +2 -6
- package/src/renderers/webgl/WebGLProgram.js +24 -28
- package/src/renderers/webgl/WebGLPrograms.js +5 -2
- package/src/renderers/webgl/WebGLState.js +37 -1
- package/src/renderers/webgl/WebGLTextures.js +29 -12
- package/src/renderers/webgl-fallback/WebGLBackend.js +111 -37
- package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +2 -7
- package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +43 -12
- package/src/renderers/webgl-fallback/utils/WebGLState.js +26 -1
- package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +37 -9
- package/src/renderers/webgpu/WebGPUBackend.js +152 -56
- package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -1
- package/src/renderers/webgpu/WebGPURenderer.js +1 -1
- package/src/renderers/webgpu/nodes/BasicNodeLibrary.js +0 -8
- package/src/renderers/webgpu/nodes/StandardNodeLibrary.js +13 -34
- package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +192 -92
- package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +12 -4
- package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +15 -2
- package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +72 -7
- package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +29 -9
- package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +29 -7
- package/src/renderers/webgpu/utils/WebGPUUtils.js +0 -1
- package/src/renderers/webxr/WebXRManager.js +4 -4
- package/src/textures/Source.js +2 -2
- package/src/textures/Texture.js +2 -2
- package/examples/jsm/cameras/CinematicCamera.js +0 -208
- package/src/nodes/display/BlendMode.js +0 -54
- package/src/nodes/display/FXAANode.js +0 -332
- package/src/nodes/utils/OscNode.js +0 -85
- package/src/nodes/utils/TimerNode.js +0 -97
- /package/examples/jsm/utils/{TextureUtils.js → WebGLTextureUtils.js} +0 -0
package/examples/jsm/Addons.js
CHANGED
|
@@ -3,8 +3,6 @@ export * from './animation/CCDIKSolver.js';
|
|
|
3
3
|
export * from './animation/MMDAnimationHelper.js';
|
|
4
4
|
export * from './animation/MMDPhysics.js';
|
|
5
5
|
|
|
6
|
-
export * from './cameras/CinematicCamera.js';
|
|
7
|
-
|
|
8
6
|
export { default as WebGL } from './capabilities/WebGL.js';
|
|
9
7
|
|
|
10
8
|
export * from './controls/ArcballControls.js';
|
|
@@ -131,6 +129,8 @@ export * from './loaders/VTKLoader.js';
|
|
|
131
129
|
export * from './loaders/XYZLoader.js';
|
|
132
130
|
|
|
133
131
|
export * from './materials/MeshGouraudMaterial.js';
|
|
132
|
+
export * from './materials/LDrawConditionalLineMaterial.js';
|
|
133
|
+
export * from './materials/MeshPostProcessingMaterial.js';
|
|
134
134
|
|
|
135
135
|
export * from './math/Capsule.js';
|
|
136
136
|
export * from './math/ColorConverter.js';
|
|
@@ -274,7 +274,7 @@ export * as SceneUtils from './utils/SceneUtils.js';
|
|
|
274
274
|
export * from './utils/ShadowMapViewer.js';
|
|
275
275
|
export * as SkeletonUtils from './utils/SkeletonUtils.js';
|
|
276
276
|
export * as SortUtils from './utils/SortUtils.js';
|
|
277
|
-
export * from './utils/
|
|
277
|
+
export * from './utils/WebGLTextureUtils.js';
|
|
278
278
|
export * from './utils/UVsDebug.js';
|
|
279
279
|
export * from './utils/WorkerPool.js';
|
|
280
280
|
|
|
@@ -61,6 +61,8 @@ class MMDAnimationHelper {
|
|
|
61
61
|
this.sharedPhysics = false;
|
|
62
62
|
this.masterPhysics = null;
|
|
63
63
|
|
|
64
|
+
console.warn( 'THREE.MMDAnimationHelper: The module has been deprecated and will be removed with r172. Please migrate to https://github.com/takahirox/three-mmd-loader instead.' );
|
|
65
|
+
|
|
64
66
|
}
|
|
65
67
|
|
|
66
68
|
/**
|
|
@@ -68,6 +68,8 @@ class MMDPhysics {
|
|
|
68
68
|
|
|
69
69
|
this._init( mesh, rigidBodyParams, constraintParams );
|
|
70
70
|
|
|
71
|
+
console.warn( 'THREE.MMDPhysics: The module has been deprecated and will be removed with r172. Please migrate to https://github.com/takahirox/three-mmd-loader instead.' );
|
|
72
|
+
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
/**
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
self.GPUShaderStage = { VERTEX: 1, FRAGMENT: 2, COMPUTE: 4 };
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
// statics
|
|
8
|
-
|
|
9
|
-
let isAvailable = navigator.gpu !== undefined;
|
|
10
|
-
|
|
1
|
+
let isAvailable = ( typeof navigator !== 'undefined' && navigator.gpu !== undefined );
|
|
11
2
|
|
|
12
3
|
if ( typeof window !== 'undefined' && isAvailable ) {
|
|
13
4
|
|
|
@@ -204,6 +204,7 @@ class ArcballControls extends Controls {
|
|
|
204
204
|
this.enableRotate = true;
|
|
205
205
|
this.enableZoom = true;
|
|
206
206
|
this.enableGizmos = true;
|
|
207
|
+
this.enableFocus = true;
|
|
207
208
|
|
|
208
209
|
this.minDistance = 0;
|
|
209
210
|
this.maxDistance = Infinity;
|
|
@@ -697,7 +698,7 @@ class ArcballControls extends Controls {
|
|
|
697
698
|
|
|
698
699
|
onDoubleTap( event ) {
|
|
699
700
|
|
|
700
|
-
if ( this.enabled && this.enablePan && this.scene != null ) {
|
|
701
|
+
if ( this.enabled && this.enablePan && this.enableFocus && this.scene != null ) {
|
|
701
702
|
|
|
702
703
|
this.dispatchEvent( _startEvent );
|
|
703
704
|
|
|
@@ -2036,29 +2037,32 @@ class ArcballControls extends Controls {
|
|
|
2036
2037
|
let state;
|
|
2037
2038
|
if ( this.object.isOrthographicCamera ) {
|
|
2038
2039
|
|
|
2039
|
-
state = JSON.stringify( {
|
|
2040
|
+
state = JSON.stringify( {
|
|
2041
|
+
arcballState: {
|
|
2042
|
+
cameraFar: this.object.far,
|
|
2043
|
+
cameraMatrix: this.object.matrix,
|
|
2044
|
+
cameraNear: this.object.near,
|
|
2045
|
+
cameraUp: this.object.up,
|
|
2046
|
+
cameraZoom: this.object.zoom,
|
|
2047
|
+
gizmoMatrix: this._gizmos.matrix
|
|
2040
2048
|
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
cameraNear: this.object.near,
|
|
2044
|
-
cameraUp: this.object.up,
|
|
2045
|
-
cameraZoom: this.object.zoom,
|
|
2046
|
-
gizmoMatrix: this._gizmos.matrix
|
|
2047
|
-
|
|
2048
|
-
} } );
|
|
2049
|
+
}
|
|
2050
|
+
} );
|
|
2049
2051
|
|
|
2050
2052
|
} else if ( this.object.isPerspectiveCamera ) {
|
|
2051
2053
|
|
|
2052
|
-
state = JSON.stringify( {
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2054
|
+
state = JSON.stringify( {
|
|
2055
|
+
arcballState: {
|
|
2056
|
+
cameraFar: this.object.far,
|
|
2057
|
+
cameraFov: this.object.fov,
|
|
2058
|
+
cameraMatrix: this.object.matrix,
|
|
2059
|
+
cameraNear: this.object.near,
|
|
2060
|
+
cameraUp: this.object.up,
|
|
2061
|
+
cameraZoom: this.object.zoom,
|
|
2062
|
+
gizmoMatrix: this._gizmos.matrix
|
|
2060
2063
|
|
|
2061
|
-
|
|
2064
|
+
}
|
|
2065
|
+
} );
|
|
2062
2066
|
|
|
2063
2067
|
}
|
|
2064
2068
|
|
|
@@ -2233,7 +2237,7 @@ class ArcballControls extends Controls {
|
|
|
2233
2237
|
* @param {Matrix4} camera Transformation to be applied to the camera
|
|
2234
2238
|
* @param {Matrix4} gizmos Transformation to be applied to gizmos
|
|
2235
2239
|
*/
|
|
2236
|
-
|
|
2240
|
+
setTransformationMatrices( camera = null, gizmos = null ) {
|
|
2237
2241
|
|
|
2238
2242
|
if ( camera != null ) {
|
|
2239
2243
|
|
|
@@ -2620,7 +2624,7 @@ class ArcballControls extends Controls {
|
|
|
2620
2624
|
this.applyTransformMatrix( this.scale( newDistance / distance, this._gizmos.position ) );
|
|
2621
2625
|
this.updateMatrixState();
|
|
2622
2626
|
|
|
2623
|
-
|
|
2627
|
+
}
|
|
2624
2628
|
|
|
2625
2629
|
//check fov
|
|
2626
2630
|
if ( this.object.fov < this.minFov || this.object.fov > this.maxFov ) {
|
|
@@ -784,11 +784,19 @@ class OrbitControls extends Controls {
|
|
|
784
784
|
|
|
785
785
|
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
|
|
786
786
|
|
|
787
|
-
|
|
787
|
+
if ( this.enableRotate ) {
|
|
788
|
+
|
|
789
|
+
this._rotateUp( _twoPI * this.rotateSpeed / this.domElement.clientHeight );
|
|
790
|
+
|
|
791
|
+
}
|
|
788
792
|
|
|
789
793
|
} else {
|
|
790
794
|
|
|
791
|
-
|
|
795
|
+
if ( this.enablePan ) {
|
|
796
|
+
|
|
797
|
+
this._pan( 0, this.keyPanSpeed );
|
|
798
|
+
|
|
799
|
+
}
|
|
792
800
|
|
|
793
801
|
}
|
|
794
802
|
|
|
@@ -799,11 +807,19 @@ class OrbitControls extends Controls {
|
|
|
799
807
|
|
|
800
808
|
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
|
|
801
809
|
|
|
802
|
-
|
|
810
|
+
if ( this.enableRotate ) {
|
|
811
|
+
|
|
812
|
+
this._rotateUp( - _twoPI * this.rotateSpeed / this.domElement.clientHeight );
|
|
813
|
+
|
|
814
|
+
}
|
|
803
815
|
|
|
804
816
|
} else {
|
|
805
817
|
|
|
806
|
-
|
|
818
|
+
if ( this.enablePan ) {
|
|
819
|
+
|
|
820
|
+
this._pan( 0, - this.keyPanSpeed );
|
|
821
|
+
|
|
822
|
+
}
|
|
807
823
|
|
|
808
824
|
}
|
|
809
825
|
|
|
@@ -814,11 +830,19 @@ class OrbitControls extends Controls {
|
|
|
814
830
|
|
|
815
831
|
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
|
|
816
832
|
|
|
817
|
-
|
|
833
|
+
if ( this.enableRotate ) {
|
|
834
|
+
|
|
835
|
+
this._rotateLeft( _twoPI * this.rotateSpeed / this.domElement.clientHeight );
|
|
836
|
+
|
|
837
|
+
}
|
|
818
838
|
|
|
819
839
|
} else {
|
|
820
840
|
|
|
821
|
-
|
|
841
|
+
if ( this.enablePan ) {
|
|
842
|
+
|
|
843
|
+
this._pan( this.keyPanSpeed, 0 );
|
|
844
|
+
|
|
845
|
+
}
|
|
822
846
|
|
|
823
847
|
}
|
|
824
848
|
|
|
@@ -829,11 +853,19 @@ class OrbitControls extends Controls {
|
|
|
829
853
|
|
|
830
854
|
if ( event.ctrlKey || event.metaKey || event.shiftKey ) {
|
|
831
855
|
|
|
832
|
-
|
|
856
|
+
if ( this.enableRotate ) {
|
|
857
|
+
|
|
858
|
+
this._rotateLeft( - _twoPI * this.rotateSpeed / this.domElement.clientHeight );
|
|
859
|
+
|
|
860
|
+
}
|
|
833
861
|
|
|
834
862
|
} else {
|
|
835
863
|
|
|
836
|
-
|
|
864
|
+
if ( this.enablePan ) {
|
|
865
|
+
|
|
866
|
+
this._pan( - this.keyPanSpeed, 0 );
|
|
867
|
+
|
|
868
|
+
}
|
|
837
869
|
|
|
838
870
|
}
|
|
839
871
|
|
|
@@ -1340,7 +1372,7 @@ function onMouseWheel( event ) {
|
|
|
1340
1372
|
|
|
1341
1373
|
function onKeyDown( event ) {
|
|
1342
1374
|
|
|
1343
|
-
if ( this.enabled === false
|
|
1375
|
+
if ( this.enabled === false ) return;
|
|
1344
1376
|
|
|
1345
1377
|
this._handleKeyDown( event );
|
|
1346
1378
|
|
|
@@ -127,14 +127,11 @@ function onMouseMove( event ) {
|
|
|
127
127
|
|
|
128
128
|
if ( this.enabled === false || this.isLocked === false ) return;
|
|
129
129
|
|
|
130
|
-
const movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
|
|
131
|
-
const movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
|
|
132
|
-
|
|
133
130
|
const camera = this.object;
|
|
134
131
|
_euler.setFromQuaternion( camera.quaternion );
|
|
135
132
|
|
|
136
|
-
_euler.y -= movementX * 0.002 * this.pointerSpeed;
|
|
137
|
-
_euler.x -= movementY * 0.002 * this.pointerSpeed;
|
|
133
|
+
_euler.y -= event.movementX * 0.002 * this.pointerSpeed;
|
|
134
|
+
_euler.x -= event.movementY * 0.002 * this.pointerSpeed;
|
|
138
135
|
|
|
139
136
|
_euler.x = Math.max( _PI_2 - this.maxPolarAngle, Math.min( _PI_2 - this.minPolarAngle, _euler.x ) );
|
|
140
137
|
|
|
@@ -110,6 +110,12 @@ class TransformControls extends Controls {
|
|
|
110
110
|
defineProperty( 'showX', true );
|
|
111
111
|
defineProperty( 'showY', true );
|
|
112
112
|
defineProperty( 'showZ', true );
|
|
113
|
+
defineProperty( 'minX', - Infinity );
|
|
114
|
+
defineProperty( 'maxX', Infinity );
|
|
115
|
+
defineProperty( 'minY', - Infinity );
|
|
116
|
+
defineProperty( 'maxY', Infinity );
|
|
117
|
+
defineProperty( 'minZ', - Infinity );
|
|
118
|
+
defineProperty( 'maxZ', Infinity );
|
|
113
119
|
|
|
114
120
|
// Reusable utility variables
|
|
115
121
|
|
|
@@ -372,6 +378,10 @@ class TransformControls extends Controls {
|
|
|
372
378
|
|
|
373
379
|
}
|
|
374
380
|
|
|
381
|
+
object.position.x = Math.max( this.minX, Math.min( this.maxX, object.position.x ) );
|
|
382
|
+
object.position.y = Math.max( this.minY, Math.min( this.maxY, object.position.y ) );
|
|
383
|
+
object.position.z = Math.max( this.minZ, Math.min( this.maxZ, object.position.z ) );
|
|
384
|
+
|
|
375
385
|
} else if ( mode === 'scale' ) {
|
|
376
386
|
|
|
377
387
|
if ( axis.search( 'XYZ' ) !== - 1 ) {
|
|
@@ -536,12 +546,7 @@ class TransformControls extends Controls {
|
|
|
536
546
|
|
|
537
547
|
this.disconnect();
|
|
538
548
|
|
|
539
|
-
this.
|
|
540
|
-
|
|
541
|
-
if ( child.geometry ) child.geometry.dispose();
|
|
542
|
-
if ( child.material ) child.material.dispose();
|
|
543
|
-
|
|
544
|
-
} );
|
|
549
|
+
this._root.dispose();
|
|
545
550
|
|
|
546
551
|
}
|
|
547
552
|
|
|
@@ -811,6 +816,17 @@ class TransformControlsRoot extends Object3D {
|
|
|
811
816
|
|
|
812
817
|
}
|
|
813
818
|
|
|
819
|
+
dispose() {
|
|
820
|
+
|
|
821
|
+
this.traverse( function ( child ) {
|
|
822
|
+
|
|
823
|
+
if ( child.geometry ) child.geometry.dispose();
|
|
824
|
+
if ( child.material ) child.material.dispose();
|
|
825
|
+
|
|
826
|
+
} );
|
|
827
|
+
|
|
828
|
+
}
|
|
829
|
+
|
|
814
830
|
}
|
|
815
831
|
|
|
816
832
|
class TransformControlsGizmo extends Object3D {
|
package/examples/jsm/csm/CSM.js
CHANGED
|
@@ -11,7 +11,7 @@ import { CSMFrustum } from './CSMFrustum.js';
|
|
|
11
11
|
import { CSMShader } from './CSMShader.js';
|
|
12
12
|
|
|
13
13
|
const _cameraToLightMatrix = new Matrix4();
|
|
14
|
-
const _lightSpaceFrustum = new CSMFrustum();
|
|
14
|
+
const _lightSpaceFrustum = new CSMFrustum( { webGL: true } );
|
|
15
15
|
const _center = new Vector3();
|
|
16
16
|
const _bbox = new Box3();
|
|
17
17
|
const _uniformArray = [];
|
|
@@ -38,7 +38,7 @@ export class CSM {
|
|
|
38
38
|
this.lightMargin = data.lightMargin || 200;
|
|
39
39
|
this.customSplitsCallback = data.customSplitsCallback;
|
|
40
40
|
this.fade = false;
|
|
41
|
-
this.mainFrustum = new CSMFrustum();
|
|
41
|
+
this.mainFrustum = new CSMFrustum( { webGL: true } );
|
|
42
42
|
this.frustums = [];
|
|
43
43
|
this.breaks = [];
|
|
44
44
|
|
|
@@ -8,6 +8,8 @@ class CSMFrustum {
|
|
|
8
8
|
|
|
9
9
|
data = data || {};
|
|
10
10
|
|
|
11
|
+
this.zNear = data.webGL === true ? - 1 : 0;
|
|
12
|
+
|
|
11
13
|
this.vertices = {
|
|
12
14
|
near: [
|
|
13
15
|
new Vector3(),
|
|
@@ -33,6 +35,7 @@ class CSMFrustum {
|
|
|
33
35
|
|
|
34
36
|
setFromProjectionMatrix( projectionMatrix, maxFar ) {
|
|
35
37
|
|
|
38
|
+
const zNear = this.zNear;
|
|
36
39
|
const isOrthographic = projectionMatrix.elements[ 2 * 4 + 3 ] === 0;
|
|
37
40
|
|
|
38
41
|
inverseProjectionMatrix.copy( projectionMatrix ).invert();
|
|
@@ -42,10 +45,10 @@ class CSMFrustum {
|
|
|
42
45
|
// 2 --- 1
|
|
43
46
|
// clip space spans from [-1, 1]
|
|
44
47
|
|
|
45
|
-
this.vertices.near[ 0 ].set( 1, 1,
|
|
46
|
-
this.vertices.near[ 1 ].set( 1, - 1,
|
|
47
|
-
this.vertices.near[ 2 ].set( - 1, - 1,
|
|
48
|
-
this.vertices.near[ 3 ].set( - 1, 1,
|
|
48
|
+
this.vertices.near[ 0 ].set( 1, 1, zNear );
|
|
49
|
+
this.vertices.near[ 1 ].set( 1, - 1, zNear );
|
|
50
|
+
this.vertices.near[ 2 ].set( - 1, - 1, zNear );
|
|
51
|
+
this.vertices.near[ 3 ].set( - 1, 1, zNear );
|
|
49
52
|
this.vertices.near.forEach( function ( v ) {
|
|
50
53
|
|
|
51
54
|
v.applyMatrix4( inverseProjectionMatrix );
|
|
@@ -78,6 +78,8 @@ class CSMHelper extends Group {
|
|
|
78
78
|
const cascadePlanes = this.cascadePlanes;
|
|
79
79
|
const shadowLines = this.shadowLines;
|
|
80
80
|
|
|
81
|
+
if ( camera === null ) return;
|
|
82
|
+
|
|
81
83
|
this.position.copy( camera.position );
|
|
82
84
|
this.quaternion.copy( camera.quaternion );
|
|
83
85
|
this.scale.copy( camera.scale );
|