super-three 0.141.0 → 0.144.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/build/three.cjs +1558 -1034
- package/build/three.js +1558 -1034
- package/build/three.min.js +1 -1
- package/build/three.module.js +2012 -1243
- package/examples/js/animation/MMDPhysics.js +1 -16
- package/examples/js/controls/ArcballControls.js +16 -3
- package/examples/js/controls/FirstPersonControls.js +0 -7
- package/examples/js/controls/FlyControls.js +0 -8
- package/examples/js/controls/OrbitControls.js +0 -4
- package/examples/js/controls/PointerLockControls.js +0 -8
- package/examples/js/controls/TrackballControls.js +0 -2
- package/examples/js/controls/TransformControls.js +20 -16
- package/examples/js/effects/AnaglyphEffect.js +2 -2
- package/examples/js/effects/OutlineEffect.js +4 -24
- package/examples/js/effects/ParallaxBarrierEffect.js +2 -2
- package/examples/js/effects/PeppersGhostEffect.js +2 -2
- package/examples/js/effects/StereoEffect.js +2 -2
- package/examples/js/environments/RoomEnvironment.js +22 -0
- package/examples/js/exporters/ColladaExporter.js +4 -13
- package/examples/js/exporters/DRACOExporter.js +0 -12
- package/examples/js/exporters/GLTFExporter.js +28 -29
- package/examples/js/exporters/OBJExporter.js +2 -23
- package/examples/js/exporters/PLYExporter.js +12 -24
- package/examples/js/exporters/STLExporter.js +0 -7
- package/examples/js/exporters/USDZExporter.js +6 -0
- package/examples/js/geometries/ConvexGeometry.js +1 -1
- package/examples/js/geometries/ParametricGeometry.js +1 -8
- package/examples/js/interactive/SelectionHelper.js +2 -0
- package/examples/js/libs/ktx-parse.umd.js +1 -0
- package/examples/js/libs/meshopt_decoder.js +98 -32
- package/examples/js/loaders/ColladaLoader.js +1 -0
- package/examples/js/loaders/DRACOLoader.js +2 -25
- package/examples/js/loaders/EXRLoader.js +2 -13
- package/examples/js/loaders/FBXLoader.js +10 -3
- package/examples/js/loaders/FontLoader.js +3 -16
- package/examples/js/loaders/GLTFLoader.js +52 -36
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -11
- package/examples/js/loaders/LDrawLoader.js +139 -74
- package/examples/js/loaders/OBJLoader.js +7 -13
- package/examples/js/loaders/PCDLoader.js +59 -14
- package/examples/js/loaders/PLYLoader.js +3 -3
- package/examples/js/loaders/SVGLoader.js +4 -3
- package/examples/js/loaders/TIFFLoader.js +31 -0
- package/examples/js/loaders/VRMLLoader.js +33 -24
- package/examples/js/loaders/VTKLoader.js +1 -1
- package/examples/js/loaders/lwo/LWO2Parser.js +8 -7
- package/examples/js/loaders/lwo/LWO3Parser.js +8 -7
- package/examples/js/materials/MeshGouraudMaterial.js +385 -0
- package/examples/js/math/ColorConverter.js +0 -50
- package/examples/js/misc/GPUComputationRenderer.js +23 -0
- package/examples/js/misc/Volume.js +198 -190
- package/examples/js/misc/VolumeSlice.js +90 -88
- package/examples/js/modifiers/SimplifyModifier.js +1 -1
- package/examples/js/objects/GroundProjectedEnv.js +193 -0
- package/examples/js/objects/Reflector.js +9 -2
- package/examples/js/objects/ReflectorForSSRPass.js +3 -4
- package/examples/js/objects/Refractor.js +10 -4
- package/examples/js/objects/ShadowMesh.js +5 -1
- package/examples/js/postprocessing/OutlinePass.js +5 -3
- package/examples/js/renderers/CSS2DRenderer.js +2 -2
- package/examples/js/renderers/CSS3DRenderer.js +2 -2
- package/examples/js/renderers/Projector.js +2 -23
- package/examples/js/shaders/LuminosityShader.js +1 -1
- package/examples/js/shaders/MMDToonShader.js +6 -2
- package/examples/js/shaders/ToneMapShader.js +1 -1
- package/examples/js/utils/BufferGeometryUtils.js +1 -1
- package/examples/js/utils/GeometryUtils.js +2 -18
- package/examples/js/utils/PackedPhongMaterial.js +1 -1
- package/examples/js/utils/SceneUtils.js +0 -16
- package/examples/jsm/animation/MMDPhysics.js +3 -22
- package/examples/jsm/controls/ArcballControls.js +17 -2
- package/examples/jsm/controls/FirstPersonControls.js +0 -7
- package/examples/jsm/controls/FlyControls.js +0 -7
- package/examples/jsm/controls/OrbitControls.js +0 -5
- package/examples/jsm/controls/PointerLockControls.js +0 -7
- package/examples/jsm/controls/TrackballControls.js +0 -3
- package/examples/jsm/controls/TransformControls.js +18 -16
- package/examples/jsm/effects/AnaglyphEffect.js +2 -2
- package/examples/jsm/effects/OutlineEffect.js +4 -25
- package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
- package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
- package/examples/jsm/effects/StereoEffect.js +2 -2
- package/examples/jsm/environments/RoomEnvironment.js +23 -0
- package/examples/jsm/exporters/ColladaExporter.js +4 -13
- package/examples/jsm/exporters/DRACOExporter.js +0 -13
- package/examples/jsm/exporters/GLTFExporter.js +29 -31
- package/examples/jsm/exporters/KTX2Exporter.js +29 -29
- package/examples/jsm/exporters/OBJExporter.js +0 -18
- package/examples/jsm/exporters/PLYExporter.js +14 -22
- package/examples/jsm/exporters/STLExporter.js +1 -9
- package/examples/jsm/exporters/USDZExporter.js +14 -3
- package/examples/jsm/geometries/ConvexGeometry.js +1 -1
- package/examples/jsm/geometries/ParametricGeometry.js +0 -6
- package/examples/jsm/interactive/HTMLMesh.js +9 -9
- package/examples/jsm/interactive/SelectionHelper.js +5 -3
- package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
- package/examples/jsm/libs/utif.module.js +1579 -0
- package/examples/jsm/libs/zstddec.module.js +1 -0
- package/examples/jsm/loaders/ColladaLoader.js +1 -0
- package/examples/jsm/loaders/DRACOLoader.js +2 -28
- package/examples/jsm/loaders/EXRLoader.js +3 -13
- package/examples/jsm/loaders/FBXLoader.js +10 -3
- package/examples/jsm/loaders/FontLoader.js +3 -16
- package/examples/jsm/loaders/GLTFLoader.js +52 -36
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
- package/examples/jsm/loaders/KTX2Loader.js +192 -30
- package/examples/jsm/loaders/LDrawLoader.js +135 -74
- package/examples/jsm/loaders/OBJLoader.js +6 -14
- package/examples/jsm/loaders/PCDLoader.js +59 -13
- package/examples/jsm/loaders/PLYLoader.js +3 -3
- package/examples/jsm/loaders/RGBELoader.js +1 -1
- package/examples/jsm/loaders/SVGLoader.js +4 -3
- package/examples/jsm/loaders/TIFFLoader.js +36 -0
- package/examples/jsm/loaders/USDZLoader.js +393 -0
- package/examples/jsm/loaders/VRMLLoader.js +23 -25
- package/examples/jsm/loaders/VTKLoader.js +1 -1
- package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
- package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
- package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
- package/examples/jsm/math/ColorConverter.js +1 -49
- package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
- package/examples/jsm/misc/Volume.js +169 -171
- package/examples/jsm/misc/VolumeSlice.js +78 -80
- package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
- package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
- package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
- package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
- package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
- package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
- package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
- package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
- package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
- package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
- package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +1 -1
- package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
- package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +1 -1
- package/examples/jsm/node-editor/math/AngleEditor.js +1 -1
- package/examples/jsm/node-editor/math/DotEditor.js +1 -1
- package/examples/jsm/node-editor/math/InvertEditor.js +1 -1
- package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
- package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
- package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
- package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
- package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
- package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
- package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
- package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
- package/examples/jsm/node-editor/utils/PreviewEditor.js +3 -3
- package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
- package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
- package/examples/jsm/nodes/Nodes.js +43 -13
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
- package/examples/jsm/nodes/accessors/NormalNode.js +4 -4
- package/examples/jsm/nodes/accessors/PositionNode.js +5 -5
- package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
- package/examples/jsm/nodes/core/AttributeNode.js +3 -3
- package/examples/jsm/nodes/core/CodeNode.js +3 -3
- package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
- package/examples/jsm/nodes/core/FunctionNode.js +2 -2
- package/examples/jsm/nodes/core/Node.js +14 -12
- package/examples/jsm/nodes/core/NodeBuilder.js +12 -12
- package/examples/jsm/nodes/core/NodeUtils.js +23 -1
- package/examples/jsm/nodes/core/{NodeVary.js → NodeVarying.js} +3 -3
- package/examples/jsm/nodes/core/{VaryNode.js → VaryingNode.js} +7 -7
- package/examples/jsm/nodes/display/ColorAdjustmentNode.js +94 -0
- package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +2 -0
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
- package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
- package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
- package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +31 -0
- package/examples/jsm/nodes/materials/Materials.js +13 -25
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
- package/examples/jsm/nodes/materials/NodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
- package/examples/jsm/nodes/materialx/Disclaimer.md +199 -0
- package/examples/jsm/nodes/materialx/functions/lib/mx_hsv.js +56 -0
- package/examples/jsm/nodes/materialx/functions/lib/mx_noise.js +607 -0
- package/examples/jsm/nodes/math/MathNode.js +2 -12
- package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
- package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
- package/examples/jsm/nodes/shadernode/ShaderNode.js +5 -5
- package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +8 -5
- package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +20 -6
- package/examples/jsm/nodes/utils/ConvertNode.js +8 -3
- package/examples/jsm/nodes/utils/JoinNode.js +7 -7
- package/examples/jsm/nodes/utils/MaxMipLevelNode.js +2 -1
- package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
- package/examples/jsm/nodes/utils/SplitNode.js +21 -5
- package/examples/jsm/nodes/utils/TimerNode.js +2 -2
- package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
- package/examples/jsm/objects/Reflector.js +12 -5
- package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
- package/examples/jsm/objects/Refractor.js +12 -6
- package/examples/jsm/objects/ShadowMesh.js +8 -2
- package/examples/jsm/postprocessing/OutlinePass.js +5 -3
- package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
- package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
- package/examples/jsm/renderers/Projector.js +2 -24
- package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +329 -218
- package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
- package/examples/jsm/renderers/webgpu/WebGPUBackground.js +39 -3
- package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
- package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
- package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
- package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
- package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
- package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +66 -81
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
- package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +25 -30
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
- package/examples/jsm/shaders/LuminosityShader.js +1 -1
- package/examples/jsm/shaders/MMDToonShader.js +2 -2
- package/examples/jsm/shaders/ToneMapShader.js +1 -1
- package/examples/jsm/utils/BufferGeometryUtils.js +2 -1
- package/examples/jsm/utils/GeometryUtils.js +17 -25
- package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
- package/examples/jsm/utils/SceneUtils.js +1 -21
- package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
- package/examples/jsm/webxr/VRButton.js +1 -7
- package/package.json +18 -14
- package/src/Three.Legacy.js +262 -36
- package/src/Three.js +3 -2
- package/src/animation/AnimationAction.js +6 -5
- package/src/animation/AnimationClip.js +1 -1
- package/src/animation/AnimationMixer.js +1 -1
- package/src/animation/AnimationUtils.js +204 -199
- package/src/animation/KeyframeTrack.js +1 -1
- package/src/animation/PropertyBinding.js +24 -5
- package/src/cameras/CubeCamera.js +0 -7
- package/src/constants.js +2 -4
- package/src/core/BufferAttribute.js +81 -111
- package/src/core/BufferGeometry.js +3 -41
- package/src/core/InstancedBufferAttribute.js +0 -10
- package/src/core/InterleavedBuffer.js +1 -1
- package/src/core/InterleavedBufferAttribute.js +56 -7
- package/src/core/Object3D.js +22 -5
- package/src/core/Uniform.js +0 -7
- package/src/core/UniformsGroup.js +92 -0
- package/src/extras/DataUtils.js +104 -88
- package/src/extras/core/Path.js +1 -0
- package/src/extras/core/ShapePath.js +1 -4
- package/src/extras/curves/CatmullRomCurve3.js +4 -2
- package/src/geometries/BoxGeometry.js +1 -1
- package/src/geometries/CapsuleGeometry.js +1 -1
- package/src/geometries/CircleGeometry.js +1 -1
- package/src/geometries/ConeGeometry.js +1 -1
- package/src/geometries/CylinderGeometry.js +2 -1
- package/src/geometries/DodecahedronGeometry.js +1 -1
- package/src/geometries/EdgesGeometry.js +5 -4
- package/src/geometries/ExtrudeGeometry.js +2 -11
- package/src/geometries/IcosahedronGeometry.js +1 -1
- package/src/geometries/LatheGeometry.js +2 -2
- package/src/geometries/OctahedronGeometry.js +1 -1
- package/src/geometries/PlaneGeometry.js +2 -1
- package/src/geometries/PolyhedronGeometry.js +1 -1
- package/src/geometries/RingGeometry.js +1 -1
- package/src/geometries/ShapeGeometry.js +2 -1
- package/src/geometries/SphereGeometry.js +2 -1
- package/src/geometries/TetrahedronGeometry.js +1 -1
- package/src/geometries/TorusGeometry.js +2 -1
- package/src/geometries/TorusKnotGeometry.js +2 -1
- package/src/geometries/TubeGeometry.js +2 -1
- package/src/geometries/WireframeGeometry.js +1 -0
- package/src/helpers/CameraHelper.js +97 -38
- package/src/helpers/DirectionalLightHelper.js +1 -0
- package/src/helpers/HemisphereLightHelper.js +1 -0
- package/src/helpers/PlaneHelper.js +6 -9
- package/src/helpers/PolarGridHelper.js +18 -14
- package/src/helpers/SpotLightHelper.js +1 -0
- package/src/lights/SpotLight.js +2 -0
- package/src/loaders/FileLoader.js +12 -1
- package/src/loaders/LoadingManager.js +1 -1
- package/src/loaders/MaterialLoader.js +49 -7
- package/src/loaders/ObjectLoader.js +4 -41
- package/src/materials/Material.js +1 -33
- package/src/materials/Materials.js +0 -27
- package/src/materials/MeshLambertMaterial.js +28 -1
- package/src/materials/ShaderMaterial.js +3 -7
- package/src/math/Color.js +3 -13
- package/src/math/MathUtils.js +1 -7
- package/src/math/Matrix3.js +1 -7
- package/src/math/Matrix4.js +3 -27
- package/src/math/Quaternion.js +1 -21
- package/src/math/Vector2.js +4 -24
- package/src/math/Vector3.js +7 -46
- package/src/math/Vector4.js +4 -24
- package/src/renderers/WebGLRenderer.js +84 -8
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
- package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
- package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
- package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
- package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
- package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
- package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -12
- package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
- package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +30 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
- package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
- package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
- package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
- package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
- package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk.js +4 -2
- package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
- package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
- package/src/renderers/shaders/ShaderLib.js +31 -31
- package/src/renderers/shaders/UniformsLib.js +12 -11
- package/src/renderers/shaders/UniformsUtils.js +14 -0
- package/src/renderers/webgl/WebGLBackground.js +2 -2
- package/src/renderers/webgl/WebGLLights.js +37 -13
- package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
- package/src/renderers/webgl/WebGLProgram.js +6 -11
- package/src/renderers/webgl/WebGLPrograms.js +30 -26
- package/src/renderers/webgl/WebGLRenderLists.js +5 -4
- package/src/renderers/webgl/WebGLRenderStates.js +5 -4
- package/src/renderers/webgl/WebGLShaderCache.js +9 -6
- package/src/renderers/webgl/WebGLShadowMap.js +10 -15
- package/src/renderers/webgl/WebGLState.js +47 -0
- package/src/renderers/webgl/WebGLUniforms.js +4 -4
- package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
- package/src/renderers/webgl/WebGLUtils.js +2 -0
- package/src/renderers/webvr/WebVRManager.js +42 -9
- package/src/renderers/webvr/WebVRUtils.js +1 -1
- package/src/renderers/webxr/WebXRController.js +45 -37
- package/src/renderers/webxr/WebXRManager.js +58 -33
- package/src/scenes/Scene.js +16 -3
- package/src/textures/Source.js +1 -1
- package/src/utils.js +1 -1
- package/examples/js/controls/experimental/CameraControls.js +0 -1048
- package/examples/js/loaders/KTX2Loader.js +0 -558
- package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
- package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
- package/examples/jsm/package.json +0 -3
- package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
- package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
|
|
410
410
|
if ( attribute.isInstancedInterleavedBufferAttribute ) {
|
|
411
411
|
|
|
412
|
-
newAttribute = new InstancedBufferAttribute( array, itemSize, normalized, attribute.meshPerAttribute );
|
|
412
|
+
newAttribute = new THREE.InstancedBufferAttribute( array, itemSize, normalized, attribute.meshPerAttribute );
|
|
413
413
|
|
|
414
414
|
} else {
|
|
415
415
|
|
|
@@ -23,13 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
if ( 0 <= -- iterations ) {
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
Array.prototype.push.apply( tmp, hilbert2D( vec[ 0 ], half, iterations, v0, v3, v2, v1 ) );
|
|
28
|
-
Array.prototype.push.apply( tmp, hilbert2D( vec[ 1 ], half, iterations, v0, v1, v2, v3 ) );
|
|
29
|
-
Array.prototype.push.apply( tmp, hilbert2D( vec[ 2 ], half, iterations, v0, v1, v2, v3 ) );
|
|
30
|
-
Array.prototype.push.apply( tmp, hilbert2D( vec[ 3 ], half, iterations, v2, v1, v0, v3 ) ); // Return recursive call
|
|
31
|
-
|
|
32
|
-
return tmp;
|
|
26
|
+
return [ ...hilbert2D( vec[ 0 ], half, iterations, v0, v3, v2, v1 ), ...hilbert2D( vec[ 1 ], half, iterations, v0, v1, v2, v3 ), ...hilbert2D( vec[ 2 ], half, iterations, v0, v1, v2, v3 ), ...hilbert2D( vec[ 3 ], half, iterations, v2, v1, v0, v3 ) ];
|
|
33
27
|
|
|
34
28
|
} // Return complete Hilbert Curve.
|
|
35
29
|
|
|
@@ -66,17 +60,7 @@
|
|
|
66
60
|
|
|
67
61
|
if ( -- iterations >= 0 ) {
|
|
68
62
|
|
|
69
|
-
|
|
70
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 0 ], half, iterations, v0, v3, v4, v7, v6, v5, v2, v1 ) );
|
|
71
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 1 ], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3 ) );
|
|
72
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 2 ], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3 ) );
|
|
73
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 3 ], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5 ) );
|
|
74
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 4 ], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5 ) );
|
|
75
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 5 ], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7 ) );
|
|
76
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 6 ], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7 ) );
|
|
77
|
-
Array.prototype.push.apply( tmp, hilbert3D( vec[ 7 ], half, iterations, v6, v5, v2, v1, v0, v3, v4, v7 ) ); // Return recursive call
|
|
78
|
-
|
|
79
|
-
return tmp;
|
|
63
|
+
return [ ...hilbert3D( vec[ 0 ], half, iterations, v0, v3, v4, v7, v6, v5, v2, v1 ), ...hilbert3D( vec[ 1 ], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3 ), ...hilbert3D( vec[ 2 ], half, iterations, v0, v7, v6, v1, v2, v5, v4, v3 ), ...hilbert3D( vec[ 3 ], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5 ), ...hilbert3D( vec[ 4 ], half, iterations, v2, v3, v0, v1, v6, v7, v4, v5 ), ...hilbert3D( vec[ 5 ], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7 ), ...hilbert3D( vec[ 6 ], half, iterations, v4, v3, v2, v5, v6, v1, v0, v7 ), ...hilbert3D( vec[ 7 ], half, iterations, v6, v5, v2, v1, v0, v3, v4, v7 ) ];
|
|
80
64
|
|
|
81
65
|
} // Return complete Hilbert Curve.
|
|
82
66
|
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
#endif
|
|
94
94
|
#endif`, THREE.ShaderChunk.morphtarget_vertex, THREE.ShaderChunk.skinning_vertex, THREE.ShaderChunk.displacementmap_vertex, THREE.ShaderChunk.project_vertex, THREE.ShaderChunk.logdepthbuf_vertex, THREE.ShaderChunk.clipping_planes_vertex, 'vViewPosition = - mvPosition.xyz;', THREE.ShaderChunk.worldpos_vertex, THREE.ShaderChunk.envmap_vertex, THREE.ShaderChunk.shadowmap_vertex, THREE.ShaderChunk.fog_vertex, '}' ].join( '\n' ); // Use the original THREE.MeshPhongMaterial's fragmentShader.
|
|
95
95
|
|
|
96
|
-
this.fragmentShader = [ '#define PHONG', 'uniform vec3 diffuse;', 'uniform vec3 emissive;', 'uniform vec3 specular;', 'uniform float shininess;', 'uniform float opacity;', THREE.ShaderChunk.common, THREE.ShaderChunk.packing, THREE.ShaderChunk.dithering_pars_fragment, THREE.ShaderChunk.color_pars_fragment, THREE.ShaderChunk.uv_pars_fragment, THREE.ShaderChunk.uv2_pars_fragment, THREE.ShaderChunk.map_pars_fragment, THREE.ShaderChunk.alphamap_pars_fragment, THREE.ShaderChunk.aomap_pars_fragment, THREE.ShaderChunk.lightmap_pars_fragment, THREE.ShaderChunk.emissivemap_pars_fragment, THREE.ShaderChunk.envmap_common_pars_fragment, THREE.ShaderChunk.envmap_pars_fragment, THREE.ShaderChunk.
|
|
96
|
+
this.fragmentShader = [ '#define PHONG', 'uniform vec3 diffuse;', 'uniform vec3 emissive;', 'uniform vec3 specular;', 'uniform float shininess;', 'uniform float opacity;', THREE.ShaderChunk.common, THREE.ShaderChunk.packing, THREE.ShaderChunk.dithering_pars_fragment, THREE.ShaderChunk.color_pars_fragment, THREE.ShaderChunk.uv_pars_fragment, THREE.ShaderChunk.uv2_pars_fragment, THREE.ShaderChunk.map_pars_fragment, THREE.ShaderChunk.alphamap_pars_fragment, THREE.ShaderChunk.aomap_pars_fragment, THREE.ShaderChunk.lightmap_pars_fragment, THREE.ShaderChunk.emissivemap_pars_fragment, THREE.ShaderChunk.envmap_common_pars_fragment, THREE.ShaderChunk.envmap_pars_fragment, THREE.ShaderChunk.fog_pars_fragment, THREE.ShaderChunk.bsdfs, THREE.ShaderChunk.lights_pars_begin, THREE.ShaderChunk.normal_pars_fragment, THREE.ShaderChunk.lights_phong_pars_fragment, THREE.ShaderChunk.shadowmap_pars_fragment, THREE.ShaderChunk.bumpmap_pars_fragment, THREE.ShaderChunk.normalmap_pars_fragment, THREE.ShaderChunk.specularmap_pars_fragment, THREE.ShaderChunk.logdepthbuf_pars_fragment, THREE.ShaderChunk.clipping_planes_pars_fragment, 'void main() {', THREE.ShaderChunk.clipping_planes_fragment, 'vec4 diffuseColor = vec4( diffuse, opacity );', 'ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );', 'vec3 totalEmissiveRadiance = emissive;', THREE.ShaderChunk.logdepthbuf_fragment, THREE.ShaderChunk.map_fragment, THREE.ShaderChunk.color_fragment, THREE.ShaderChunk.alphamap_fragment, THREE.ShaderChunk.alphatest_fragment, THREE.ShaderChunk.specularmap_fragment, THREE.ShaderChunk.normal_fragment_begin, THREE.ShaderChunk.normal_fragment_maps, THREE.ShaderChunk.emissivemap_fragment, // accumulation
|
|
97
97
|
THREE.ShaderChunk.lights_phong_fragment, THREE.ShaderChunk.lights_fragment_begin, THREE.ShaderChunk.lights_fragment_maps, THREE.ShaderChunk.lights_fragment_end, // modulation
|
|
98
98
|
THREE.ShaderChunk.aomap_fragment, 'vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;', THREE.ShaderChunk.envmap_fragment, 'gl_FragColor = vec4( outgoingLight, diffuseColor.a );', THREE.ShaderChunk.tonemapping_fragment, THREE.ShaderChunk.encodings_fragment, THREE.ShaderChunk.fog_fragment, THREE.ShaderChunk.premultiplied_alpha_fragment, THREE.ShaderChunk.dithering_fragment, '}' ].join( '\n' );
|
|
99
99
|
this.setValues( parameters );
|
|
@@ -95,25 +95,9 @@
|
|
|
95
95
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
function detach( child, parent, scene ) {
|
|
99
|
-
|
|
100
|
-
console.warn( 'THREE.SceneUtils: detach() has been deprecated. Use scene.attach( child ) instead.' );
|
|
101
|
-
scene.attach( child );
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
function attach( child, scene, parent ) {
|
|
106
|
-
|
|
107
|
-
console.warn( 'THREE.SceneUtils: attach() has been deprecated. Use parent.attach( child ) instead.' );
|
|
108
|
-
parent.attach( child );
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
98
|
THREE.SceneUtils = {};
|
|
113
|
-
THREE.SceneUtils.attach = attach;
|
|
114
99
|
THREE.SceneUtils.createMeshesFromInstancedMesh = createMeshesFromInstancedMesh;
|
|
115
100
|
THREE.SceneUtils.createMeshesFromMultiMaterialMesh = createMeshesFromMultiMaterialMesh;
|
|
116
101
|
THREE.SceneUtils.createMultiMaterialObject = createMultiMaterialObject;
|
|
117
|
-
THREE.SceneUtils.detach = detach;
|
|
118
102
|
|
|
119
103
|
} )();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Bone,
|
|
3
3
|
BoxGeometry,
|
|
4
|
+
CapsuleGeometry,
|
|
4
5
|
Color,
|
|
5
|
-
CylinderGeometry,
|
|
6
6
|
Euler,
|
|
7
7
|
Matrix4,
|
|
8
8
|
Mesh,
|
|
@@ -209,7 +209,7 @@ class MMDPhysics {
|
|
|
209
209
|
// mesh's default world transform as position(0, 0, 0),
|
|
210
210
|
// quaternion(0, 0, 0, 1) and scale(0, 0, 0)
|
|
211
211
|
|
|
212
|
-
|
|
212
|
+
const parent = mesh.parent;
|
|
213
213
|
|
|
214
214
|
if ( parent !== null ) mesh.parent = null;
|
|
215
215
|
|
|
@@ -1358,7 +1358,7 @@ class MMDPhysicsHelper extends Object3D {
|
|
|
1358
1358
|
return new BoxGeometry( param.width * 2, param.height * 2, param.depth * 2, 8, 8, 8 );
|
|
1359
1359
|
|
|
1360
1360
|
case 2:
|
|
1361
|
-
return new
|
|
1361
|
+
return new CapsuleGeometry( param.width, param.height, 8, 16 );
|
|
1362
1362
|
|
|
1363
1363
|
default:
|
|
1364
1364
|
return null;
|
|
@@ -1367,25 +1367,6 @@ class MMDPhysicsHelper extends Object3D {
|
|
|
1367
1367
|
|
|
1368
1368
|
}
|
|
1369
1369
|
|
|
1370
|
-
function createCapsuleGeometry( radius, cylinderHeight, segmentsRadius, segmentsHeight ) {
|
|
1371
|
-
|
|
1372
|
-
var geometry = new CylinderGeometry( radius, radius, cylinderHeight, segmentsRadius, segmentsHeight, true );
|
|
1373
|
-
var upperSphere = new Mesh( new SphereGeometry( radius, segmentsRadius, segmentsHeight, 0, Math.PI * 2, 0, Math.PI / 2 ) );
|
|
1374
|
-
var lowerSphere = new Mesh( new SphereGeometry( radius, segmentsRadius, segmentsHeight, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2 ) );
|
|
1375
|
-
|
|
1376
|
-
upperSphere.position.set( 0, cylinderHeight / 2, 0 );
|
|
1377
|
-
lowerSphere.position.set( 0, - cylinderHeight / 2, 0 );
|
|
1378
|
-
|
|
1379
|
-
upperSphere.updateMatrix();
|
|
1380
|
-
lowerSphere.updateMatrix();
|
|
1381
|
-
|
|
1382
|
-
geometry.merge( upperSphere.geometry, upperSphere.matrix );
|
|
1383
|
-
geometry.merge( lowerSphere.geometry, lowerSphere.matrix );
|
|
1384
|
-
|
|
1385
|
-
return geometry;
|
|
1386
|
-
|
|
1387
|
-
}
|
|
1388
|
-
|
|
1389
1370
|
for ( var i = 0, il = bodies.length; i < il; i ++ ) {
|
|
1390
1371
|
|
|
1391
1372
|
var param = bodies[ i ].params;
|
|
@@ -1040,7 +1040,7 @@ class ArcballControls extends EventDispatcher {
|
|
|
1040
1040
|
|
|
1041
1041
|
}
|
|
1042
1042
|
|
|
1043
|
-
this._v3_1.setFromMatrixPosition(this._gizmoMatrixState);
|
|
1043
|
+
this._v3_1.setFromMatrixPosition( this._gizmoMatrixState );
|
|
1044
1044
|
|
|
1045
1045
|
this.applyTransformMatrix( this.scale( size, this._v3_1 ) );
|
|
1046
1046
|
|
|
@@ -2279,7 +2279,7 @@ class ArcballControls extends EventDispatcher {
|
|
|
2279
2279
|
this._gizmoMatrixState0.identity().setPosition( tbCenter );
|
|
2280
2280
|
this._gizmoMatrixState.copy( this._gizmoMatrixState0 );
|
|
2281
2281
|
|
|
2282
|
-
if ( this.camera.zoom
|
|
2282
|
+
if ( this.camera.zoom !== 1 ) {
|
|
2283
2283
|
|
|
2284
2284
|
//adapt gizmos size to camera zoom
|
|
2285
2285
|
const size = 1 / this.camera.zoom;
|
|
@@ -2294,8 +2294,23 @@ class ArcballControls extends EventDispatcher {
|
|
|
2294
2294
|
|
|
2295
2295
|
this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale );
|
|
2296
2296
|
|
|
2297
|
+
//
|
|
2298
|
+
|
|
2299
|
+
this._gizmos.traverse( function ( object ) {
|
|
2300
|
+
|
|
2301
|
+
if ( object.isLine ) {
|
|
2302
|
+
|
|
2303
|
+
object.geometry.dispose();
|
|
2304
|
+
object.material.dispose();
|
|
2305
|
+
|
|
2306
|
+
}
|
|
2307
|
+
|
|
2308
|
+
} );
|
|
2309
|
+
|
|
2297
2310
|
this._gizmos.clear();
|
|
2298
2311
|
|
|
2312
|
+
//
|
|
2313
|
+
|
|
2299
2314
|
this._gizmos.add( gizmoX );
|
|
2300
2315
|
this._gizmos.add( gizmoY );
|
|
2301
2316
|
this._gizmos.add( gizmoZ );
|
|
@@ -12,13 +12,6 @@ class FirstPersonControls {
|
|
|
12
12
|
|
|
13
13
|
constructor( object, domElement ) {
|
|
14
14
|
|
|
15
|
-
if ( domElement === undefined ) {
|
|
16
|
-
|
|
17
|
-
console.warn( 'THREE.FirstPersonControls: The second parameter "domElement" is now mandatory.' );
|
|
18
|
-
domElement = document;
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
15
|
this.object = object;
|
|
23
16
|
this.domElement = domElement;
|
|
24
17
|
|
|
@@ -12,13 +12,6 @@ class FlyControls extends EventDispatcher {
|
|
|
12
12
|
|
|
13
13
|
super();
|
|
14
14
|
|
|
15
|
-
if ( domElement === undefined ) {
|
|
16
|
-
|
|
17
|
-
console.warn( 'THREE.FlyControls: The second parameter "domElement" is now mandatory.' );
|
|
18
|
-
domElement = document;
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
15
|
this.object = object;
|
|
23
16
|
this.domElement = domElement;
|
|
24
17
|
|
|
@@ -25,9 +25,6 @@ class OrbitControls extends EventDispatcher {
|
|
|
25
25
|
|
|
26
26
|
super();
|
|
27
27
|
|
|
28
|
-
if ( domElement === undefined ) console.warn( 'THREE.OrbitControls: The second parameter "domElement" is now mandatory.' );
|
|
29
|
-
if ( domElement === document ) console.error( 'THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.' );
|
|
30
|
-
|
|
31
28
|
this.object = object;
|
|
32
29
|
this.domElement = domElement;
|
|
33
30
|
this.domElement.style.touchAction = 'none'; // disable touch scroll
|
|
@@ -960,8 +957,6 @@ class OrbitControls extends EventDispatcher {
|
|
|
960
957
|
|
|
961
958
|
function onMouseMove( event ) {
|
|
962
959
|
|
|
963
|
-
if ( scope.enabled === false ) return;
|
|
964
|
-
|
|
965
960
|
switch ( state ) {
|
|
966
961
|
|
|
967
962
|
case STATE.ROTATE:
|
|
@@ -19,13 +19,6 @@ class PointerLockControls extends EventDispatcher {
|
|
|
19
19
|
|
|
20
20
|
super();
|
|
21
21
|
|
|
22
|
-
if ( domElement === undefined ) {
|
|
23
|
-
|
|
24
|
-
console.warn( 'THREE.PointerLockControls: The second parameter "domElement" is now mandatory.' );
|
|
25
|
-
domElement = document.body;
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
22
|
this.domElement = domElement;
|
|
30
23
|
this.isLocked = false;
|
|
31
24
|
|
|
@@ -16,9 +16,6 @@ class TrackballControls extends EventDispatcher {
|
|
|
16
16
|
|
|
17
17
|
super();
|
|
18
18
|
|
|
19
|
-
if ( domElement === undefined ) console.warn( 'THREE.TrackballControls: The second parameter "domElement" is now mandatory.' );
|
|
20
|
-
if ( domElement === document ) console.error( 'THREE.TrackballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.' );
|
|
21
|
-
|
|
22
19
|
const scope = this;
|
|
23
20
|
const STATE = { NONE: - 1, ROTATE: 0, ZOOM: 1, PAN: 2, TOUCH_ROTATE: 3, TOUCH_ZOOM_PAN: 4 };
|
|
24
21
|
|
|
@@ -205,7 +205,15 @@ class TransformControls extends Object3D {
|
|
|
205
205
|
this.camera.updateMatrixWorld();
|
|
206
206
|
this.camera.matrixWorld.decompose( this.cameraPosition, this.cameraQuaternion, this._cameraScale );
|
|
207
207
|
|
|
208
|
-
|
|
208
|
+
if ( this.camera.isOrthographicCamera ) {
|
|
209
|
+
|
|
210
|
+
this.camera.getWorldDirection( this.eye );
|
|
211
|
+
|
|
212
|
+
} else {
|
|
213
|
+
|
|
214
|
+
this.eye.copy( this.cameraPosition ).sub( this.worldPosition ).normalize();
|
|
215
|
+
|
|
216
|
+
}
|
|
209
217
|
|
|
210
218
|
super.updateMatrixWorld( this );
|
|
211
219
|
|
|
@@ -555,7 +563,7 @@ class TransformControls extends Object3D {
|
|
|
555
563
|
|
|
556
564
|
}
|
|
557
565
|
|
|
558
|
-
//
|
|
566
|
+
// Detach from object
|
|
559
567
|
detach() {
|
|
560
568
|
|
|
561
569
|
this.object = undefined;
|
|
@@ -635,12 +643,6 @@ class TransformControls extends Object3D {
|
|
|
635
643
|
|
|
636
644
|
}
|
|
637
645
|
|
|
638
|
-
update() {
|
|
639
|
-
|
|
640
|
-
console.warn( 'THREE.TransformControls: update function has no more functionality and therefore has been deprecated.' );
|
|
641
|
-
|
|
642
|
-
}
|
|
643
|
-
|
|
644
646
|
}
|
|
645
647
|
|
|
646
648
|
// mouse / touch event handlers
|
|
@@ -1308,12 +1310,12 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1308
1310
|
|
|
1309
1311
|
// Hide translate and scale axis facing the camera
|
|
1310
1312
|
|
|
1311
|
-
const
|
|
1312
|
-
const
|
|
1313
|
+
const AXIS_HIDE_THRESHOLD = 0.99;
|
|
1314
|
+
const PLANE_HIDE_THRESHOLD = 0.2;
|
|
1313
1315
|
|
|
1314
1316
|
if ( handle.name === 'X' ) {
|
|
1315
1317
|
|
|
1316
|
-
if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) >
|
|
1318
|
+
if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) {
|
|
1317
1319
|
|
|
1318
1320
|
handle.scale.set( 1e-10, 1e-10, 1e-10 );
|
|
1319
1321
|
handle.visible = false;
|
|
@@ -1324,7 +1326,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1324
1326
|
|
|
1325
1327
|
if ( handle.name === 'Y' ) {
|
|
1326
1328
|
|
|
1327
|
-
if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) >
|
|
1329
|
+
if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) {
|
|
1328
1330
|
|
|
1329
1331
|
handle.scale.set( 1e-10, 1e-10, 1e-10 );
|
|
1330
1332
|
handle.visible = false;
|
|
@@ -1335,7 +1337,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1335
1337
|
|
|
1336
1338
|
if ( handle.name === 'Z' ) {
|
|
1337
1339
|
|
|
1338
|
-
if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) >
|
|
1340
|
+
if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) > AXIS_HIDE_THRESHOLD ) {
|
|
1339
1341
|
|
|
1340
1342
|
handle.scale.set( 1e-10, 1e-10, 1e-10 );
|
|
1341
1343
|
handle.visible = false;
|
|
@@ -1346,7 +1348,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1346
1348
|
|
|
1347
1349
|
if ( handle.name === 'XY' ) {
|
|
1348
1350
|
|
|
1349
|
-
if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) <
|
|
1351
|
+
if ( Math.abs( _alignVector.copy( _unitZ ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) {
|
|
1350
1352
|
|
|
1351
1353
|
handle.scale.set( 1e-10, 1e-10, 1e-10 );
|
|
1352
1354
|
handle.visible = false;
|
|
@@ -1357,7 +1359,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1357
1359
|
|
|
1358
1360
|
if ( handle.name === 'YZ' ) {
|
|
1359
1361
|
|
|
1360
|
-
if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) <
|
|
1362
|
+
if ( Math.abs( _alignVector.copy( _unitX ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) {
|
|
1361
1363
|
|
|
1362
1364
|
handle.scale.set( 1e-10, 1e-10, 1e-10 );
|
|
1363
1365
|
handle.visible = false;
|
|
@@ -1368,7 +1370,7 @@ class TransformControlsGizmo extends Object3D {
|
|
|
1368
1370
|
|
|
1369
1371
|
if ( handle.name === 'XZ' ) {
|
|
1370
1372
|
|
|
1371
|
-
if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) <
|
|
1373
|
+
if ( Math.abs( _alignVector.copy( _unitY ).applyQuaternion( quaternion ).dot( this.eye ) ) < PLANE_HIDE_THRESHOLD ) {
|
|
1372
1374
|
|
|
1373
1375
|
handle.scale.set( 1e-10, 1e-10, 1e-10 );
|
|
1374
1376
|
handle.visible = false;
|
|
@@ -131,9 +131,9 @@ class AnaglyphEffect {
|
|
|
131
131
|
|
|
132
132
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
133
133
|
|
|
134
|
-
scene.updateMatrixWorld();
|
|
134
|
+
if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
|
|
135
135
|
|
|
136
|
-
if ( camera.parent === null ) camera.updateMatrixWorld();
|
|
136
|
+
if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
|
|
137
137
|
|
|
138
138
|
_stereo.update( camera );
|
|
139
139
|
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
* // How to set outline parameters for each material
|
|
56
56
|
* material.userData.outlineParameters = {
|
|
57
57
|
* thickness: 0.01,
|
|
58
|
-
* color: [ 0, 0, 0 ]
|
|
58
|
+
* color: [ 0, 0, 0 ],
|
|
59
59
|
* alpha: 0.8,
|
|
60
60
|
* visible: true,
|
|
61
61
|
* keepAlive: true
|
|
@@ -429,27 +429,6 @@ class OutlineEffect {
|
|
|
429
429
|
|
|
430
430
|
this.render = function ( scene, camera ) {
|
|
431
431
|
|
|
432
|
-
let renderTarget;
|
|
433
|
-
let forceClear = false;
|
|
434
|
-
|
|
435
|
-
if ( arguments[ 2 ] !== undefined ) {
|
|
436
|
-
|
|
437
|
-
console.warn( 'THREE.OutlineEffect.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.' );
|
|
438
|
-
renderTarget = arguments[ 2 ];
|
|
439
|
-
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
if ( arguments[ 3 ] !== undefined ) {
|
|
443
|
-
|
|
444
|
-
console.warn( 'THREE.OutlineEffect.render(): the forceClear argument has been removed. Use .clear() instead.' );
|
|
445
|
-
forceClear = arguments[ 3 ];
|
|
446
|
-
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
if ( renderTarget !== undefined ) renderer.setRenderTarget( renderTarget );
|
|
450
|
-
|
|
451
|
-
if ( forceClear ) renderer.clear();
|
|
452
|
-
|
|
453
432
|
if ( this.enabled === false ) {
|
|
454
433
|
|
|
455
434
|
renderer.render( scene, camera );
|
|
@@ -471,11 +450,11 @@ class OutlineEffect {
|
|
|
471
450
|
this.renderOutline = function ( scene, camera ) {
|
|
472
451
|
|
|
473
452
|
const currentAutoClear = renderer.autoClear;
|
|
474
|
-
const currentSceneAutoUpdate = scene.
|
|
453
|
+
const currentSceneAutoUpdate = scene.matrixWorldAutoUpdate;
|
|
475
454
|
const currentSceneBackground = scene.background;
|
|
476
455
|
const currentShadowMapEnabled = renderer.shadowMap.enabled;
|
|
477
456
|
|
|
478
|
-
scene.
|
|
457
|
+
scene.matrixWorldAutoUpdate = false;
|
|
479
458
|
scene.background = null;
|
|
480
459
|
renderer.autoClear = false;
|
|
481
460
|
renderer.shadowMap.enabled = false;
|
|
@@ -488,7 +467,7 @@ class OutlineEffect {
|
|
|
488
467
|
|
|
489
468
|
cleanupCache();
|
|
490
469
|
|
|
491
|
-
scene.
|
|
470
|
+
scene.matrixWorldAutoUpdate = currentSceneAutoUpdate;
|
|
492
471
|
scene.background = currentSceneBackground;
|
|
493
472
|
renderer.autoClear = currentAutoClear;
|
|
494
473
|
renderer.shadowMap.enabled = currentShadowMapEnabled;
|
|
@@ -90,9 +90,9 @@ class ParallaxBarrierEffect {
|
|
|
90
90
|
|
|
91
91
|
this.render = function ( scene, camera ) {
|
|
92
92
|
|
|
93
|
-
scene.updateMatrixWorld();
|
|
93
|
+
if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
|
|
94
94
|
|
|
95
|
-
if ( camera.parent === null ) camera.updateMatrixWorld();
|
|
95
|
+
if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
|
|
96
96
|
|
|
97
97
|
_stereo.update( camera );
|
|
98
98
|
|
|
@@ -53,9 +53,9 @@ class PeppersGhostEffect {
|
|
|
53
53
|
|
|
54
54
|
this.render = function ( scene, camera ) {
|
|
55
55
|
|
|
56
|
-
scene.updateMatrixWorld();
|
|
56
|
+
if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
|
|
57
57
|
|
|
58
|
-
if ( camera.parent === null ) camera.updateMatrixWorld();
|
|
58
|
+
if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
|
|
59
59
|
|
|
60
60
|
camera.matrixWorld.decompose( _position, _quaternion, _scale );
|
|
61
61
|
|
|
@@ -25,9 +25,9 @@ class StereoEffect {
|
|
|
25
25
|
|
|
26
26
|
this.render = function ( scene, camera ) {
|
|
27
27
|
|
|
28
|
-
scene.updateMatrixWorld();
|
|
28
|
+
if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
|
|
29
29
|
|
|
30
|
-
if ( camera.parent === null ) camera.updateMatrixWorld();
|
|
30
|
+
if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
|
|
31
31
|
|
|
32
32
|
_stereo.update( camera );
|
|
33
33
|
|
|
@@ -108,6 +108,29 @@ class RoomEnvironment extends Scene {
|
|
|
108
108
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
dispose() {
|
|
112
|
+
|
|
113
|
+
const resources = new Set();
|
|
114
|
+
|
|
115
|
+
this.traverse( ( object ) => {
|
|
116
|
+
|
|
117
|
+
if ( object.isMesh ) {
|
|
118
|
+
|
|
119
|
+
resources.add( object.geometry );
|
|
120
|
+
resources.add( object.material );
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
} );
|
|
125
|
+
|
|
126
|
+
for ( const resource of resources ) {
|
|
127
|
+
|
|
128
|
+
resource.dispose();
|
|
129
|
+
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
}
|
|
133
|
+
|
|
111
134
|
}
|
|
112
135
|
|
|
113
136
|
function createAreaLightMaterial( intensity ) {
|
|
@@ -243,21 +243,12 @@ class ColladaExporter {
|
|
|
243
243
|
|
|
244
244
|
// Process the given piece of geometry into the geometry library
|
|
245
245
|
// Returns the mesh id
|
|
246
|
-
function processGeometry(
|
|
246
|
+
function processGeometry( bufferGeometry ) {
|
|
247
247
|
|
|
248
|
-
let info = geometryInfo.get(
|
|
248
|
+
let info = geometryInfo.get( bufferGeometry );
|
|
249
249
|
|
|
250
250
|
if ( ! info ) {
|
|
251
251
|
|
|
252
|
-
// convert the geometry to bufferGeometry if it isn't already
|
|
253
|
-
const bufferGeometry = g;
|
|
254
|
-
|
|
255
|
-
if ( bufferGeometry.isBufferGeometry !== true ) {
|
|
256
|
-
|
|
257
|
-
throw new Error( 'THREE.ColladaExporter: Geometry is not of type THREE.BufferGeometry.' );
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
|
|
261
252
|
const meshid = `Mesh${ libraryGeometries.length + 1 }`;
|
|
262
253
|
|
|
263
254
|
const indexCount =
|
|
@@ -271,7 +262,7 @@ class ColladaExporter {
|
|
|
271
262
|
[ { start: 0, count: indexCount, materialIndex: 0 } ];
|
|
272
263
|
|
|
273
264
|
|
|
274
|
-
const gname =
|
|
265
|
+
const gname = bufferGeometry.name ? ` name="${ bufferGeometry.name }"` : '';
|
|
275
266
|
let gnode = `<geometry id="${ meshid }"${ gname }><mesh>`;
|
|
276
267
|
|
|
277
268
|
// define the geometry node and the vertices for the geometry
|
|
@@ -353,7 +344,7 @@ class ColladaExporter {
|
|
|
353
344
|
libraryGeometries.push( gnode );
|
|
354
345
|
|
|
355
346
|
info = { meshid: meshid, bufferGeometry: bufferGeometry };
|
|
356
|
-
geometryInfo.set(
|
|
347
|
+
geometryInfo.set( bufferGeometry, info );
|
|
357
348
|
|
|
358
349
|
}
|
|
359
350
|
|
|
@@ -26,12 +26,6 @@ class DRACOExporter {
|
|
|
26
26
|
exportColor: false,
|
|
27
27
|
} ) {
|
|
28
28
|
|
|
29
|
-
if ( object.isBufferGeometry === true ) {
|
|
30
|
-
|
|
31
|
-
throw new Error( 'DRACOExporter: The first parameter of parse() is now an instance of Mesh or Points.' );
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
29
|
if ( DracoEncoderModule === undefined ) {
|
|
36
30
|
|
|
37
31
|
throw new Error( 'THREE.DRACOExporter: required the draco_encoder to work.' );
|
|
@@ -45,13 +39,6 @@ class DRACOExporter {
|
|
|
45
39
|
let builder;
|
|
46
40
|
let dracoObject;
|
|
47
41
|
|
|
48
|
-
|
|
49
|
-
if ( geometry.isBufferGeometry !== true ) {
|
|
50
|
-
|
|
51
|
-
throw new Error( 'THREE.DRACOExporter.parse(geometry, options): geometry is not a THREE.BufferGeometry instance.' );
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
42
|
if ( object.isMesh === true ) {
|
|
56
43
|
|
|
57
44
|
builder = new dracoEncoder.MeshBuilder();
|