super-three 0.133.3 → 0.136.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/build/three.js +1059 -783
- package/build/three.min.js +1 -1
- package/build/three.module.js +1424 -895
- 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 +1 -3
- 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/USDZExporter.js +45 -26
- 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/ColladaLoader.js +61 -4
- package/examples/js/loaders/EXRLoader.js +185 -262
- package/examples/js/loaders/FBXLoader.js +4 -5
- package/examples/js/loaders/GLTFLoader.js +96 -33
- package/examples/js/loaders/HDRCubeTextureLoader.js +0 -8
- package/examples/js/loaders/KTX2Loader.js +23 -2
- package/examples/js/loaders/KTXLoader.js +1 -1
- package/examples/js/loaders/LDrawLoader.js +26 -30
- package/examples/js/loaders/LUT3dlLoader.js +2 -0
- package/examples/js/loaders/LUTCubeLoader.js +2 -0
- 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 +2 -16
- package/examples/js/loaders/RGBMLoader.js +55 -5
- package/examples/js/loaders/SVGLoader.js +9 -5
- package/examples/js/loaders/TDSLoader.js +237 -271
- package/examples/js/loaders/VOXLoader.js +1 -0
- package/examples/js/loaders/VRMLLoader.js +2 -1
- package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
- package/examples/js/math/ImprovedNoise.js +1 -1
- package/examples/js/misc/GPUComputationRenderer.js +3 -1
- package/examples/js/objects/Lensflare.js +2 -10
- package/examples/js/objects/MarchingCubes.js +42 -128
- package/examples/js/objects/Reflector.js +7 -0
- package/examples/js/objects/Refractor.js +7 -0
- package/examples/js/objects/Sky.js +1 -1
- package/examples/js/objects/Water.js +2 -2
- package/examples/js/objects/Water2.js +4 -7
- package/examples/js/postprocessing/GlitchPass.js +3 -1
- package/examples/js/postprocessing/SSAOPass.js +1 -0
- 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/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/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/js/utils/RoughnessMipmapper.js +18 -28
- package/examples/jsm/animation/CCDIKSolver.js +0 -1
- package/examples/jsm/animation/MMDPhysics.js +0 -2
- 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 +161 -75
- package/examples/jsm/exporters/USDZExporter.js +47 -26
- 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/ColladaLoader.js +61 -4
- package/examples/jsm/loaders/EXRLoader.js +184 -293
- package/examples/jsm/loaders/FBXLoader.js +4 -5
- package/examples/jsm/loaders/GLTFLoader.js +101 -37
- package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -14
- package/examples/jsm/loaders/KTX2Loader.js +30 -2
- package/examples/jsm/loaders/KTXLoader.js +1 -1
- package/examples/jsm/loaders/LDrawLoader.js +23 -24
- package/examples/jsm/loaders/LUT3dlLoader.js +2 -0
- package/examples/jsm/loaders/LUTCubeLoader.js +2 -0
- 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 +0 -20
- package/examples/jsm/loaders/RGBMLoader.js +61 -7
- package/examples/jsm/loaders/SVGLoader.js +9 -6
- package/examples/jsm/loaders/TDSLoader.js +236 -275
- package/examples/jsm/loaders/VOXLoader.js +1 -0
- package/examples/jsm/loaders/VRMLLoader.js +2 -1
- package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
- package/examples/jsm/math/ImprovedNoise.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +3 -1
- package/examples/jsm/node-editor/NodeEditor.js +456 -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 +1 -164
- package/examples/jsm/objects/Lensflare.js +3 -14
- package/examples/jsm/objects/MarchingCubes.js +46 -152
- package/examples/jsm/objects/Reflector.js +7 -0
- package/examples/jsm/objects/Refractor.js +7 -0
- package/examples/jsm/objects/Sky.js +1 -1
- package/examples/jsm/objects/Water.js +2 -2
- 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 +4 -2
- 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 +1 -1
- package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
- package/examples/jsm/postprocessing/SSAOPass.js +2 -1
- package/examples/jsm/postprocessing/SSRPass.js +1 -1
- package/examples/jsm/postprocessing/SSRrPass.js +1 -1
- package/examples/jsm/postprocessing/SavePass.js +1 -1
- 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 +15 -13
- package/examples/jsm/renderers/nodes/ShaderNode.js +194 -41
- 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 +60 -43
- 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 +10 -2
- 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 +90 -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/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 +12 -28
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +61 -28
- package/examples/jsm/renderers/webgpu/WebGPUTextures.js +34 -27
- package/examples/jsm/renderers/webgpu/constants.js +2 -2
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +453 -95
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
- package/examples/jsm/shaders/ConvolutionShader.js +0 -1
- 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/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/RoughnessMipmapper.js +19 -31
- package/examples/jsm/utils/WorkerPool.js +11 -11
- package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
- package/package.json +24 -18
- package/src/Three.Legacy.js +18 -0
- package/src/Three.js +1 -3
- package/src/cameras/StereoCamera.js +8 -7
- package/src/constants.js +1 -8
- package/src/core/Layers.js +7 -1
- package/src/core/Object3D.js +3 -1
- package/src/extras/PMREMGenerator.js +23 -109
- 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 +7 -4
- package/src/loaders/ObjectLoader.js +2 -0
- package/src/materials/Material.js +4 -4
- package/src/materials/MeshPhysicalMaterial.js +20 -14
- package/src/math/Color.js +0 -38
- package/src/math/MathUtils.js +5 -16
- package/src/math/Ray.js +2 -2
- package/src/math/Sphere.js +10 -1
- package/src/objects/Skeleton.js +1 -0
- package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
- package/src/renderers/WebGLRenderer.js +105 -132
- 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/encodings_pars_fragment.glsl.js +0 -74
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.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/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 +1 -1
- 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 +6 -4
- package/src/renderers/shaders/UniformsLib.js +1 -2
- package/src/renderers/webgl/WebGLCapabilities.js +0 -2
- package/src/renderers/webgl/WebGLExtensions.js +1 -0
- package/src/renderers/webgl/WebGLMaterials.js +27 -15
- package/src/renderers/webgl/WebGLMorphtargets.js +1 -0
- package/src/renderers/webgl/WebGLProgram.js +11 -24
- package/src/renderers/webgl/WebGLPrograms.js +194 -33
- 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 +76 -17
- package/src/renderers/webgl/WebGLTextures.js +367 -61
- package/src/renderers/webgl/WebGLUniforms.js +45 -1
- 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 +6 -0
- package/examples/js/controls/DeviceOrientationControls.js +0 -147
- package/examples/js/libs/dat.gui.min.js +0 -14
- 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/src/extras/objects/ImmediateRenderObject.js +0 -31
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
+
CubeReflectionMapping,
|
|
3
|
+
CubeRefractionMapping,
|
|
2
4
|
CubeUVReflectionMapping,
|
|
3
|
-
GammaEncoding,
|
|
4
5
|
LinearEncoding,
|
|
6
|
+
LinearFilter,
|
|
5
7
|
NoToneMapping,
|
|
6
|
-
NearestFilter,
|
|
7
8
|
NoBlending,
|
|
8
|
-
RGBDEncoding,
|
|
9
|
-
RGBEEncoding,
|
|
10
|
-
RGBEFormat,
|
|
11
9
|
RGBAFormat,
|
|
12
|
-
RGBM16Encoding,
|
|
13
|
-
RGBM7Encoding,
|
|
14
10
|
UnsignedByteType,
|
|
15
|
-
sRGBEncoding
|
|
11
|
+
sRGBEncoding,
|
|
12
|
+
HalfFloatType
|
|
16
13
|
} from '../constants.js';
|
|
17
14
|
|
|
18
15
|
import { BufferAttribute } from '../core/BufferAttribute.js';
|
|
@@ -47,12 +44,7 @@ const MAX_SAMPLES = 20;
|
|
|
47
44
|
|
|
48
45
|
const ENCODINGS = {
|
|
49
46
|
[ LinearEncoding ]: 0,
|
|
50
|
-
[ sRGBEncoding ]: 1
|
|
51
|
-
[ RGBEEncoding ]: 2,
|
|
52
|
-
[ RGBM7Encoding ]: 3,
|
|
53
|
-
[ RGBM16Encoding ]: 4,
|
|
54
|
-
[ RGBDEncoding ]: 5,
|
|
55
|
-
[ GammaEncoding ]: 6
|
|
47
|
+
[ sRGBEncoding ]: 1
|
|
56
48
|
};
|
|
57
49
|
|
|
58
50
|
const _flatCamera = /*@__PURE__*/ new OrthographicCamera();
|
|
@@ -136,7 +128,7 @@ class PMREMGenerator {
|
|
|
136
128
|
|
|
137
129
|
/**
|
|
138
130
|
* Generates a PMREM from an equirectangular texture, which can be either LDR
|
|
139
|
-
*
|
|
131
|
+
* or HDR. The ideal input image size is 1k (1024 x 512),
|
|
140
132
|
* as this matches best with the 256 x 256 cubemap output.
|
|
141
133
|
*/
|
|
142
134
|
fromEquirectangular( equirectangular ) {
|
|
@@ -147,7 +139,7 @@ class PMREMGenerator {
|
|
|
147
139
|
|
|
148
140
|
/**
|
|
149
141
|
* Generates a PMREM from an cubemap texture, which can be either LDR
|
|
150
|
-
*
|
|
142
|
+
* or HDR. The ideal input cube size is 256 x 256,
|
|
151
143
|
* as this matches best with the 256 x 256 cubemap output.
|
|
152
144
|
*/
|
|
153
145
|
fromCubemap( cubemap ) {
|
|
@@ -232,12 +224,12 @@ class PMREMGenerator {
|
|
|
232
224
|
_allocateTargets( texture ) { // warning: null texture is valid
|
|
233
225
|
|
|
234
226
|
const params = {
|
|
235
|
-
magFilter:
|
|
236
|
-
minFilter:
|
|
227
|
+
magFilter: LinearFilter,
|
|
228
|
+
minFilter: LinearFilter,
|
|
237
229
|
generateMipmaps: false,
|
|
238
|
-
type:
|
|
239
|
-
format:
|
|
240
|
-
encoding:
|
|
230
|
+
type: HalfFloatType,
|
|
231
|
+
format: RGBAFormat,
|
|
232
|
+
encoding: LinearEncoding,
|
|
241
233
|
depthBuffer: false
|
|
242
234
|
};
|
|
243
235
|
|
|
@@ -265,12 +257,10 @@ class PMREMGenerator {
|
|
|
265
257
|
const renderer = this._renderer;
|
|
266
258
|
|
|
267
259
|
const originalAutoClear = renderer.autoClear;
|
|
268
|
-
const outputEncoding = renderer.outputEncoding;
|
|
269
260
|
const toneMapping = renderer.toneMapping;
|
|
270
261
|
renderer.getClearColor( _clearColor );
|
|
271
262
|
|
|
272
263
|
renderer.toneMapping = NoToneMapping;
|
|
273
|
-
renderer.outputEncoding = LinearEncoding;
|
|
274
264
|
renderer.autoClear = false;
|
|
275
265
|
|
|
276
266
|
const backgroundMaterial = new MeshBasicMaterial( {
|
|
@@ -340,7 +330,6 @@ class PMREMGenerator {
|
|
|
340
330
|
backgroundBox.material.dispose();
|
|
341
331
|
|
|
342
332
|
renderer.toneMapping = toneMapping;
|
|
343
|
-
renderer.outputEncoding = outputEncoding;
|
|
344
333
|
renderer.autoClear = originalAutoClear;
|
|
345
334
|
scene.background = background;
|
|
346
335
|
|
|
@@ -364,7 +353,9 @@ class PMREMGenerator {
|
|
|
364
353
|
|
|
365
354
|
const renderer = this._renderer;
|
|
366
355
|
|
|
367
|
-
|
|
356
|
+
const isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );
|
|
357
|
+
|
|
358
|
+
if ( isCubeTexture ) {
|
|
368
359
|
|
|
369
360
|
if ( this._cubemapShader == null ) {
|
|
370
361
|
|
|
@@ -382,21 +373,20 @@ class PMREMGenerator {
|
|
|
382
373
|
|
|
383
374
|
}
|
|
384
375
|
|
|
385
|
-
const material =
|
|
376
|
+
const material = isCubeTexture ? this._cubemapShader : this._equirectShader;
|
|
386
377
|
const mesh = new Mesh( _lodPlanes[ 0 ], material );
|
|
387
378
|
|
|
388
379
|
const uniforms = material.uniforms;
|
|
389
380
|
|
|
390
381
|
uniforms[ 'envMap' ].value = texture;
|
|
391
382
|
|
|
392
|
-
if ( !
|
|
383
|
+
if ( ! isCubeTexture ) {
|
|
393
384
|
|
|
394
385
|
uniforms[ 'texelSize' ].value.set( 1.0 / texture.image.width, 1.0 / texture.image.height );
|
|
395
386
|
|
|
396
387
|
}
|
|
397
388
|
|
|
398
389
|
this._setEncoding( uniforms[ 'inputEncoding' ], texture );
|
|
399
|
-
this._setEncoding( uniforms[ 'outputEncoding' ], cubeUVRenderTarget.texture );
|
|
400
390
|
|
|
401
391
|
_setViewport( cubeUVRenderTarget, 0, 0, 3 * SIZE_MAX, 2 * SIZE_MAX );
|
|
402
392
|
|
|
@@ -528,9 +518,6 @@ class PMREMGenerator {
|
|
|
528
518
|
blurUniforms[ 'dTheta' ].value = radiansPerPixel;
|
|
529
519
|
blurUniforms[ 'mipInt' ].value = LOD_MAX - lodIn;
|
|
530
520
|
|
|
531
|
-
this._setEncoding( blurUniforms[ 'inputEncoding' ], targetIn.texture );
|
|
532
|
-
this._setEncoding( blurUniforms[ 'outputEncoding' ], targetIn.texture );
|
|
533
|
-
|
|
534
521
|
const outputSize = _sizeLods[ lodOut ];
|
|
535
522
|
const x = 3 * Math.max( 0, SIZE_MAX - 2 * outputSize );
|
|
536
523
|
const y = ( lodOut === 0 ? 0 : 2 * SIZE_MAX ) + 2 * outputSize * ( lodOut > LOD_MAX - LOD_MIN ? lodOut - LOD_MAX + LOD_MIN : 0 );
|
|
@@ -543,14 +530,6 @@ class PMREMGenerator {
|
|
|
543
530
|
|
|
544
531
|
}
|
|
545
532
|
|
|
546
|
-
function _isLDR( texture ) {
|
|
547
|
-
|
|
548
|
-
if ( texture === undefined || texture.type !== UnsignedByteType ) return false;
|
|
549
|
-
|
|
550
|
-
return texture.encoding === LinearEncoding || texture.encoding === sRGBEncoding || texture.encoding === GammaEncoding;
|
|
551
|
-
|
|
552
|
-
}
|
|
553
|
-
|
|
554
533
|
function _createPlanes() {
|
|
555
534
|
|
|
556
535
|
const _lodPlanes = [];
|
|
@@ -663,9 +642,7 @@ function _getBlurShader( maxSamples ) {
|
|
|
663
642
|
'latitudinal': { value: false },
|
|
664
643
|
'dTheta': { value: 0 },
|
|
665
644
|
'mipInt': { value: 0 },
|
|
666
|
-
'poleAxis': { value: poleAxis }
|
|
667
|
-
'inputEncoding': { value: ENCODINGS[ LinearEncoding ] },
|
|
668
|
-
'outputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
645
|
+
'poleAxis': { value: poleAxis }
|
|
669
646
|
},
|
|
670
647
|
|
|
671
648
|
vertexShader: _getCommonVertexShader(),
|
|
@@ -731,8 +708,6 @@ function _getBlurShader( maxSamples ) {
|
|
|
731
708
|
|
|
732
709
|
}
|
|
733
710
|
|
|
734
|
-
gl_FragColor = linearToOutputTexel( gl_FragColor );
|
|
735
|
-
|
|
736
711
|
}
|
|
737
712
|
`,
|
|
738
713
|
|
|
@@ -756,8 +731,7 @@ function _getEquirectShader() {
|
|
|
756
731
|
uniforms: {
|
|
757
732
|
'envMap': { value: null },
|
|
758
733
|
'texelSize': { value: texelSize },
|
|
759
|
-
'inputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
760
|
-
'outputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
734
|
+
'inputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
761
735
|
},
|
|
762
736
|
|
|
763
737
|
vertexShader: _getCommonVertexShader(),
|
|
@@ -797,8 +771,6 @@ function _getEquirectShader() {
|
|
|
797
771
|
vec3 bm = mix( bl, br, f.x );
|
|
798
772
|
gl_FragColor.rgb = mix( tm, bm, f.y );
|
|
799
773
|
|
|
800
|
-
gl_FragColor = linearToOutputTexel( gl_FragColor );
|
|
801
|
-
|
|
802
774
|
}
|
|
803
775
|
`,
|
|
804
776
|
|
|
@@ -820,8 +792,7 @@ function _getCubemapShader() {
|
|
|
820
792
|
|
|
821
793
|
uniforms: {
|
|
822
794
|
'envMap': { value: null },
|
|
823
|
-
'inputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
824
|
-
'outputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
795
|
+
'inputEncoding': { value: ENCODINGS[ LinearEncoding ] }
|
|
825
796
|
},
|
|
826
797
|
|
|
827
798
|
vertexShader: _getCommonVertexShader(),
|
|
@@ -839,9 +810,7 @@ function _getCubemapShader() {
|
|
|
839
810
|
|
|
840
811
|
void main() {
|
|
841
812
|
|
|
842
|
-
gl_FragColor =
|
|
843
|
-
gl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;
|
|
844
|
-
gl_FragColor = linearToOutputTexel( gl_FragColor );
|
|
813
|
+
gl_FragColor = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) );
|
|
845
814
|
|
|
846
815
|
}
|
|
847
816
|
`,
|
|
@@ -924,7 +893,6 @@ function _getEncodings() {
|
|
|
924
893
|
return /* glsl */`
|
|
925
894
|
|
|
926
895
|
uniform int inputEncoding;
|
|
927
|
-
uniform int outputEncoding;
|
|
928
896
|
|
|
929
897
|
#include <encodings_pars_fragment>
|
|
930
898
|
|
|
@@ -934,63 +902,9 @@ function _getEncodings() {
|
|
|
934
902
|
|
|
935
903
|
return value;
|
|
936
904
|
|
|
937
|
-
} else if ( inputEncoding == 1 ) {
|
|
938
|
-
|
|
939
|
-
return sRGBToLinear( value );
|
|
940
|
-
|
|
941
|
-
} else if ( inputEncoding == 2 ) {
|
|
942
|
-
|
|
943
|
-
return RGBEToLinear( value );
|
|
944
|
-
|
|
945
|
-
} else if ( inputEncoding == 3 ) {
|
|
946
|
-
|
|
947
|
-
return RGBMToLinear( value, 7.0 );
|
|
948
|
-
|
|
949
|
-
} else if ( inputEncoding == 4 ) {
|
|
950
|
-
|
|
951
|
-
return RGBMToLinear( value, 16.0 );
|
|
952
|
-
|
|
953
|
-
} else if ( inputEncoding == 5 ) {
|
|
954
|
-
|
|
955
|
-
return RGBDToLinear( value, 256.0 );
|
|
956
|
-
|
|
957
905
|
} else {
|
|
958
906
|
|
|
959
|
-
return
|
|
960
|
-
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
vec4 linearToOutputTexel( vec4 value ) {
|
|
966
|
-
|
|
967
|
-
if ( outputEncoding == 0 ) {
|
|
968
|
-
|
|
969
|
-
return value;
|
|
970
|
-
|
|
971
|
-
} else if ( outputEncoding == 1 ) {
|
|
972
|
-
|
|
973
|
-
return LinearTosRGB( value );
|
|
974
|
-
|
|
975
|
-
} else if ( outputEncoding == 2 ) {
|
|
976
|
-
|
|
977
|
-
return LinearToRGBE( value );
|
|
978
|
-
|
|
979
|
-
} else if ( outputEncoding == 3 ) {
|
|
980
|
-
|
|
981
|
-
return LinearToRGBM( value, 7.0 );
|
|
982
|
-
|
|
983
|
-
} else if ( outputEncoding == 4 ) {
|
|
984
|
-
|
|
985
|
-
return LinearToRGBM( value, 16.0 );
|
|
986
|
-
|
|
987
|
-
} else if ( outputEncoding == 5 ) {
|
|
988
|
-
|
|
989
|
-
return LinearToRGBD( value, 256.0 );
|
|
990
|
-
|
|
991
|
-
} else {
|
|
992
|
-
|
|
993
|
-
return LinearToGamma( value, 2.2 );
|
|
907
|
+
return sRGBToLinear( value );
|
|
994
908
|
|
|
995
909
|
}
|
|
996
910
|
|
|
@@ -30,14 +30,75 @@ class LatheGeometry extends BufferGeometry {
|
|
|
30
30
|
const indices = [];
|
|
31
31
|
const vertices = [];
|
|
32
32
|
const uvs = [];
|
|
33
|
+
const initNormals = [];
|
|
34
|
+
const normals = [];
|
|
33
35
|
|
|
34
36
|
// helper variables
|
|
35
37
|
|
|
36
38
|
const inverseSegments = 1.0 / segments;
|
|
37
39
|
const vertex = new Vector3();
|
|
38
40
|
const uv = new Vector2();
|
|
41
|
+
const normal = new Vector3();
|
|
42
|
+
const curNormal = new Vector3();
|
|
43
|
+
const prevNormal = new Vector3();
|
|
44
|
+
let dx = 0;
|
|
45
|
+
let dy = 0;
|
|
39
46
|
|
|
40
|
-
//
|
|
47
|
+
// pre-compute normals for initial "meridian"
|
|
48
|
+
|
|
49
|
+
for ( let j = 0; j <= ( points.length - 1 ); j ++ ) {
|
|
50
|
+
|
|
51
|
+
switch ( j ) {
|
|
52
|
+
|
|
53
|
+
case 0: // special handling for 1st vertex on path
|
|
54
|
+
|
|
55
|
+
dx = points[ j + 1 ].x - points[ j ].x;
|
|
56
|
+
dy = points[ j + 1 ].y - points[ j ].y;
|
|
57
|
+
|
|
58
|
+
normal.x = dy * 1.0;
|
|
59
|
+
normal.y = - dx;
|
|
60
|
+
normal.z = dy * 0.0;
|
|
61
|
+
|
|
62
|
+
prevNormal.copy( normal );
|
|
63
|
+
|
|
64
|
+
normal.normalize();
|
|
65
|
+
|
|
66
|
+
initNormals.push( normal.x, normal.y, normal.z );
|
|
67
|
+
|
|
68
|
+
break;
|
|
69
|
+
|
|
70
|
+
case ( points.length - 1 ): // special handling for last Vertex on path
|
|
71
|
+
|
|
72
|
+
initNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );
|
|
73
|
+
|
|
74
|
+
break;
|
|
75
|
+
|
|
76
|
+
default: // default handling for all vertices in between
|
|
77
|
+
|
|
78
|
+
dx = points[ j + 1 ].x - points[ j ].x;
|
|
79
|
+
dy = points[ j + 1 ].y - points[ j ].y;
|
|
80
|
+
|
|
81
|
+
normal.x = dy * 1.0;
|
|
82
|
+
normal.y = - dx;
|
|
83
|
+
normal.z = dy * 0.0;
|
|
84
|
+
|
|
85
|
+
curNormal.copy( normal );
|
|
86
|
+
|
|
87
|
+
normal.x += prevNormal.x;
|
|
88
|
+
normal.y += prevNormal.y;
|
|
89
|
+
normal.z += prevNormal.z;
|
|
90
|
+
|
|
91
|
+
normal.normalize();
|
|
92
|
+
|
|
93
|
+
initNormals.push( normal.x, normal.y, normal.z );
|
|
94
|
+
|
|
95
|
+
prevNormal.copy( curNormal );
|
|
96
|
+
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// generate vertices, uvs and normals
|
|
41
102
|
|
|
42
103
|
for ( let i = 0; i <= segments; i ++ ) {
|
|
43
104
|
|
|
@@ -63,6 +124,13 @@ class LatheGeometry extends BufferGeometry {
|
|
|
63
124
|
|
|
64
125
|
uvs.push( uv.x, uv.y );
|
|
65
126
|
|
|
127
|
+
// normal
|
|
128
|
+
|
|
129
|
+
const x = initNormals[ 3 * j + 0 ] * sin;
|
|
130
|
+
const y = initNormals[ 3 * j + 1 ];
|
|
131
|
+
const z = initNormals[ 3 * j + 0 ] * cos;
|
|
132
|
+
|
|
133
|
+
normals.push( x, y, z );
|
|
66
134
|
|
|
67
135
|
}
|
|
68
136
|
|
|
@@ -95,52 +163,7 @@ class LatheGeometry extends BufferGeometry {
|
|
|
95
163
|
this.setIndex( indices );
|
|
96
164
|
this.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );
|
|
97
165
|
this.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );
|
|
98
|
-
|
|
99
|
-
// generate normals
|
|
100
|
-
|
|
101
|
-
this.computeVertexNormals();
|
|
102
|
-
|
|
103
|
-
// if the geometry is closed, we need to average the normals along the seam.
|
|
104
|
-
// because the corresponding vertices are identical (but still have different UVs).
|
|
105
|
-
|
|
106
|
-
if ( phiLength === Math.PI * 2 ) {
|
|
107
|
-
|
|
108
|
-
const normals = this.attributes.normal.array;
|
|
109
|
-
const n1 = new Vector3();
|
|
110
|
-
const n2 = new Vector3();
|
|
111
|
-
const n = new Vector3();
|
|
112
|
-
|
|
113
|
-
// this is the buffer offset for the last line of vertices
|
|
114
|
-
|
|
115
|
-
const base = segments * points.length * 3;
|
|
116
|
-
|
|
117
|
-
for ( let i = 0, j = 0; i < points.length; i ++, j += 3 ) {
|
|
118
|
-
|
|
119
|
-
// select the normal of the vertex in the first line
|
|
120
|
-
|
|
121
|
-
n1.x = normals[ j + 0 ];
|
|
122
|
-
n1.y = normals[ j + 1 ];
|
|
123
|
-
n1.z = normals[ j + 2 ];
|
|
124
|
-
|
|
125
|
-
// select the normal of the vertex in the last line
|
|
126
|
-
|
|
127
|
-
n2.x = normals[ base + j + 0 ];
|
|
128
|
-
n2.y = normals[ base + j + 1 ];
|
|
129
|
-
n2.z = normals[ base + j + 2 ];
|
|
130
|
-
|
|
131
|
-
// average normals
|
|
132
|
-
|
|
133
|
-
n.addVectors( n1, n2 ).normalize();
|
|
134
|
-
|
|
135
|
-
// assign the new values to both normals
|
|
136
|
-
|
|
137
|
-
normals[ j + 0 ] = normals[ base + j + 0 ] = n.x;
|
|
138
|
-
normals[ j + 1 ] = normals[ base + j + 1 ] = n.y;
|
|
139
|
-
normals[ j + 2 ] = normals[ base + j + 2 ] = n.z;
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
}
|
|
166
|
+
this.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );
|
|
144
167
|
|
|
145
168
|
}
|
|
146
169
|
|
|
@@ -13,7 +13,7 @@ const _camera = /*@__PURE__*/ new Camera();
|
|
|
13
13
|
* - shows frustum, line of sight and up of the camera
|
|
14
14
|
* - suitable for fast updates
|
|
15
15
|
* - based on frustum visualization in lightgl.js shadowmap example
|
|
16
|
-
*
|
|
16
|
+
* https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
class CameraHelper extends LineSegments {
|