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.
- package/build/three.cjs +847 -1226
- package/build/three.module.js +846 -1225
- package/build/three.module.min.js +2 -2
- package/examples/jsm/animation/CCDIKSolver.js +4 -2
- package/examples/jsm/controls/TransformControls.js +3 -3
- package/examples/jsm/exporters/GLTFExporter.js +66 -5
- package/examples/jsm/exporters/USDZExporter.js +22 -1
- package/examples/jsm/geometries/TextGeometry.js +10 -2
- package/examples/jsm/interactive/HTMLMesh.js +7 -9
- package/examples/jsm/libs/draco/README.md +2 -2
- package/examples/jsm/libs/fflate.module.js +694 -496
- package/examples/jsm/lines/LineMaterial.js +0 -2
- package/examples/jsm/loaders/3MFLoader.js +2 -0
- package/examples/jsm/loaders/EXRLoader.js +351 -97
- package/examples/jsm/loaders/FBXLoader.js +1 -1
- package/examples/jsm/loaders/GLTFLoader.js +59 -0
- package/examples/jsm/loaders/KTX2Loader.js +3 -10
- package/examples/jsm/loaders/LUT3dlLoader.js +0 -15
- package/examples/jsm/loaders/LUTCubeLoader.js +0 -14
- package/examples/jsm/loaders/LUTImageLoader.js +0 -14
- package/examples/jsm/loaders/RGBMLoader.js +16 -0
- package/examples/jsm/loaders/VRMLLoader.js +1 -1
- package/examples/jsm/loaders/lwo/IFFParser.js +8 -5
- package/examples/jsm/materials/MeshGouraudMaterial.js +7 -1
- package/examples/jsm/math/Octree.js +26 -20
- package/examples/jsm/misc/GPUComputationRenderer.js +0 -6
- package/examples/jsm/nodes/Nodes.js +10 -4
- package/examples/jsm/nodes/accessors/AccessorsUtils.js +16 -1
- package/examples/jsm/nodes/accessors/BatchNode.js +78 -0
- package/examples/jsm/nodes/accessors/ClippingNode.js +3 -2
- package/examples/jsm/nodes/accessors/InstanceNode.js +25 -2
- package/examples/jsm/nodes/accessors/MaterialNode.js +107 -3
- package/examples/jsm/nodes/accessors/MaterialReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/MorphNode.js +13 -3
- package/examples/jsm/nodes/accessors/NormalNode.js +12 -2
- package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
- package/examples/jsm/nodes/accessors/RendererReferenceNode.js +29 -0
- package/examples/jsm/nodes/accessors/StorageBufferNode.js +9 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +51 -10
- package/examples/jsm/nodes/accessors/TextureSizeNode.js +1 -1
- package/examples/jsm/nodes/code/FunctionNode.js +0 -8
- package/examples/jsm/nodes/core/Node.js +63 -4
- package/examples/jsm/nodes/core/NodeBuilder.js +26 -25
- package/examples/jsm/nodes/core/NodeFrame.js +10 -10
- package/examples/jsm/nodes/core/NodeUtils.js +2 -2
- package/examples/jsm/nodes/core/OutputStructNode.js +2 -1
- package/examples/jsm/nodes/core/PropertyNode.js +10 -0
- package/examples/jsm/nodes/core/UniformNode.js +20 -0
- package/examples/jsm/nodes/display/BumpMapNode.js +7 -26
- package/examples/jsm/nodes/display/FrontFacingNode.js +13 -0
- package/examples/jsm/nodes/display/PassNode.js +17 -1
- package/examples/jsm/nodes/display/ToneMappingNode.js +8 -4
- package/examples/jsm/nodes/display/ViewportDepthNode.js +1 -1
- package/examples/jsm/nodes/display/ViewportNode.js +4 -2
- package/examples/jsm/nodes/display/ViewportSharedTextureNode.js +6 -0
- package/examples/jsm/nodes/display/ViewportTextureNode.js +4 -1
- package/examples/jsm/nodes/fog/FogExp2Node.js +4 -5
- package/examples/jsm/nodes/fog/FogNode.js +13 -3
- package/examples/jsm/nodes/fog/FogRangeNode.js +4 -3
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +26 -7
- package/examples/jsm/nodes/functions/BSDF/D_GGX_Anisotropic.js +28 -0
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +1 -3
- package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.js +29 -0
- package/examples/jsm/nodes/functions/PhongLightingModel.js +1 -1
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +164 -10
- package/examples/jsm/nodes/functions/ShadowMaskModel.js +31 -0
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +19 -5
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +2 -1
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +22 -70
- package/examples/jsm/nodes/lighting/IrradianceNode.js +24 -0
- package/examples/jsm/nodes/lighting/LightsNode.js +11 -1
- package/examples/jsm/nodes/lighting/PointLightNode.js +2 -1
- package/examples/jsm/nodes/lighting/SpotLightNode.js +2 -1
- package/examples/jsm/nodes/materials/Line2NodeMaterial.js +10 -6
- package/examples/jsm/nodes/materials/Materials.js +1 -0
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +0 -2
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +76 -5
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +11 -4
- package/examples/jsm/nodes/materials/NodeMaterial.js +55 -43
- package/examples/jsm/nodes/materials/ShadowNodeMaterial.js +34 -0
- package/examples/jsm/nodes/pmrem/PMREMNode.js +193 -0
- package/examples/jsm/nodes/pmrem/PMREMUtils.js +288 -0
- package/examples/jsm/nodes/shadernode/ShaderNode.js +3 -9
- package/examples/jsm/nodes/utils/EquirectUVNode.js +1 -1
- package/examples/jsm/objects/QuadMesh.js +7 -23
- package/examples/jsm/physics/JoltPhysics.js +281 -0
- package/examples/jsm/physics/RapierPhysics.js +4 -4
- package/examples/jsm/postprocessing/GlitchPass.js +0 -3
- package/examples/jsm/postprocessing/LUTPass.js +5 -71
- package/examples/jsm/postprocessing/RenderTransitionPass.js +193 -0
- package/examples/jsm/postprocessing/SAOPass.js +0 -1
- package/examples/jsm/postprocessing/SSAOPass.js +0 -3
- package/examples/jsm/renderers/common/Animation.js +3 -0
- package/examples/jsm/renderers/common/Background.js +8 -8
- package/examples/jsm/renderers/common/ClippingContext.js +1 -1
- package/examples/jsm/renderers/common/Info.js +11 -19
- package/examples/jsm/renderers/common/PostProcessing.js +12 -4
- package/examples/jsm/renderers/common/RenderContext.js +1 -1
- package/examples/jsm/renderers/common/RenderList.js +1 -1
- package/examples/jsm/renderers/common/RenderObject.js +47 -5
- package/examples/jsm/renderers/common/RenderObjects.js +1 -1
- package/examples/jsm/renderers/common/Renderer.js +153 -21
- package/examples/jsm/renderers/common/Textures.js +1 -1
- package/examples/jsm/renderers/common/extras/PMREMGenerator.js +773 -0
- package/examples/jsm/renderers/common/nodes/Nodes.js +34 -63
- package/examples/jsm/renderers/webgl/WebGLBackend.js +146 -36
- package/examples/jsm/renderers/webgl/WebGLBufferRenderer.js +145 -0
- package/examples/jsm/renderers/webgl/nodes/GLSLNodeBuilder.js +9 -3
- package/examples/jsm/renderers/webgl/utils/WebGLAttributeUtils.js +1 -1
- package/examples/jsm/renderers/webgl/utils/WebGLConstants.js +1 -0
- package/examples/jsm/renderers/webgl/utils/WebGLTextureUtils.js +64 -7
- package/examples/jsm/renderers/webgl/utils/WebGLUtils.js +6 -23
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +77 -60
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -4
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +29 -1
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +18 -4
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +92 -18
- package/examples/jsm/transpiler/GLSLDecoder.js +1 -1
- package/examples/jsm/transpiler/ShaderToyDecoder.js +1 -1
- package/examples/jsm/utils/GPUStatsPanel.js +10 -45
- package/examples/jsm/utils/SceneUtils.js +60 -1
- package/examples/jsm/utils/TextureUtils.js +1 -1
- package/examples/jsm/webxr/OculusHandModel.js +3 -2
- package/examples/jsm/webxr/XRHandModelFactory.js +4 -2
- package/package.json +1 -1
- package/src/Three.js +0 -1
- package/src/animation/AnimationClip.js +1 -1
- package/src/constants.js +3 -3
- package/src/core/Object3D.js +10 -7
- package/src/core/RenderTarget.js +8 -0
- package/src/extras/PMREMGenerator.js +21 -11
- package/src/loaders/FileLoader.js +1 -1
- package/src/loaders/MaterialLoader.js +1 -0
- package/src/loaders/ObjectLoader.js +2 -0
- package/src/materials/Material.js +2 -0
- package/src/materials/MeshPhysicalMaterial.js +20 -0
- package/src/materials/ShaderMaterial.js +0 -4
- package/src/math/Spherical.js +4 -5
- package/src/objects/BatchedMesh.js +27 -3
- package/src/objects/InstancedMesh.js +10 -0
- package/src/objects/Line.js +66 -43
- package/src/renderers/WebGLRenderer.js +130 -158
- package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +6 -0
- package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +1 -0
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl.js +2 -2
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl.js +2 -10
- package/src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl.js +2 -16
- package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +32 -22
- package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +17 -9
- package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
- package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +47 -13
- package/src/renderers/shaders/ShaderChunk.js +0 -2
- package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +4 -0
- package/src/renderers/shaders/ShaderLib.js +2 -1
- package/src/renderers/shaders/UniformsUtils.js +10 -1
- package/src/renderers/webgl/WebGLAttributes.js +6 -33
- package/src/renderers/webgl/WebGLBackground.js +18 -3
- package/src/renderers/webgl/WebGLBindingStates.js +14 -51
- package/src/renderers/webgl/WebGLBufferRenderer.js +35 -21
- package/src/renderers/webgl/WebGLCapabilities.js +35 -13
- package/src/renderers/webgl/WebGLCubeUVMaps.js +10 -6
- package/src/renderers/webgl/WebGLExtensions.js +4 -19
- package/src/renderers/webgl/WebGLIndexedBufferRenderer.js +35 -21
- package/src/renderers/webgl/WebGLLights.js +6 -32
- package/src/renderers/webgl/WebGLMaterials.js +8 -3
- package/src/renderers/webgl/WebGLMorphtargets.js +79 -217
- package/src/renderers/webgl/WebGLProgram.js +21 -52
- package/src/renderers/webgl/WebGLPrograms.js +24 -31
- package/src/renderers/webgl/WebGLRenderStates.js +13 -7
- package/src/renderers/webgl/WebGLShadowMap.js +25 -25
- package/src/renderers/webgl/WebGLState.js +15 -59
- package/src/renderers/webgl/WebGLTextures.js +138 -292
- package/src/renderers/webgl/WebGLUniformsGroups.js +1 -1
- package/src/renderers/webgl/WebGLUtils.js +9 -78
- package/src/renderers/webxr/WebXRDepthSensing.js +2 -3
- package/src/renderers/webxr/WebXRManager.js +4 -6
- package/src/scenes/Scene.js +7 -1
- package/src/textures/Texture.js +11 -1
- package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -37
- package/examples/jsm/renderers/webgl-legacy/nodes/GLSL1NodeBuilder.js +0 -320
- package/examples/jsm/renderers/webgl-legacy/nodes/SlotNode.js +0 -26
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js +0 -794
- package/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.js +0 -51
- package/src/renderers/WebGL1Renderer.js +0 -7
- 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
|
|
3
|
+
function WebGLRenderState( extensions ) {
|
|
4
4
|
|
|
5
|
-
const lights = new WebGLLights( extensions
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
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 =
|
|
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 =
|
|
80
|
-
const activeCubeFace =
|
|
81
|
-
const activeMipmapLevel =
|
|
79
|
+
const currentRenderTarget = renderer.getRenderTarget();
|
|
80
|
+
const activeCubeFace = renderer.getActiveCubeFace();
|
|
81
|
+
const activeMipmapLevel = renderer.getActiveMipmapLevel();
|
|
82
82
|
|
|
83
|
-
const _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
|
-
|
|
158
|
-
|
|
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
|
-
|
|
199
|
+
renderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );
|
|
200
200
|
|
|
201
201
|
};
|
|
202
202
|
|
|
203
203
|
function VSMPass( shadow, camera ) {
|
|
204
204
|
|
|
205
|
-
const geometry =
|
|
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
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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 ( (
|
|
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 =
|
|
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 =
|
|
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(
|
|
359
|
+
object.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );
|
|
360
360
|
|
|
361
|
-
|
|
361
|
+
renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );
|
|
362
362
|
|
|
363
|
-
object.onAfterShadow(
|
|
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(
|
|
373
|
+
object.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );
|
|
374
374
|
|
|
375
|
-
|
|
375
|
+
renderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );
|
|
376
376
|
|
|
377
|
-
object.onAfterShadow(
|
|
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
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
454
|
-
|
|
455
|
-
// gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER
|
|
446
|
+
// gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER
|
|
456
447
|
|
|
457
|
-
|
|
448
|
+
if ( target === gl.DRAW_FRAMEBUFFER ) {
|
|
458
449
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
}
|
|
450
|
+
currentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;
|
|
462
451
|
|
|
463
|
-
|
|
452
|
+
}
|
|
464
453
|
|
|
465
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|