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
|
@@ -13,26 +13,34 @@
|
|
|
13
13
|
const textures = {};
|
|
14
14
|
scene.traverseVisible( object => {
|
|
15
15
|
|
|
16
|
-
if ( object.isMesh
|
|
16
|
+
if ( object.isMesh ) {
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
const material = object.material;
|
|
20
|
-
const geometryFileName = 'geometries/Geometry_' + geometry.id + '.usd';
|
|
18
|
+
if ( object.material.isMeshStandardMaterial ) {
|
|
21
19
|
|
|
22
|
-
|
|
20
|
+
const geometry = object.geometry;
|
|
21
|
+
const material = object.material;
|
|
22
|
+
const geometryFileName = 'geometries/Geometry_' + geometry.id + '.usd';
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
files[ geometryFileName ] = buildUSDFileAsString( meshObject );
|
|
24
|
+
if ( ! ( geometryFileName in files ) ) {
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
const meshObject = buildMeshObject( geometry );
|
|
27
|
+
files[ geometryFileName ] = buildUSDFileAsString( meshObject );
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
if ( ! ( material.uuid in materials ) ) {
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
materials[ material.uuid ] = material;
|
|
34
|
+
|
|
35
|
+
}
|
|
34
36
|
|
|
35
|
-
|
|
37
|
+
output += buildXform( object, geometry, material );
|
|
38
|
+
|
|
39
|
+
} else {
|
|
40
|
+
|
|
41
|
+
console.warn( 'THREE.USDZExporter: Unsupported material type (USDZ only supports MeshStandardMaterial)', object );
|
|
42
|
+
|
|
43
|
+
}
|
|
36
44
|
|
|
37
45
|
}
|
|
38
46
|
|
|
@@ -228,25 +236,33 @@ def "Geometry"
|
|
|
228
236
|
|
|
229
237
|
function buildMeshVertexCount( geometry ) {
|
|
230
238
|
|
|
231
|
-
const count = geometry.index !== null ? geometry.index.
|
|
239
|
+
const count = geometry.index !== null ? geometry.index.count : geometry.attributes.position.count;
|
|
232
240
|
return Array( count / 3 ).fill( 3 ).join( ', ' );
|
|
233
241
|
|
|
234
242
|
}
|
|
235
243
|
|
|
236
244
|
function buildMeshVertexIndices( geometry ) {
|
|
237
245
|
|
|
238
|
-
|
|
246
|
+
const index = geometry.index;
|
|
247
|
+
const array = [];
|
|
239
248
|
|
|
240
|
-
|
|
249
|
+
if ( index !== null ) {
|
|
241
250
|
|
|
242
|
-
|
|
251
|
+
for ( let i = 0; i < index.count; i ++ ) {
|
|
243
252
|
|
|
244
|
-
|
|
245
|
-
const length = geometry.attributes.position.count;
|
|
253
|
+
array.push( index.getX( i ) );
|
|
246
254
|
|
|
247
|
-
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
} else {
|
|
248
258
|
|
|
249
|
-
|
|
259
|
+
const length = geometry.attributes.position.count;
|
|
260
|
+
|
|
261
|
+
for ( let i = 0; i < length; i ++ ) {
|
|
262
|
+
|
|
263
|
+
array.push( i );
|
|
264
|
+
|
|
265
|
+
}
|
|
250
266
|
|
|
251
267
|
}
|
|
252
268
|
|
|
@@ -264,11 +280,13 @@ def "Geometry"
|
|
|
264
280
|
}
|
|
265
281
|
|
|
266
282
|
const array = [];
|
|
267
|
-
const data = attribute.array;
|
|
268
283
|
|
|
269
|
-
for ( let i = 0; i <
|
|
284
|
+
for ( let i = 0; i < attribute.count; i ++ ) {
|
|
270
285
|
|
|
271
|
-
|
|
286
|
+
const x = attribute.getX( i );
|
|
287
|
+
const y = attribute.getY( i );
|
|
288
|
+
const z = attribute.getZ( i );
|
|
289
|
+
array.push( `(${x.toPrecision( PRECISION )}, ${y.toPrecision( PRECISION )}, ${z.toPrecision( PRECISION )})` );
|
|
272
290
|
|
|
273
291
|
}
|
|
274
292
|
|
|
@@ -286,11 +304,12 @@ def "Geometry"
|
|
|
286
304
|
}
|
|
287
305
|
|
|
288
306
|
const array = [];
|
|
289
|
-
const data = attribute.array;
|
|
290
307
|
|
|
291
|
-
for ( let i = 0; i <
|
|
308
|
+
for ( let i = 0; i < attribute.count; i ++ ) {
|
|
292
309
|
|
|
293
|
-
|
|
310
|
+
const x = attribute.getX( i );
|
|
311
|
+
const y = attribute.getY( i );
|
|
312
|
+
array.push( `(${x.toPrecision( PRECISION )}, ${1 - y.toPrecision( PRECISION )})` );
|
|
294
313
|
|
|
295
314
|
}
|
|
296
315
|
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
*
|
|
43
43
|
* Code converted from my ancient SPD software, http://tog.acm.org/resources/SPD/
|
|
44
44
|
* Created for the Udacity course "Interactive Rendering", http://bit.ly/ericity
|
|
45
|
-
* Lesson: https://www.udacity.com/course/viewer#!/c-cs291/l-68866048/m-106482448
|
|
46
45
|
* YouTube video on teapot history: https://www.youtube.com/watch?v=DxMfblPzFNc
|
|
47
46
|
*
|
|
48
47
|
* See https://en.wikipedia.org/wiki/Utah_teapot for the history of the teapot
|
|
@@ -12,13 +12,15 @@
|
|
|
12
12
|
this.pointTopLeft = new THREE.Vector2();
|
|
13
13
|
this.pointBottomRight = new THREE.Vector2();
|
|
14
14
|
this.isDown = false;
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
this.onPointerDown = function ( event ) {
|
|
16
17
|
|
|
17
18
|
this.isDown = true;
|
|
18
19
|
this.onSelectStart( event );
|
|
19
20
|
|
|
20
|
-
}.bind( this )
|
|
21
|
-
|
|
21
|
+
}.bind( this );
|
|
22
|
+
|
|
23
|
+
this.onPointerMove = function ( event ) {
|
|
22
24
|
|
|
23
25
|
if ( this.isDown ) {
|
|
24
26
|
|
|
@@ -26,13 +28,26 @@
|
|
|
26
28
|
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
}.bind( this )
|
|
30
|
-
|
|
31
|
+
}.bind( this );
|
|
32
|
+
|
|
33
|
+
this.onPointerUp = function () {
|
|
31
34
|
|
|
32
35
|
this.isDown = false;
|
|
33
|
-
this.onSelectOver(
|
|
36
|
+
this.onSelectOver();
|
|
37
|
+
|
|
38
|
+
}.bind( this );
|
|
39
|
+
|
|
40
|
+
this.renderer.domElement.addEventListener( 'pointerdown', this.onPointerDown );
|
|
41
|
+
this.renderer.domElement.addEventListener( 'pointermove', this.onPointerMove );
|
|
42
|
+
this.renderer.domElement.addEventListener( 'pointerup', this.onPointerUp );
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
dispose() {
|
|
34
47
|
|
|
35
|
-
|
|
48
|
+
this.renderer.domElement.removeEventListener( 'pointerdown', this.onPointerDown );
|
|
49
|
+
this.renderer.domElement.removeEventListener( 'pointermove', this.onPointerMove );
|
|
50
|
+
this.renderer.domElement.removeEventListener( 'pointerup', this.onPointerUp );
|
|
36
51
|
|
|
37
52
|
}
|
|
38
53
|
|
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
const ltc_float_2 = new Float32Array( LTC_MAT_2 );
|
|
29
29
|
THREE.UniformsLib.LTC_FLOAT_1 = new THREE.DataTexture( ltc_float_1, 64, 64, THREE.RGBAFormat, THREE.FloatType, THREE.UVMapping, THREE.ClampToEdgeWrapping, THREE.ClampToEdgeWrapping, THREE.LinearFilter, THREE.NearestFilter, 1 );
|
|
30
30
|
THREE.UniformsLib.LTC_FLOAT_2 = new THREE.DataTexture( ltc_float_2, 64, 64, THREE.RGBAFormat, THREE.FloatType, THREE.UVMapping, THREE.ClampToEdgeWrapping, THREE.ClampToEdgeWrapping, THREE.LinearFilter, THREE.NearestFilter, 1 );
|
|
31
|
+
THREE.UniformsLib.LTC_FLOAT_1.needsUpdate = true;
|
|
32
|
+
THREE.UniformsLib.LTC_FLOAT_2.needsUpdate = true;
|
|
31
33
|
const ltc_half_1 = new Uint16Array( LTC_MAT_1.length );
|
|
32
34
|
LTC_MAT_1.forEach( function ( x, index ) {
|
|
33
35
|
|
|
@@ -42,6 +44,8 @@
|
|
|
42
44
|
} );
|
|
43
45
|
THREE.UniformsLib.LTC_HALF_1 = new THREE.DataTexture( ltc_half_1, 64, 64, THREE.RGBAFormat, THREE.HalfFloatType, THREE.UVMapping, THREE.ClampToEdgeWrapping, THREE.ClampToEdgeWrapping, THREE.LinearFilter, THREE.NearestFilter, 1 );
|
|
44
46
|
THREE.UniformsLib.LTC_HALF_2 = new THREE.DataTexture( ltc_half_2, 64, 64, THREE.RGBAFormat, THREE.HalfFloatType, THREE.UVMapping, THREE.ClampToEdgeWrapping, THREE.ClampToEdgeWrapping, THREE.LinearFilter, THREE.NearestFilter, 1 );
|
|
47
|
+
THREE.UniformsLib.LTC_HALF_1.needsUpdate = true;
|
|
48
|
+
THREE.UniformsLib.LTC_HALF_2.needsUpdate = true;
|
|
45
49
|
|
|
46
50
|
}
|
|
47
51
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* dashed: <boolean>,
|
|
8
8
|
* dashScale: <float>,
|
|
9
9
|
* dashSize: <float>,
|
|
10
|
+
* dashOffset: <float>,
|
|
10
11
|
* gapSize: <float>,
|
|
11
12
|
* resolution: <Vector2>, // to be set by renderer
|
|
12
13
|
* }
|
|
@@ -21,6 +22,9 @@
|
|
|
21
22
|
resolution: {
|
|
22
23
|
value: new THREE.Vector2( 1, 1 )
|
|
23
24
|
},
|
|
25
|
+
dashOffset: {
|
|
26
|
+
value: 0
|
|
27
|
+
},
|
|
24
28
|
dashScale: {
|
|
25
29
|
value: 1
|
|
26
30
|
},
|
|
@@ -52,10 +56,23 @@
|
|
|
52
56
|
attribute vec3 instanceColorStart;
|
|
53
57
|
attribute vec3 instanceColorEnd;
|
|
54
58
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
#ifdef WORLD_UNITS
|
|
60
|
+
|
|
61
|
+
varying vec4 worldPos;
|
|
62
|
+
varying vec3 worldStart;
|
|
63
|
+
varying vec3 worldEnd;
|
|
64
|
+
|
|
65
|
+
#ifdef USE_DASH
|
|
66
|
+
|
|
67
|
+
varying vec2 vUv;
|
|
68
|
+
|
|
69
|
+
#endif
|
|
70
|
+
|
|
71
|
+
#else
|
|
72
|
+
|
|
73
|
+
varying vec2 vUv;
|
|
74
|
+
|
|
75
|
+
#endif
|
|
59
76
|
|
|
60
77
|
#ifdef USE_DASH
|
|
61
78
|
|
|
@@ -92,19 +109,26 @@
|
|
|
92
109
|
#ifdef USE_DASH
|
|
93
110
|
|
|
94
111
|
vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
|
|
112
|
+
vUv = uv;
|
|
95
113
|
|
|
96
114
|
#endif
|
|
97
115
|
|
|
98
116
|
float aspect = resolution.x / resolution.y;
|
|
99
117
|
|
|
100
|
-
vUv = uv;
|
|
101
|
-
|
|
102
118
|
// camera space
|
|
103
119
|
vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );
|
|
104
120
|
vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );
|
|
105
121
|
|
|
106
|
-
|
|
107
|
-
|
|
122
|
+
#ifdef WORLD_UNITS
|
|
123
|
+
|
|
124
|
+
worldStart = start.xyz;
|
|
125
|
+
worldEnd = end.xyz;
|
|
126
|
+
|
|
127
|
+
#else
|
|
128
|
+
|
|
129
|
+
vUv = uv;
|
|
130
|
+
|
|
131
|
+
#endif
|
|
108
132
|
|
|
109
133
|
// special case for perspective projection, and segments that terminate either in, or behind, the camera plane
|
|
110
134
|
// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
|
|
@@ -254,15 +278,31 @@
|
|
|
254
278
|
|
|
255
279
|
#ifdef USE_DASH
|
|
256
280
|
|
|
281
|
+
uniform float dashOffset;
|
|
257
282
|
uniform float dashSize;
|
|
258
283
|
uniform float gapSize;
|
|
259
284
|
|
|
260
285
|
#endif
|
|
261
286
|
|
|
262
287
|
varying float vLineDistance;
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
288
|
+
|
|
289
|
+
#ifdef WORLD_UNITS
|
|
290
|
+
|
|
291
|
+
varying vec4 worldPos;
|
|
292
|
+
varying vec3 worldStart;
|
|
293
|
+
varying vec3 worldEnd;
|
|
294
|
+
|
|
295
|
+
#ifdef USE_DASH
|
|
296
|
+
|
|
297
|
+
varying vec2 vUv;
|
|
298
|
+
|
|
299
|
+
#endif
|
|
300
|
+
|
|
301
|
+
#else
|
|
302
|
+
|
|
303
|
+
varying vec2 vUv;
|
|
304
|
+
|
|
305
|
+
#endif
|
|
266
306
|
|
|
267
307
|
#include <common>
|
|
268
308
|
#include <color_pars_fragment>
|
|
@@ -270,8 +310,6 @@
|
|
|
270
310
|
#include <logdepthbuf_pars_fragment>
|
|
271
311
|
#include <clipping_planes_pars_fragment>
|
|
272
312
|
|
|
273
|
-
varying vec2 vUv;
|
|
274
|
-
|
|
275
313
|
vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {
|
|
276
314
|
|
|
277
315
|
float mua;
|
|
@@ -309,7 +347,7 @@
|
|
|
309
347
|
|
|
310
348
|
if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
|
|
311
349
|
|
|
312
|
-
if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
|
|
350
|
+
if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
|
|
313
351
|
|
|
314
352
|
#endif
|
|
315
353
|
|
|
@@ -330,7 +368,7 @@
|
|
|
330
368
|
|
|
331
369
|
#ifndef USE_DASH
|
|
332
370
|
|
|
333
|
-
#ifdef
|
|
371
|
+
#ifdef USE_ALPHA_TO_COVERAGE
|
|
334
372
|
|
|
335
373
|
float dnorm = fwidth( norm );
|
|
336
374
|
alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );
|
|
@@ -349,7 +387,7 @@
|
|
|
349
387
|
|
|
350
388
|
#else
|
|
351
389
|
|
|
352
|
-
#ifdef
|
|
390
|
+
#ifdef USE_ALPHA_TO_COVERAGE
|
|
353
391
|
|
|
354
392
|
// artifacts appear on some hardware if a derivative is taken within a conditional
|
|
355
393
|
float a = vUv.x;
|
|
@@ -566,12 +604,12 @@
|
|
|
566
604
|
enumerable: true,
|
|
567
605
|
get: function () {
|
|
568
606
|
|
|
569
|
-
return Boolean( '
|
|
607
|
+
return Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines );
|
|
570
608
|
|
|
571
609
|
},
|
|
572
610
|
set: function ( value ) {
|
|
573
611
|
|
|
574
|
-
if ( Boolean( value ) !== Boolean( '
|
|
612
|
+
if ( Boolean( value ) !== Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines ) ) {
|
|
575
613
|
|
|
576
614
|
this.needsUpdate = true;
|
|
577
615
|
|
|
@@ -579,12 +617,12 @@
|
|
|
579
617
|
|
|
580
618
|
if ( value === true ) {
|
|
581
619
|
|
|
582
|
-
this.defines.
|
|
620
|
+
this.defines.USE_ALPHA_TO_COVERAGE = '';
|
|
583
621
|
this.extensions.derivatives = true;
|
|
584
622
|
|
|
585
623
|
} else {
|
|
586
624
|
|
|
587
|
-
delete this.defines.
|
|
625
|
+
delete this.defines.USE_ALPHA_TO_COVERAGE;
|
|
588
626
|
this.extensions.derivatives = false;
|
|
589
627
|
|
|
590
628
|
}
|
|
@@ -22,7 +22,29 @@
|
|
|
22
22
|
|
|
23
23
|
const _sphere = new THREE.Sphere();
|
|
24
24
|
|
|
25
|
-
const _clipToWorldVector = new THREE.Vector4();
|
|
25
|
+
const _clipToWorldVector = new THREE.Vector4(); // Returns the margin required to expand by in world space given the distance from the camera,
|
|
26
|
+
// line width, resolution, and camera projection
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
function getWorldSpaceHalfWidth( camera, distance, lineWidth, resolution ) {
|
|
30
|
+
|
|
31
|
+
// transform into clip space, adjust the x and y values by the pixel width offset, then
|
|
32
|
+
// transform back into world space to get world offset. Note clip space is [-1, 1] so full
|
|
33
|
+
// width does not need to be halved.
|
|
34
|
+
_clipToWorldVector.set( 0, 0, - distance, 1.0 ).applyMatrix4( camera.projectionMatrix );
|
|
35
|
+
|
|
36
|
+
_clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w );
|
|
37
|
+
|
|
38
|
+
_clipToWorldVector.x = lineWidth / resolution.width;
|
|
39
|
+
_clipToWorldVector.y = lineWidth / resolution.height;
|
|
40
|
+
|
|
41
|
+
_clipToWorldVector.applyMatrix4( camera.projectionMatrixInverse );
|
|
42
|
+
|
|
43
|
+
_clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w );
|
|
44
|
+
|
|
45
|
+
return Math.abs( Math.max( _clipToWorldVector.x, _clipToWorldVector.y ) );
|
|
46
|
+
|
|
47
|
+
}
|
|
26
48
|
|
|
27
49
|
class LineSegments2 extends THREE.Mesh {
|
|
28
50
|
|
|
@@ -84,10 +106,7 @@
|
|
|
84
106
|
const instanceStart = geometry.attributes.instanceStart;
|
|
85
107
|
const instanceEnd = geometry.attributes.instanceEnd; // camera forward is negative
|
|
86
108
|
|
|
87
|
-
const near = - camera.near; //
|
|
88
|
-
// width in clip space
|
|
89
|
-
|
|
90
|
-
const ssMaxWidth = 2.0 * Math.max( lineWidth / resolution.width, lineWidth / resolution.height ); //
|
|
109
|
+
const near = - camera.near; //
|
|
91
110
|
// check if we intersect the sphere bounds
|
|
92
111
|
|
|
93
112
|
if ( geometry.boundingSphere === null ) {
|
|
@@ -98,16 +117,9 @@
|
|
|
98
117
|
|
|
99
118
|
_sphere.copy( geometry.boundingSphere ).applyMatrix4( matrixWorld );
|
|
100
119
|
|
|
101
|
-
const distanceToSphere = Math.max( camera.near, _sphere.distanceToPoint( ray.origin ) ); //
|
|
102
|
-
|
|
103
|
-
_clipToWorldVector.set( 0, 0, - distanceToSphere, 1.0 ).applyMatrix4( camera.projectionMatrix );
|
|
104
|
-
|
|
105
|
-
_clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w );
|
|
106
|
-
|
|
107
|
-
_clipToWorldVector.applyMatrix4( camera.projectionMatrixInverse ); // increase the sphere bounds by the worst case line screen space width
|
|
108
|
-
|
|
120
|
+
const distanceToSphere = Math.max( camera.near, _sphere.distanceToPoint( ray.origin ) ); // increase the sphere bounds by the worst case line screen space width
|
|
109
121
|
|
|
110
|
-
const sphereMargin =
|
|
122
|
+
const sphereMargin = getWorldSpaceHalfWidth( camera, distanceToSphere, lineWidth, resolution );
|
|
111
123
|
_sphere.radius += sphereMargin;
|
|
112
124
|
|
|
113
125
|
if ( raycaster.ray.intersectsSphere( _sphere ) === false ) {
|
|
@@ -126,16 +138,9 @@
|
|
|
126
138
|
|
|
127
139
|
_box.copy( geometry.boundingBox ).applyMatrix4( matrixWorld );
|
|
128
140
|
|
|
129
|
-
const distanceToBox = Math.max( camera.near, _box.distanceToPoint( ray.origin ) ); //
|
|
130
|
-
|
|
131
|
-
_clipToWorldVector.set( 0, 0, - distanceToBox, 1.0 ).applyMatrix4( camera.projectionMatrix );
|
|
132
|
-
|
|
133
|
-
_clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w );
|
|
134
|
-
|
|
135
|
-
_clipToWorldVector.applyMatrix4( camera.projectionMatrixInverse ); // increase the sphere bounds by the worst case line screen space width
|
|
136
|
-
|
|
141
|
+
const distanceToBox = Math.max( camera.near, _box.distanceToPoint( ray.origin ) ); // increase the box bounds by the worst case line screen space width
|
|
137
142
|
|
|
138
|
-
const boxMargin =
|
|
143
|
+
const boxMargin = getWorldSpaceHalfWidth( camera, distanceToBox, lineWidth, resolution );
|
|
139
144
|
_box.max.x += boxMargin;
|
|
140
145
|
_box.max.y += boxMargin;
|
|
141
146
|
_box.max.z += boxMargin;
|
|
@@ -276,7 +281,7 @@
|
|
|
276
281
|
|
|
277
282
|
}
|
|
278
283
|
|
|
279
|
-
LineSegments2.prototype.
|
|
284
|
+
LineSegments2.prototype.isLineSegments2 = true;
|
|
280
285
|
|
|
281
286
|
THREE.LineSegments2 = LineSegments2;
|
|
282
287
|
|
|
@@ -231,6 +231,10 @@
|
|
|
231
231
|
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
+
map.wrapS = texture.wrapU === 0 ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping;
|
|
235
|
+
map.wrapT = texture.wrapV === 0 ? THREE.RepeatWrapping : THREE.ClampToEdgeWrapping;
|
|
236
|
+
map.repeat.set( texture.repeat[ 0 ], texture.repeat[ 1 ] );
|
|
237
|
+
|
|
234
238
|
}
|
|
235
239
|
|
|
236
240
|
}
|
|
@@ -778,7 +782,8 @@
|
|
|
778
782
|
const layers = [];
|
|
779
783
|
const views = [];
|
|
780
784
|
const namedViews = [];
|
|
781
|
-
const groups = [];
|
|
785
|
+
const groups = [];
|
|
786
|
+
const strings = []; //Handle objects
|
|
782
787
|
|
|
783
788
|
const objs = doc.objects();
|
|
784
789
|
const cnt = objs.count;
|
|
@@ -840,6 +845,13 @@
|
|
|
840
845
|
type: textureType
|
|
841
846
|
};
|
|
842
847
|
const image = doc.getEmbeddedFileAsBase64( _texture.fileName );
|
|
848
|
+
texture.wrapU = _texture.wrapU;
|
|
849
|
+
texture.wrapV = _texture.wrapV;
|
|
850
|
+
texture.wrapW = _texture.wrapW;
|
|
851
|
+
|
|
852
|
+
const uvw = _texture.uvwTransform.toFloatArray( true );
|
|
853
|
+
|
|
854
|
+
texture.repeat = [ uvw[ 0 ], uvw[ 5 ] ];
|
|
843
855
|
|
|
844
856
|
if ( image ) {
|
|
845
857
|
|
|
@@ -959,18 +971,18 @@
|
|
|
959
971
|
// console.log( `Dimstyle Count: ${doc.dimstyles().count()}` );
|
|
960
972
|
// Handle bitmaps
|
|
961
973
|
// console.log( `Bitmap Count: ${doc.bitmaps().count()}` );
|
|
962
|
-
// Handle strings
|
|
974
|
+
// Handle strings
|
|
963
975
|
// console.log( `Document Strings Count: ${doc.strings().count()}` );
|
|
976
|
+
// Note: doc.strings().documentUserTextCount() counts any doc.strings defined in a section
|
|
977
|
+
//console.log( `Document User Text Count: ${doc.strings().documentUserTextCount()}` );
|
|
978
|
+
|
|
979
|
+
const strings_count = doc.strings().count();
|
|
964
980
|
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
strings.push( string );
|
|
971
|
-
_string.delete();
|
|
972
|
-
}
|
|
973
|
-
*/
|
|
981
|
+
for ( let i = 0; i < strings_count; i ++ ) {
|
|
982
|
+
|
|
983
|
+
strings.push( doc.strings().get( i ) );
|
|
984
|
+
|
|
985
|
+
}
|
|
974
986
|
|
|
975
987
|
doc.delete();
|
|
976
988
|
return {
|
|
@@ -980,6 +992,7 @@
|
|
|
980
992
|
views,
|
|
981
993
|
namedViews,
|
|
982
994
|
groups,
|
|
995
|
+
strings,
|
|
983
996
|
settings
|
|
984
997
|
};
|
|
985
998
|
|
|
@@ -968,7 +968,7 @@
|
|
|
968
968
|
geometry.setIndex( new THREE.BufferAttribute( meshData[ 'triangles' ], 1 ) );
|
|
969
969
|
geometry.setAttribute( 'position', new THREE.BufferAttribute( meshData[ 'vertices' ], 3 ) );
|
|
970
970
|
const material = new THREE.MeshPhongMaterial( {
|
|
971
|
-
color:
|
|
971
|
+
color: 0xffffff,
|
|
972
972
|
flatShading: true
|
|
973
973
|
} );
|
|
974
974
|
const mesh = new THREE.Mesh( geometry, material );
|
|
@@ -1299,7 +1299,7 @@
|
|
|
1299
1299
|
for ( let i = 0; i < buildData.length; i ++ ) {
|
|
1300
1300
|
|
|
1301
1301
|
const buildItem = buildData[ i ];
|
|
1302
|
-
const object3D = objects[ buildItem[ 'objectId' ] ]; // apply transform
|
|
1302
|
+
const object3D = objects[ buildItem[ 'objectId' ] ].clone(); // apply transform
|
|
1303
1303
|
|
|
1304
1304
|
const transform = buildItem[ 'transform' ];
|
|
1305
1305
|
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
* Description: Early release of an AMF THREE.Loader following the pattern of the
|
|
5
5
|
* example loaders in the three.js project.
|
|
6
6
|
*
|
|
7
|
-
* More information about the AMF format: http://amf.wikispaces.com
|
|
8
|
-
*
|
|
9
7
|
* Usage:
|
|
10
8
|
* const loader = new AMFLoader();
|
|
11
9
|
* loader.load('/path/to/project.amf', function(objecttree) {
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
this.workerNextTaskID = 1;
|
|
29
29
|
this.workerSourceURL = '';
|
|
30
30
|
this.workerConfig = null;
|
|
31
|
+
console.warn( 'THREE.BasisTextureLoader: This loader is deprecated, and will be removed in a future release. ' + 'Instead, use Basis Universal compression in KTX2 (.ktx2) files with THREE.KTX2Loader.' );
|
|
31
32
|
|
|
32
33
|
}
|
|
33
34
|
|