super-three 0.154.1 → 0.155.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 +256 -38
- package/build/three.js +256 -38
- package/build/three.min.js +1 -1
- package/build/three.module.js +255 -39
- package/build/three.module.min.js +1 -1
- package/examples/jsm/controls/OrbitControls.js +143 -21
- package/examples/jsm/environments/RoomEnvironment.js +1 -1
- package/examples/jsm/exporters/USDZExporter.js +1 -0
- package/examples/jsm/interactive/SelectionHelper.js +7 -0
- package/examples/jsm/loaders/FBXLoader.js +1 -1
- package/examples/jsm/loaders/GLTFLoader.js +8 -3
- package/examples/jsm/loaders/KTX2Loader.js +4 -4
- package/examples/jsm/loaders/LDrawLoader.js +1 -1
- package/examples/jsm/loaders/NRRDLoader.js +3 -3
- package/examples/jsm/loaders/PLYLoader.js +1 -1
- package/examples/jsm/loaders/TGALoader.js +10 -10
- package/examples/jsm/loaders/VRMLLoader.js +1 -1
- package/examples/jsm/misc/GPUComputationRenderer.js +0 -9
- package/examples/jsm/misc/Volume.js +4 -6
- package/examples/jsm/nodes/Nodes.js +5 -6
- package/examples/jsm/nodes/accessors/BufferAttributeNode.js +1 -1
- package/examples/jsm/nodes/accessors/CubeTextureNode.js +2 -0
- package/examples/jsm/nodes/accessors/ExtendedMaterialNode.js +14 -1
- package/examples/jsm/nodes/accessors/InstanceNode.js +8 -8
- package/examples/jsm/nodes/accessors/MaterialNode.js +34 -44
- package/examples/jsm/nodes/accessors/SceneNode.js +6 -0
- package/examples/jsm/nodes/accessors/TextureNode.js +48 -7
- package/examples/jsm/nodes/core/LightingModel.js +7 -9
- package/examples/jsm/nodes/core/Node.js +11 -2
- package/examples/jsm/nodes/core/PropertyNode.js +4 -0
- package/examples/jsm/nodes/display/BumpMapNode.js +77 -0
- package/examples/jsm/nodes/display/NormalMapNode.js +2 -2
- package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +10 -2
- package/examples/jsm/nodes/functions/BSDF/Schlick_to_F0.js +13 -0
- package/examples/jsm/nodes/functions/PhongLightingModel.js +53 -14
- package/examples/jsm/nodes/functions/PhysicalLightingModel.js +236 -97
- package/examples/jsm/nodes/geometry/RangeNode.js +2 -2
- package/examples/jsm/nodes/gpgpu/ComputeNode.js +13 -0
- package/examples/jsm/nodes/lighting/AONode.js +1 -1
- package/examples/jsm/nodes/lighting/AnalyticLightNode.js +58 -20
- package/examples/jsm/nodes/lighting/DirectionalLightNode.js +7 -10
- package/examples/jsm/nodes/lighting/EnvironmentNode.js +22 -12
- package/examples/jsm/nodes/lighting/HemisphereLightNode.js +1 -1
- package/examples/jsm/nodes/lighting/LightingContextNode.js +12 -9
- package/examples/jsm/nodes/lighting/PointLightNode.js +7 -10
- package/examples/jsm/nodes/lighting/SpotLightNode.js +7 -10
- package/examples/jsm/nodes/materials/Materials.js +1 -0
- package/examples/jsm/nodes/materials/MeshLambertNodeMaterial.js +34 -0
- package/examples/jsm/nodes/materials/MeshNormalNodeMaterial.js +2 -0
- package/examples/jsm/nodes/materials/MeshPhongNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +19 -2
- package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +2 -2
- package/examples/jsm/nodes/materials/NodeMaterial.js +50 -24
- package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +2 -2
- package/examples/jsm/nodes/shadernode/ShaderNode.js +2 -2
- package/examples/jsm/objects/Reflector.js +1 -9
- package/examples/jsm/objects/Refractor.js +0 -8
- package/examples/jsm/offscreen/scene.js +0 -1
- package/examples/jsm/postprocessing/MaskPass.js +4 -1
- package/examples/jsm/postprocessing/OutputPass.js +33 -14
- package/examples/jsm/postprocessing/UnrealBloomPass.js +21 -17
- package/examples/jsm/renderers/common/Background.js +22 -20
- package/examples/jsm/renderers/common/Binding.js +8 -0
- package/examples/jsm/renderers/common/Bindings.js +2 -6
- package/examples/jsm/renderers/common/Geometries.js +1 -1
- package/examples/jsm/renderers/common/Pipelines.js +94 -45
- package/examples/jsm/renderers/common/RenderContext.js +1 -0
- package/examples/jsm/renderers/common/RenderContexts.js +16 -5
- package/examples/jsm/renderers/common/RenderObject.js +20 -4
- package/examples/jsm/renderers/common/RenderObjects.js +10 -7
- package/examples/jsm/renderers/common/Renderer.js +70 -39
- package/examples/jsm/renderers/common/Textures.js +20 -8
- package/examples/jsm/renderers/common/nodes/Nodes.js +15 -4
- package/examples/jsm/renderers/webgpu/WebGPUBackend.js +51 -54
- package/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.js +33 -9
- package/examples/jsm/renderers/webgpu/utils/WebGPUAttributeUtils.js +55 -36
- package/examples/jsm/renderers/webgpu/utils/WebGPUBindingUtils.js +83 -5
- package/examples/jsm/renderers/webgpu/utils/WebGPUConstants.js +24 -22
- package/examples/jsm/renderers/webgpu/utils/WebGPUPipelineUtils.js +83 -130
- package/examples/jsm/renderers/webgpu/utils/WebGPUTextureUtils.js +35 -8
- package/examples/jsm/renderers/webgpu/utils/WebGPUUtils.js +1 -1
- package/examples/jsm/shaders/OutputShader.js +19 -2
- package/examples/jsm/utils/BufferGeometryUtils.js +13 -4
- package/examples/jsm/webxr/OculusHandPointerModel.js +2 -2
- package/package.json +2 -2
- package/src/Three.js +2 -0
- package/src/animation/PropertyBinding.js +1 -1
- package/src/cameras/CubeCamera.js +1 -4
- package/src/constants.js +1 -1
- package/src/core/BufferAttribute.js +20 -0
- package/src/core/Object3D.js +1 -1
- package/src/core/RenderTarget.js +122 -0
- package/src/geometries/CapsuleGeometry.js +1 -1
- package/src/loaders/DataTextureLoader.js +21 -2
- package/src/renderers/WebGLMultipleRenderTargets.js +0 -2
- package/src/renderers/WebGLRenderTarget.js +3 -110
- package/src/renderers/WebGLRenderer.js +62 -8
- package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +1 -2
- package/src/renderers/webgl/WebGLGeometries.js +5 -1
- package/src/renderers/webgl/WebGLMaterials.js +1 -1
- package/src/renderers/webgl/WebGLPrograms.js +14 -2
- package/src/renderers/webgl/WebGLTextures.js +97 -12
- package/src/textures/CompressedCubeTexture.js +19 -0
- package/examples/jsm/nodes/functions/BSDF/BRDF_BlinnPhong.js +0 -30
- package/examples/jsm/renderers/common/RenderTarget.js +0 -15
- package/examples/jsm/renderers/common/nodes/NodeRender.js +0 -302
package/build/three.cjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
-
const REVISION = '
|
|
8
|
+
const REVISION = '155';
|
|
9
9
|
|
|
10
10
|
const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
|
|
11
11
|
const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
|
|
@@ -2885,13 +2885,13 @@ class Vector4 {
|
|
|
2885
2885
|
* Texture parameters for an auto-generated target texture
|
|
2886
2886
|
* depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers
|
|
2887
2887
|
*/
|
|
2888
|
-
class
|
|
2888
|
+
class RenderTarget extends EventDispatcher {
|
|
2889
2889
|
|
|
2890
2890
|
constructor( width = 1, height = 1, options = {} ) {
|
|
2891
2891
|
|
|
2892
2892
|
super();
|
|
2893
2893
|
|
|
2894
|
-
this.
|
|
2894
|
+
this.isRenderTarget = true;
|
|
2895
2895
|
|
|
2896
2896
|
this.width = width;
|
|
2897
2897
|
this.height = height;
|
|
@@ -2994,6 +2994,18 @@ class WebGLRenderTarget extends EventDispatcher {
|
|
|
2994
2994
|
|
|
2995
2995
|
}
|
|
2996
2996
|
|
|
2997
|
+
class WebGLRenderTarget extends RenderTarget {
|
|
2998
|
+
|
|
2999
|
+
constructor( width = 1, height = 1, options = {} ) {
|
|
3000
|
+
|
|
3001
|
+
super( width, height, options );
|
|
3002
|
+
|
|
3003
|
+
this.isWebGLRenderTarget = true;
|
|
3004
|
+
|
|
3005
|
+
}
|
|
3006
|
+
|
|
3007
|
+
}
|
|
3008
|
+
|
|
2997
3009
|
class DataArrayTexture extends Texture {
|
|
2998
3010
|
|
|
2999
3011
|
constructor( data = null, width = 1, height = 1, depth = 1 ) {
|
|
@@ -3128,8 +3140,6 @@ class WebGLMultipleRenderTargets extends WebGLRenderTarget {
|
|
|
3128
3140
|
this.viewport.set( 0, 0, width, height );
|
|
3129
3141
|
this.scissor.set( 0, 0, width, height );
|
|
3130
3142
|
|
|
3131
|
-
return this;
|
|
3132
|
-
|
|
3133
3143
|
}
|
|
3134
3144
|
|
|
3135
3145
|
copy( source ) {
|
|
@@ -8027,7 +8037,7 @@ class Object3D extends EventDispatcher {
|
|
|
8027
8037
|
this.frustumCulled = source.frustumCulled;
|
|
8028
8038
|
this.renderOrder = source.renderOrder;
|
|
8029
8039
|
|
|
8030
|
-
this.animations = source.animations;
|
|
8040
|
+
this.animations = source.animations.slice();
|
|
8031
8041
|
|
|
8032
8042
|
this.userData = JSON.parse( JSON.stringify( source.userData ) );
|
|
8033
8043
|
|
|
@@ -9919,6 +9929,26 @@ class BufferAttribute {
|
|
|
9919
9929
|
|
|
9920
9930
|
}
|
|
9921
9931
|
|
|
9932
|
+
getComponent( index, component ) {
|
|
9933
|
+
|
|
9934
|
+
let value = this.array[ index * this.itemSize + component ];
|
|
9935
|
+
|
|
9936
|
+
if ( this.normalized ) value = denormalize( value, this.array );
|
|
9937
|
+
|
|
9938
|
+
return value;
|
|
9939
|
+
|
|
9940
|
+
}
|
|
9941
|
+
|
|
9942
|
+
setComponent( index, component, value ) {
|
|
9943
|
+
|
|
9944
|
+
if ( this.normalized ) value = normalize( value, this.array );
|
|
9945
|
+
|
|
9946
|
+
this.array[ index * this.itemSize + component ] = value;
|
|
9947
|
+
|
|
9948
|
+
return this;
|
|
9949
|
+
|
|
9950
|
+
}
|
|
9951
|
+
|
|
9922
9952
|
getX( index ) {
|
|
9923
9953
|
|
|
9924
9954
|
let x = this.array[ index * this.itemSize ];
|
|
@@ -12701,10 +12731,8 @@ class CubeCamera extends Object3D {
|
|
|
12701
12731
|
|
|
12702
12732
|
const currentRenderTarget = renderer.getRenderTarget();
|
|
12703
12733
|
|
|
12704
|
-
const currentToneMapping = renderer.toneMapping;
|
|
12705
12734
|
const currentXrEnabled = renderer.xr.enabled;
|
|
12706
12735
|
|
|
12707
|
-
renderer.toneMapping = NoToneMapping;
|
|
12708
12736
|
renderer.xr.enabled = false;
|
|
12709
12737
|
|
|
12710
12738
|
const generateMipmaps = renderTarget.texture.generateMipmaps;
|
|
@@ -12733,7 +12761,6 @@ class CubeCamera extends Object3D {
|
|
|
12733
12761
|
|
|
12734
12762
|
renderer.setRenderTarget( currentRenderTarget );
|
|
12735
12763
|
|
|
12736
|
-
renderer.toneMapping = currentToneMapping;
|
|
12737
12764
|
renderer.xr.enabled = currentXrEnabled;
|
|
12738
12765
|
|
|
12739
12766
|
renderTarget.texture.needsPMREMUpdate = true;
|
|
@@ -13656,7 +13683,7 @@ var beginnormal_vertex = "vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGEN
|
|
|
13656
13683
|
|
|
13657
13684
|
var bsdfs = "float G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n} // validated";
|
|
13658
13685
|
|
|
13659
|
-
var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\
|
|
13686
|
+
var iridescence_fragment = "#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\treturn vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif";
|
|
13660
13687
|
|
|
13661
13688
|
var bumpmap_pars_fragment = "#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = dFdy( surf_pos.xyz );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif";
|
|
13662
13689
|
|
|
@@ -17284,7 +17311,7 @@ function WebGLGeometries( gl, attributes, info, bindingStates ) {
|
|
|
17284
17311
|
|
|
17285
17312
|
}
|
|
17286
17313
|
|
|
17287
|
-
} else {
|
|
17314
|
+
} else if ( geometryPosition !== undefined ) {
|
|
17288
17315
|
|
|
17289
17316
|
const array = geometryPosition.array;
|
|
17290
17317
|
version = geometryPosition.version;
|
|
@@ -17299,6 +17326,10 @@ function WebGLGeometries( gl, attributes, info, bindingStates ) {
|
|
|
17299
17326
|
|
|
17300
17327
|
}
|
|
17301
17328
|
|
|
17329
|
+
} else {
|
|
17330
|
+
|
|
17331
|
+
return;
|
|
17332
|
+
|
|
17302
17333
|
}
|
|
17303
17334
|
|
|
17304
17335
|
const attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );
|
|
@@ -20306,6 +20337,18 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
20306
20337
|
const HAS_ATTRIBUTE_UV2 = !! geometry.attributes.uv2;
|
|
20307
20338
|
const HAS_ATTRIBUTE_UV3 = !! geometry.attributes.uv3;
|
|
20308
20339
|
|
|
20340
|
+
let toneMapping = NoToneMapping;
|
|
20341
|
+
|
|
20342
|
+
if ( material.toneMapped ) {
|
|
20343
|
+
|
|
20344
|
+
if ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {
|
|
20345
|
+
|
|
20346
|
+
toneMapping = renderer.toneMapping;
|
|
20347
|
+
|
|
20348
|
+
}
|
|
20349
|
+
|
|
20350
|
+
}
|
|
20351
|
+
|
|
20309
20352
|
const parameters = {
|
|
20310
20353
|
|
|
20311
20354
|
isWebGL2: IS_WEBGL2,
|
|
@@ -20466,8 +20509,8 @@ function WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities
|
|
|
20466
20509
|
shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,
|
|
20467
20510
|
shadowMapType: renderer.shadowMap.type,
|
|
20468
20511
|
|
|
20469
|
-
toneMapping:
|
|
20470
|
-
useLegacyLights: renderer.
|
|
20512
|
+
toneMapping: toneMapping,
|
|
20513
|
+
useLegacyLights: renderer._useLegacyLights,
|
|
20471
20514
|
|
|
20472
20515
|
premultipliedAlpha: material.premultipliedAlpha,
|
|
20473
20516
|
|
|
@@ -23639,6 +23682,17 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
23639
23682
|
|
|
23640
23683
|
}
|
|
23641
23684
|
|
|
23685
|
+
if ( glFormat === _gl.RED_INTEGER ) {
|
|
23686
|
+
|
|
23687
|
+
if ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8UI;
|
|
23688
|
+
if ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.R16UI;
|
|
23689
|
+
if ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.R32UI;
|
|
23690
|
+
if ( glType === _gl.BYTE ) internalFormat = _gl.R8I;
|
|
23691
|
+
if ( glType === _gl.SHORT ) internalFormat = _gl.R16I;
|
|
23692
|
+
if ( glType === _gl.INT ) internalFormat = _gl.R32I;
|
|
23693
|
+
|
|
23694
|
+
}
|
|
23695
|
+
|
|
23642
23696
|
if ( glFormat === _gl.RG ) {
|
|
23643
23697
|
|
|
23644
23698
|
if ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;
|
|
@@ -23815,14 +23869,32 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
23815
23869
|
|
|
23816
23870
|
for ( let i = 0; i < 6; i ++ ) {
|
|
23817
23871
|
|
|
23818
|
-
|
|
23872
|
+
if ( Array.isArray( renderTargetProperties.__webglFramebuffer[ i ] ) ) {
|
|
23873
|
+
|
|
23874
|
+
for ( let level = 0; level < renderTargetProperties.__webglFramebuffer[ i ].length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ][ level ] );
|
|
23875
|
+
|
|
23876
|
+
} else {
|
|
23877
|
+
|
|
23878
|
+
_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );
|
|
23879
|
+
|
|
23880
|
+
}
|
|
23881
|
+
|
|
23819
23882
|
if ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );
|
|
23820
23883
|
|
|
23821
23884
|
}
|
|
23822
23885
|
|
|
23823
23886
|
} else {
|
|
23824
23887
|
|
|
23825
|
-
|
|
23888
|
+
if ( Array.isArray( renderTargetProperties.__webglFramebuffer ) ) {
|
|
23889
|
+
|
|
23890
|
+
for ( let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ level ] );
|
|
23891
|
+
|
|
23892
|
+
} else {
|
|
23893
|
+
|
|
23894
|
+
_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );
|
|
23895
|
+
|
|
23896
|
+
}
|
|
23897
|
+
|
|
23826
23898
|
if ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );
|
|
23827
23899
|
if ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );
|
|
23828
23900
|
|
|
@@ -24797,7 +24869,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
24797
24869
|
// Render targets
|
|
24798
24870
|
|
|
24799
24871
|
// Setup storage for target texture and bind it to correct framebuffer
|
|
24800
|
-
function setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget ) {
|
|
24872
|
+
function setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget, level ) {
|
|
24801
24873
|
|
|
24802
24874
|
const glFormat = utils.convert( texture.format, texture.colorSpace );
|
|
24803
24875
|
const glType = utils.convert( texture.type );
|
|
@@ -24806,13 +24878,16 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
24806
24878
|
|
|
24807
24879
|
if ( ! renderTargetProperties.__hasExternalTextures ) {
|
|
24808
24880
|
|
|
24881
|
+
const width = Math.max( 1, renderTarget.width >> level );
|
|
24882
|
+
const height = Math.max( 1, renderTarget.height >> level );
|
|
24883
|
+
|
|
24809
24884
|
if ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {
|
|
24810
24885
|
|
|
24811
|
-
state.texImage3D( textureTarget,
|
|
24886
|
+
state.texImage3D( textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null );
|
|
24812
24887
|
|
|
24813
24888
|
} else {
|
|
24814
24889
|
|
|
24815
|
-
state.texImage2D( textureTarget,
|
|
24890
|
+
state.texImage2D( textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null );
|
|
24816
24891
|
|
|
24817
24892
|
}
|
|
24818
24893
|
|
|
@@ -24826,7 +24901,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
24826
24901
|
|
|
24827
24902
|
} else if ( textureTarget === _gl.TEXTURE_2D || ( textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z ) ) { // see #24753
|
|
24828
24903
|
|
|
24829
|
-
_gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture,
|
|
24904
|
+
_gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture, level );
|
|
24830
24905
|
|
|
24831
24906
|
}
|
|
24832
24907
|
|
|
@@ -25047,7 +25122,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25047
25122
|
|
|
25048
25123
|
if ( colorTexture !== undefined ) {
|
|
25049
25124
|
|
|
25050
|
-
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D );
|
|
25125
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0 );
|
|
25051
25126
|
|
|
25052
25127
|
}
|
|
25053
25128
|
|
|
@@ -25094,13 +25169,41 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25094
25169
|
|
|
25095
25170
|
for ( let i = 0; i < 6; i ++ ) {
|
|
25096
25171
|
|
|
25097
|
-
|
|
25172
|
+
if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
|
|
25173
|
+
|
|
25174
|
+
renderTargetProperties.__webglFramebuffer[ i ] = [];
|
|
25175
|
+
|
|
25176
|
+
for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
|
|
25177
|
+
|
|
25178
|
+
renderTargetProperties.__webglFramebuffer[ i ][ level ] = _gl.createFramebuffer();
|
|
25179
|
+
|
|
25180
|
+
}
|
|
25181
|
+
|
|
25182
|
+
} else {
|
|
25183
|
+
|
|
25184
|
+
renderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();
|
|
25185
|
+
|
|
25186
|
+
}
|
|
25098
25187
|
|
|
25099
25188
|
}
|
|
25100
25189
|
|
|
25101
25190
|
} else {
|
|
25102
25191
|
|
|
25103
|
-
|
|
25192
|
+
if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
|
|
25193
|
+
|
|
25194
|
+
renderTargetProperties.__webglFramebuffer = [];
|
|
25195
|
+
|
|
25196
|
+
for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
|
|
25197
|
+
|
|
25198
|
+
renderTargetProperties.__webglFramebuffer[ level ] = _gl.createFramebuffer();
|
|
25199
|
+
|
|
25200
|
+
}
|
|
25201
|
+
|
|
25202
|
+
} else {
|
|
25203
|
+
|
|
25204
|
+
renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();
|
|
25205
|
+
|
|
25206
|
+
}
|
|
25104
25207
|
|
|
25105
25208
|
if ( isMultipleRenderTargets ) {
|
|
25106
25209
|
|
|
@@ -25180,7 +25283,19 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25180
25283
|
|
|
25181
25284
|
for ( let i = 0; i < 6; i ++ ) {
|
|
25182
25285
|
|
|
25183
|
-
|
|
25286
|
+
if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
|
|
25287
|
+
|
|
25288
|
+
for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
|
|
25289
|
+
|
|
25290
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ][ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level );
|
|
25291
|
+
|
|
25292
|
+
}
|
|
25293
|
+
|
|
25294
|
+
} else {
|
|
25295
|
+
|
|
25296
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0 );
|
|
25297
|
+
|
|
25298
|
+
}
|
|
25184
25299
|
|
|
25185
25300
|
}
|
|
25186
25301
|
|
|
@@ -25203,7 +25318,7 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25203
25318
|
|
|
25204
25319
|
state.bindTexture( _gl.TEXTURE_2D, attachmentProperties.__webglTexture );
|
|
25205
25320
|
setTextureParameters( _gl.TEXTURE_2D, attachment, supportsMips );
|
|
25206
|
-
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D );
|
|
25321
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0 );
|
|
25207
25322
|
|
|
25208
25323
|
if ( textureNeedsGenerateMipmaps( attachment, supportsMips ) ) {
|
|
25209
25324
|
|
|
@@ -25235,7 +25350,20 @@ function WebGLTextures( _gl, extensions, state, properties, capabilities, utils,
|
|
|
25235
25350
|
|
|
25236
25351
|
state.bindTexture( glTextureType, textureProperties.__webglTexture );
|
|
25237
25352
|
setTextureParameters( glTextureType, texture, supportsMips );
|
|
25238
|
-
|
|
25353
|
+
|
|
25354
|
+
if ( isWebGL2 && texture.mipmaps && texture.mipmaps.length > 0 ) {
|
|
25355
|
+
|
|
25356
|
+
for ( let level = 0; level < texture.mipmaps.length; level ++ ) {
|
|
25357
|
+
|
|
25358
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level );
|
|
25359
|
+
|
|
25360
|
+
}
|
|
25361
|
+
|
|
25362
|
+
} else {
|
|
25363
|
+
|
|
25364
|
+
setupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0 );
|
|
25365
|
+
|
|
25366
|
+
}
|
|
25239
25367
|
|
|
25240
25368
|
if ( textureNeedsGenerateMipmaps( texture, supportsMips ) ) {
|
|
25241
25369
|
|
|
@@ -27750,7 +27878,7 @@ function WebGLMaterials( renderer, properties ) {
|
|
|
27750
27878
|
uniforms.lightMap.value = material.lightMap;
|
|
27751
27879
|
|
|
27752
27880
|
// artist-friendly light intensity scaling factor
|
|
27753
|
-
const scaleFactor = ( renderer.
|
|
27881
|
+
const scaleFactor = ( renderer._useLegacyLights === true ) ? Math.PI : 1;
|
|
27754
27882
|
|
|
27755
27883
|
uniforms.lightMapIntensity.value = material.lightMapIntensity * scaleFactor;
|
|
27756
27884
|
|
|
@@ -28589,7 +28717,7 @@ class WebGLRenderer {
|
|
|
28589
28717
|
|
|
28590
28718
|
// physical lights
|
|
28591
28719
|
|
|
28592
|
-
this.
|
|
28720
|
+
this._useLegacyLights = false;
|
|
28593
28721
|
|
|
28594
28722
|
// tone mapping
|
|
28595
28723
|
|
|
@@ -29232,6 +29360,9 @@ class WebGLRenderer {
|
|
|
29232
29360
|
if ( material.wireframe === true ) {
|
|
29233
29361
|
|
|
29234
29362
|
index = geometries.getWireframeAttribute( geometry );
|
|
29363
|
+
|
|
29364
|
+
if ( index === undefined ) return;
|
|
29365
|
+
|
|
29235
29366
|
rangeFactor = 2;
|
|
29236
29367
|
|
|
29237
29368
|
}
|
|
@@ -29396,7 +29527,7 @@ class WebGLRenderer {
|
|
|
29396
29527
|
|
|
29397
29528
|
} );
|
|
29398
29529
|
|
|
29399
|
-
currentRenderState.setupLights( _this.
|
|
29530
|
+
currentRenderState.setupLights( _this._useLegacyLights );
|
|
29400
29531
|
|
|
29401
29532
|
scene.traverse( function ( object ) {
|
|
29402
29533
|
|
|
@@ -29549,7 +29680,7 @@ class WebGLRenderer {
|
|
|
29549
29680
|
|
|
29550
29681
|
// render scene
|
|
29551
29682
|
|
|
29552
|
-
currentRenderState.setupLights( _this.
|
|
29683
|
+
currentRenderState.setupLights( _this._useLegacyLights );
|
|
29553
29684
|
|
|
29554
29685
|
if ( camera.isArrayCamera ) {
|
|
29555
29686
|
|
|
@@ -30043,6 +30174,7 @@ class WebGLRenderer {
|
|
|
30043
30174
|
|
|
30044
30175
|
materialProperties.outputColorSpace = parameters.outputColorSpace;
|
|
30045
30176
|
materialProperties.instancing = parameters.instancing;
|
|
30177
|
+
materialProperties.instancingColor = parameters.instancingColor;
|
|
30046
30178
|
materialProperties.skinning = parameters.skinning;
|
|
30047
30179
|
materialProperties.morphTargets = parameters.morphTargets;
|
|
30048
30180
|
materialProperties.morphNormals = parameters.morphNormals;
|
|
@@ -30071,7 +30203,18 @@ class WebGLRenderer {
|
|
|
30071
30203
|
const morphTargets = !! geometry.morphAttributes.position;
|
|
30072
30204
|
const morphNormals = !! geometry.morphAttributes.normal;
|
|
30073
30205
|
const morphColors = !! geometry.morphAttributes.color;
|
|
30074
|
-
|
|
30206
|
+
|
|
30207
|
+
let toneMapping = NoToneMapping;
|
|
30208
|
+
|
|
30209
|
+
if ( material.toneMapped ) {
|
|
30210
|
+
|
|
30211
|
+
if ( _currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true ) {
|
|
30212
|
+
|
|
30213
|
+
toneMapping = _this.toneMapping;
|
|
30214
|
+
|
|
30215
|
+
}
|
|
30216
|
+
|
|
30217
|
+
}
|
|
30075
30218
|
|
|
30076
30219
|
const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;
|
|
30077
30220
|
const morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;
|
|
@@ -30126,6 +30269,14 @@ class WebGLRenderer {
|
|
|
30126
30269
|
|
|
30127
30270
|
needsProgramChange = true;
|
|
30128
30271
|
|
|
30272
|
+
} else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {
|
|
30273
|
+
|
|
30274
|
+
needsProgramChange = true;
|
|
30275
|
+
|
|
30276
|
+
} else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {
|
|
30277
|
+
|
|
30278
|
+
needsProgramChange = true;
|
|
30279
|
+
|
|
30129
30280
|
} else if ( materialProperties.envMap !== envMap ) {
|
|
30130
30281
|
|
|
30131
30282
|
needsProgramChange = true;
|
|
@@ -30567,7 +30718,16 @@ class WebGLRenderer {
|
|
|
30567
30718
|
|
|
30568
30719
|
if ( renderTarget.isWebGLCubeRenderTarget ) {
|
|
30569
30720
|
|
|
30570
|
-
|
|
30721
|
+
if ( Array.isArray( __webglFramebuffer[ activeCubeFace ] ) ) {
|
|
30722
|
+
|
|
30723
|
+
framebuffer = __webglFramebuffer[ activeCubeFace ][ activeMipmapLevel ];
|
|
30724
|
+
|
|
30725
|
+
} else {
|
|
30726
|
+
|
|
30727
|
+
framebuffer = __webglFramebuffer[ activeCubeFace ];
|
|
30728
|
+
|
|
30729
|
+
}
|
|
30730
|
+
|
|
30571
30731
|
isCube = true;
|
|
30572
30732
|
|
|
30573
30733
|
} else if ( ( capabilities.isWebGL2 && renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {
|
|
@@ -30576,7 +30736,15 @@ class WebGLRenderer {
|
|
|
30576
30736
|
|
|
30577
30737
|
} else {
|
|
30578
30738
|
|
|
30579
|
-
|
|
30739
|
+
if ( Array.isArray( __webglFramebuffer ) ) {
|
|
30740
|
+
|
|
30741
|
+
framebuffer = __webglFramebuffer[ activeMipmapLevel ];
|
|
30742
|
+
|
|
30743
|
+
} else {
|
|
30744
|
+
|
|
30745
|
+
framebuffer = __webglFramebuffer;
|
|
30746
|
+
|
|
30747
|
+
}
|
|
30580
30748
|
|
|
30581
30749
|
}
|
|
30582
30750
|
|
|
@@ -30875,14 +31043,14 @@ class WebGLRenderer {
|
|
|
30875
31043
|
|
|
30876
31044
|
get physicallyCorrectLights() { // @deprecated, r150
|
|
30877
31045
|
|
|
30878
|
-
console.warn( 'THREE.WebGLRenderer:
|
|
31046
|
+
console.warn( 'THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
|
|
30879
31047
|
return ! this.useLegacyLights;
|
|
30880
31048
|
|
|
30881
31049
|
}
|
|
30882
31050
|
|
|
30883
31051
|
set physicallyCorrectLights( value ) { // @deprecated, r150
|
|
30884
31052
|
|
|
30885
|
-
console.warn( 'THREE.WebGLRenderer:
|
|
31053
|
+
console.warn( 'THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead.' );
|
|
30886
31054
|
this.useLegacyLights = ! value;
|
|
30887
31055
|
|
|
30888
31056
|
}
|
|
@@ -30901,6 +31069,20 @@ class WebGLRenderer {
|
|
|
30901
31069
|
|
|
30902
31070
|
}
|
|
30903
31071
|
|
|
31072
|
+
get useLegacyLights() { // @deprecated, r155
|
|
31073
|
+
|
|
31074
|
+
console.warn( 'THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733.' );
|
|
31075
|
+
return this._useLegacyLights;
|
|
31076
|
+
|
|
31077
|
+
}
|
|
31078
|
+
|
|
31079
|
+
set useLegacyLights( value ) { // @deprecated, r155
|
|
31080
|
+
|
|
31081
|
+
console.warn( 'THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733.' );
|
|
31082
|
+
this._useLegacyLights = value;
|
|
31083
|
+
|
|
31084
|
+
}
|
|
31085
|
+
|
|
30904
31086
|
}
|
|
30905
31087
|
|
|
30906
31088
|
class WebGL1Renderer extends WebGLRenderer {}
|
|
@@ -33361,6 +33543,21 @@ class CompressedArrayTexture extends CompressedTexture {
|
|
|
33361
33543
|
|
|
33362
33544
|
}
|
|
33363
33545
|
|
|
33546
|
+
class CompressedCubeTexture extends CompressedTexture {
|
|
33547
|
+
|
|
33548
|
+
constructor( images, format, type ) {
|
|
33549
|
+
|
|
33550
|
+
super( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );
|
|
33551
|
+
|
|
33552
|
+
this.isCompressedCubeTexture = true;
|
|
33553
|
+
this.isCubeTexture = true;
|
|
33554
|
+
|
|
33555
|
+
this.image = images;
|
|
33556
|
+
|
|
33557
|
+
}
|
|
33558
|
+
|
|
33559
|
+
}
|
|
33560
|
+
|
|
33364
33561
|
class CanvasTexture extends Texture {
|
|
33365
33562
|
|
|
33366
33563
|
constructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {
|
|
@@ -35471,7 +35668,7 @@ class CapsuleGeometry extends LatheGeometry {
|
|
|
35471
35668
|
|
|
35472
35669
|
this.parameters = {
|
|
35473
35670
|
radius: radius,
|
|
35474
|
-
|
|
35671
|
+
length: length,
|
|
35475
35672
|
capSegments: capSegments,
|
|
35476
35673
|
radialSegments: radialSegments,
|
|
35477
35674
|
};
|
|
@@ -42921,9 +43118,28 @@ class DataTextureLoader extends Loader {
|
|
|
42921
43118
|
loader.setWithCredentials( scope.withCredentials );
|
|
42922
43119
|
loader.load( url, function ( buffer ) {
|
|
42923
43120
|
|
|
42924
|
-
|
|
43121
|
+
let texData;
|
|
43122
|
+
|
|
43123
|
+
try {
|
|
43124
|
+
|
|
43125
|
+
texData = scope.parse( buffer );
|
|
43126
|
+
|
|
43127
|
+
} catch ( error ) {
|
|
43128
|
+
|
|
43129
|
+
if ( onError !== undefined ) {
|
|
43130
|
+
|
|
43131
|
+
onError( error );
|
|
43132
|
+
|
|
43133
|
+
} else {
|
|
43134
|
+
|
|
43135
|
+
console.error( error );
|
|
43136
|
+
return;
|
|
43137
|
+
|
|
43138
|
+
}
|
|
43139
|
+
|
|
43140
|
+
}
|
|
42925
43141
|
|
|
42926
|
-
if ( ! texData ) return;
|
|
43142
|
+
if ( ! texData ) return onError(); // TODO: Remove this when all loaders properly throw errors
|
|
42927
43143
|
|
|
42928
43144
|
if ( texData.image !== undefined ) {
|
|
42929
43145
|
|
|
@@ -47460,7 +47676,7 @@ class PropertyBinding {
|
|
|
47460
47676
|
// ensure there is a value node
|
|
47461
47677
|
if ( ! targetObject ) {
|
|
47462
47678
|
|
|
47463
|
-
console.
|
|
47679
|
+
console.warn( 'THREE.PropertyBinding: No target node found for track: ' + this.path + '.' );
|
|
47464
47680
|
return;
|
|
47465
47681
|
|
|
47466
47682
|
}
|
|
@@ -51925,6 +52141,7 @@ exports.Color = Color;
|
|
|
51925
52141
|
exports.ColorKeyframeTrack = ColorKeyframeTrack;
|
|
51926
52142
|
exports.ColorManagement = ColorManagement;
|
|
51927
52143
|
exports.CompressedArrayTexture = CompressedArrayTexture;
|
|
52144
|
+
exports.CompressedCubeTexture = CompressedCubeTexture;
|
|
51928
52145
|
exports.CompressedTexture = CompressedTexture;
|
|
51929
52146
|
exports.CompressedTextureLoader = CompressedTextureLoader;
|
|
51930
52147
|
exports.ConeGeometry = ConeGeometry;
|
|
@@ -52176,6 +52393,7 @@ exports.RectAreaLight = RectAreaLight;
|
|
|
52176
52393
|
exports.RedFormat = RedFormat;
|
|
52177
52394
|
exports.RedIntegerFormat = RedIntegerFormat;
|
|
52178
52395
|
exports.ReinhardToneMapping = ReinhardToneMapping;
|
|
52396
|
+
exports.RenderTarget = RenderTarget;
|
|
52179
52397
|
exports.RepeatWrapping = RepeatWrapping;
|
|
52180
52398
|
exports.ReplaceStencilOp = ReplaceStencilOp;
|
|
52181
52399
|
exports.ReverseSubtractEquation = ReverseSubtractEquation;
|