super-three 0.162.0 → 0.164.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.
Files changed (187) hide show
  1. package/build/three.cjs +847 -1226
  2. package/build/three.module.js +846 -1225
  3. package/build/three.module.min.js +2 -2
  4. package/examples/jsm/animation/CCDIKSolver.js +4 -2
  5. package/examples/jsm/controls/TransformControls.js +3 -3
  6. package/examples/jsm/exporters/GLTFExporter.js +66 -5
  7. package/examples/jsm/exporters/USDZExporter.js +22 -1
  8. package/examples/jsm/geometries/TextGeometry.js +10 -2
  9. package/examples/jsm/interactive/HTMLMesh.js +7 -9
  10. package/examples/jsm/libs/draco/README.md +2 -2
  11. package/examples/jsm/libs/fflate.module.js +694 -496
  12. package/examples/jsm/lines/LineMaterial.js +0 -2
  13. package/examples/jsm/loaders/3MFLoader.js +2 -0
  14. package/examples/jsm/loaders/EXRLoader.js +351 -97
  15. package/examples/jsm/loaders/FBXLoader.js +1 -1
  16. package/examples/jsm/loaders/GLTFLoader.js +59 -0
  17. package/examples/jsm/loaders/KTX2Loader.js +3 -10
  18. package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
  19. package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
  20. package/examples/jsm/loaders/LUTImageLoader.js +0 -14
  21. package/examples/jsm/loaders/RGBMLoader.js +16 -0
  22. package/examples/jsm/loaders/VRMLLoader.js +1 -1
  23. package/examples/jsm/loaders/lwo/IFFParser.js +8 -5
  24. package/examples/jsm/materials/MeshGouraudMaterial.js +7 -1
  25. package/examples/jsm/math/Octree.js +26 -20
  26. package/examples/jsm/misc/GPUComputationRenderer.js +0 -6
  27. package/examples/jsm/nodes/Nodes.js +10 -4
  28. package/examples/jsm/nodes/accessors/AccessorsUtils.js +16 -1
  29. package/examples/jsm/nodes/accessors/BatchNode.js +78 -0
  30. package/examples/jsm/nodes/accessors/ClippingNode.js +3 -2
  31. package/examples/jsm/nodes/accessors/InstanceNode.js +25 -2
  32. package/examples/jsm/nodes/accessors/MaterialNode.js +107 -3
  33. package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +1 -1
  34. package/examples/jsm/nodes/accessors/MorphNode.js +13 -3
  35. package/examples/jsm/nodes/accessors/NormalNode.js +12 -2
  36. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  37. package/examples/jsm/nodes/accessors/RendererReferenceNode.js +29 -0
  38. package/examples/jsm/nodes/accessors/StorageBufferNode.js +9 -0
  39. package/examples/jsm/nodes/accessors/TextureNode.js +51 -10
  40. package/examples/jsm/nodes/accessors/TextureSizeNode.js +1 -1
  41. package/examples/jsm/nodes/code/FunctionNode.js +0 -8
  42. package/examples/jsm/nodes/core/Node.js +63 -4
  43. package/examples/jsm/nodes/core/NodeBuilder.js +26 -25
  44. package/examples/jsm/nodes/core/NodeFrame.js +10 -10
  45. package/examples/jsm/nodes/core/NodeUtils.js +2 -2
  46. package/examples/jsm/nodes/core/OutputStructNode.js +2 -1
  47. package/examples/jsm/nodes/core/PropertyNode.js +10 -0
  48. package/examples/jsm/nodes/core/UniformNode.js +20 -0
  49. package/examples/jsm/nodes/display/BumpMapNode.js +7 -26
  50. package/examples/jsm/nodes/display/FrontFacingNode.js +13 -0
  51. package/examples/jsm/nodes/display/PassNode.js +17 -1
  52. package/examples/jsm/nodes/display/ToneMappingNode.js +8 -4
  53. package/examples/jsm/nodes/display/ViewportDepthNode.js +1 -1
  54. package/examples/jsm/nodes/display/ViewportNode.js +4 -2
  55. package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +6 -0
  56. package/examples/jsm/nodes/display/ViewportTextureNode.js +4 -1
  57. package/examples/jsm/nodes/fog/FogExp2Node.js +4 -5
  58. package/examples/jsm/nodes/fog/FogNode.js +13 -3
  59. package/examples/jsm/nodes/fog/FogRangeNode.js +4 -3
  60. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +26 -7
  61. package/examples/jsm/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
  62. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +1 -3
  63. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
  64. package/examples/jsm/nodes/functions/PhongLightingModel.js +1 -1
  65. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +164 -10
  66. package/examples/jsm/nodes/functions/ShadowMaskModel.js +31 -0
  67. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +19 -5
  68. package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -1
  69. package/examples/jsm/nodes/lighting/EnvironmentNode.js +22 -70
  70. package/examples/jsm/nodes/lighting/IrradianceNode.js +24 -0
  71. package/examples/jsm/nodes/lighting/LightsNode.js +11 -1
  72. package/examples/jsm/nodes/lighting/PointLightNode.js +2 -1
  73. package/examples/jsm/nodes/lighting/SpotLightNode.js +2 -1
  74. package/examples/jsm/nodes/materials/Line2NodeMaterial.js +10 -6
  75. package/examples/jsm/nodes/materials/Materials.js +1 -0
  76. package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -2
  77. package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +2 -2
  78. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +76 -5
  79. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +11 -4
  80. package/examples/jsm/nodes/materials/NodeMaterial.js +55 -43
  81. package/examples/jsm/nodes/materials/ShadowNodeMaterial.js +34 -0
  82. package/examples/jsm/nodes/pmrem/PMREMNode.js +193 -0
  83. package/examples/jsm/nodes/pmrem/PMREMUtils.js +288 -0
  84. package/examples/jsm/nodes/shadernode/ShaderNode.js +3 -9
  85. package/examples/jsm/nodes/utils/EquirectUVNode.js +1 -1
  86. package/examples/jsm/objects/QuadMesh.js +7 -23
  87. package/examples/jsm/physics/JoltPhysics.js +281 -0
  88. package/examples/jsm/physics/RapierPhysics.js +4 -4
  89. package/examples/jsm/postprocessing/GlitchPass.js +0 -3
  90. package/examples/jsm/postprocessing/LUTPass.js +5 -71
  91. package/examples/jsm/postprocessing/RenderTransitionPass.js +193 -0
  92. package/examples/jsm/postprocessing/SAOPass.js +0 -1
  93. package/examples/jsm/postprocessing/SSAOPass.js +0 -3
  94. package/examples/jsm/renderers/common/Animation.js +3 -0
  95. package/examples/jsm/renderers/common/Background.js +8 -8
  96. package/examples/jsm/renderers/common/ClippingContext.js +1 -1
  97. package/examples/jsm/renderers/common/Info.js +11 -19
  98. package/examples/jsm/renderers/common/PostProcessing.js +12 -4
  99. package/examples/jsm/renderers/common/RenderContext.js +1 -1
  100. package/examples/jsm/renderers/common/RenderList.js +1 -1
  101. package/examples/jsm/renderers/common/RenderObject.js +47 -5
  102. package/examples/jsm/renderers/common/RenderObjects.js +1 -1
  103. package/examples/jsm/renderers/common/Renderer.js +153 -21
  104. package/examples/jsm/renderers/common/Textures.js +1 -1
  105. package/examples/jsm/renderers/common/extras/PMREMGenerator.js +773 -0
  106. package/examples/jsm/renderers/common/nodes/Nodes.js +34 -63
  107. package/examples/jsm/renderers/webgl/WebGLBackend.js +146 -36
  108. package/examples/jsm/renderers/webgl/WebGLBufferRenderer.js +145 -0
  109. package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +9 -3
  110. package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +1 -1
  111. package/examples/jsm/renderers/webgl/utils/WebGLConstants.js +1 -0
  112. package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +64 -7
  113. package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +6 -23
  114. package/examples/jsm/renderers/webgpu/WebGPUBackend.js +77 -60
  115. package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -4
  116. package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +29 -1
  117. package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -4
  118. package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +92 -18
  119. package/examples/jsm/transpiler/GLSLDecoder.js +1 -1
  120. package/examples/jsm/transpiler/ShaderToyDecoder.js +1 -1
  121. package/examples/jsm/utils/GPUStatsPanel.js +10 -45
  122. package/examples/jsm/utils/SceneUtils.js +60 -1
  123. package/examples/jsm/utils/TextureUtils.js +1 -1
  124. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  125. package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
  126. package/package.json +1 -1
  127. package/src/Three.js +0 -1
  128. package/src/animation/AnimationClip.js +1 -1
  129. package/src/constants.js +3 -3
  130. package/src/core/Object3D.js +10 -7
  131. package/src/core/RenderTarget.js +8 -0
  132. package/src/extras/PMREMGenerator.js +21 -11
  133. package/src/loaders/FileLoader.js +1 -1
  134. package/src/loaders/MaterialLoader.js +1 -0
  135. package/src/loaders/ObjectLoader.js +2 -0
  136. package/src/materials/Material.js +2 -0
  137. package/src/materials/MeshPhysicalMaterial.js +20 -0
  138. package/src/materials/ShaderMaterial.js +0 -4
  139. package/src/math/Spherical.js +4 -5
  140. package/src/objects/BatchedMesh.js +27 -3
  141. package/src/objects/InstancedMesh.js +10 -0
  142. package/src/objects/Line.js +66 -43
  143. package/src/renderers/WebGLRenderer.js +130 -158
  144. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
  145. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +1 -0
  146. package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
  147. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
  148. package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
  149. package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
  150. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +32 -22
  151. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +17 -9
  152. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  153. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
  154. package/src/renderers/shaders/ShaderChunk.js +0 -2
  155. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -0
  156. package/src/renderers/shaders/ShaderLib.js +2 -1
  157. package/src/renderers/shaders/UniformsUtils.js +10 -1
  158. package/src/renderers/webgl/WebGLAttributes.js +6 -33
  159. package/src/renderers/webgl/WebGLBackground.js +18 -3
  160. package/src/renderers/webgl/WebGLBindingStates.js +14 -51
  161. package/src/renderers/webgl/WebGLBufferRenderer.js +35 -21
  162. package/src/renderers/webgl/WebGLCapabilities.js +35 -13
  163. package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
  164. package/src/renderers/webgl/WebGLExtensions.js +4 -19
  165. package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +35 -21
  166. package/src/renderers/webgl/WebGLLights.js +6 -32
  167. package/src/renderers/webgl/WebGLMaterials.js +8 -3
  168. package/src/renderers/webgl/WebGLMorphtargets.js +79 -217
  169. package/src/renderers/webgl/WebGLProgram.js +21 -52
  170. package/src/renderers/webgl/WebGLPrograms.js +24 -31
  171. package/src/renderers/webgl/WebGLRenderStates.js +13 -7
  172. package/src/renderers/webgl/WebGLShadowMap.js +25 -25
  173. package/src/renderers/webgl/WebGLState.js +15 -59
  174. package/src/renderers/webgl/WebGLTextures.js +138 -292
  175. package/src/renderers/webgl/WebGLUniformsGroups.js +1 -1
  176. package/src/renderers/webgl/WebGLUtils.js +9 -78
  177. package/src/renderers/webxr/WebXRDepthSensing.js +2 -3
  178. package/src/renderers/webxr/WebXRManager.js +4 -6
  179. package/src/scenes/Scene.js +7 -1
  180. package/src/textures/Texture.js +11 -1
  181. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
  182. package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -320
  183. package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +0 -26
  184. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -794
  185. package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +0 -51
  186. package/src/renderers/WebGL1Renderer.js +0 -7
  187. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -10
