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
|
@@ -19,7 +19,7 @@ class WebGPUNodes {
|
|
|
19
19
|
|
|
20
20
|
if ( nodeBuilder === undefined ) {
|
|
21
21
|
|
|
22
|
-
nodeBuilder = new WebGPUNodeBuilder( object
|
|
22
|
+
nodeBuilder = new WebGPUNodeBuilder( object, this.renderer, lightNode ).build();
|
|
23
23
|
|
|
24
24
|
this.builders.set( object, nodeBuilder );
|
|
25
25
|
|
|
@@ -62,7 +62,7 @@ const DigitalGlitch = {
|
|
|
62
62
|
float xs = floor(gl_FragCoord.x / 0.5);
|
|
63
63
|
float ys = floor(gl_FragCoord.y / 0.5);
|
|
64
64
|
//based on staffantans glitch shader for unity https://github.com/staffantan/unityglitch
|
|
65
|
-
|
|
65
|
+
float disp = texture2D(tDisp, p*seed*seed).r;
|
|
66
66
|
if(p.y<distortion_x+col_s && p.y>distortion_x-col_s*seed) {
|
|
67
67
|
if(seed_x>0.){
|
|
68
68
|
p.y = 1. - (p.y + distortion_y);
|
|
@@ -79,8 +79,8 @@ const DigitalGlitch = {
|
|
|
79
79
|
p.x = 1. - (p.x + distortion_x);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
p.x+=
|
|
83
|
-
p.y+=
|
|
82
|
+
p.x+=disp*seed_x*(seed/5.);
|
|
83
|
+
p.y+=disp*seed_y*(seed/5.);
|
|
84
84
|
//base from RGB shift shader
|
|
85
85
|
vec2 offset = amount * vec2( cos(angle), sin(angle));
|
|
86
86
|
vec4 cr = texture2D(tDiffuse, p + offset);
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* NVIDIA FXAA by Timothy Lottes
|
|
7
|
-
*
|
|
7
|
+
* https://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
|
|
8
8
|
* - WebGL port by @supereggbert
|
|
9
9
|
* http://www.glge.org/demos/fxaa/
|
|
10
10
|
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Film grain & scanlines shader
|
|
3
3
|
*
|
|
4
4
|
* - ported from HLSL to WebGL / GLSL
|
|
5
|
-
* http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
|
|
5
|
+
* https://web.archive.org/web/20210226214859/http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
|
|
6
6
|
*
|
|
7
7
|
* Screen Space Static Postprocessor
|
|
8
8
|
*
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Two pass Gaussian blur filter (horizontal and vertical blur shaders)
|
|
3
|
-
* -
|
|
4
|
-
* and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
3
|
+
* - see http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
5
4
|
*
|
|
6
5
|
* - 9 samples per pass
|
|
7
6
|
* - standard deviation 2.7
|
|
@@ -57,7 +57,6 @@ const mmd_toon_matcap_fragment = `
|
|
|
57
57
|
vec3 y = cross( viewDir, x );
|
|
58
58
|
vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; // 0.495 to remove artifacts caused by undersized matcap disks
|
|
59
59
|
vec4 matcapColor = texture2D( matcap, uv );
|
|
60
|
-
matcapColor = matcapTexelToLinear( matcapColor );
|
|
61
60
|
|
|
62
61
|
#ifdef MATCAP_BLENDING_MULTIPLY
|
|
63
62
|
|
|
@@ -134,7 +134,7 @@ const SSAOShader = {
|
|
|
134
134
|
vec3 viewNormal = getViewNormal( vUv );
|
|
135
135
|
|
|
136
136
|
vec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );
|
|
137
|
-
vec3 random = texture2D( tNoise, vUv * noiseScale ).
|
|
137
|
+
vec3 random = vec3( texture2D( tNoise, vUv * noiseScale ).r );
|
|
138
138
|
|
|
139
139
|
// compute matrix used to reorient a kernel vector
|
|
140
140
|
|
|
@@ -175,7 +175,7 @@ var SSRShader = {
|
|
|
175
175
|
vec3 vP=getViewPosition( uv, d, cW );
|
|
176
176
|
|
|
177
177
|
#ifdef PERSPECTIVE_CAMERA
|
|
178
|
-
// https://
|
|
178
|
+
// https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
|
|
179
179
|
float recipVPZ=1./viewPosition.z;
|
|
180
180
|
float viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
|
|
181
181
|
#else
|
|
@@ -190,7 +190,7 @@ const SSRrShader = {
|
|
|
190
190
|
vec3 vP=getViewPosition( uv, d, cW );
|
|
191
191
|
|
|
192
192
|
#ifdef PERSPECTIVE_CAMERA
|
|
193
|
-
// https://
|
|
193
|
+
// https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
|
|
194
194
|
float recipVPZ=1./viewPosition.z;
|
|
195
195
|
float viewRefractRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
|
|
196
196
|
float sD=surfDist*cW;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Two pass Gaussian blur filter (horizontal and vertical blur shaders)
|
|
3
|
-
* -
|
|
4
|
-
* and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
3
|
+
* - see http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
5
4
|
*
|
|
6
5
|
* - 9 samples per pass
|
|
7
6
|
* - standard deviation 2.7
|
|
@@ -59,7 +59,7 @@ function hilbert2D( center = new Vector3( 0, 0, 0 ), size = 10, iterations = 1,
|
|
|
59
59
|
* Generates 3D-Coordinates in a very fast way.
|
|
60
60
|
*
|
|
61
61
|
* Based on work by:
|
|
62
|
-
* @link
|
|
62
|
+
* @link https://openprocessing.org/user/5654
|
|
63
63
|
*
|
|
64
64
|
* @param center Center of Hilbert curve.
|
|
65
65
|
* @param size Total width of Hilbert curve.
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BufferAttribute,
|
|
3
|
+
BufferGeometry,
|
|
4
|
+
Group,
|
|
5
|
+
LineSegments,
|
|
6
|
+
Matrix3,
|
|
7
|
+
Mesh
|
|
8
|
+
} from 'three';
|
|
9
|
+
|
|
10
|
+
import { mergeBufferGeometries } from './BufferGeometryUtils.js';
|
|
11
|
+
|
|
12
|
+
class LDrawUtils {
|
|
13
|
+
|
|
14
|
+
static mergeObject( object ) {
|
|
15
|
+
|
|
16
|
+
// Merges geometries in object by materials and returns new object. Use on not indexed geometries.
|
|
17
|
+
// The object buffers reference the old object ones.
|
|
18
|
+
// Special treatment is done to the conditional lines generated by LDrawLoader.
|
|
19
|
+
|
|
20
|
+
function extractGroup( geometry, group, elementSize, isConditionalLine ) {
|
|
21
|
+
|
|
22
|
+
// Extracts a group from a geometry as a new geometry (with attribute buffers referencing original buffers)
|
|
23
|
+
|
|
24
|
+
const newGeometry = new BufferGeometry();
|
|
25
|
+
|
|
26
|
+
const originalPositions = geometry.getAttribute( 'position' ).array;
|
|
27
|
+
const originalNormals = elementSize === 3 ? geometry.getAttribute( 'normal' ).array : null;
|
|
28
|
+
|
|
29
|
+
const numVertsGroup = Math.min( group.count, Math.floor( originalPositions.length / 3 ) - group.start );
|
|
30
|
+
const vertStart = group.start * 3;
|
|
31
|
+
const vertEnd = ( group.start + numVertsGroup ) * 3;
|
|
32
|
+
|
|
33
|
+
const positions = originalPositions.subarray( vertStart, vertEnd );
|
|
34
|
+
const normals = originalNormals !== null ? originalNormals.subarray( vertStart, vertEnd ) : null;
|
|
35
|
+
|
|
36
|
+
newGeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );
|
|
37
|
+
if ( normals !== null ) newGeometry.setAttribute( 'normal', new BufferAttribute( normals, 3 ) );
|
|
38
|
+
|
|
39
|
+
if ( isConditionalLine ) {
|
|
40
|
+
|
|
41
|
+
const controlArray0 = geometry.getAttribute( 'control0' ).array.subarray( vertStart, vertEnd );
|
|
42
|
+
const controlArray1 = geometry.getAttribute( 'control1' ).array.subarray( vertStart, vertEnd );
|
|
43
|
+
const directionArray = geometry.getAttribute( 'direction' ).array.subarray( vertStart, vertEnd );
|
|
44
|
+
|
|
45
|
+
newGeometry.setAttribute( 'control0', new BufferAttribute( controlArray0, 3, false ) );
|
|
46
|
+
newGeometry.setAttribute( 'control1', new BufferAttribute( controlArray1, 3, false ) );
|
|
47
|
+
newGeometry.setAttribute( 'direction', new BufferAttribute( directionArray, 3, false ) );
|
|
48
|
+
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return newGeometry;
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function addGeometry( mat, geometry, geometries ) {
|
|
56
|
+
|
|
57
|
+
const geoms = geometries[ mat.uuid ];
|
|
58
|
+
if ( ! geoms ) {
|
|
59
|
+
|
|
60
|
+
geometries[ mat.uuid ] = {
|
|
61
|
+
mat: mat,
|
|
62
|
+
arr: [ geometry ]
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
else geoms.arr.push( geometry );
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function permuteAttribute( attribute, elemSize ) {
|
|
71
|
+
|
|
72
|
+
// Permutes first two vertices of each attribute element
|
|
73
|
+
|
|
74
|
+
if ( ! attribute ) return;
|
|
75
|
+
|
|
76
|
+
const verts = attribute.array;
|
|
77
|
+
const numVerts = Math.floor( verts.length / 3 );
|
|
78
|
+
let offset = 0;
|
|
79
|
+
for ( let i = 0; i < numVerts; i ++ ) {
|
|
80
|
+
|
|
81
|
+
const x = verts[ offset ];
|
|
82
|
+
const y = verts[ offset + 1 ];
|
|
83
|
+
const z = verts[ offset + 2 ];
|
|
84
|
+
|
|
85
|
+
verts[ offset ] = verts[ offset + 3 ];
|
|
86
|
+
verts[ offset + 1 ] = verts[ offset + 4 ];
|
|
87
|
+
verts[ offset + 2 ] = verts[ offset + 5 ];
|
|
88
|
+
|
|
89
|
+
verts[ offset + 3 ] = x;
|
|
90
|
+
verts[ offset + 4 ] = y;
|
|
91
|
+
verts[ offset + 5 ] = z;
|
|
92
|
+
|
|
93
|
+
offset += elemSize * 3;
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Traverse the object hierarchy collecting geometries and transforming them to world space
|
|
100
|
+
|
|
101
|
+
const meshGeometries = {};
|
|
102
|
+
const linesGeometries = {};
|
|
103
|
+
const condLinesGeometries = {};
|
|
104
|
+
|
|
105
|
+
object.updateMatrixWorld( true );
|
|
106
|
+
const normalMatrix = new Matrix3();
|
|
107
|
+
|
|
108
|
+
object.traverse( c => {
|
|
109
|
+
|
|
110
|
+
if ( c.isMesh | c.isLineSegments ) {
|
|
111
|
+
|
|
112
|
+
const elemSize = c.isMesh ? 3 : 2;
|
|
113
|
+
|
|
114
|
+
const matrixIsInverted = c.matrixWorld.determinant() < 0;
|
|
115
|
+
if ( matrixIsInverted ) {
|
|
116
|
+
|
|
117
|
+
permuteAttribute( c.geometry.attributes.position, elemSize );
|
|
118
|
+
permuteAttribute( c.geometry.attributes.normal, elemSize );
|
|
119
|
+
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
c.geometry.applyMatrix4( c.matrixWorld );
|
|
123
|
+
|
|
124
|
+
if ( c.isConditionalLine ) {
|
|
125
|
+
|
|
126
|
+
c.geometry.attributes.control0.applyMatrix4( c.matrixWorld );
|
|
127
|
+
c.geometry.attributes.control1.applyMatrix4( c.matrixWorld );
|
|
128
|
+
normalMatrix.getNormalMatrix( c.matrixWorld );
|
|
129
|
+
c.geometry.attributes.direction.applyNormalMatrix( normalMatrix );
|
|
130
|
+
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const geometries = c.isMesh ? meshGeometries : ( c.isConditionalLine ? condLinesGeometries : linesGeometries );
|
|
134
|
+
|
|
135
|
+
if ( Array.isArray( c.material ) ) {
|
|
136
|
+
|
|
137
|
+
for ( const groupIndex in c.geometry.groups ) {
|
|
138
|
+
|
|
139
|
+
const group = c.geometry.groups[ groupIndex ];
|
|
140
|
+
const mat = c.material[ group.materialIndex ];
|
|
141
|
+
const newGeometry = extractGroup( c.geometry, group, elemSize, c.isConditionalLine );
|
|
142
|
+
addGeometry( mat, newGeometry, geometries );
|
|
143
|
+
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
}
|
|
147
|
+
else addGeometry( c.material, c.geometry, geometries );
|
|
148
|
+
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
} );
|
|
152
|
+
|
|
153
|
+
// Create object with merged geometries
|
|
154
|
+
|
|
155
|
+
const mergedObject = new Group();
|
|
156
|
+
|
|
157
|
+
const meshMaterialsIds = Object.keys( meshGeometries );
|
|
158
|
+
for ( const i in meshMaterialsIds ) {
|
|
159
|
+
|
|
160
|
+
const meshGeometry = meshGeometries[ meshMaterialsIds[ i ] ];
|
|
161
|
+
const mergedGeometry = mergeBufferGeometries( meshGeometry.arr );
|
|
162
|
+
mergedObject.add( new Mesh( mergedGeometry, meshGeometry.mat ) );
|
|
163
|
+
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const linesMaterialsIds = Object.keys( linesGeometries );
|
|
167
|
+
for ( const i in linesMaterialsIds ) {
|
|
168
|
+
|
|
169
|
+
const lineGeometry = linesGeometries[ linesMaterialsIds[ i ] ];
|
|
170
|
+
const mergedGeometry = mergeBufferGeometries( lineGeometry.arr );
|
|
171
|
+
mergedObject.add( new LineSegments( mergedGeometry, lineGeometry.mat ) );
|
|
172
|
+
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const condLinesMaterialsIds = Object.keys( condLinesGeometries );
|
|
176
|
+
for ( const i in condLinesMaterialsIds ) {
|
|
177
|
+
|
|
178
|
+
const condLineGeometry = condLinesGeometries[ condLinesMaterialsIds[ i ] ];
|
|
179
|
+
const mergedGeometry = mergeBufferGeometries( condLineGeometry.arr );
|
|
180
|
+
const condLines = new LineSegments( mergedGeometry, condLineGeometry.mat );
|
|
181
|
+
condLines.isConditionalLine = true;
|
|
182
|
+
mergedObject.add( condLines );
|
|
183
|
+
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
mergedObject.userData.constructionStep = 0;
|
|
187
|
+
mergedObject.userData.numConstructionSteps = 1;
|
|
188
|
+
|
|
189
|
+
return mergedObject;
|
|
190
|
+
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export { LDrawUtils };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
export class WorkerPool {
|
|
6
6
|
|
|
7
|
-
constructor
|
|
7
|
+
constructor( pool = 4 ) {
|
|
8
8
|
|
|
9
9
|
this.pool = pool;
|
|
10
10
|
this.queue = [];
|
|
@@ -14,9 +14,9 @@ export class WorkerPool {
|
|
|
14
14
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
_initWorker
|
|
17
|
+
_initWorker( workerId ) {
|
|
18
18
|
|
|
19
|
-
if ( !this.workers[ workerId ] ) {
|
|
19
|
+
if ( ! this.workers[ workerId ] ) {
|
|
20
20
|
|
|
21
21
|
const worker = this.workerCreator();
|
|
22
22
|
worker.addEventListener( 'message', this._onMessage.bind( this, workerId ) );
|
|
@@ -26,12 +26,12 @@ export class WorkerPool {
|
|
|
26
26
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
_getIdleWorker
|
|
29
|
+
_getIdleWorker() {
|
|
30
30
|
|
|
31
|
-
for ( let i = 0
|
|
31
|
+
for ( let i = 0; i < this.pool; i ++ )
|
|
32
32
|
if ( ! ( this.workerStatus & ( 1 << i ) ) ) return i;
|
|
33
33
|
|
|
34
|
-
return -1;
|
|
34
|
+
return - 1;
|
|
35
35
|
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -54,25 +54,25 @@ export class WorkerPool {
|
|
|
54
54
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
setWorkerCreator
|
|
57
|
+
setWorkerCreator( workerCreator ) {
|
|
58
58
|
|
|
59
59
|
this.workerCreator = workerCreator;
|
|
60
60
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
setWorkerLimit
|
|
63
|
+
setWorkerLimit( pool ) {
|
|
64
64
|
|
|
65
65
|
this.pool = pool;
|
|
66
66
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
postMessage
|
|
69
|
+
postMessage( msg, transfer ) {
|
|
70
70
|
|
|
71
71
|
return new Promise( ( resolve ) => {
|
|
72
72
|
|
|
73
73
|
const workerId = this._getIdleWorker();
|
|
74
74
|
|
|
75
|
-
if ( workerId !== -1 ) {
|
|
75
|
+
if ( workerId !== - 1 ) {
|
|
76
76
|
|
|
77
77
|
this._initWorker( workerId );
|
|
78
78
|
this.workerStatus |= 1 << workerId;
|
|
@@ -89,7 +89,7 @@ export class WorkerPool {
|
|
|
89
89
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
dispose
|
|
92
|
+
dispose() {
|
|
93
93
|
|
|
94
94
|
this.workers.forEach( ( worker ) => worker.terminate() );
|
|
95
95
|
this.workersResolve.length = 0;
|
|
@@ -329,31 +329,31 @@ class OculusHandPointerModel extends THREE.Object3D {
|
|
|
329
329
|
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
-
intersectObject( object ) {
|
|
332
|
+
intersectObject( object, recursive = true ) {
|
|
333
333
|
|
|
334
334
|
if ( this.raycaster ) {
|
|
335
335
|
|
|
336
|
-
return this.raycaster.intersectObject( object );
|
|
336
|
+
return this.raycaster.intersectObject( object, recursive );
|
|
337
337
|
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
-
intersectObjects( objects ) {
|
|
342
|
+
intersectObjects( objects, recursive = true ) {
|
|
343
343
|
|
|
344
344
|
if ( this.raycaster ) {
|
|
345
345
|
|
|
346
|
-
return this.raycaster.intersectObjects( objects,
|
|
346
|
+
return this.raycaster.intersectObjects( objects, recursive );
|
|
347
347
|
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
-
checkIntersections( objects ) {
|
|
352
|
+
checkIntersections( objects, recursive = false ) {
|
|
353
353
|
|
|
354
354
|
if ( this.raycaster && ! this.attached ) {
|
|
355
355
|
|
|
356
|
-
const intersections = this.raycaster.intersectObjects( objects,
|
|
356
|
+
const intersections = this.raycaster.intersectObjects( objects, recursive );
|
|
357
357
|
const direction = new THREE.Vector3( 0, 0, - 1 );
|
|
358
358
|
if ( intersections.length > 0 ) {
|
|
359
359
|
|
|
@@ -132,6 +132,12 @@ class VRButton {
|
|
|
132
132
|
|
|
133
133
|
supported ? showEnterVR() : showWebXRNotFound();
|
|
134
134
|
|
|
135
|
+
if ( supported && VRButton.xrSessionIsGranted ) {
|
|
136
|
+
|
|
137
|
+
button.click();
|
|
138
|
+
|
|
139
|
+
}
|
|
140
|
+
|
|
135
141
|
} );
|
|
136
142
|
|
|
137
143
|
return button;
|
|
@@ -164,6 +170,24 @@ class VRButton {
|
|
|
164
170
|
|
|
165
171
|
}
|
|
166
172
|
|
|
173
|
+
static xrSessionIsGranted = false;
|
|
174
|
+
|
|
175
|
+
static registerSessionGrantedListener() {
|
|
176
|
+
|
|
177
|
+
if ( 'xr' in navigator ) {
|
|
178
|
+
|
|
179
|
+
navigator.xr.addEventListener( 'sessiongranted', () => {
|
|
180
|
+
|
|
181
|
+
VRButton.xrSessionIsGranted = true;
|
|
182
|
+
|
|
183
|
+
} );
|
|
184
|
+
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
}
|
|
188
|
+
|
|
167
189
|
}
|
|
168
190
|
|
|
191
|
+
VRButton.registerSessionGrantedListener();
|
|
192
|
+
|
|
169
193
|
export { VRButton };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "super-three",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.136.1",
|
|
4
4
|
"description": "JavaScript 3D library",
|
|
5
5
|
"main": "build/three.js",
|
|
6
6
|
"module": "build/three.module.js",
|
|
@@ -39,16 +39,25 @@
|
|
|
39
39
|
"html"
|
|
40
40
|
],
|
|
41
41
|
"globals": {
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
42
|
+
"__THREE_DEVTOOLS__": "readonly",
|
|
43
|
+
"WebGL2ComputeRenderingContext": "readonly",
|
|
44
|
+
|
|
45
|
+
"potpack": "readonly",
|
|
46
|
+
"fflate": "readonly",
|
|
47
|
+
"bodymovin": "readonly",
|
|
48
|
+
"OIMO": "readonly",
|
|
49
|
+
"Stats": "readonly",
|
|
50
|
+
"XRWebGLBinding": "readonly",
|
|
51
|
+
"XRWebGLLayer": "readonly",
|
|
52
|
+
|
|
53
|
+
"GPUShaderStage": "readonly",
|
|
54
|
+
"GPUBufferUsage": "readonly",
|
|
55
|
+
"GPUTextureUsage": "readonly"
|
|
50
56
|
},
|
|
51
57
|
"rules": {
|
|
58
|
+
"no-throw-literal": [
|
|
59
|
+
"error"
|
|
60
|
+
],
|
|
52
61
|
"quotes": [
|
|
53
62
|
"error",
|
|
54
63
|
"single"
|
|
@@ -104,23 +113,23 @@
|
|
|
104
113
|
},
|
|
105
114
|
"homepage": "https://threejs.org/",
|
|
106
115
|
"devDependencies": {
|
|
107
|
-
"@babel/core": "^7.15.
|
|
108
|
-
"@babel/eslint-parser": "^7.15.
|
|
116
|
+
"@babel/core": "^7.15.5",
|
|
117
|
+
"@babel/eslint-parser": "^7.15.7",
|
|
109
118
|
"@babel/plugin-proposal-class-properties": "^7.14.5",
|
|
110
|
-
"@babel/preset-env": "^7.15.
|
|
119
|
+
"@babel/preset-env": "^7.15.6",
|
|
111
120
|
"@rollup/plugin-babel": "^5.3.0",
|
|
112
|
-
"@rollup/plugin-node-resolve": "^13.0.
|
|
121
|
+
"@rollup/plugin-node-resolve": "^13.0.5",
|
|
113
122
|
"chalk": "^4.1.2",
|
|
114
|
-
"concurrently": "^6.2.
|
|
123
|
+
"concurrently": "^6.2.2",
|
|
115
124
|
"eslint": "^7.32.0",
|
|
116
125
|
"eslint-config-mdcs": "^5.0.0",
|
|
117
|
-
"eslint-plugin-html": "^6.
|
|
118
|
-
"glob": "^7.
|
|
119
|
-
"rollup": "^2.
|
|
126
|
+
"eslint-plugin-html": "^6.2.0",
|
|
127
|
+
"glob": "^7.2.0",
|
|
128
|
+
"rollup": "^2.57.0",
|
|
120
129
|
"rollup-plugin-filesize": "^9.1.1",
|
|
121
130
|
"rollup-plugin-terser": "^7.0.2",
|
|
122
131
|
"rollup-plugin-visualizer": "^5.5.2",
|
|
123
|
-
"servez": "^1.
|
|
132
|
+
"servez": "^1.12.0"
|
|
124
133
|
},
|
|
125
134
|
"jspm": {
|
|
126
135
|
"files": [
|
package/src/Three.Legacy.js
CHANGED
|
@@ -1585,7 +1585,19 @@ Object.defineProperties( WebGLRenderer.prototype, {
|
|
|
1585
1585
|
|
|
1586
1586
|
}
|
|
1587
1587
|
},
|
|
1588
|
+
gammaFactor: {
|
|
1589
|
+
get: function () {
|
|
1590
|
+
|
|
1591
|
+
console.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );
|
|
1592
|
+
return 2;
|
|
1593
|
+
|
|
1594
|
+
},
|
|
1595
|
+
set: function () {
|
|
1596
|
+
|
|
1597
|
+
console.warn( 'THREE.WebGLRenderer: .gammaFactor has been removed.' );
|
|
1588
1598
|
|
|
1599
|
+
}
|
|
1600
|
+
}
|
|
1589
1601
|
} );
|
|
1590
1602
|
|
|
1591
1603
|
Object.defineProperties( WebGLShadowMap.prototype, {
|
|
@@ -1945,3 +1957,9 @@ export function Font() {
|
|
|
1945
1957
|
console.error( 'THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js' );
|
|
1946
1958
|
|
|
1947
1959
|
}
|
|
1960
|
+
|
|
1961
|
+
export function ImmediateRenderObject() {
|
|
1962
|
+
|
|
1963
|
+
console.error( 'THREE.ImmediateRenderObject has been removed.' );
|
|
1964
|
+
|
|
1965
|
+
}
|
package/src/Three.js
CHANGED
|
@@ -26,6 +26,7 @@ export { Line } from './objects/Line.js';
|
|
|
26
26
|
export { Points } from './objects/Points.js';
|
|
27
27
|
export { Group } from './objects/Group.js';
|
|
28
28
|
export { VideoTexture } from './textures/VideoTexture.js';
|
|
29
|
+
export { FramebufferTexture } from './textures/FramebufferTexture.js';
|
|
29
30
|
export { DataTexture } from './textures/DataTexture.js';
|
|
30
31
|
export { DataTexture2DArray } from './textures/DataTexture2DArray.js';
|
|
31
32
|
export { DataTexture3D } from './textures/DataTexture3D.js';
|
|
@@ -125,7 +126,6 @@ export { Vector2 } from './math/Vector2.js';
|
|
|
125
126
|
export { Quaternion } from './math/Quaternion.js';
|
|
126
127
|
export { Color } from './math/Color.js';
|
|
127
128
|
export { SphericalHarmonics3 } from './math/SphericalHarmonics3.js';
|
|
128
|
-
export { ImmediateRenderObject } from './extras/objects/ImmediateRenderObject.js';
|
|
129
129
|
export { SpotLightHelper } from './helpers/SpotLightHelper.js';
|
|
130
130
|
export { SkeletonHelper } from './helpers/SkeletonHelper.js';
|
|
131
131
|
export { PointLightHelper } from './helpers/PointLightHelper.js';
|
|
@@ -155,11 +155,9 @@ export * from './Three.Legacy.js';
|
|
|
155
155
|
|
|
156
156
|
if ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {
|
|
157
157
|
|
|
158
|
-
/* eslint-disable no-undef */
|
|
159
158
|
__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {
|
|
160
159
|
revision: REVISION,
|
|
161
160
|
} } ) );
|
|
162
|
-
/* eslint-enable no-undef */
|
|
163
161
|
|
|
164
162
|
}
|
|
165
163
|
|