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
|
@@ -14,7 +14,7 @@ material.roughness = min( material.roughness, 1.0 );
|
|
|
14
14
|
#ifdef SPECULAR
|
|
15
15
|
|
|
16
16
|
float specularIntensityFactor = specularIntensity;
|
|
17
|
-
vec3
|
|
17
|
+
vec3 specularColorFactor = specularColor;
|
|
18
18
|
|
|
19
19
|
#ifdef USE_SPECULARINTENSITYMAP
|
|
20
20
|
|
|
@@ -22,9 +22,9 @@ material.roughness = min( material.roughness, 1.0 );
|
|
|
22
22
|
|
|
23
23
|
#endif
|
|
24
24
|
|
|
25
|
-
#ifdef
|
|
25
|
+
#ifdef USE_SPECULARCOLORMAP
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
specularColorFactor *= specularColorMapTexelToLinear( texture2D( specularColorMap, vUv ) ).rgb;
|
|
28
28
|
|
|
29
29
|
#endif
|
|
30
30
|
|
|
@@ -33,12 +33,12 @@ material.roughness = min( material.roughness, 1.0 );
|
|
|
33
33
|
#else
|
|
34
34
|
|
|
35
35
|
float specularIntensityFactor = 1.0;
|
|
36
|
-
vec3
|
|
36
|
+
vec3 specularColorFactor = vec3( 1.0 );
|
|
37
37
|
material.specularF90 = 1.0;
|
|
38
38
|
|
|
39
39
|
#endif
|
|
40
40
|
|
|
41
|
-
material.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) *
|
|
41
|
+
material.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
|
|
42
42
|
|
|
43
43
|
#else
|
|
44
44
|
|
|
@@ -75,8 +75,21 @@ material.roughness = min( material.roughness, 1.0 );
|
|
|
75
75
|
|
|
76
76
|
#ifdef USE_SHEEN
|
|
77
77
|
|
|
78
|
-
material.
|
|
78
|
+
material.sheenColor = sheenColor;
|
|
79
|
+
|
|
80
|
+
#ifdef USE_SHEENCOLORMAP
|
|
81
|
+
|
|
82
|
+
material.sheenColor *= sheenColorMapTexelToLinear( texture2D( sheenColorMap, vUv ) ).rgb;
|
|
83
|
+
|
|
84
|
+
#endif
|
|
85
|
+
|
|
79
86
|
material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
|
|
80
87
|
|
|
88
|
+
#ifdef USE_SHEENROUGHNESSMAP
|
|
89
|
+
|
|
90
|
+
material.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;
|
|
91
|
+
|
|
92
|
+
#endif
|
|
93
|
+
|
|
81
94
|
#endif
|
|
82
95
|
`;
|
|
@@ -14,7 +14,7 @@ struct PhysicalMaterial {
|
|
|
14
14
|
#endif
|
|
15
15
|
|
|
16
16
|
#ifdef USE_SHEEN
|
|
17
|
-
vec3
|
|
17
|
+
vec3 sheenColor;
|
|
18
18
|
float sheenRoughness;
|
|
19
19
|
#endif
|
|
20
20
|
|
|
@@ -22,6 +22,26 @@ struct PhysicalMaterial {
|
|
|
22
22
|
|
|
23
23
|
// temporary
|
|
24
24
|
vec3 clearcoatSpecular = vec3( 0.0 );
|
|
25
|
+
vec3 sheenSpecular = vec3( 0.0 );
|
|
26
|
+
|
|
27
|
+
// This is a curve-fit approxmation to the "Charlie sheen" BRDF integrated over the hemisphere from
|
|
28
|
+
// Estevez and Kulla 2017, "Production Friendly Microfacet Sheen BRDF". The analysis can be found
|
|
29
|
+
// in the Sheen section of https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing
|
|
30
|
+
float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {
|
|
31
|
+
|
|
32
|
+
float dotNV = saturate( dot( normal, viewDir ) );
|
|
33
|
+
|
|
34
|
+
float r2 = roughness * roughness;
|
|
35
|
+
|
|
36
|
+
float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
|
|
37
|
+
|
|
38
|
+
float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
|
|
39
|
+
|
|
40
|
+
float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
|
|
41
|
+
|
|
42
|
+
return saturate( DG * RECIPROCAL_PI );
|
|
43
|
+
|
|
44
|
+
}
|
|
25
45
|
|
|
26
46
|
// Analytical approximation of the DFG LUT, one half of the
|
|
27
47
|
// split-sum approximation used in indirect specular lighting.
|
|
@@ -133,7 +153,7 @@ void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricC
|
|
|
133
153
|
|
|
134
154
|
#ifdef USE_SHEEN
|
|
135
155
|
|
|
136
|
-
|
|
156
|
+
sheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );
|
|
137
157
|
|
|
138
158
|
#endif
|
|
139
159
|
|
|
@@ -157,6 +177,12 @@ void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradia
|
|
|
157
177
|
|
|
158
178
|
#endif
|
|
159
179
|
|
|
180
|
+
#ifdef USE_SHEEN
|
|
181
|
+
|
|
182
|
+
sheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );
|
|
183
|
+
|
|
184
|
+
#endif
|
|
185
|
+
|
|
160
186
|
// Both indirect specular and indirect diffuse light accumulate here
|
|
161
187
|
|
|
162
188
|
vec3 singleScattering = vec3( 0.0 );
|
|
@@ -13,7 +13,7 @@ vec3 LinearToneMapping( vec3 color ) {
|
|
|
13
13
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// source: https://www.cs.utah.edu
|
|
16
|
+
// source: https://www.cs.utah.edu/docs/techreports/2002/pdf/UUCS-02-001.pdf
|
|
17
17
|
vec3 ReinhardToneMapping( vec3 color ) {
|
|
18
18
|
|
|
19
19
|
color *= toneMappingExposure;
|
|
@@ -24,7 +24,7 @@ export default /* glsl */`
|
|
|
24
24
|
vec4 transmission = getIBLVolumeRefraction(
|
|
25
25
|
n, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,
|
|
26
26
|
pos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,
|
|
27
|
-
|
|
27
|
+
attenuationColor, attenuationDistance );
|
|
28
28
|
|
|
29
29
|
totalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );
|
|
30
30
|
transmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );
|
|
@@ -77,14 +77,14 @@ uniform float opacity;
|
|
|
77
77
|
|
|
78
78
|
#ifdef SPECULAR
|
|
79
79
|
uniform float specularIntensity;
|
|
80
|
-
uniform vec3
|
|
80
|
+
uniform vec3 specularColor;
|
|
81
81
|
|
|
82
82
|
#ifdef USE_SPECULARINTENSITYMAP
|
|
83
83
|
uniform sampler2D specularIntensityMap;
|
|
84
84
|
#endif
|
|
85
85
|
|
|
86
|
-
#ifdef
|
|
87
|
-
uniform sampler2D
|
|
86
|
+
#ifdef USE_SPECULARCOLORMAP
|
|
87
|
+
uniform sampler2D specularColorMap;
|
|
88
88
|
#endif
|
|
89
89
|
#endif
|
|
90
90
|
|
|
@@ -94,8 +94,16 @@ uniform float opacity;
|
|
|
94
94
|
#endif
|
|
95
95
|
|
|
96
96
|
#ifdef USE_SHEEN
|
|
97
|
-
uniform vec3
|
|
97
|
+
uniform vec3 sheenColor;
|
|
98
98
|
uniform float sheenRoughness;
|
|
99
|
+
|
|
100
|
+
#ifdef USE_SHEENCOLORMAP
|
|
101
|
+
uniform sampler2D sheenColorMap;
|
|
102
|
+
#endif
|
|
103
|
+
|
|
104
|
+
#ifdef USE_SHEENROUGHNESSMAP
|
|
105
|
+
uniform sampler2D sheenRoughnessMap;
|
|
106
|
+
#endif
|
|
99
107
|
#endif
|
|
100
108
|
|
|
101
109
|
varying vec3 vViewPosition;
|
|
@@ -167,13 +175,23 @@ void main() {
|
|
|
167
175
|
|
|
168
176
|
vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
|
|
169
177
|
|
|
178
|
+
#ifdef USE_SHEEN
|
|
179
|
+
|
|
180
|
+
// Sheen energy compensation approximation calculation can be found at the end of
|
|
181
|
+
// https://drive.google.com/file/d/1T0D1VSyR4AllqIJTQAraEIzjlb5h4FKH/view?usp=sharing
|
|
182
|
+
float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
|
|
183
|
+
|
|
184
|
+
outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;
|
|
185
|
+
|
|
186
|
+
#endif
|
|
187
|
+
|
|
170
188
|
#ifdef USE_CLEARCOAT
|
|
171
189
|
|
|
172
190
|
float dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );
|
|
173
191
|
|
|
174
192
|
vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
|
|
175
193
|
|
|
176
|
-
outgoingLight = outgoingLight * ( 1.0 - clearcoat * Fcc ) + clearcoatSpecular * clearcoat;
|
|
194
|
+
outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;
|
|
177
195
|
|
|
178
196
|
#endif
|
|
179
197
|
|
|
@@ -10,12 +10,13 @@ export const fragment = /* glsl */`
|
|
|
10
10
|
uniform sampler2D shadow_pass;
|
|
11
11
|
uniform vec2 resolution;
|
|
12
12
|
uniform float radius;
|
|
13
|
-
uniform float samples;
|
|
14
13
|
|
|
15
14
|
#include <packing>
|
|
16
15
|
|
|
17
16
|
void main() {
|
|
18
17
|
|
|
18
|
+
const float samples = float( VSM_SAMPLES );
|
|
19
|
+
|
|
19
20
|
float mean = 0.0;
|
|
20
21
|
float squared_mean = 0.0;
|
|
21
22
|
|
|
@@ -297,8 +297,10 @@ ShaderLib.physical = {
|
|
|
297
297
|
clearcoatNormalScale: { value: new Vector2( 1, 1 ) },
|
|
298
298
|
clearcoatNormalMap: { value: null },
|
|
299
299
|
sheen: { value: 0 },
|
|
300
|
-
|
|
300
|
+
sheenColor: { value: new Color( 0x000000 ) },
|
|
301
|
+
sheenColorMap: { value: null },
|
|
301
302
|
sheenRoughness: { value: 0 },
|
|
303
|
+
sheenRoughnessMap: { value: null },
|
|
302
304
|
transmission: { value: 0 },
|
|
303
305
|
transmissionMap: { value: null },
|
|
304
306
|
transmissionSamplerSize: { value: new Vector2() },
|
|
@@ -306,11 +308,11 @@ ShaderLib.physical = {
|
|
|
306
308
|
thickness: { value: 0 },
|
|
307
309
|
thicknessMap: { value: null },
|
|
308
310
|
attenuationDistance: { value: 0 },
|
|
309
|
-
|
|
311
|
+
attenuationColor: { value: new Color( 0x000000 ) },
|
|
310
312
|
specularIntensity: { value: 0 },
|
|
311
313
|
specularIntensityMap: { value: null },
|
|
312
|
-
|
|
313
|
-
|
|
314
|
+
specularColor: { value: new Color( 1, 1, 1 ) },
|
|
315
|
+
specularColorMap: { value: null },
|
|
314
316
|
}
|
|
315
317
|
] ),
|
|
316
318
|
|
|
@@ -34,8 +34,7 @@ const UniformsLib = {
|
|
|
34
34
|
flipEnvMap: { value: - 1 },
|
|
35
35
|
reflectivity: { value: 1.0 }, // basic, lambert, phong
|
|
36
36
|
ior: { value: 1.5 }, // standard, physical
|
|
37
|
-
refractionRatio: { value: 0.98 }
|
|
38
|
-
maxMipLevel: { value: 0 }
|
|
37
|
+
refractionRatio: { value: 0.98 }
|
|
39
38
|
|
|
40
39
|
},
|
|
41
40
|
|
|
@@ -52,10 +52,8 @@ function WebGLCapabilities( gl, extensions, parameters ) {
|
|
|
52
52
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
/* eslint-disable no-undef */
|
|
56
55
|
const isWebGL2 = ( typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext ) ||
|
|
57
56
|
( typeof WebGL2ComputeRenderingContext !== 'undefined' && gl instanceof WebGL2ComputeRenderingContext );
|
|
58
|
-
/* eslint-enable no-undef */
|
|
59
57
|
|
|
60
58
|
let precision = parameters.precision !== undefined ? parameters.precision : 'highp';
|
|
61
59
|
const maxPrecision = getMaxPrecision( precision );
|
|
@@ -157,14 +157,6 @@ function WebGLMaterials( properties ) {
|
|
|
157
157
|
uniforms.ior.value = material.ior;
|
|
158
158
|
uniforms.refractionRatio.value = material.refractionRatio;
|
|
159
159
|
|
|
160
|
-
const maxMipLevel = properties.get( envMap ).__maxMipLevel;
|
|
161
|
-
|
|
162
|
-
if ( maxMipLevel !== undefined ) {
|
|
163
|
-
|
|
164
|
-
uniforms.maxMipLevel.value = maxMipLevel;
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
|
|
168
160
|
}
|
|
169
161
|
|
|
170
162
|
if ( material.lightMap ) {
|
|
@@ -253,9 +245,9 @@ function WebGLMaterials( properties ) {
|
|
|
253
245
|
|
|
254
246
|
uvScaleMap = material.specularIntensityMap;
|
|
255
247
|
|
|
256
|
-
} else if ( material.
|
|
248
|
+
} else if ( material.specularColorMap ) {
|
|
257
249
|
|
|
258
|
-
uvScaleMap = material.
|
|
250
|
+
uvScaleMap = material.specularColorMap;
|
|
259
251
|
|
|
260
252
|
} else if ( material.transmissionMap ) {
|
|
261
253
|
|
|
@@ -265,6 +257,14 @@ function WebGLMaterials( properties ) {
|
|
|
265
257
|
|
|
266
258
|
uvScaleMap = material.thicknessMap;
|
|
267
259
|
|
|
260
|
+
} else if ( material.sheenColorMap ) {
|
|
261
|
+
|
|
262
|
+
uvScaleMap = material.sheenColorMap;
|
|
263
|
+
|
|
264
|
+
} else if ( material.sheenRoughnessMap ) {
|
|
265
|
+
|
|
266
|
+
uvScaleMap = material.sheenRoughnessMap;
|
|
267
|
+
|
|
268
268
|
}
|
|
269
269
|
|
|
270
270
|
if ( uvScaleMap !== undefined ) {
|
|
@@ -600,10 +600,22 @@ function WebGLMaterials( properties ) {
|
|
|
600
600
|
|
|
601
601
|
if ( material.sheen > 0 ) {
|
|
602
602
|
|
|
603
|
-
uniforms.
|
|
603
|
+
uniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );
|
|
604
604
|
|
|
605
605
|
uniforms.sheenRoughness.value = material.sheenRoughness;
|
|
606
606
|
|
|
607
|
+
if ( material.sheenColorMap ) {
|
|
608
|
+
|
|
609
|
+
uniforms.sheenColorMap.value = material.sheenColorMap;
|
|
610
|
+
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
if ( material.sheenRoughnessMap ) {
|
|
614
|
+
|
|
615
|
+
uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;
|
|
616
|
+
|
|
617
|
+
}
|
|
618
|
+
|
|
607
619
|
}
|
|
608
620
|
|
|
609
621
|
if ( material.clearcoat > 0 ) {
|
|
@@ -659,12 +671,12 @@ function WebGLMaterials( properties ) {
|
|
|
659
671
|
}
|
|
660
672
|
|
|
661
673
|
uniforms.attenuationDistance.value = material.attenuationDistance;
|
|
662
|
-
uniforms.
|
|
674
|
+
uniforms.attenuationColor.value.copy( material.attenuationColor );
|
|
663
675
|
|
|
664
676
|
}
|
|
665
677
|
|
|
666
678
|
uniforms.specularIntensity.value = material.specularIntensity;
|
|
667
|
-
uniforms.
|
|
679
|
+
uniforms.specularColor.value.copy( material.specularColor );
|
|
668
680
|
|
|
669
681
|
if ( material.specularIntensityMap ) {
|
|
670
682
|
|
|
@@ -672,9 +684,9 @@ function WebGLMaterials( properties ) {
|
|
|
672
684
|
|
|
673
685
|
}
|
|
674
686
|
|
|
675
|
-
if ( material.
|
|
687
|
+
if ( material.specularColorMap ) {
|
|
676
688
|
|
|
677
|
-
uniforms.
|
|
689
|
+
uniforms.specularColorMap.value = material.specularColorMap;
|
|
678
690
|
|
|
679
691
|
}
|
|
680
692
|
|
|
@@ -84,6 +84,7 @@ function WebGLMorphtargets( gl, capabilities, textures ) {
|
|
|
84
84
|
const texture = new DataTexture2DArray( buffer, width, height, numberOfMorphTargets );
|
|
85
85
|
texture.format = RGBAFormat; // using RGBA since RGB might be emulated (and is thus slower)
|
|
86
86
|
texture.type = FloatType;
|
|
87
|
+
texture.needsUpdate = true;
|
|
87
88
|
|
|
88
89
|
// fill buffer
|
|
89
90
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WebGLUniforms } from './WebGLUniforms.js';
|
|
2
2
|
import { WebGLShader } from './WebGLShader.js';
|
|
3
3
|
import { ShaderChunk } from '../shaders/ShaderChunk.js';
|
|
4
|
-
import { RGBFormat, NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping,
|
|
4
|
+
import { RGBFormat, NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, sRGBEncoding, LinearEncoding, GLSL3 } from '../../constants.js';
|
|
5
5
|
|
|
6
6
|
let programIdCount = 0;
|
|
7
7
|
|
|
@@ -27,18 +27,6 @@ function getEncodingComponents( encoding ) {
|
|
|
27
27
|
return [ 'Linear', '( value )' ];
|
|
28
28
|
case sRGBEncoding:
|
|
29
29
|
return [ 'sRGB', '( value )' ];
|
|
30
|
-
case RGBEEncoding:
|
|
31
|
-
return [ 'RGBE', '( value )' ];
|
|
32
|
-
case RGBM7Encoding:
|
|
33
|
-
return [ 'RGBM', '( value, 7.0 )' ];
|
|
34
|
-
case RGBM16Encoding:
|
|
35
|
-
return [ 'RGBM', '( value, 16.0 )' ];
|
|
36
|
-
case RGBDEncoding:
|
|
37
|
-
return [ 'RGBD', '( value, 256.0 )' ];
|
|
38
|
-
case GammaEncoding:
|
|
39
|
-
return [ 'Gamma', '( value, float( GAMMA_FACTOR ) )' ];
|
|
40
|
-
case LogLuvEncoding:
|
|
41
|
-
return [ 'LogLuv', '( value )' ];
|
|
42
30
|
default:
|
|
43
31
|
console.warn( 'THREE.WebGLProgram: Unsupported encoding:', encoding );
|
|
44
32
|
return [ 'Linear', '( value )' ];
|
|
@@ -399,9 +387,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
399
387
|
const envMapModeDefine = generateEnvMapModeDefine( parameters );
|
|
400
388
|
const envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );
|
|
401
389
|
|
|
402
|
-
|
|
403
|
-
const gammaFactorDefine = ( renderer.gammaFactor > 0 ) ? renderer.gammaFactor : 1.0;
|
|
404
|
-
|
|
405
390
|
const customExtensions = parameters.isWebGL2 ? '' : generateExtensions( parameters );
|
|
406
391
|
|
|
407
392
|
const customDefines = generateDefines( defines );
|
|
@@ -453,8 +438,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
453
438
|
|
|
454
439
|
parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '',
|
|
455
440
|
|
|
456
|
-
'#define GAMMA_FACTOR ' + gammaFactorDefine,
|
|
457
|
-
|
|
458
441
|
'#define MAX_BONES ' + parameters.maxBones,
|
|
459
442
|
( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',
|
|
460
443
|
( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',
|
|
@@ -478,7 +461,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
478
461
|
|
|
479
462
|
parameters.specularMap ? '#define USE_SPECULARMAP' : '',
|
|
480
463
|
parameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',
|
|
481
|
-
parameters.
|
|
464
|
+
parameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',
|
|
482
465
|
|
|
483
466
|
parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
|
|
484
467
|
parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
|
|
@@ -488,6 +471,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
488
471
|
parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',
|
|
489
472
|
parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',
|
|
490
473
|
|
|
474
|
+
parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',
|
|
475
|
+
parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',
|
|
476
|
+
|
|
491
477
|
parameters.vertexTangents ? '#define USE_TANGENT' : '',
|
|
492
478
|
parameters.vertexColors ? '#define USE_COLOR' : '',
|
|
493
479
|
parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',
|
|
@@ -600,8 +586,6 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
600
586
|
|
|
601
587
|
customDefines,
|
|
602
588
|
|
|
603
|
-
'#define GAMMA_FACTOR ' + gammaFactorDefine,
|
|
604
|
-
|
|
605
589
|
( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '',
|
|
606
590
|
( parameters.useFog && parameters.fogExp2 ) ? '#define FOG_EXP2' : '',
|
|
607
591
|
|
|
@@ -626,7 +610,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
626
610
|
|
|
627
611
|
parameters.specularMap ? '#define USE_SPECULARMAP' : '',
|
|
628
612
|
parameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',
|
|
629
|
-
parameters.
|
|
613
|
+
parameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',
|
|
630
614
|
parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
|
|
631
615
|
parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
|
|
632
616
|
|
|
@@ -634,6 +618,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
634
618
|
parameters.alphaTest ? '#define USE_ALPHATEST' : '',
|
|
635
619
|
|
|
636
620
|
parameters.sheen ? '#define USE_SHEEN' : '',
|
|
621
|
+
parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',
|
|
622
|
+
parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',
|
|
637
623
|
|
|
638
624
|
parameters.transmission ? '#define USE_TRANSMISSION' : '',
|
|
639
625
|
parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',
|
|
@@ -680,7 +666,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
680
666
|
parameters.matcap ? getTexelDecodingFunction( 'matcapTexelToLinear', parameters.matcapEncoding ) : '',
|
|
681
667
|
parameters.envMap ? getTexelDecodingFunction( 'envMapTexelToLinear', parameters.envMapEncoding ) : '',
|
|
682
668
|
parameters.emissiveMap ? getTexelDecodingFunction( 'emissiveMapTexelToLinear', parameters.emissiveMapEncoding ) : '',
|
|
683
|
-
parameters.
|
|
669
|
+
parameters.specularColorMap ? getTexelDecodingFunction( 'specularColorMapTexelToLinear', parameters.specularColorMapEncoding ) : '',
|
|
670
|
+
parameters.sheenColorMap ? getTexelDecodingFunction( 'sheenColorMapTexelToLinear', parameters.sheenColorMapEncoding ) : '',
|
|
684
671
|
parameters.lightMap ? getTexelDecodingFunction( 'lightMapTexelToLinear', parameters.lightMapEncoding ) : '',
|
|
685
672
|
getTexelEncodingFunction( 'linearToOutputTexel', parameters.outputEncoding ),
|
|
686
673
|
|
|
@@ -718,7 +705,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
718
705
|
|
|
719
706
|
prefixFragment = [
|
|
720
707
|
'#define varying in',
|
|
721
|
-
( parameters.glslVersion === GLSL3 ) ? '' : 'out highp vec4 pc_fragColor;',
|
|
708
|
+
( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',
|
|
722
709
|
( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',
|
|
723
710
|
'#define gl_FragDepthEXT gl_FragDepth',
|
|
724
711
|
'#define texture2D texture',
|