@@ -1,13 +1,15 @@
1
1
  import { WebGLLights } from './WebGLLights.js';
2
2
 
3
- function WebGLRenderState( extensions, capabilities ) {
3
+ function WebGLRenderState( extensions ) {
4
4
 
5
- const lights = new WebGLLights( extensions, capabilities );
5
+ const lights = new WebGLLights( extensions );
6
6
 
7
7
  const lightsArray = [];
8
8
  const shadowsArray = [];
9
9
 
10
- function init() {
10
+ function init( camera ) {
11
+
12
+ state.camera = camera;
11
13
 
12
14
  lightsArray.length = 0;
13
15
  shadowsArray.length = 0;
@@ -42,7 +44,11 @@ function WebGLRenderState( extensions, capabilities ) {
42
44
  lightsArray: lightsArray,
43
45
  shadowsArray: shadowsArray,
44
46
 
45
- lights: lights
47
+ camera: null,
48
+
49
+ lights: lights,
50
+
51
+ transmissionRenderTarget: {}
46
52
  };
47
53
 
48
54
  return {
@@ -57,7 +63,7 @@ function WebGLRenderState( extensions, capabilities ) {
57
63
 
58
64
  }
59
65
 
60
- function WebGLRenderStates( extensions, capabilities ) {
66
+ function WebGLRenderStates( extensions ) {
61
67
 
62
68
  let renderStates = new WeakMap();
63
69
 
@@ -68,14 +74,14 @@ function WebGLRenderStates( extensions, capabilities ) {
68
74
 
69
75
  if ( renderStateArray === undefined ) {
70
76
 
71
- renderState = new WebGLRenderState( extensions, capabilities );
77
+ renderState = new WebGLRenderState( extensions );
72
78
  renderStates.set( scene, [ renderState ] );
73
79
 
74
80
  } else {
75
81
 
76
82
  if ( renderCallDepth >= renderStateArray.length ) {
77
83
 
78
- renderState = new WebGLRenderState( extensions, capabilities );
84
+ renderState = new WebGLRenderState( extensions );
79
85
  renderStateArray.push( renderState );
80
86
 
81
87
  } else {
@@ -12,7 +12,7 @@ import { Frustum } from '../../math/Frustum.js';
12
12
 
13
13
  import * as vsm from '../shaders/ShaderLib/vsm.glsl.js';
14
14
 
15
- function WebGLShadowMap( _renderer, _objects, _capabilities ) {
15
+ function WebGLShadowMap( renderer, objects, capabilities ) {
16
16
 
17
17
  let _frustum = new Frustum();
18
18
 
@@ -26,7 +26,7 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
26
26
 
27
27
  _materialCache = {},
28
28
 
29
- _maxTextureSize = _capabilities.maxTextureSize;
29
+ _maxTextureSize = capabilities.maxTextureSize;
30
30
 
31
31
  const shadowSide = { [ FrontSide ]: BackSide, [ BackSide ]: FrontSide, [ DoubleSide ]: DoubleSide };
32
32
 
@@ -76,11 +76,11 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
76
76
 
77
77
  if ( lights.length === 0 ) return;
78
78
 
79
- const currentRenderTarget = _renderer.getRenderTarget();
80
- const activeCubeFace = _renderer.getActiveCubeFace();
81
- const activeMipmapLevel = _renderer.getActiveMipmapLevel();
79
+ const currentRenderTarget = renderer.getRenderTarget();
80
+ const activeCubeFace = renderer.getActiveCubeFace();
81
+ const activeMipmapLevel = renderer.getActiveMipmapLevel();
82
82
 
83
- const _state = _renderer.state;
83
+ const _state = renderer.state;
84
84
 
85
85
  // Set GL state for depth map.
86
86
  _state.setBlending( NoBlending );
@@ -154,8 +154,8 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
154
154
 
155
155
  }
156
156
 
157
- _renderer.setRenderTarget( shadow.map );
158
- _renderer.clear();
157
+ renderer.setRenderTarget( shadow.map );
158
+ renderer.clear();
159
159
 
160
160
  const viewportCount = shadow.getViewportCount();
161
161
 
@@ -196,13 +196,13 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
196
196
 
197
197
  scope.needsUpdate = false;
198
198
 
199
- _renderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );
199
+ renderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );
200
200
 
201
201
  };
202
202
 
203
203
  function VSMPass( shadow, camera ) {
204
204
 
205
- const geometry = _objects.update( fullScreenMesh );
205
+ const geometry = objects.update( fullScreenMesh );
206
206
 
207
207
  if ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {
208
208
 
@@ -225,18 +225,18 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
225
225
  shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;
226
226
  shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;
227
227
  shadowMaterialVertical.uniforms.radius.value = shadow.radius;
228
- _renderer.setRenderTarget( shadow.mapPass );
229
- _renderer.clear();
230
- _renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );
228
+ renderer.setRenderTarget( shadow.mapPass );
229
+ renderer.clear();
230
+ renderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );
231
231
 
232
232
  // horizontal pass
233
233
 
234
234
  shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;
235
235
  shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;
236
236
  shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;
237
- _renderer.setRenderTarget( shadow.map );
238
- _renderer.clear();
239
- _renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );
237
+ renderer.setRenderTarget( shadow.map );
238
+ renderer.clear();
239
+ renderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );
240
240
 
241
241
  }
242
242
 
@@ -254,7 +254,7 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
254
254
 
255
255
  result = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;
256
256
 
257
- if ( ( _renderer.localClippingEnabled && material.clipShadows === true && Array.isArray( material.clippingPlanes ) && material.clippingPlanes.length !== 0 ) ||
257
+ if ( ( renderer.localClippingEnabled && material.clipShadows === true && Array.isArray( material.clippingPlanes ) && material.clippingPlanes.length !== 0 ) ||
258
258
  ( material.displacementMap && material.displacementScale !== 0 ) ||
259
259
  ( material.alphaMap && material.alphaTest > 0 ) ||
260
260
  ( material.map && material.alphaTest > 0 ) ) {
@@ -319,7 +319,7 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
319
319
 
320
320
  if ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {
321
321
 
322
- const materialProperties = _renderer.properties.get( result );
322
+ const materialProperties = renderer.properties.get( result );
323
323
  materialProperties.light = light;
324
324
 
325
325
  }
@@ -340,7 +340,7 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
340
340
 
341
341
  object.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );
342
342
 
343
- const geometry = _objects.update( object );
343
+ const geometry = objects.update( object );
344
344
  const material = object.material;
345
345
 
346
346
  if ( Array.isArray( material ) ) {
@@ -356,11 +356,11 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
356
356
 
357
357
  const depthMaterial = getDepthMaterial( object, groupMaterial, light, type );
358
358
 
359
- object.onBeforeShadow( _renderer, object, camera, shadowCamera, geometry, depthMaterial, group );
359
+ object.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );
360
360
 
361
- _renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );
361
+ renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );
362
362
 
363
- object.onAfterShadow( _renderer, object, camera, shadowCamera, geometry, depthMaterial, group );
363
+ object.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );
364
364
 
365
365
  }
366
366
 
@@ -370,11 +370,11 @@ function WebGLShadowMap( _renderer, _objects, _capabilities ) {
370
370
 
371
371
  const depthMaterial = getDepthMaterial( object, material, light, type );
372
372
 
373
- object.onBeforeShadow( _renderer, object, camera, shadowCamera, geometry, depthMaterial, null );
373
+ object.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );
374
374
 
375
- _renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );
375
+ renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );
376
376
 
