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
|
@@ -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',
|
|
@@ -1282,6 +1282,7 @@
|
|
|
1282
1282
|
}
|
|
1283
1283
|
|
|
1284
1284
|
texture = new THREE.DataTexture( data, width, height, useAlpha === true ? THREE.RGBAFormat : THREE.RGBFormat );
|
|
1285
|
+
texture.needsUpdate = true;
|
|
1285
1286
|
texture.__type = textureType; // needed for material modifications
|
|
1286
1287
|
|
|
1287
1288
|
break;
|
|
@@ -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
|
|
|
@@ -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 ] );
|
|
@@ -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
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* References:
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* https://alex.vlachos.com/graphics/Vlachos-SIGGRAPH10-WaterFlow.pdf
|
|
6
|
+
* http://graphicsrunner.blogspot.de/2010/08/water-using-flow-maps.html
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
9
|
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
const reflectivity = options.reflectivity || 0.02;
|
|
24
24
|
const scale = options.scale || 1;
|
|
25
25
|
const shader = options.shader || Water.WaterShader;
|
|
26
|
-
const encoding = options.encoding !== undefined ? options.encoding : THREE.LinearEncoding;
|
|
27
26
|
const textureLoader = new THREE.TextureLoader();
|
|
28
27
|
const flowMap = options.flowMap || undefined;
|
|
29
28
|
const normalMap0 = options.normalMap0 || textureLoader.load( 'textures/water/Water_1_M_Normal.jpg' );
|
|
@@ -51,14 +50,12 @@
|
|
|
51
50
|
const reflector = new THREE.Reflector( geometry, {
|
|
52
51
|
textureWidth: textureWidth,
|
|
53
52
|
textureHeight: textureHeight,
|
|
54
|
-
clipBias: clipBias
|
|
55
|
-
encoding: encoding
|
|
53
|
+
clipBias: clipBias
|
|
56
54
|
} );
|
|
57
55
|
const refractor = new THREE.Refractor( geometry, {
|
|
58
56
|
textureWidth: textureWidth,
|
|
59
57
|
textureHeight: textureHeight,
|
|
60
|
-
clipBias: clipBias
|
|
61
|
-
encoding: encoding
|
|
58
|
+
clipBias: clipBias
|
|
62
59
|
} );
|
|
63
60
|
reflector.matrixAutoUpdate = false;
|
|
64
61
|
refractor.matrixAutoUpdate = false; // material
|
|
@@ -93,7 +93,9 @@
|
|
|
93
93
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
const texture = new THREE.DataTexture( data_arr, dt_size, dt_size, THREE.RGBFormat, THREE.FloatType );
|
|
97
|
+
texture.needsUpdate = true;
|
|
98
|
+
return texture;
|
|
97
99
|
|
|
98
100
|
}
|
|
99
101
|
|
|
@@ -316,6 +316,7 @@
|
|
|
316
316
|
this.noiseTexture = new THREE.DataTexture( data, width, height, THREE.RGBAFormat, THREE.FloatType );
|
|
317
317
|
this.noiseTexture.wrapS = THREE.RepeatWrapping;
|
|
318
318
|
this.noiseTexture.wrapT = THREE.RepeatWrapping;
|
|
319
|
+
this.noiseTexture.needsUpdate = true;
|
|
319
320
|
|
|
320
321
|
}
|
|
321
322
|
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
class CSS2DObject extends THREE.Object3D {
|
|
4
4
|
|
|
5
|
-
constructor( element ) {
|
|
5
|
+
constructor( element = document.createElement( 'div' ) ) {
|
|
6
6
|
|
|
7
7
|
super();
|
|
8
|
-
this.element = element
|
|
8
|
+
this.element = element;
|
|
9
9
|
this.element.style.position = 'absolute';
|
|
10
10
|
this.element.style.userSelect = 'none';
|
|
11
11
|
this.element.setAttribute( 'draggable', false );
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
class CSS2DRenderer {
|
|
51
51
|
|
|
52
|
-
constructor() {
|
|
52
|
+
constructor( parameters = {} ) {
|
|
53
53
|
|
|
54
54
|
const _this = this;
|
|
55
55
|
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
const cache = {
|
|
61
61
|
objects: new WeakMap()
|
|
62
62
|
};
|
|
63
|
-
const domElement = document.createElement( 'div' );
|
|
63
|
+
const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );
|
|
64
64
|
domElement.style.overflow = 'hidden';
|
|
65
65
|
this.domElement = domElement;
|
|
66
66
|
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
class CSS3DObject extends THREE.Object3D {
|
|
14
14
|
|
|
15
|
-
constructor( element ) {
|
|
15
|
+
constructor( element = document.createElement( 'div' ) ) {
|
|
16
16
|
|
|
17
17
|
super();
|
|
18
|
-
this.element = element
|
|
18
|
+
this.element = element;
|
|
19
19
|
this.element.style.position = 'absolute';
|
|
20
20
|
this.element.style.pointerEvents = 'auto';
|
|
21
21
|
this.element.style.userSelect = 'none';
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
|
|
76
76
|
class CSS3DRenderer {
|
|
77
77
|
|
|
78
|
-
constructor() {
|
|
78
|
+
constructor( parameters = {} ) {
|
|
79
79
|
|
|
80
80
|
const _this = this;
|
|
81
81
|
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
},
|
|
91
91
|
objects: new WeakMap()
|
|
92
92
|
};
|
|
93
|
-
const domElement = document.createElement( 'div' );
|
|
93
|
+
const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );
|
|
94
94
|
domElement.style.overflow = 'hidden';
|
|
95
95
|
this.domElement = domElement;
|
|
96
96
|
const cameraElement = document.createElement( 'div' );
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* NVIDIA FXAA by Timothy Lottes
|
|
5
|
-
*
|
|
5
|
+
* https://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf
|
|
6
6
|
* - WebGL port by @supereggbert
|
|
7
7
|
* http://www.glge.org/demos/fxaa/
|
|
8
8
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Film grain & scanlines shader
|
|
5
5
|
*
|
|
6
6
|
* - ported from HLSL to WebGL / GLSL
|
|
7
|
-
* http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
|
|
7
|
+
* https://web.archive.org/web/20210226214859/http://www.truevision3d.com/forums/showcase/staticnoise_colorblackwhite_scanline_shaders-t18698.0.html
|
|
8
8
|
*
|
|
9
9
|
* Screen Space Static Postprocessor
|
|
10
10
|
*
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Two pass Gaussian blur filter (horizontal and vertical blur shaders)
|
|
5
|
-
* -
|
|
6
|
-
* and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
5
|
+
* - see http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
7
6
|
*
|
|
8
7
|
* - 9 samples per pass
|
|
9
8
|
* - standard deviation 2.7
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
vec3 vP=getViewPosition( uv, d, cW );
|
|
198
198
|
|
|
199
199
|
#ifdef PERSPECTIVE_CAMERA
|
|
200
|
-
// https://
|
|
200
|
+
// https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
|
|
201
201
|
float recipVPZ=1./viewPosition.z;
|
|
202
202
|
float viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
|
|
203
203
|
#else
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
vec3 vP=getViewPosition( uv, d, cW );
|
|
216
216
|
|
|
217
217
|
#ifdef PERSPECTIVE_CAMERA
|
|
218
|
-
// https://
|
|
218
|
+
// https://comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf
|
|
219
219
|
float recipVPZ=1./viewPosition.z;
|
|
220
220
|
float viewRefractRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));
|
|
221
221
|
float sD=surfDist*cW;
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Two pass Gaussian blur filter (horizontal and vertical blur shaders)
|
|
5
|
-
* -
|
|
6
|
-
* and used in http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
5
|
+
* - see http://www.cake23.de/traveling-wavefronts-lit-up.html
|
|
7
6
|
*
|
|
8
7
|
* - 9 samples per pass
|
|
9
8
|
* - standard deviation 2.7
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
* Generates 3D-Coordinates in a very fast way.
|
|
42
42
|
*
|
|
43
43
|
* Based on work by:
|
|
44
|
-
* @link
|
|
44
|
+
* @link https://openprocessing.org/user/5654
|
|
45
45
|
*
|
|
46
46
|
* @param center Center of Hilbert curve.
|
|
47
47
|
* @param size Total width of Hilbert curve.
|