super-three 0.133.2 → 0.135.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 +619 -538
- package/build/three.min.js +1 -1
- package/build/three.module.js +763 -616
- 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.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/controls/ArcballControls.js +68 -27
- 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/csm/CSM.js +2 -2
- package/examples/js/csm/CSMFrustum.js +133 -0
- package/examples/js/exporters/GLTFExporter.js +147 -63
- package/examples/js/exporters/USDZExporter.js +45 -26
- 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/ColladaLoader.js +61 -3
- package/examples/js/loaders/FBXLoader.js +1 -1
- package/examples/js/loaders/GLTFLoader.js +94 -31
- package/examples/js/loaders/KTX2Loader.js +12 -0
- package/examples/js/loaders/LWOLoader.js +8 -6
- package/examples/js/loaders/LogLuvLoader.js +766 -0
- package/examples/js/loaders/PLYLoader.js +32 -7
- package/examples/js/loaders/RGBELoader.js +2 -1
- package/examples/js/loaders/SVGLoader.js +7 -3
- package/examples/js/loaders/TDSLoader.js +237 -271
- package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
- package/examples/js/objects/MarchingCubes.js +42 -128
- package/examples/js/renderers/CSS2DRenderer.js +4 -4
- package/examples/js/renderers/CSS3DRenderer.js +4 -4
- package/examples/js/utils/RoughnessMipmapper.js +1 -0
- package/examples/jsm/controls/ArcballControls.js +61 -29
- 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/csm/CSM.js +3 -3
- package/examples/jsm/csm/{Frustum.js → CSMFrustum.js} +3 -3
- package/examples/jsm/exporters/GLTFExporter.js +160 -74
- package/examples/jsm/exporters/USDZExporter.js +47 -26
- package/examples/jsm/libs/flow.module.js +3218 -0
- package/examples/jsm/libs/lil-gui.module.min.js +8 -0
- package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -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/ColladaLoader.js +61 -3
- package/examples/jsm/loaders/FBXLoader.js +1 -1
- package/examples/jsm/loaders/GLTFLoader.js +99 -35
- package/examples/jsm/loaders/KTX2Loader.js +19 -0
- package/examples/jsm/loaders/LWOLoader.js +8 -6
- package/examples/jsm/loaders/LogLuvLoader.js +606 -0
- package/examples/jsm/loaders/PLYLoader.js +33 -7
- package/examples/jsm/loaders/SVGLoader.js +7 -4
- package/examples/jsm/loaders/TDSLoader.js +225 -285
- package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
- package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
- 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 +69 -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/materials/StandardNodeMaterial.js +1 -1
- package/examples/jsm/nodes/materials/nodes/StandardNode.js +6 -6
- package/examples/jsm/nodes/utils/ColorSpaceNode.js +1 -49
- package/examples/jsm/objects/MarchingCubes.js +46 -152
- 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 +1 -1
- 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 +1 -1
- package/examples/jsm/postprocessing/SMAAPass.js +1 -1
- package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
- package/examples/jsm/postprocessing/SSAOPass.js +1 -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 +14 -13
- package/examples/jsm/renderers/nodes/ShaderNode.js +193 -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 +47 -25
- 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/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 +87 -36
- 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/webgl/nodes/SlotNode.js +22 -0
- package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +191 -94
- 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 +3 -3
- 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 +3 -5
- package/examples/jsm/renderers/webgpu/WebGPURenderer.js +11 -27
- package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +62 -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 +430 -98
- package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
- package/examples/jsm/utils/RoughnessMipmapper.js +1 -0
- package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
- package/package.json +10 -10
- package/src/Three.Legacy.js +6 -0
- package/src/Three.js +0 -1
- package/src/cameras/StereoCamera.js +8 -7
- package/src/constants.js +1 -2
- package/src/core/Layers.js +7 -1
- package/src/core/Object3D.js +2 -0
- package/src/extras/PMREMGenerator.js +11 -6
- package/src/loaders/FileLoader.js +89 -152
- 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/MathUtils.js +5 -16
- package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
- package/src/renderers/WebGLRenderer.js +83 -117
- package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -27
- package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +19 -6
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +2 -2
- 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 +13 -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/WebGLExtensions.js +1 -0
- package/src/renderers/webgl/WebGLMaterials.js +27 -15
- package/src/renderers/webgl/WebGLProgram.js +10 -6
- package/src/renderers/webgl/WebGLPrograms.js +17 -12
- package/src/renderers/webgl/WebGLShadowMap.js +14 -5
- package/src/renderers/webgl/WebGLState.js +31 -17
- package/src/renderers/webgl/WebGLTextures.js +188 -51
- package/src/renderers/webgl/WebGLUniforms.js +45 -1
- package/src/renderers/webxr/WebXRManager.js +71 -110
- package/src/textures/Texture.js +6 -0
- package/src/utils.js +37 -1
- 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
|
@@ -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;
|
|
@@ -173,7 +181,7 @@ void main() {
|
|
|
173
181
|
|
|
174
182
|
vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
|
|
175
183
|
|
|
176
|
-
outgoingLight = outgoingLight * ( 1.0 - clearcoat * Fcc ) + clearcoatSpecular * clearcoat;
|
|
184
|
+
outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;
|
|
177
185
|
|
|
178
186
|
#endif
|
|
179
187
|
|
|
@@ -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
|
|
|
@@ -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
|
|
|
@@ -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, GammaEncoding, RGBDEncoding, RGBM16Encoding, RGBM7Encoding, RGBEEncoding, sRGBEncoding, LinearEncoding,
|
|
4
|
+
import { RGBFormat, NoToneMapping, AddOperation, MixOperation, MultiplyOperation, CubeRefractionMapping, CubeUVRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, CustomToneMapping, ReinhardToneMapping, LinearToneMapping, GammaEncoding, RGBDEncoding, RGBM16Encoding, RGBM7Encoding, RGBEEncoding, sRGBEncoding, LinearEncoding, GLSL3 } from '../../constants.js';
|
|
5
5
|
|
|
6
6
|
let programIdCount = 0;
|
|
7
7
|
|
|
@@ -37,8 +37,6 @@ function getEncodingComponents( encoding ) {
|
|
|
37
37
|
return [ 'RGBD', '( value, 256.0 )' ];
|
|
38
38
|
case GammaEncoding:
|
|
39
39
|
return [ 'Gamma', '( value, float( GAMMA_FACTOR ) )' ];
|
|
40
|
-
case LogLuvEncoding:
|
|
41
|
-
return [ 'LogLuv', '( value )' ];
|
|
42
40
|
default:
|
|
43
41
|
console.warn( 'THREE.WebGLProgram: Unsupported encoding:', encoding );
|
|
44
42
|
return [ 'Linear', '( value )' ];
|
|
@@ -478,7 +476,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
478
476
|
|
|
479
477
|
parameters.specularMap ? '#define USE_SPECULARMAP' : '',
|
|
480
478
|
parameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',
|
|
481
|
-
parameters.
|
|
479
|
+
parameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',
|
|
482
480
|
|
|
483
481
|
parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
|
|
484
482
|
parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
|
|
@@ -488,6 +486,9 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
488
486
|
parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',
|
|
489
487
|
parameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',
|
|
490
488
|
|
|
489
|
+
parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',
|
|
490
|
+
parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',
|
|
491
|
+
|
|
491
492
|
parameters.vertexTangents ? '#define USE_TANGENT' : '',
|
|
492
493
|
parameters.vertexColors ? '#define USE_COLOR' : '',
|
|
493
494
|
parameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',
|
|
@@ -626,7 +627,7 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
626
627
|
|
|
627
628
|
parameters.specularMap ? '#define USE_SPECULARMAP' : '',
|
|
628
629
|
parameters.specularIntensityMap ? '#define USE_SPECULARINTENSITYMAP' : '',
|
|
629
|
-
parameters.
|
|
630
|
+
parameters.specularColorMap ? '#define USE_SPECULARCOLORMAP' : '',
|
|
630
631
|
parameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',
|
|
631
632
|
parameters.metalnessMap ? '#define USE_METALNESSMAP' : '',
|
|
632
633
|
|
|
@@ -634,6 +635,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
634
635
|
parameters.alphaTest ? '#define USE_ALPHATEST' : '',
|
|
635
636
|
|
|
636
637
|
parameters.sheen ? '#define USE_SHEEN' : '',
|
|
638
|
+
parameters.sheenColorMap ? '#define USE_SHEENCOLORMAP' : '',
|
|
639
|
+
parameters.sheenRoughnessMap ? '#define USE_SHEENROUGHNESSMAP' : '',
|
|
637
640
|
|
|
638
641
|
parameters.transmission ? '#define USE_TRANSMISSION' : '',
|
|
639
642
|
parameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',
|
|
@@ -680,7 +683,8 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
680
683
|
parameters.matcap ? getTexelDecodingFunction( 'matcapTexelToLinear', parameters.matcapEncoding ) : '',
|
|
681
684
|
parameters.envMap ? getTexelDecodingFunction( 'envMapTexelToLinear', parameters.envMapEncoding ) : '',
|
|
682
685
|
parameters.emissiveMap ? getTexelDecodingFunction( 'emissiveMapTexelToLinear', parameters.emissiveMapEncoding ) : '',
|
|
683
|
-
parameters.
|
|
686
|
+
parameters.specularColorMap ? getTexelDecodingFunction( 'specularColorMapTexelToLinear', parameters.specularColorMapEncoding ) : '',
|
|
687
|
+
parameters.sheenColorMap ? getTexelDecodingFunction( 'sheenColorMapTexelToLinear', parameters.sheenColorMapEncoding ) : '',
|
|
684
688
|
parameters.lightMap ? getTexelDecodingFunction( 'lightMapTexelToLinear', parameters.lightMapEncoding ) : '',
|
|
685
689
|
getTexelEncodingFunction( 'linearToOutputTexel', parameters.outputEncoding ),
|
|
686
690
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { BackSide, DoubleSide, CubeUVRefractionMapping, CubeUVReflectionMapping, LinearEncoding,
|
|
1
|
+
import { BackSide, DoubleSide, CubeUVRefractionMapping, CubeUVReflectionMapping, LinearEncoding, ObjectSpaceNormalMap, TangentSpaceNormalMap, NoToneMapping } from '../../constants.js';
|
|
2
2
|
import { WebGLProgram } from './WebGLProgram.js';
|
|
3
3
|
import { ShaderLib } from '../shaders/ShaderLib.js';
|
|
4
4
|
import { UniformsUtils } from '../shaders/UniformsUtils.js';
|
|
5
|
+
import { hashString } from '../../utils.js';
|
|
5
6
|
|
|
6
7
|
function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {
|
|
7
8
|
|
|
@@ -39,8 +40,7 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
39
40
|
'lightMap', 'lightMapEncoding', 'aoMap', 'emissiveMap', 'emissiveMapEncoding', 'bumpMap', 'normalMap',
|
|
40
41
|
'objectSpaceNormalMap', 'tangentSpaceNormalMap',
|
|
41
42
|
'clearcoat', 'clearcoatMap', 'clearcoatRoughnessMap', 'clearcoatNormalMap',
|
|
42
|
-
'displacementMap',
|
|
43
|
-
'specularMap', 'specularIntensityMap', 'specularTintMap', 'specularTintMapEncoding', 'roughnessMap', 'metalnessMap', 'gradientMap',
|
|
43
|
+
'displacementMap', 'specularMap', , 'roughnessMap', 'metalnessMap', 'gradientMap',
|
|
44
44
|
'alphaMap', 'alphaTest', 'combine', 'vertexColors', 'vertexAlphas', 'vertexTangents', 'vertexUvs', 'uvsVertexOnly', 'fog', 'useFog', 'fogExp2',
|
|
45
45
|
'flatShading', 'sizeAttenuation', 'logarithmicDepthBuffer', 'skinning',
|
|
46
46
|
'maxBones', 'useVertexTexture', 'morphTargets', 'morphNormals', 'morphTargetsCount', 'premultipliedAlpha',
|
|
@@ -48,7 +48,9 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
48
48
|
'numDirLightShadows', 'numPointLightShadows', 'numSpotLightShadows',
|
|
49
49
|
'shadowMapEnabled', 'shadowMapType', 'toneMapping', 'physicallyCorrectLights',
|
|
50
50
|
'doubleSided', 'flipSided', 'numClippingPlanes', 'numClipIntersection', 'depthPacking', 'dithering', 'format',
|
|
51
|
-
'
|
|
51
|
+
'specularIntensityMap', 'specularColorMap', 'specularColorMapEncoding',
|
|
52
|
+
'transmission', 'transmissionMap', 'thicknessMap',
|
|
53
|
+
'sheen', 'sheenColorMap', 'sheenColorMapEncoding', 'sheenRoughnessMap'
|
|
52
54
|
];
|
|
53
55
|
|
|
54
56
|
function getMaxBones( object ) {
|
|
@@ -106,11 +108,11 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
106
108
|
|
|
107
109
|
}
|
|
108
110
|
|
|
109
|
-
if ( isWebGL2 && map && map.isTexture && map.format === RGBAFormat && map.type === UnsignedByteType && map.encoding === sRGBEncoding ) {
|
|
111
|
+
/* if ( isWebGL2 && map && map.isTexture && map.format === RGBAFormat && map.type === UnsignedByteType && map.encoding === sRGBEncoding ) {
|
|
110
112
|
|
|
111
113
|
encoding = LinearEncoding; // disable inline decode for sRGB textures in WebGL 2
|
|
112
114
|
|
|
113
|
-
}
|
|
115
|
+
} */
|
|
114
116
|
|
|
115
117
|
return encoding;
|
|
116
118
|
|
|
@@ -212,8 +214,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
212
214
|
metalnessMap: !! material.metalnessMap,
|
|
213
215
|
specularMap: !! material.specularMap,
|
|
214
216
|
specularIntensityMap: !! material.specularIntensityMap,
|
|
215
|
-
|
|
216
|
-
|
|
217
|
+
specularColorMap: !! material.specularColorMap,
|
|
218
|
+
specularColorMapEncoding: getTextureEncodingFromMap( material.specularColorMap ),
|
|
217
219
|
|
|
218
220
|
alphaMap: !! material.alphaMap,
|
|
219
221
|
alphaTest: useAlphaTest,
|
|
@@ -221,6 +223,9 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
221
223
|
gradientMap: !! material.gradientMap,
|
|
222
224
|
|
|
223
225
|
sheen: material.sheen > 0,
|
|
226
|
+
sheenColorMap: !! material.sheenColorMap,
|
|
227
|
+
sheenColorMapEncoding: getTextureEncodingFromMap( material.sheenColorMap ),
|
|
228
|
+
sheenRoughnessMap: !! material.sheenRoughnessMap,
|
|
224
229
|
|
|
225
230
|
transmission: material.transmission > 0,
|
|
226
231
|
transmissionMap: !! material.transmissionMap,
|
|
@@ -231,8 +236,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
231
236
|
vertexTangents: ( !! material.normalMap && !! object.geometry && !! object.geometry.attributes.tangent ),
|
|
232
237
|
vertexColors: material.vertexColors,
|
|
233
238
|
vertexAlphas: material.vertexColors === true && !! object.geometry && !! object.geometry.attributes.color && object.geometry.attributes.color.itemSize === 4,
|
|
234
|
-
vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.
|
|
235
|
-
uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.
|
|
239
|
+
vertexUvs: !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatMap || !! material.clearcoatRoughnessMap || !! material.clearcoatNormalMap || !! material.displacementMap || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || !! material.sheenColorMap || material.sheenRoughnessMap,
|
|
240
|
+
uvsVertexOnly: ! ( !! material.map || !! material.bumpMap || !! material.normalMap || !! material.specularMap || !! material.alphaMap || !! material.emissiveMap || !! material.roughnessMap || !! material.metalnessMap || !! material.clearcoatNormalMap || material.transmission > 0 || !! material.transmissionMap || !! material.thicknessMap || !! material.specularIntensityMap || !! material.specularColorMap || material.sheen > 0 || !! material.sheenColorMap || !! material.sheenRoughnessMap ) && !! material.displacementMap,
|
|
236
241
|
|
|
237
242
|
fog: !! fog,
|
|
238
243
|
useFog: material.fog,
|
|
@@ -309,8 +314,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
309
314
|
|
|
310
315
|
} else {
|
|
311
316
|
|
|
312
|
-
array.push( parameters.fragmentShader );
|
|
313
|
-
array.push( parameters.vertexShader );
|
|
317
|
+
array.push( hashString( parameters.fragmentShader ) );
|
|
318
|
+
array.push( hashString( parameters.vertexShader ) );
|
|
314
319
|
|
|
315
320
|
}
|
|
316
321
|
|
|
@@ -31,12 +31,13 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
|
31
31
|
const shadowSide = { 0: BackSide, 1: FrontSide, 2: DoubleSide };
|
|
32
32
|
|
|
33
33
|
const shadowMaterialVertical = new ShaderMaterial( {
|
|
34
|
-
|
|
34
|
+
defines: {
|
|
35
|
+
VSM_SAMPLES: 8
|
|
36
|
+
},
|
|
35
37
|
uniforms: {
|
|
36
38
|
shadow_pass: { value: null },
|
|
37
39
|
resolution: { value: new Vector2() },
|
|
38
|
-
radius: { value: 4.0 }
|
|
39
|
-
samples: { value: 8.0 }
|
|
40
|
+
radius: { value: 4.0 }
|
|
40
41
|
},
|
|
41
42
|
|
|
42
43
|
vertexShader: vsm.vertex,
|
|
@@ -202,12 +203,21 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
|
202
203
|
|
|
203
204
|
const geometry = _objects.update( fullScreenMesh );
|
|
204
205
|
|
|
206
|
+
if ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {
|
|
207
|
+
|
|
208
|
+
shadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;
|
|
209
|
+
shadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;
|
|
210
|
+
|
|
211
|
+
shadowMaterialVertical.needsUpdate = true;
|
|
212
|
+
shadowMaterialHorizontal.needsUpdate = true;
|
|
213
|
+
|
|
214
|
+
}
|
|
215
|
+
|
|
205
216
|
// vertical pass
|
|
206
217
|
|
|
207
218
|
shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;
|
|
208
219
|
shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;
|
|
209
220
|
shadowMaterialVertical.uniforms.radius.value = shadow.radius;
|
|
210
|
-
shadowMaterialVertical.uniforms.samples.value = shadow.blurSamples;
|
|
211
221
|
_renderer.setRenderTarget( shadow.mapPass );
|
|
212
222
|
_renderer.clear();
|
|
213
223
|
_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );
|
|
@@ -217,7 +227,6 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
|
|
|
217
227
|
shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;
|
|
218
228
|
shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;
|
|
219
229
|
shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;
|
|
220
|
-
shadowMaterialHorizontal.uniforms.samples.value = shadow.blurSamples;
|
|
221
230
|
_renderer.setRenderTarget( shadow.map );
|
|
222
231
|
_renderer.clear();
|
|
223
232
|
_renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );
|
|
@@ -316,7 +316,6 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
316
316
|
|
|
317
317
|
let enabledCapabilities = {};
|
|
318
318
|
|
|
319
|
-
let xrFramebuffer = null;
|
|
320
319
|
let currentBoundFramebuffers = {};
|
|
321
320
|
|
|
322
321
|
let currentProgram = null;
|
|
@@ -428,22 +427,8 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
428
427
|
|
|
429
428
|
}
|
|
430
429
|
|
|
431
|
-
function bindXRFramebuffer( framebuffer ) {
|
|
432
|
-
|
|
433
|
-
if ( framebuffer !== xrFramebuffer ) {
|
|
434
|
-
|
|
435
|
-
gl.bindFramebuffer( gl.FRAMEBUFFER, framebuffer );
|
|
436
|
-
|
|
437
|
-
xrFramebuffer = framebuffer;
|
|
438
|
-
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
}
|
|
442
|
-
|
|
443
430
|
function bindFramebuffer( target, framebuffer ) {
|
|
444
431
|
|
|
445
|
-
if ( framebuffer === null && xrFramebuffer !== null ) framebuffer = xrFramebuffer; // use active XR framebuffer if available
|
|
446
|
-
|
|
447
432
|
if ( currentBoundFramebuffers[ target ] !== framebuffer ) {
|
|
448
433
|
|
|
449
434
|
gl.bindFramebuffer( target, framebuffer );
|
|
@@ -879,6 +864,34 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
879
864
|
|
|
880
865
|
}
|
|
881
866
|
|
|
867
|
+
function texSubImage2D() {
|
|
868
|
+
|
|
869
|
+
try {
|
|
870
|
+
|
|
871
|
+
gl.texSubImage2D.apply( gl, arguments );
|
|
872
|
+
|
|
873
|
+
} catch ( error ) {
|
|
874
|
+
|
|
875
|
+
console.error( 'THREE.WebGLState:', error );
|
|
876
|
+
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
function texStorage2D() {
|
|
882
|
+
|
|
883
|
+
try {
|
|
884
|
+
|
|
885
|
+
gl.texStorage2D.apply( gl, arguments );
|
|
886
|
+
|
|
887
|
+
} catch ( error ) {
|
|
888
|
+
|
|
889
|
+
console.error( 'THREE.WebGLState:', error );
|
|
890
|
+
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
}
|
|
894
|
+
|
|
882
895
|
function texImage2D() {
|
|
883
896
|
|
|
884
897
|
try {
|
|
@@ -991,7 +1004,6 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
991
1004
|
currentTextureSlot = null;
|
|
992
1005
|
currentBoundTextures = {};
|
|
993
1006
|
|
|
994
|
-
xrFramebuffer = null;
|
|
995
1007
|
currentBoundFramebuffers = {};
|
|
996
1008
|
|
|
997
1009
|
currentProgram = null;
|
|
@@ -1035,7 +1047,6 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
1035
1047
|
disable: disable,
|
|
1036
1048
|
|
|
1037
1049
|
bindFramebuffer: bindFramebuffer,
|
|
1038
|
-
bindXRFramebuffer: bindXRFramebuffer,
|
|
1039
1050
|
|
|
1040
1051
|
useProgram: useProgram,
|
|
1041
1052
|
|
|
@@ -1057,6 +1068,9 @@ function WebGLState( gl, extensions, capabilities ) {
|
|
|
1057
1068
|
texImage2D: texImage2D,
|
|
1058
1069
|
texImage3D: texImage3D,
|
|
1059
1070
|
|
|
1071
|
+
texStorage2D: texStorage2D,
|
|
1072
|
+
texSubImage2D: texSubImage2D,
|
|
1073
|
+
|
|
1060
1074
|
scissor: scissor,
|
|
1061
1075
|
viewport: viewport,
|
|
1062
1076
|
|