377
- object.onAfterShadow( _renderer, object, camera, shadowCamera, geometry, depthMaterial, null );
377
+ object.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );
378
378
 
379
379
  }
380
380
 
@@ -2,9 +2,7 @@ import { NotEqualDepth, GreaterDepth, GreaterEqualDepth, EqualDepth, LessEqualDe
2
2
  import { Color } from '../../math/Color.js';
3
3
  import { Vector4 } from '../../math/Vector4.js';
4
4
 
5
- function WebGLState( gl, extensions, capabilities ) {
6
-
7
- const isWebGL2 = capabilities.isWebGL2;
5
+ function WebGLState( gl ) {
8
6
 
9
7
  function ColorBuffer() {
10
8
 
@@ -376,7 +374,7 @@ function WebGLState( gl, extensions, capabilities ) {
376
374
 
377
375
  for ( let i = 0; i < count; i ++ ) {
378
376
 
379
- if ( isWebGL2 && ( type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY ) ) {
377
+ if ( type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY ) {
380
378
 
381
379
  gl.texImage3D( target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );
382
380
 
@@ -395,13 +393,8 @@ function WebGLState( gl, extensions, capabilities ) {
395
393
  const emptyTextures = {};
396
394
  emptyTextures[ gl.TEXTURE_2D ] = createTexture( gl.TEXTURE_2D, gl.TEXTURE_2D, 1 );
397
395
  emptyTextures[ gl.TEXTURE_CUBE_MAP ] = createTexture( gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6 );
398
-
399
- if ( isWebGL2 ) {
400
-
401
- emptyTextures[ gl.TEXTURE_2D_ARRAY ] = createTexture( gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1 );
402
- emptyTextures[ gl.TEXTURE_3D ] = createTexture( gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1 );
403
-
404
- }
396
+ emptyTextures[ gl.TEXTURE_2D_ARRAY ] = createTexture( gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1 );
397
+ emptyTextures[ gl.TEXTURE_3D ] = createTexture( gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1 );
405
398
 
406
399
  // init
407
400
 
@@ -450,21 +443,17 @@ function WebGLState( gl, extensions, capabilities ) {
450
443
 
451
444
  currentBoundFramebuffers[ target ] = framebuffer;
452
445
 
453
- if ( isWebGL2 ) {
454
-
455
- // gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER
446
+ // gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER
456
447
 
457
- if ( target === gl.DRAW_FRAMEBUFFER ) {
448
+ if ( target === gl.DRAW_FRAMEBUFFER ) {
458
449
 
459
- currentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;
460
-
461
- }
450
+ currentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;
462
451
 
463
- if ( target === gl.FRAMEBUFFER ) {
452
+ }
464
453
 
465
- currentBoundFramebuffers[ gl.DRAW_FRAMEBUFFER ] = framebuffer;
454
+ if ( target === gl.FRAMEBUFFER ) {
466
455
 
467
- }
456
+ currentBoundFramebuffers[ gl.DRAW_FRAMEBUFFER ] = framebuffer;
468
457
 
469
458
  }
470
459
 
@@ -523,23 +512,10 @@ function WebGLState( gl, extensions, capabilities ) {
523
512
 
524
513
  if ( needsUpdate ) {
525
514
 
526
- if ( capabilities.isWebGL2 ) {
527
-
528
- gl.drawBuffers( drawBuffers );
529
-
530
- } else if ( extensions.has( 'WEBGL_draw_buffers' ) === true ) {
531
-
532
- extensions.get( 'WEBGL_draw_buffers' ).drawBuffersWEBGL( drawBuffers );
533
-
534
- } else {
535
-
536
- throw new Error( 'THREE.WebGLState: Usage of gl.drawBuffers() require WebGL2 or WEBGL_draw_buffers extension' );
537
-
538
- }
515
+ gl.drawBuffers( drawBuffers );
539
516
 
540
517
  }
541
518
 
542
-
543
519
  }
544
520
 
545
521
  function useProgram( program ) {
@@ -564,23 +540,8 @@ function WebGLState( gl, extensions, capabilities ) {
564
540
  [ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT
565
541
  };
566
542
 
567
- if ( isWebGL2 ) {
568
-
569
- equationToGL[ MinEquation ] = gl.MIN;
570
- equationToGL[ MaxEquation ] = gl.MAX;
571
-
572
- } else {
573
-
574
- const extension = extensions.get( 'EXT_blend_minmax' );
575
-
576
- if ( extension !== null ) {
577
-
578
- equationToGL[ MinEquation ] = extension.MIN_EXT;
579
- equationToGL[ MaxEquation ] = extension.MAX_EXT;
580
-
581
- }
582
-
583
- }
543
+ equationToGL[ MinEquation ] = gl.MIN;
544
+ equationToGL[ MaxEquation ] = gl.MAX;
584
545
 
585
546
  const factorToGL = {
586
547
  [ ZeroFactor ]: gl.ZERO,
@@ -1204,13 +1165,8 @@ function WebGLState( gl, extensions, capabilities ) {
1204
1165
  gl.activeTexture( gl.TEXTURE0 );
1205
1166
 
1206
1167
  gl.bindFramebuffer( gl.FRAMEBUFFER, null );
1207
-
1208
- if ( isWebGL2 === true ) {
1209
-
1210
- gl.bindFramebuffer( gl.DRAW_FRAMEBUFFER, null );
1211
- gl.bindFramebuffer( gl.READ_FRAMEBUFFER, null );
1212
-
1213
- }
1168
+ gl.bindFramebuffer( gl.DRAW_FRAMEBUFFER, null );
1169
+ gl.bindFramebuffer( gl.READ_FRAMEBUFFER, null );
1214
1170
 
1215
1171
  gl.useProgram( null );
1216
1172