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
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
|
|
140
140
|
const StringLiteral = createToken( {
|
|
141
141
|
name: 'StringLiteral',
|
|
142
|
-
pattern: /"(
|
|
142
|
+
pattern: /"(?:[^\\"\n\r]|\\[bfnrtv"\\/]|\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])*"/
|
|
143
143
|
} );
|
|
144
144
|
const HexLiteral = createToken( {
|
|
145
145
|
name: 'HexLiteral',
|
|
@@ -1166,6 +1166,7 @@
|
|
|
1166
1166
|
color.r = value;
|
|
1167
1167
|
color.g = value;
|
|
1168
1168
|
color.b = value;
|
|
1169
|
+
color.a = 1;
|
|
1169
1170
|
break;
|
|
1170
1171
|
|
|
1171
1172
|
case TEXTURE_TYPE.INTENSITY_ALPHA:
|
|
@@ -1182,6 +1183,7 @@
|
|
|
1182
1183
|
color.r = parseInt( '0x' + hex.substring( 2, 4 ) );
|
|
1183
1184
|
color.g = parseInt( '0x' + hex.substring( 4, 6 ) );
|
|
1184
1185
|
color.b = parseInt( '0x' + hex.substring( 6, 8 ) );
|
|
1186
|
+
color.a = 1;
|
|
1185
1187
|
break;
|
|
1186
1188
|
|
|
1187
1189
|
case TEXTURE_TYPE.RGBA:
|
|
@@ -1247,10 +1249,8 @@
|
|
|
1247
1249
|
const width = fieldValues[ 0 ];
|
|
1248
1250
|
const height = fieldValues[ 1 ];
|
|
1249
1251
|
const num_components = fieldValues[ 2 ];
|
|
1250
|
-
const useAlpha = num_components === 2 || num_components === 4;
|
|
1251
1252
|
const textureType = getTextureType( num_components );
|
|
1252
|
-
const
|
|
1253
|
-
const data = new Uint8Array( size );
|
|
1253
|
+
const data = new Uint8Array( 4 * width * height );
|
|
1254
1254
|
const color = {
|
|
1255
1255
|
r: 0,
|
|
1256
1256
|
g: 0,
|
|
@@ -1261,27 +1261,16 @@
|
|
|
1261
1261
|
for ( let j = 3, k = 0, jl = fieldValues.length; j < jl; j ++, k ++ ) {
|
|
1262
1262
|
|
|
1263
1263
|
parseHexColor( fieldValues[ j ], textureType, color );
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
data[ stride + 1 ] = color.g;
|
|
1270
|
-
data[ stride + 2 ] = color.b;
|
|
1271
|
-
data[ stride + 3 ] = color.a;
|
|
1272
|
-
|
|
1273
|
-
} else {
|
|
1274
|
-
|
|
1275
|
-
const stride = k * 3;
|
|
1276
|
-
data[ stride + 0 ] = color.r;
|
|
1277
|
-
data[ stride + 1 ] = color.g;
|
|
1278
|
-
data[ stride + 2 ] = color.b;
|
|
1279
|
-
|
|
1280
|
-
}
|
|
1264
|
+
const stride = k * 4;
|
|
1265
|
+
data[ stride + 0 ] = color.r;
|
|
1266
|
+
data[ stride + 1 ] = color.g;
|
|
1267
|
+
data[ stride + 2 ] = color.b;
|
|
1268
|
+
data[ stride + 3 ] = color.a;
|
|
1281
1269
|
|
|
1282
1270
|
}
|
|
1283
1271
|
|
|
1284
|
-
texture = new THREE.DataTexture( data, width, height
|
|
1272
|
+
texture = new THREE.DataTexture( data, width, height );
|
|
1273
|
+
texture.needsUpdate = true;
|
|
1285
1274
|
texture.__type = textureType; // needed for material modifications
|
|
1286
1275
|
|
|
1287
1276
|
break;
|
|
@@ -44,27 +44,21 @@
|
|
|
44
44
|
|
|
45
45
|
setFromPoints( points ) {
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
// The algorithm needs at least four points.
|
|
48
|
+
if ( points.length >= 4 ) {
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
this.makeEmpty();
|
|
50
51
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if ( points.length < 4 ) {
|
|
54
|
-
|
|
55
|
-
console.error( 'THREE.ConvexHull: The algorithm needs at least four points.' );
|
|
52
|
+
for ( let i = 0, l = points.length; i < l; i ++ ) {
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
this.makeEmpty();
|
|
54
|
+
this.vertices.push( new VertexNode( points[ i ] ) );
|
|
60
55
|
|
|
61
|
-
|
|
56
|
+
}
|
|
62
57
|
|
|
63
|
-
this.
|
|
58
|
+
this.compute();
|
|
64
59
|
|
|
65
60
|
}
|
|
66
61
|
|
|
67
|
-
this.compute();
|
|
68
62
|
return this;
|
|
69
63
|
|
|
70
64
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
( function () {
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// https://cs.nyu.edu/~perlin/noise/
|
|
4
4
|
const _p = [ 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36, 103, 30, 69, 142, 8, 99, 37, 240, 21, 10, 23, 190, 6, 148, 247, 120, 234, 75, 0, 26, 197, 62, 94, 252, 219, 203, 117, 35, 11, 32, 57, 177, 33, 88, 237, 149, 56, 87, 174, 20, 125, 136, 171, 168, 68, 175, 74, 165, 71, 134, 139, 48, 27, 166, 77, 146, 158, 231, 83, 111, 229, 122, 60, 211, 133, 230, 220, 105, 92, 41, 55, 46, 245, 40, 244, 102, 143, 54, 65, 25, 63, 161, 1, 216, 80, 73, 209, 76, 132, 187, 208, 89, 18, 169, 200, 196, 135, 130, 116, 188, 159, 86, 164, 100, 109, 198, 173, 186, 3, 64, 52, 217, 226, 250, 124, 123, 5, 202, 38, 147, 118, 126, 255, 82, 85, 212, 207, 206, 59, 227, 47, 16, 58, 17, 182, 189, 28, 42, 223, 183, 170, 213, 119, 248, 152, 2, 44, 154, 163, 70, 221, 153, 101, 155, 167, 43, 172, 9, 129, 22, 39, 253, 19, 98, 108, 110, 79, 113, 224, 232, 178, 185, 112, 104, 218, 246, 97, 228, 251, 34, 242, 193, 238, 210, 144, 12, 191, 179, 162, 241, 81, 51, 145, 235, 249, 14, 239, 107, 49, 192, 214, 31, 181, 199, 106, 157, 184, 84, 204, 176, 115, 121, 50, 45, 127, 4, 150, 254, 138, 236, 205, 93, 222, 114, 67, 29, 24, 72, 243, 141, 128, 195, 78, 66, 215, 61, 156, 180 ];
|
|
5
5
|
|
|
6
6
|
for ( let i = 0; i < 256; i ++ ) {
|
|
@@ -310,7 +310,9 @@
|
|
|
310
310
|
this.createTexture = function () {
|
|
311
311
|
|
|
312
312
|
const data = new Float32Array( sizeX * sizeY * 4 );
|
|
313
|
-
|
|
313
|
+
const texture = new THREE.DataTexture( data, sizeX, sizeY, THREE.RGBAFormat, THREE.FloatType );
|
|
314
|
+
texture.needsUpdate = true;
|
|
315
|
+
return texture;
|
|
314
316
|
|
|
315
317
|
};
|
|
316
318
|
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
case 'unsigned long long int':
|
|
105
105
|
case 'uint64':
|
|
106
106
|
case 'uint64_t':
|
|
107
|
-
throw 'Error in Volume constructor : this type is not supported in JavaScript';
|
|
107
|
+
throw new Error( 'Error in Volume constructor : this type is not supported in JavaScript' );
|
|
108
108
|
break;
|
|
109
109
|
|
|
110
110
|
case 'Float32':
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
|
|
127
127
|
if ( this.data.length !== this.xLength * this.yLength * this.zLength ) {
|
|
128
128
|
|
|
129
|
-
throw 'Error in Volume constructor, lengths are not matching arrayBuffer size';
|
|
129
|
+
throw new Error( 'Error in Volume constructor, lengths are not matching arrayBuffer size' );
|
|
130
130
|
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
( function () {
|
|
2
2
|
|
|
3
3
|
// Original src: https://github.com/zz85/threejs-path-flow
|
|
4
|
-
const
|
|
4
|
+
const CHANNELS = 4;
|
|
5
5
|
const TEXTURE_WIDTH = 1024;
|
|
6
6
|
const TEXTURE_HEIGHT = 4;
|
|
7
7
|
/**
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
function initSplineTexture( numberOfCurves = 1 ) {
|
|
14
14
|
|
|
15
|
-
const dataArray = new Float32Array( TEXTURE_WIDTH * TEXTURE_HEIGHT * numberOfCurves *
|
|
16
|
-
const dataTexture = new THREE.DataTexture( dataArray, TEXTURE_WIDTH, TEXTURE_HEIGHT * numberOfCurves, THREE.
|
|
15
|
+
const dataArray = new Float32Array( TEXTURE_WIDTH * TEXTURE_HEIGHT * numberOfCurves * CHANNELS );
|
|
16
|
+
const dataTexture = new THREE.DataTexture( dataArray, TEXTURE_WIDTH, TEXTURE_HEIGHT * numberOfCurves, THREE.RGBAFormat, THREE.FloatType );
|
|
17
17
|
dataTexture.wrapS = THREE.RepeatWrapping;
|
|
18
18
|
dataTexture.wrapY = THREE.RepeatWrapping;
|
|
19
19
|
dataTexture.magFilter = THREE.NearestFilter;
|
|
@@ -62,11 +62,12 @@
|
|
|
62
62
|
const {
|
|
63
63
|
data
|
|
64
64
|
} = image;
|
|
65
|
-
const i =
|
|
65
|
+
const i = CHANNELS * TEXTURE_WIDTH * o; // Row Offset
|
|
66
66
|
|
|
67
|
-
data[ index *
|
|
68
|
-
data[ index *
|
|
69
|
-
data[ index *
|
|
67
|
+
data[ index * CHANNELS + i + 0 ] = x;
|
|
68
|
+
data[ index * CHANNELS + i + 1 ] = y;
|
|
69
|
+
data[ index * CHANNELS + i + 2 ] = z;
|
|
70
|
+
data[ index * CHANNELS + i + 3 ] = 1;
|
|
70
71
|
|
|
71
72
|
}
|
|
72
73
|
/**
|
|
@@ -15,16 +15,8 @@
|
|
|
15
15
|
const positionScreen = new THREE.Vector3();
|
|
16
16
|
const positionView = new THREE.Vector3(); // textures
|
|
17
17
|
|
|
18
|
-
const tempMap = new THREE.
|
|
19
|
-
|
|
20
|
-
tempMap.magFilter = THREE.NearestFilter;
|
|
21
|
-
tempMap.wrapS = THREE.ClampToEdgeWrapping;
|
|
22
|
-
tempMap.wrapT = THREE.ClampToEdgeWrapping;
|
|
23
|
-
const occlusionMap = new THREE.DataTexture( new Uint8Array( 16 * 16 * 3 ), 16, 16, THREE.RGBFormat );
|
|
24
|
-
occlusionMap.minFilter = THREE.NearestFilter;
|
|
25
|
-
occlusionMap.magFilter = THREE.NearestFilter;
|
|
26
|
-
occlusionMap.wrapS = THREE.ClampToEdgeWrapping;
|
|
27
|
-
occlusionMap.wrapT = THREE.ClampToEdgeWrapping; // material
|
|
18
|
+
const tempMap = new THREE.FramebufferTexture( 16, 16, THREE.RGBFormat );
|
|
19
|
+
const occlusionMap = new THREE.FramebufferTexture( 16, 16, THREE.RGBFormat ); // material
|
|
28
20
|
|
|
29
21
|
const geometry = Lensflare.Geometry;
|
|
30
22
|
const material1a = new THREE.RawShaderMaterial( {
|
|
@@ -4,18 +4,19 @@
|
|
|
4
4
|
* Port of http://webglsamples.org/blob/blob.html
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
class MarchingCubes extends THREE.
|
|
7
|
+
class MarchingCubes extends THREE.Mesh {
|
|
8
8
|
|
|
9
|
-
constructor( resolution, material, enableUvs, enableColors ) {
|
|
9
|
+
constructor( resolution, material, enableUvs = false, enableColors = false, maxPolyCount = 10000 ) {
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
const geometry = new THREE.BufferGeometry();
|
|
12
|
+
super( geometry, material );
|
|
12
13
|
const scope = this; // temp buffers used in polygonize
|
|
13
14
|
|
|
14
15
|
const vlist = new Float32Array( 12 * 3 );
|
|
15
16
|
const nlist = new Float32Array( 12 * 3 );
|
|
16
17
|
const clist = new Float32Array( 12 * 3 );
|
|
17
|
-
this.enableUvs = enableUvs
|
|
18
|
-
this.enableColors = enableColors
|
|
18
|
+
this.enableUvs = enableUvs;
|
|
19
|
+
this.enableColors = enableColors; // functions have to be object properties
|
|
19
20
|
// prototype functions kill performance
|
|
20
21
|
// (tested and it was 4x slower !!!)
|
|
21
22
|
|
|
@@ -35,27 +36,34 @@
|
|
|
35
36
|
this.zd = this.size2;
|
|
36
37
|
this.field = new Float32Array( this.size3 );
|
|
37
38
|
this.normal_cache = new Float32Array( this.size3 * 3 );
|
|
38
|
-
this.palette = new Float32Array( this.size3 * 3 ); //
|
|
39
|
-
|
|
40
|
-
this.maxCount = 4096; // TODO: find the fastest size for this buffer
|
|
39
|
+
this.palette = new Float32Array( this.size3 * 3 ); //
|
|
41
40
|
|
|
42
41
|
this.count = 0;
|
|
43
|
-
|
|
44
|
-
this.
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.normalArray = new Float32Array(
|
|
42
|
+
const maxVertexCount = maxPolyCount * 3;
|
|
43
|
+
this.positionArray = new Float32Array( maxVertexCount * 3 );
|
|
44
|
+
const positionAttribute = new THREE.BufferAttribute( this.positionArray, 3 );
|
|
45
|
+
positionAttribute.setUsage( THREE.DynamicDrawUsage );
|
|
46
|
+
geometry.setAttribute( 'position', positionAttribute );
|
|
47
|
+
this.normalArray = new Float32Array( maxVertexCount * 3 );
|
|
48
|
+
const normalAttribute = new THREE.BufferAttribute( this.normalArray, 3 );
|
|
49
|
+
normalAttribute.setUsage( THREE.DynamicDrawUsage );
|
|
50
|
+
geometry.setAttribute( 'normal', normalAttribute );
|
|
49
51
|
|
|
50
52
|
if ( this.enableUvs ) {
|
|
51
53
|
|
|
52
|
-
this.uvArray = new Float32Array(
|
|
54
|
+
this.uvArray = new Float32Array( maxVertexCount * 2 );
|
|
55
|
+
const uvAttribute = new THREE.BufferAttribute( this.uvArray, 2 );
|
|
56
|
+
uvAttribute.setUsage( THREE.DynamicDrawUsage );
|
|
57
|
+
geometry.setAttribute( 'uv', uvAttribute );
|
|
53
58
|
|
|
54
59
|
}
|
|
55
60
|
|
|
56
61
|
if ( this.enableColors ) {
|
|
57
62
|
|
|
58
|
-
this.colorArray = new Float32Array(
|
|
63
|
+
this.colorArray = new Float32Array( maxVertexCount * 3 );
|
|
64
|
+
const colorAttribute = new THREE.BufferAttribute( this.colorArray, 3 );
|
|
65
|
+
colorAttribute.setUsage( THREE.DynamicDrawUsage );
|
|
66
|
+
geometry.setAttribute( 'color', colorAttribute );
|
|
59
67
|
|
|
60
68
|
}
|
|
61
69
|
|
|
@@ -136,7 +144,7 @@
|
|
|
136
144
|
// (this is where most of time is spent - it's inner work of O(n3) loop )
|
|
137
145
|
|
|
138
146
|
|
|
139
|
-
function polygonize( fx, fy, fz, q, isol
|
|
147
|
+
function polygonize( fx, fy, fz, q, isol ) {
|
|
140
148
|
|
|
141
149
|
// cache indices
|
|
142
150
|
const q1 = q + 1,
|
|
@@ -282,7 +290,7 @@
|
|
|
282
290
|
o1 = cubeindex + i;
|
|
283
291
|
o2 = o1 + 1;
|
|
284
292
|
o3 = o1 + 2;
|
|
285
|
-
posnormtriv( vlist, nlist, clist, 3 * triTable[ o1 ], 3 * triTable[ o2 ], 3 * triTable[ o3 ]
|
|
293
|
+
posnormtriv( vlist, nlist, clist, 3 * triTable[ o1 ], 3 * triTable[ o2 ], 3 * triTable[ o3 ] );
|
|
286
294
|
i += 3;
|
|
287
295
|
numtris ++;
|
|
288
296
|
|
|
@@ -290,12 +298,9 @@
|
|
|
290
298
|
|
|
291
299
|
return numtris;
|
|
292
300
|
|
|
293
|
-
}
|
|
294
|
-
// Immediate render mode simulator
|
|
295
|
-
/////////////////////////////////////
|
|
296
|
-
|
|
301
|
+
}
|
|
297
302
|
|
|
298
|
-
function posnormtriv( pos, norm, colors, o1, o2, o3
|
|
303
|
+
function posnormtriv( pos, norm, colors, o1, o2, o3 ) {
|
|
299
304
|
|
|
300
305
|
const c = scope.count * 3; // positions
|
|
301
306
|
|
|
@@ -368,67 +373,7 @@
|
|
|
368
373
|
|
|
369
374
|
scope.count += 3;
|
|
370
375
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
scope.hasPositions = true;
|
|
374
|
-
scope.hasNormals = true;
|
|
375
|
-
|
|
376
|
-
if ( scope.enableUvs ) {
|
|
377
|
-
|
|
378
|
-
scope.hasUvs = true;
|
|
379
|
-
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
if ( scope.enableColors ) {
|
|
383
|
-
|
|
384
|
-
scope.hasColors = true;
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
renderCallback( scope );
|
|
389
|
-
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
this.begin = function () {
|
|
395
|
-
|
|
396
|
-
this.count = 0;
|
|
397
|
-
this.hasPositions = false;
|
|
398
|
-
this.hasNormals = false;
|
|
399
|
-
this.hasUvs = false;
|
|
400
|
-
this.hasColors = false;
|
|
401
|
-
|
|
402
|
-
};
|
|
403
|
-
|
|
404
|
-
this.end = function ( renderCallback ) {
|
|
405
|
-
|
|
406
|
-
if ( this.count === 0 ) return;
|
|
407
|
-
|
|
408
|
-
for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
|
|
409
|
-
|
|
410
|
-
this.positionArray[ i ] = 0.0;
|
|
411
|
-
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
this.hasPositions = true;
|
|
415
|
-
this.hasNormals = true;
|
|
416
|
-
|
|
417
|
-
if ( this.enableUvs && this.material.map ) {
|
|
418
|
-
|
|
419
|
-
this.hasUvs = true;
|
|
420
|
-
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
if ( this.enableColors && this.material.vertexColors !== THREE.NoColors ) {
|
|
424
|
-
|
|
425
|
-
this.hasColors = true;
|
|
426
|
-
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
renderCallback( this );
|
|
430
|
-
|
|
431
|
-
}; /////////////////////////////////////
|
|
376
|
+
} /////////////////////////////////////
|
|
432
377
|
// Metaballs
|
|
433
378
|
/////////////////////////////////////
|
|
434
379
|
// Adds a reciprocal ball (nice and blobby) that, to be fast, fades to zero after
|
|
@@ -729,9 +674,9 @@
|
|
|
729
674
|
|
|
730
675
|
};
|
|
731
676
|
|
|
732
|
-
this.
|
|
677
|
+
this.onBeforeRender = function () {
|
|
733
678
|
|
|
734
|
-
this.
|
|
679
|
+
this.count = 0; // Triangulate. Yeah, this is slow.
|
|
735
680
|
|
|
736
681
|
const smin2 = this.size - 2;
|
|
737
682
|
|
|
@@ -750,59 +695,28 @@
|
|
|
750
695
|
const fx = ( x - this.halfsize ) / this.halfsize; //+ 1
|
|
751
696
|
|
|
752
697
|
const q = y_offset + x;
|
|
753
|
-
polygonize( fx, fy, fz, q, this.isolation
|
|
698
|
+
polygonize( fx, fy, fz, q, this.isolation );
|
|
754
699
|
|
|
755
700
|
}
|
|
756
701
|
|
|
757
702
|
}
|
|
758
703
|
|
|
759
|
-
}
|
|
760
|
-
|
|
761
|
-
this.end( renderCallback );
|
|
762
|
-
|
|
763
|
-
};
|
|
764
|
-
|
|
765
|
-
this.generateGeometry = function () {
|
|
766
|
-
|
|
767
|
-
console.warn( 'THREE.MarchingCubes: generateGeometry() now returns THREE.BufferGeometry' );
|
|
768
|
-
return this.generateBufferGeometry();
|
|
704
|
+
} // reset unneeded data
|
|
769
705
|
|
|
770
|
-
};
|
|
771
|
-
|
|
772
|
-
function concatenate( a, b, length ) {
|
|
773
706
|
|
|
774
|
-
|
|
775
|
-
result.set( a, 0 );
|
|
776
|
-
result.set( b.slice( 0, length ), a.length );
|
|
777
|
-
return result;
|
|
778
|
-
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
this.generateBufferGeometry = function () {
|
|
707
|
+
for ( let i = this.count * 3; i < this.positionArray.length; i ++ ) {
|
|
782
708
|
|
|
783
|
-
|
|
784
|
-
let posArray = new Float32Array();
|
|
785
|
-
let normArray = new Float32Array();
|
|
786
|
-
let colorArray = new Float32Array();
|
|
787
|
-
let uvArray = new Float32Array();
|
|
788
|
-
const scope = this;
|
|
709
|
+
this.positionArray[ i ] = 0.0;
|
|
789
710
|
|
|
790
|
-
|
|
711
|
+
} // update geometry data
|
|
791
712
|
|
|
792
|
-
if ( scope.hasPositions ) posArray = concatenate( posArray, object.positionArray, object.count * 3 );
|
|
793
|
-
if ( scope.hasNormals ) normArray = concatenate( normArray, object.normalArray, object.count * 3 );
|
|
794
|
-
if ( scope.hasColors ) colorArray = concatenate( colorArray, object.colorArray, object.count * 3 );
|
|
795
|
-
if ( scope.hasUvs ) uvArray = concatenate( uvArray, object.uvArray, object.count * 2 );
|
|
796
|
-
object.count = 0;
|
|
797
713
|
|
|
798
|
-
|
|
714
|
+
geometry.getAttribute( 'position' ).needsUpdate = true;
|
|
715
|
+
geometry.getAttribute( 'normal' ).needsUpdate = true;
|
|
716
|
+
if ( this.enableUvs ) geometry.getAttribute( 'uv' ).needsUpdate = true;
|
|
717
|
+
if ( this.enableColors ) geometry.getAttribute( 'color' ).needsUpdate = true; // safety check
|
|
799
718
|
|
|
800
|
-
this.
|
|
801
|
-
if ( this.hasPositions ) geo.setAttribute( 'position', new THREE.BufferAttribute( posArray, 3 ) );
|
|
802
|
-
if ( this.hasNormals ) geo.setAttribute( 'normal', new THREE.BufferAttribute( normArray, 3 ) );
|
|
803
|
-
if ( this.hasColors ) geo.setAttribute( 'color', new THREE.BufferAttribute( colorArray, 3 ) );
|
|
804
|
-
if ( this.hasUvs ) geo.setAttribute( 'uv', new THREE.BufferAttribute( uvArray, 2 ) );
|
|
805
|
-
return geo;
|
|
719
|
+
if ( this.count / 3 > maxPolyCount ) console.warn( 'THREE.MarchingCubes: Geometry buffers too small for rendering. Please create an instance with a higher poly count.' );
|
|
806
720
|
|
|
807
721
|
};
|
|
808
722
|
|
|
@@ -816,7 +730,7 @@
|
|
|
816
730
|
// Marching cubes lookup tables
|
|
817
731
|
/////////////////////////////////////
|
|
818
732
|
// These tables are straight from Paul Bourke's page:
|
|
819
|
-
// http://
|
|
733
|
+
// http://paulbourke.net/geometry/polygonise/
|
|
820
734
|
// who in turn got them from Cory Gene Bloyd.
|
|
821
735
|
|
|
822
736
|
const edgeTable = new Int32Array( [ 0x0, 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c, 0x80c, 0x905, 0xa0f, 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00, 0x190, 0x99, 0x393, 0x29a, 0x596, 0x49f, 0x795, 0x69c, 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90, 0x230, 0x339, 0x33, 0x13a, 0x636, 0x73f, 0x435, 0x53c, 0xa3c, 0xb35, 0x83f, 0x936, 0xe3a, 0xf33, 0xc39, 0xd30, 0x3a0, 0x2a9, 0x1a3, 0xaa, 0x7a6, 0x6af, 0x5a5, 0x4ac, 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0, 0x460, 0x569, 0x663, 0x76a, 0x66, 0x16f, 0x265, 0x36c, 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a, 0x963, 0xa69, 0xb60, 0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0xff, 0x3f5, 0x2fc, 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0, 0x650, 0x759, 0x453, 0x55a, 0x256, 0x35f, 0x55, 0x15c, 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53, 0x859, 0x950, 0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0xcc, 0xfcc, 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0, 0x8c0, 0x9c9, 0xac3, 0xbca, 0xcc6, 0xdcf, 0xec5, 0xfcc, 0xcc, 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9, 0x7c0, 0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c, 0x15c, 0x55, 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650, 0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6, 0xfff, 0xcf5, 0xdfc, 0x2fc, 0x3f5, 0xff, 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0, 0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c, 0x36c, 0x265, 0x16f, 0x66, 0x76a, 0x663, 0x569, 0x460, 0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af, 0xaa5, 0xbac, 0x4ac, 0x5a5, 0x6af, 0x7a6, 0xaa, 0x1a3, 0x2a9, 0x3a0, 0xd30, 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c, 0x53c, 0x435, 0x73f, 0x636, 0x13a, 0x33, 0x339, 0x230, 0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895, 0x99c, 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x99, 0x190, 0xf00, 0xe09, 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c, 0x70c, 0x605, 0x50f, 0x406, 0x30a, 0x203, 0x109, 0x0 ] );
|
|
@@ -25,19 +25,7 @@
|
|
|
25
25
|
const q = new THREE.Vector4();
|
|
26
26
|
const textureMatrix = new THREE.Matrix4();
|
|
27
27
|
const virtualCamera = new THREE.PerspectiveCamera();
|
|
28
|
-
const
|
|
29
|
-
minFilter: THREE.LinearFilter,
|
|
30
|
-
magFilter: THREE.LinearFilter,
|
|
31
|
-
format: THREE.RGBFormat
|
|
32
|
-
};
|
|
33
|
-
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight, parameters );
|
|
34
|
-
|
|
35
|
-
if ( ! THREE.MathUtils.isPowerOfTwo( textureWidth ) || ! THREE.MathUtils.isPowerOfTwo( textureHeight ) ) {
|
|
36
|
-
|
|
37
|
-
renderTarget.texture.generateMipmaps = false;
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
28
|
+
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight );
|
|
41
29
|
const material = new THREE.ShaderMaterial( {
|
|
42
30
|
uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
|
|
43
31
|
fragmentShader: shader.fragmentShader,
|
|
@@ -135,6 +123,13 @@
|
|
|
135
123
|
|
|
136
124
|
};
|
|
137
125
|
|
|
126
|
+
this.dispose = function () {
|
|
127
|
+
|
|
128
|
+
renderTarget.dispose();
|
|
129
|
+
scope.material.dispose();
|
|
130
|
+
|
|
131
|
+
};
|
|
132
|
+
|
|
138
133
|
}
|
|
139
134
|
|
|
140
135
|
}
|
|
@@ -79,19 +79,9 @@
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
const parameters = {
|
|
82
|
-
minFilter: THREE.LinearFilter,
|
|
83
|
-
magFilter: THREE.LinearFilter,
|
|
84
|
-
format: THREE.RGBFormat,
|
|
85
82
|
depthTexture: useDepthTexture ? depthTexture : null
|
|
86
83
|
};
|
|
87
84
|
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight, parameters );
|
|
88
|
-
|
|
89
|
-
if ( ! THREE.MathUtils.isPowerOfTwo( textureWidth ) || ! THREE.MathUtils.isPowerOfTwo( textureHeight ) ) {
|
|
90
|
-
|
|
91
|
-
renderTarget.texture.generateMipmaps = false;
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
85
|
const material = new THREE.ShaderMaterial( {
|
|
96
86
|
transparent: useDepthTexture,
|
|
97
87
|
defines: Object.assign( {}, ReflectorForSSRPass.ReflectorShader.defines, {
|
|
@@ -20,19 +20,7 @@
|
|
|
20
20
|
const refractorPlane = new THREE.Plane();
|
|
21
21
|
const textureMatrix = new THREE.Matrix4(); // render target
|
|
22
22
|
|
|
23
|
-
const
|
|
24
|
-
minFilter: THREE.LinearFilter,
|
|
25
|
-
magFilter: THREE.LinearFilter,
|
|
26
|
-
format: THREE.RGBFormat
|
|
27
|
-
};
|
|
28
|
-
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight, parameters );
|
|
29
|
-
|
|
30
|
-
if ( ! THREE.MathUtils.isPowerOfTwo( textureWidth ) || ! THREE.MathUtils.isPowerOfTwo( textureHeight ) ) {
|
|
31
|
-
|
|
32
|
-
renderTarget.texture.generateMipmaps = false;
|
|
33
|
-
|
|
34
|
-
} // material
|
|
35
|
-
|
|
23
|
+
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight ); // material
|
|
36
24
|
|
|
37
25
|
this.material = new THREE.ShaderMaterial( {
|
|
38
26
|
uniforms: THREE.UniformsUtils.clone( shader.uniforms ),
|
|
@@ -189,6 +177,13 @@
|
|
|
189
177
|
|
|
190
178
|
};
|
|
191
179
|
|
|
180
|
+
this.dispose = function () {
|
|
181
|
+
|
|
182
|
+
renderTarget.dispose();
|
|
183
|
+
scope.material.dispose();
|
|
184
|
+
|
|
185
|
+
};
|
|
186
|
+
|
|
192
187
|
}
|
|
193
188
|
|
|
194
189
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* https://www.researchgate.net/publication/220720443_A_Practical_Analytic_Model_for_Daylight
|
|
7
7
|
*
|
|
8
8
|
* First implemented by Simon Wallner
|
|
9
|
-
* http://
|
|
9
|
+
* http://simonwallner.at/project/atmospheric-scattering/
|
|
10
10
|
*
|
|
11
11
|
* Improved by Martin Upitis
|
|
12
12
|
* http://blenderartists.org/forum/showthread.php?245954-preethams-sky-impementation-HDR
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Work based on :
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* https://github.com/Slayvin: Flat mirror for three.js
|
|
6
|
+
* https://home.adelphi.edu/~stemkoski/ : An implementation of water shader based on the flat mirror
|
|
7
7
|
* http://29a.ch/ && http://29a.ch/slides/2012/webglwater/ : Water shader explanations in WebGL
|
|
8
8
|
*/
|
|
9
9
|
|
|
@@ -39,19 +39,7 @@
|
|
|
39
39
|
const q = new THREE.Vector4();
|
|
40
40
|
const textureMatrix = new THREE.Matrix4();
|
|
41
41
|
const mirrorCamera = new THREE.PerspectiveCamera();
|
|
42
|
-
const
|
|
43
|
-
minFilter: THREE.LinearFilter,
|
|
44
|
-
magFilter: THREE.LinearFilter,
|
|
45
|
-
format: THREE.RGBFormat
|
|
46
|
-
};
|
|
47
|
-
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight, parameters );
|
|
48
|
-
|
|
49
|
-
if ( ! THREE.MathUtils.isPowerOfTwo( textureWidth ) || ! THREE.MathUtils.isPowerOfTwo( textureHeight ) ) {
|
|
50
|
-
|
|
51
|
-
renderTarget.texture.generateMipmaps = false;
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
42
|
+
const renderTarget = new THREE.WebGLRenderTarget( textureWidth, textureHeight );
|
|
55
43
|
const mirrorShader = {
|
|
56
44
|
uniforms: THREE.UniformsUtils.merge( [ THREE.UniformsLib[ 'fog' ], THREE.UniformsLib[ 'lights' ], {
|
|
57
45
|
'normalSampler': {
|