@gnsx/three 0.184.8 → 0.184.10
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.tsl.js +5 -1
- package/build/three.tsl.min.js +1 -1
- package/build/three.webgpu.js +480 -8
- package/build/three.webgpu.min.js +1 -1
- package/build/three.webgpu.nodes.js +480 -8
- package/build/three.webgpu.nodes.min.js +1 -1
- package/examples/jsm/helpers/LightProbeGridCubeMapHelper.js +222 -0
- package/examples/jsm/helpers/LightProbeGridHelper.js +223 -99
- package/examples/jsm/inspector/tabs/Settings.js +1 -1
- package/examples/jsm/lighting/LightProbeGrid.js +628 -84
- package/examples/jsm/tsl/lighting/DynamicLightsNode.js +19 -1
- package/package.json +1 -1
- package/src/Three.TSL.js +4 -0
- package/src/nodes/Nodes.js +3 -0
- package/src/nodes/TSL.js +4 -0
- package/src/nodes/accessors/CubeTextureNode.js +7 -1
- package/src/nodes/accessors/TextureNode.js +21 -1
- package/src/nodes/functions/material/getLightProbeGridIrradiance.js +68 -0
- package/src/nodes/lighting/LightProbeGridNode.js +137 -0
- package/src/nodes/lighting/LightsNode.js +98 -1
- package/src/renderers/common/Background.js +33 -0
- package/src/renderers/common/RenderList.js +28 -0
- package/src/renderers/common/RenderObjects.js +47 -0
- package/src/renderers/common/Renderer.js +32 -2
- package/src/renderers/common/nodes/NodeManager.js +24 -0
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Copyright 2010-2026 Three.js Authors
|
|
4
4
|
* SPDX-License-Identifier: MIT
|
|
5
5
|
*/
|
|
6
|
-
import { Color, Vector2, Vector3, Vector4, Matrix2, Matrix3, Matrix4, error, EventDispatcher, MathUtils, warn, WebGLCoordinateSystem, WebGPUCoordinateSystem, ColorManagement, SRGBTransfer, NoToneMapping, StaticDrawUsage, InterleavedBufferAttribute, InterleavedBuffer, DynamicDrawUsage, NoColorSpace, log as log$1, warnOnce, Texture, UnsignedIntType, IntType, Compatibility, LessCompare, LessEqualCompare, GreaterCompare, GreaterEqualCompare, NearestFilter, Sphere, BackSide, DoubleSide, CubeTexture, CubeReflectionMapping, CubeRefractionMapping, TangentSpaceNormalMap, NoNormalPacking, NormalRGPacking, NormalGAPacking, ObjectSpaceNormalMap, RGFormat, RED_GREEN_RGTC2_Format, RG11_EAC_Format, InstancedBufferAttribute, InstancedInterleavedBuffer, DataArrayTexture, FloatType, FramebufferTexture, LinearMipmapLinearFilter, DepthTexture, Material, LineBasicMaterial, LineDashedMaterial, NoBlending, MeshNormalMaterial, SRGBColorSpace, RenderTarget, BoxGeometry, Mesh, Scene, LinearFilter, CubeCamera, EquirectangularReflectionMapping, EquirectangularRefractionMapping, AddOperation, MixOperation, MultiplyOperation, MeshBasicMaterial, MeshLambertMaterial, MeshPhongMaterial, DataTexture, HalfFloatType, ClampToEdgeWrapping, BufferGeometry, OrthographicCamera, PerspectiveCamera, LinearSRGBColorSpace, RGBAFormat, CubeUVReflectionMapping, BufferAttribute, MeshStandardMaterial, MeshPhysicalMaterial, MeshToonMaterial, MeshMatcapMaterial, SpriteMaterial, PointsMaterial, ShadowMaterial, Uint32BufferAttribute, Uint16BufferAttribute, ByteType, UnsignedByteType, ShortType, UnsignedShortType, AlphaFormat, RedFormat, RedIntegerFormat, DepthFormat, DepthStencilFormat, RGIntegerFormat, RGBFormat, RGBIntegerFormat, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedInt101111Type, NormalBlending, SrcAlphaFactor, OneMinusSrcAlphaFactor, AddEquation, MaterialBlending, Object3D, LinearMipMapLinearFilter, Plane, Float32BufferAttribute, UVMapping, PCFShadowMap, PCFSoftShadowMap, VSMShadowMap, BasicShadowMap, CubeDepthTexture, SphereGeometry, LinearMipmapNearestFilter, NearestMipmapLinearFilter, Float16BufferAttribute, yieldToMain, REVISION, ArrayCamera, PlaneGeometry, FrontSide, CustomBlending, ZeroFactor, CylinderGeometry, Quaternion, WebXRController, RAD2DEG, FrustumArray, Frustum, RGBAIntegerFormat, TimestampQuery, createCanvasElement, ReverseSubtractEquation, SubtractEquation, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcColorFactor, DstAlphaFactor, DstColorFactor, SrcAlphaSaturateFactor, SrcColorFactor, OneFactor, CullFaceNone, CullFaceBack, CullFaceFront, MultiplyBlending, SubtractiveBlending, AdditiveBlending, NotEqualDepth, GreaterDepth, GreaterEqualDepth, EqualDepth, LessEqualDepth, LessDepth, AlwaysDepth, NeverDepth, ReversedDepthFuncs, RGB_S3TC_DXT1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_PVRTC_2BPPV1_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, R11_EAC_Format, SIGNED_R11_EAC_Format, SIGNED_RG11_EAC_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_BPTC_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, SIGNED_RED_GREEN_RGTC2_Format, MirroredRepeatWrapping, RepeatWrapping, NearestMipmapNearestFilter, NotEqualCompare, EqualCompare, AlwaysCompare, NeverCompare, LinearTransfer, getByteLength, isTypedArray, NotEqualStencilFunc, GreaterStencilFunc, GreaterEqualStencilFunc, EqualStencilFunc, LessEqualStencilFunc, LessStencilFunc, AlwaysStencilFunc, NeverStencilFunc, DecrementWrapStencilOp, IncrementWrapStencilOp, DecrementStencilOp, IncrementStencilOp, InvertStencilOp, ReplaceStencilOp, ZeroStencilOp, KeepStencilOp, MaxEquation, MinEquation, SpotLight, PointLight, DirectionalLight, RectAreaLight, AmbientLight, HemisphereLight, LightProbe, LinearToneMapping, ReinhardToneMapping, CineonToneMapping, ACESFilmicToneMapping, AgXToneMapping, NeutralToneMapping, Group, Loader, FileLoader, MaterialLoader, ObjectLoader } from './three.core.js';
|
|
7
|
-
export { AdditiveAnimationBlendMode, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BasicDepthPacking, BatchedMesh, BezierInterpolant, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxHelper, BufferGeometryLoader, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CircleGeometry, Clock, ColorKeyframeTrack, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeTextureLoader, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceFrontBack, Curve, CurvePath, CustomToneMapping, Cylindrical,
|
|
6
|
+
import { Color, Vector2, Vector3, Vector4, Matrix2, Matrix3, Matrix4, error, EventDispatcher, MathUtils, warn, WebGLCoordinateSystem, WebGPUCoordinateSystem, ColorManagement, SRGBTransfer, NoToneMapping, StaticDrawUsage, InterleavedBufferAttribute, InterleavedBuffer, DynamicDrawUsage, NoColorSpace, log as log$1, warnOnce, Texture, UnsignedIntType, IntType, Compatibility, LessCompare, LessEqualCompare, GreaterCompare, GreaterEqualCompare, NearestFilter, Sphere, BackSide, DoubleSide, CubeTexture, CubeReflectionMapping, CubeRefractionMapping, TangentSpaceNormalMap, NoNormalPacking, NormalRGPacking, NormalGAPacking, ObjectSpaceNormalMap, RGFormat, RED_GREEN_RGTC2_Format, RG11_EAC_Format, InstancedBufferAttribute, InstancedInterleavedBuffer, DataArrayTexture, FloatType, FramebufferTexture, LinearMipmapLinearFilter, DepthTexture, Material, LineBasicMaterial, LineDashedMaterial, NoBlending, MeshNormalMaterial, SRGBColorSpace, RenderTarget, BoxGeometry, Mesh, Scene, LinearFilter, CubeCamera, EquirectangularReflectionMapping, EquirectangularRefractionMapping, AddOperation, MixOperation, MultiplyOperation, MeshBasicMaterial, MeshLambertMaterial, MeshPhongMaterial, DataTexture, HalfFloatType, ClampToEdgeWrapping, BufferGeometry, OrthographicCamera, PerspectiveCamera, LinearSRGBColorSpace, RGBAFormat, CubeUVReflectionMapping, BufferAttribute, MeshStandardMaterial, MeshPhysicalMaterial, MeshToonMaterial, MeshMatcapMaterial, SpriteMaterial, PointsMaterial, ShadowMaterial, Uint32BufferAttribute, Uint16BufferAttribute, ByteType, UnsignedByteType, ShortType, UnsignedShortType, AlphaFormat, RedFormat, RedIntegerFormat, DepthFormat, DepthStencilFormat, RGIntegerFormat, RGBFormat, RGBIntegerFormat, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedInt101111Type, NormalBlending, SrcAlphaFactor, OneMinusSrcAlphaFactor, AddEquation, MaterialBlending, Object3D, LinearMipMapLinearFilter, Plane, Float32BufferAttribute, UVMapping, Data3DTexture, PCFShadowMap, PCFSoftShadowMap, VSMShadowMap, BasicShadowMap, CubeDepthTexture, SphereGeometry, LinearMipmapNearestFilter, NearestMipmapLinearFilter, Float16BufferAttribute, yieldToMain, REVISION, ArrayCamera, PlaneGeometry, FrontSide, CustomBlending, ZeroFactor, CylinderGeometry, Quaternion, WebXRController, RAD2DEG, FrustumArray, Frustum, RGBAIntegerFormat, TimestampQuery, createCanvasElement, ReverseSubtractEquation, SubtractEquation, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcColorFactor, DstAlphaFactor, DstColorFactor, SrcAlphaSaturateFactor, SrcColorFactor, OneFactor, CullFaceNone, CullFaceBack, CullFaceFront, MultiplyBlending, SubtractiveBlending, AdditiveBlending, NotEqualDepth, GreaterDepth, GreaterEqualDepth, EqualDepth, LessEqualDepth, LessDepth, AlwaysDepth, NeverDepth, ReversedDepthFuncs, RGB_S3TC_DXT1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGB_PVRTC_4BPPV1_Format, RGB_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_PVRTC_2BPPV1_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGBA_ETC2_EAC_Format, R11_EAC_Format, SIGNED_R11_EAC_Format, SIGNED_RG11_EAC_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_10x10_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_BPTC_Format, RED_RGTC1_Format, SIGNED_RED_RGTC1_Format, SIGNED_RED_GREEN_RGTC2_Format, MirroredRepeatWrapping, RepeatWrapping, NearestMipmapNearestFilter, NotEqualCompare, EqualCompare, AlwaysCompare, NeverCompare, LinearTransfer, getByteLength, isTypedArray, NotEqualStencilFunc, GreaterStencilFunc, GreaterEqualStencilFunc, EqualStencilFunc, LessEqualStencilFunc, LessStencilFunc, AlwaysStencilFunc, NeverStencilFunc, DecrementWrapStencilOp, IncrementWrapStencilOp, DecrementStencilOp, IncrementStencilOp, InvertStencilOp, ReplaceStencilOp, ZeroStencilOp, KeepStencilOp, MaxEquation, MinEquation, SpotLight, PointLight, DirectionalLight, RectAreaLight, AmbientLight, HemisphereLight, LightProbe, LinearToneMapping, ReinhardToneMapping, CineonToneMapping, ACESFilmicToneMapping, AgXToneMapping, NeutralToneMapping, Group, Loader, FileLoader, MaterialLoader, ObjectLoader } from './three.core.js';
|
|
7
|
+
export { AdditiveAnimationBlendMode, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BasicDepthPacking, BatchedMesh, BezierInterpolant, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxHelper, BufferGeometryLoader, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CircleGeometry, Clock, ColorKeyframeTrack, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, Controls, CubeTextureLoader, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceFrontBack, Curve, CurvePath, CustomToneMapping, Cylindrical, DataTextureLoader, DataUtils, DefaultLoadingManager, DetachedBindMode, DirectionalLightHelper, DiscreteInterpolant, DodecahedronGeometry, DynamicCopyUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, Euler, ExternalTexture, ExtrudeGeometry, Fog, FogExp2, GLBufferAttribute, GLSL1, GLSL3, GridHelper, HTMLTexture, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, InstancedBufferGeometry, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, Interpolant, InterpolateBezier, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InterpolationSamplingMode, InterpolationSamplingType, KeyframeTrack, LOD, LatheGeometry, Layers, Light, Line, Line3, LineCurve, LineCurve3, LineLoop, LineSegments, LinearInterpolant, LinearMipMapNearestFilter, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, MOUSE, MeshDepthMaterial, MeshDistanceMaterial, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NormalAnimationBlendMode, NumberKeyframeTrack, OctahedronGeometry, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, Path, PlaneHelper, PointLightHelper, Points, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RGBADepthPacking, RGBDepthPacking, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGDepthPacking, RawShaderMaterial, Ray, Raycaster, RenderTarget3D, RingGeometry, ShaderMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, Skeleton, SkeletonHelper, SkinnedMesh, Source, Spherical, SphericalHarmonics3, SplineCurve, SpotLightHelper, Sprite, StaticCopyUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, TOUCH, TetrahedronGeometry, TextureLoader, TextureUtils, Timer, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, VectorKeyframeTrack, VideoFrameTexture, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLRenderTarget, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroSlopeEnding, getConsoleFunction, setConsoleFunction } from './three.core.js';
|
|
8
8
|
|
|
9
9
|
const refreshUniforms = [
|
|
10
10
|
'alphaMap',
|
|
@@ -12482,7 +12482,23 @@ class TextureNode extends UniformNode {
|
|
|
12482
12482
|
|
|
12483
12483
|
if ( this.updateMatrix === true ) {
|
|
12484
12484
|
|
|
12485
|
-
|
|
12485
|
+
// eslint-disable-next-line no-constant-condition
|
|
12486
|
+
{
|
|
12487
|
+
|
|
12488
|
+
// WITH_GENESYS: Do not apply UV matrix to integer texel coords or storage textures.
|
|
12489
|
+
const explicitUV = this.uvNode;
|
|
12490
|
+
const explicitUVType = explicitUV ? explicitUV.getNodeType( builder ) : null;
|
|
12491
|
+
const isIntegerTexelCoord = explicitUVType === 'uvec2' || explicitUVType === 'uvec3' || explicitUVType === 'ivec2' || explicitUVType === 'ivec3';
|
|
12492
|
+
const isStorageTexture = texture.isStorageTexture === true;
|
|
12493
|
+
|
|
12494
|
+
if ( isIntegerTexelCoord === false && isStorageTexture === false ) {
|
|
12495
|
+
|
|
12496
|
+
uvNode = this.getTransformedUV( uvNode );
|
|
12497
|
+
|
|
12498
|
+
}
|
|
12499
|
+
// !WITH_GENESYS
|
|
12500
|
+
|
|
12501
|
+
}
|
|
12486
12502
|
|
|
12487
12503
|
}
|
|
12488
12504
|
|
|
@@ -15376,7 +15392,13 @@ class CubeTextureNode extends TextureNode {
|
|
|
15376
15392
|
|
|
15377
15393
|
// rotate first
|
|
15378
15394
|
|
|
15379
|
-
|
|
15395
|
+
// WITH_GENESYS: Skip material/scene env rotation in compute — no material or scene context.
|
|
15396
|
+
if ( builder.shaderStage !== 'compute' ) {
|
|
15397
|
+
|
|
15398
|
+
uvNode = materialEnvRotation.mul( uvNode );
|
|
15399
|
+
|
|
15400
|
+
}
|
|
15401
|
+
// !WITH_GENESYS
|
|
15380
15402
|
|
|
15381
15403
|
// flip
|
|
15382
15404
|
|
|
@@ -30545,6 +30567,53 @@ class RenderObjects {
|
|
|
30545
30567
|
|
|
30546
30568
|
}
|
|
30547
30569
|
|
|
30570
|
+
// WITH_GENESYS
|
|
30571
|
+
/**
|
|
30572
|
+
* Disposes every {@link RenderObject} associated with `scene`.
|
|
30573
|
+
*
|
|
30574
|
+
* @param {Scene} scene - The scene being removed.
|
|
30575
|
+
*/
|
|
30576
|
+
disposeSceneResources( scene ) {
|
|
30577
|
+
|
|
30578
|
+
const renderObjects = Array.from( this._renderObjects );
|
|
30579
|
+
|
|
30580
|
+
for ( const renderObject of renderObjects ) {
|
|
30581
|
+
|
|
30582
|
+
if ( renderObject.scene === scene ) {
|
|
30583
|
+
|
|
30584
|
+
renderObject.dispose();
|
|
30585
|
+
|
|
30586
|
+
}
|
|
30587
|
+
|
|
30588
|
+
}
|
|
30589
|
+
|
|
30590
|
+
}
|
|
30591
|
+
|
|
30592
|
+
/**
|
|
30593
|
+
* Disposes every {@link RenderObject} for `object` drawn with `scene`.
|
|
30594
|
+
* Call before disposing a renderer-owned mesh (e.g. background skybox) so WebGPU
|
|
30595
|
+
* bindings are released while the renderer keeps running.
|
|
30596
|
+
*
|
|
30597
|
+
* @param {Object3D} object - The 3D object.
|
|
30598
|
+
* @param {Scene} scene - The scene reference used when the object was rendered.
|
|
30599
|
+
*/
|
|
30600
|
+
disposeObjectResources( object, scene ) {
|
|
30601
|
+
|
|
30602
|
+
const renderObjects = Array.from( this._renderObjects );
|
|
30603
|
+
|
|
30604
|
+
for ( const renderObject of renderObjects ) {
|
|
30605
|
+
|
|
30606
|
+
if ( renderObject.object === object && renderObject.scene === scene ) {
|
|
30607
|
+
|
|
30608
|
+
renderObject.dispose();
|
|
30609
|
+
|
|
30610
|
+
}
|
|
30611
|
+
|
|
30612
|
+
}
|
|
30613
|
+
|
|
30614
|
+
}
|
|
30615
|
+
// !WITH_GENESYS
|
|
30616
|
+
|
|
30548
30617
|
/**
|
|
30549
30618
|
* Factory method for creating render objects with the given list of parameters.
|
|
30550
30619
|
*
|
|
@@ -32931,6 +33000,15 @@ class RenderList {
|
|
|
32931
33000
|
*/
|
|
32932
33001
|
this.lightsArray = [];
|
|
32933
33002
|
|
|
33003
|
+
// WITH_GENESYS
|
|
33004
|
+
/**
|
|
33005
|
+
* The scene's light probe grids stored in an array.
|
|
33006
|
+
*
|
|
33007
|
+
* @type {Array<Object3D>}
|
|
33008
|
+
*/
|
|
33009
|
+
this.lightProbeGridsArray = [];
|
|
33010
|
+
// !WITH_GENESYS
|
|
33011
|
+
|
|
32934
33012
|
/**
|
|
32935
33013
|
* The scene.
|
|
32936
33014
|
*
|
|
@@ -32972,6 +33050,9 @@ class RenderList {
|
|
|
32972
33050
|
this.bundles.length = 0;
|
|
32973
33051
|
|
|
32974
33052
|
this.lightsArray.length = 0;
|
|
33053
|
+
// WITH_GENESYS
|
|
33054
|
+
this.lightProbeGridsArray.length = 0;
|
|
33055
|
+
// !WITH_GENESYS
|
|
32975
33056
|
|
|
32976
33057
|
this.occlusionQueryCount = 0;
|
|
32977
33058
|
|
|
@@ -33123,6 +33204,19 @@ class RenderList {
|
|
|
33123
33204
|
|
|
33124
33205
|
}
|
|
33125
33206
|
|
|
33207
|
+
// WITH_GENESYS
|
|
33208
|
+
/**
|
|
33209
|
+
* Pushes a light probe grid into the render list.
|
|
33210
|
+
*
|
|
33211
|
+
* @param {Object3D} lightProbeGrid - The light probe grid.
|
|
33212
|
+
*/
|
|
33213
|
+
pushLightProbeGrid( lightProbeGrid ) {
|
|
33214
|
+
|
|
33215
|
+
this.lightProbeGridsArray.push( lightProbeGrid );
|
|
33216
|
+
|
|
33217
|
+
}
|
|
33218
|
+
// !WITH_GENESYS
|
|
33219
|
+
|
|
33126
33220
|
/**
|
|
33127
33221
|
* Sorts the internal render lists.
|
|
33128
33222
|
*
|
|
@@ -33146,6 +33240,9 @@ class RenderList {
|
|
|
33146
33240
|
// update lights
|
|
33147
33241
|
|
|
33148
33242
|
this.lightsNode.setLights( this.lightsArray );
|
|
33243
|
+
// WITH_GENESYS
|
|
33244
|
+
this.lightsNode.setLightProbeGrids( this.lightProbeGridsArray );
|
|
33245
|
+
// !WITH_GENESYS
|
|
33149
33246
|
|
|
33150
33247
|
// Clear references from inactive renderItems in the list
|
|
33151
33248
|
|
|
@@ -43080,6 +43177,198 @@ function lightViewPosition( light ) {
|
|
|
43080
43177
|
*/
|
|
43081
43178
|
const lightTargetDirection = ( light ) => cameraViewMatrix.transformDirection( lightPosition( light ).sub( lightTargetPosition( light ) ) );
|
|
43082
43179
|
|
|
43180
|
+
const getLightProbeGridIrradianceAtUV = /*@__PURE__*/ Fn( ( { probesSH, probesResolution, gridUVW, worldNormal } ) => {
|
|
43181
|
+
|
|
43182
|
+
const res = probesResolution;
|
|
43183
|
+
const uvw = gridUVW.toVar();
|
|
43184
|
+
|
|
43185
|
+
const nz = res.z;
|
|
43186
|
+
const paddedSlices = nz.add( 2.0 );
|
|
43187
|
+
const atlasDepth = paddedSlices.mul( 7.0 );
|
|
43188
|
+
const uvZBase = uvw.z.mul( nz ).add( 1.0 );
|
|
43189
|
+
|
|
43190
|
+
const atlasUv = ( sliceOffset ) => vec3( uvw.x, uvw.y, uvZBase.add( paddedSlices.mul( sliceOffset ) ).div( atlasDepth ) );
|
|
43191
|
+
|
|
43192
|
+
const s0 = probesSH.sample( atlasUv( 0.0 ) );
|
|
43193
|
+
const s1 = probesSH.sample( atlasUv( 1.0 ) );
|
|
43194
|
+
const s2 = probesSH.sample( atlasUv( 2.0 ) );
|
|
43195
|
+
const s3 = probesSH.sample( atlasUv( 3.0 ) );
|
|
43196
|
+
const s4 = probesSH.sample( atlasUv( 4.0 ) );
|
|
43197
|
+
const s5 = probesSH.sample( atlasUv( 5.0 ) );
|
|
43198
|
+
const s6 = probesSH.sample( atlasUv( 6.0 ) );
|
|
43199
|
+
|
|
43200
|
+
const c0 = s0.xyz;
|
|
43201
|
+
const c1 = vec3( s0.w, s1.x, s1.y );
|
|
43202
|
+
const c2 = vec3( s1.z, s1.w, s2.x );
|
|
43203
|
+
const c3 = s2.yzw;
|
|
43204
|
+
const c4 = s3.xyz;
|
|
43205
|
+
const c5 = vec3( s3.w, s4.x, s4.y );
|
|
43206
|
+
const c6 = vec3( s4.z, s4.w, s5.x );
|
|
43207
|
+
const c7 = s5.yzw;
|
|
43208
|
+
const c8 = s6.xyz;
|
|
43209
|
+
|
|
43210
|
+
const x = worldNormal.x, y = worldNormal.y, z = worldNormal.z;
|
|
43211
|
+
|
|
43212
|
+
let result = c0.mul( 0.886227 );
|
|
43213
|
+
result = result.add( c1.mul( 2.0 * 0.511664 ).mul( y ) );
|
|
43214
|
+
result = result.add( c2.mul( 2.0 * 0.511664 ).mul( z ) );
|
|
43215
|
+
result = result.add( c3.mul( 2.0 * 0.511664 ).mul( x ) );
|
|
43216
|
+
result = result.add( c4.mul( 2.0 * 0.429043 ).mul( x ).mul( y ) );
|
|
43217
|
+
result = result.add( c5.mul( 2.0 * 0.429043 ).mul( y ).mul( z ) );
|
|
43218
|
+
result = result.add( c6.mul( z.mul( z ).mul( 0.743125 ).sub( 0.247708 ) ) );
|
|
43219
|
+
result = result.add( c7.mul( 2.0 * 0.429043 ).mul( x ).mul( z ) );
|
|
43220
|
+
result = result.add( c8.mul( 0.429043 ).mul( x.mul( x ).sub( y.mul( y ) ) ) );
|
|
43221
|
+
|
|
43222
|
+
return max$1( result, vec3( 0.0 ) );
|
|
43223
|
+
|
|
43224
|
+
} );
|
|
43225
|
+
|
|
43226
|
+
const getLightProbeGridIrradiance = /*@__PURE__*/ Fn( ( { probesSH, probesMin, probesMax, probesResolution, worldPosition, worldNormal } ) => {
|
|
43227
|
+
|
|
43228
|
+
const res = probesResolution;
|
|
43229
|
+
const gridRange = probesMax.sub( probesMin ).toVar();
|
|
43230
|
+
const resMinusOne = res.sub( 1.0 );
|
|
43231
|
+
const probeSpacing = gridRange.div( resMinusOne ).toVar();
|
|
43232
|
+
|
|
43233
|
+
const samplePos = worldPosition.add( worldNormal.mul( probeSpacing ).mul( 0.5 ) );
|
|
43234
|
+
const gridUVW = samplePos.sub( probesMin ).div( gridRange ).clamp( 0.0, 1.0 ).mul( resMinusOne.div( res ) ).add( vec3( 0.5 ).div( res ) );
|
|
43235
|
+
|
|
43236
|
+
return getLightProbeGridIrradianceAtUV( {
|
|
43237
|
+
probesSH,
|
|
43238
|
+
probesResolution,
|
|
43239
|
+
gridUVW,
|
|
43240
|
+
worldNormal
|
|
43241
|
+
} );
|
|
43242
|
+
|
|
43243
|
+
} );
|
|
43244
|
+
|
|
43245
|
+
const _objectPosition = /*@__PURE__*/ new Vector3();
|
|
43246
|
+
const _emptyTexture = /*@__PURE__*/ new Data3DTexture( new Float32Array( 1 * 1 * 28 * 4 ), 1, 1, 28 );
|
|
43247
|
+
|
|
43248
|
+
_emptyTexture.format = RGBAFormat;
|
|
43249
|
+
_emptyTexture.type = FloatType;
|
|
43250
|
+
_emptyTexture.minFilter = LinearFilter;
|
|
43251
|
+
_emptyTexture.magFilter = LinearFilter;
|
|
43252
|
+
_emptyTexture.needsUpdate = true;
|
|
43253
|
+
|
|
43254
|
+
function findLightProbeGrid( volumes, object ) {
|
|
43255
|
+
|
|
43256
|
+
if ( volumes.length === 0 ) return null;
|
|
43257
|
+
|
|
43258
|
+
if ( volumes.length === 1 ) {
|
|
43259
|
+
|
|
43260
|
+
return volumes[ 0 ].texture !== null ? volumes[ 0 ] : null;
|
|
43261
|
+
|
|
43262
|
+
}
|
|
43263
|
+
|
|
43264
|
+
_objectPosition.setFromMatrixPosition( object.matrixWorld );
|
|
43265
|
+
|
|
43266
|
+
for ( let i = 0, l = volumes.length; i < l; i ++ ) {
|
|
43267
|
+
|
|
43268
|
+
const volume = volumes[ i ];
|
|
43269
|
+
|
|
43270
|
+
if ( volume.texture !== null && volume.boundingBox.containsPoint( _objectPosition ) ) return volume;
|
|
43271
|
+
|
|
43272
|
+
}
|
|
43273
|
+
|
|
43274
|
+
return null;
|
|
43275
|
+
|
|
43276
|
+
}
|
|
43277
|
+
|
|
43278
|
+
/**
|
|
43279
|
+
* Adds diffuse irradiance from the active LightProbeGrid to WebGPU node materials.
|
|
43280
|
+
*
|
|
43281
|
+
* @augments LightingNode
|
|
43282
|
+
*/
|
|
43283
|
+
class LightProbeGridNode extends LightingNode {
|
|
43284
|
+
|
|
43285
|
+
static get type() {
|
|
43286
|
+
|
|
43287
|
+
return 'LightProbeGridNode';
|
|
43288
|
+
|
|
43289
|
+
}
|
|
43290
|
+
|
|
43291
|
+
/**
|
|
43292
|
+
* Constructs a new light probe grid node.
|
|
43293
|
+
*
|
|
43294
|
+
* @param {Array<Object3D>} [lightProbeGrids=[]] - Light probe grids collected from the scene.
|
|
43295
|
+
*/
|
|
43296
|
+
constructor( lightProbeGrids = [] ) {
|
|
43297
|
+
|
|
43298
|
+
super();
|
|
43299
|
+
|
|
43300
|
+
/**
|
|
43301
|
+
* This flag can be used for type testing.
|
|
43302
|
+
*
|
|
43303
|
+
* @type {boolean}
|
|
43304
|
+
* @readonly
|
|
43305
|
+
* @default true
|
|
43306
|
+
*/
|
|
43307
|
+
this.isLightProbeGridNode = true;
|
|
43308
|
+
|
|
43309
|
+
this.lightProbeGrids = lightProbeGrids;
|
|
43310
|
+
this.activeLightProbeGrid = null;
|
|
43311
|
+
|
|
43312
|
+
this.probesSH = texture3D( _emptyTexture );
|
|
43313
|
+
this.probesMin = uniform( new Vector3() );
|
|
43314
|
+
this.probesMax = uniform( new Vector3( 1, 1, 1 ) );
|
|
43315
|
+
this.probesResolution = uniform( new Vector3( 2, 2, 2 ) );
|
|
43316
|
+
|
|
43317
|
+
this.updateType = NodeUpdateType.OBJECT;
|
|
43318
|
+
|
|
43319
|
+
}
|
|
43320
|
+
|
|
43321
|
+
update( frame ) {
|
|
43322
|
+
|
|
43323
|
+
const activeLightProbeGrid = findLightProbeGrid( this.lightProbeGrids, frame.object );
|
|
43324
|
+
|
|
43325
|
+
this.activeLightProbeGrid = activeLightProbeGrid;
|
|
43326
|
+
|
|
43327
|
+
if ( activeLightProbeGrid !== null ) {
|
|
43328
|
+
|
|
43329
|
+
activeLightProbeGrid.updateBoundingBox();
|
|
43330
|
+
|
|
43331
|
+
this.probesSH.value = activeLightProbeGrid.texture;
|
|
43332
|
+
this.probesMin.value.copy( activeLightProbeGrid.boundingBox.min );
|
|
43333
|
+
this.probesMax.value.copy( activeLightProbeGrid.boundingBox.max );
|
|
43334
|
+
this.probesResolution.value.copy( activeLightProbeGrid.resolution );
|
|
43335
|
+
|
|
43336
|
+
} else {
|
|
43337
|
+
|
|
43338
|
+
this.probesSH.value = _emptyTexture;
|
|
43339
|
+
this.probesMin.value.set( 0, 0, 0 );
|
|
43340
|
+
this.probesMax.value.set( 1, 1, 1 );
|
|
43341
|
+
this.probesResolution.value.set( 2, 2, 2 );
|
|
43342
|
+
|
|
43343
|
+
}
|
|
43344
|
+
|
|
43345
|
+
}
|
|
43346
|
+
|
|
43347
|
+
setup( builder ) {
|
|
43348
|
+
|
|
43349
|
+
const irradiance = getLightProbeGridIrradiance( {
|
|
43350
|
+
probesSH: this.probesSH,
|
|
43351
|
+
probesMin: this.probesMin,
|
|
43352
|
+
probesMax: this.probesMax,
|
|
43353
|
+
probesResolution: this.probesResolution,
|
|
43354
|
+
worldPosition: positionWorld,
|
|
43355
|
+
worldNormal: normalWorld
|
|
43356
|
+
} );
|
|
43357
|
+
|
|
43358
|
+
builder.context.irradiance.addAssign( irradiance );
|
|
43359
|
+
|
|
43360
|
+
}
|
|
43361
|
+
|
|
43362
|
+
getHash() {
|
|
43363
|
+
|
|
43364
|
+
return `lightProbeGrid-${ this.lightProbeGrids.map( ( lightProbeGrid ) => lightProbeGrid.id ).join( ',' ) }`;
|
|
43365
|
+
|
|
43366
|
+
}
|
|
43367
|
+
|
|
43368
|
+
}
|
|
43369
|
+
|
|
43370
|
+
// !WITH_GENESYS
|
|
43371
|
+
|
|
43083
43372
|
const sortLights = ( lights ) => {
|
|
43084
43373
|
|
|
43085
43374
|
return lights.sort( ( a, b ) => a.id - b.id );
|
|
@@ -43156,6 +43445,25 @@ class LightsNode extends Node {
|
|
|
43156
43445
|
*/
|
|
43157
43446
|
this._lights = [];
|
|
43158
43447
|
|
|
43448
|
+
// WITH_GENESYS
|
|
43449
|
+
/**
|
|
43450
|
+
* A list of light probe grids collected from the scene.
|
|
43451
|
+
*
|
|
43452
|
+
* @private
|
|
43453
|
+
* @type {Array<Object3D>}
|
|
43454
|
+
*/
|
|
43455
|
+
this._lightProbeGrids = [];
|
|
43456
|
+
|
|
43457
|
+
/**
|
|
43458
|
+
* Cached light probe grid node reused across {@link LightsNode#setupLightsNode} calls.
|
|
43459
|
+
*
|
|
43460
|
+
* @private
|
|
43461
|
+
* @type {?LightProbeGridNode}
|
|
43462
|
+
* @default null
|
|
43463
|
+
*/
|
|
43464
|
+
this._lightProbeGridNode = null;
|
|
43465
|
+
// !WITH_GENESYS
|
|
43466
|
+
|
|
43159
43467
|
/**
|
|
43160
43468
|
* For each light in the scene, this node will create a
|
|
43161
43469
|
* corresponding light node.
|
|
@@ -43213,6 +43521,18 @@ class LightsNode extends Node {
|
|
|
43213
43521
|
|
|
43214
43522
|
}
|
|
43215
43523
|
|
|
43524
|
+
// WITH_GENESYS
|
|
43525
|
+
const lightProbeGrids = this._lightProbeGrids;
|
|
43526
|
+
|
|
43527
|
+
for ( let i = 0; i < lightProbeGrids.length; i ++ ) {
|
|
43528
|
+
|
|
43529
|
+
const lightProbeGrid = lightProbeGrids[ i ];
|
|
43530
|
+
|
|
43531
|
+
_hashData.push( lightProbeGrid.id );
|
|
43532
|
+
|
|
43533
|
+
}
|
|
43534
|
+
// !WITH_GENESYS
|
|
43535
|
+
|
|
43216
43536
|
const cacheKey = hashArray( _hashData );
|
|
43217
43537
|
|
|
43218
43538
|
_hashData.length = 0;
|
|
@@ -43321,10 +43641,44 @@ class LightsNode extends Node {
|
|
|
43321
43641
|
|
|
43322
43642
|
}
|
|
43323
43643
|
|
|
43644
|
+
// WITH_GENESYS
|
|
43645
|
+
this._appendLightProbeGridNode( lightNodes );
|
|
43646
|
+
// !WITH_GENESYS
|
|
43647
|
+
|
|
43324
43648
|
this._lightNodes = lightNodes;
|
|
43325
43649
|
|
|
43326
43650
|
}
|
|
43327
43651
|
|
|
43652
|
+
// WITH_GENESYS
|
|
43653
|
+
/**
|
|
43654
|
+
* Appends the cached {@link LightProbeGridNode} for the current probe grids.
|
|
43655
|
+
*
|
|
43656
|
+
* @private
|
|
43657
|
+
* @param {Array<LightingNode>} lightNodes - The light nodes array being built.
|
|
43658
|
+
*/
|
|
43659
|
+
_appendLightProbeGridNode( lightNodes ) {
|
|
43660
|
+
|
|
43661
|
+
if ( this._lightProbeGrids.length === 0 ) {
|
|
43662
|
+
|
|
43663
|
+
return;
|
|
43664
|
+
|
|
43665
|
+
}
|
|
43666
|
+
|
|
43667
|
+
if ( this._lightProbeGridNode === null ) {
|
|
43668
|
+
|
|
43669
|
+
this._lightProbeGridNode = new LightProbeGridNode( this._lightProbeGrids );
|
|
43670
|
+
|
|
43671
|
+
} else {
|
|
43672
|
+
|
|
43673
|
+
this._lightProbeGridNode.lightProbeGrids = this._lightProbeGrids;
|
|
43674
|
+
|
|
43675
|
+
}
|
|
43676
|
+
|
|
43677
|
+
lightNodes.push( this._lightProbeGridNode );
|
|
43678
|
+
|
|
43679
|
+
}
|
|
43680
|
+
// !WITH_GENESYS
|
|
43681
|
+
|
|
43328
43682
|
/**
|
|
43329
43683
|
* Sets up a direct light in the lighting model.
|
|
43330
43684
|
*
|
|
@@ -43471,6 +43825,31 @@ class LightsNode extends Node {
|
|
|
43471
43825
|
|
|
43472
43826
|
}
|
|
43473
43827
|
|
|
43828
|
+
// WITH_GENESYS
|
|
43829
|
+
/**
|
|
43830
|
+
* Configures this node with an array of light probe grids.
|
|
43831
|
+
*
|
|
43832
|
+
* @param {Array<Object3D>} lightProbeGrids - An array of light probe grids.
|
|
43833
|
+
* @return {LightsNode} A reference to this node.
|
|
43834
|
+
*/
|
|
43835
|
+
setLightProbeGrids( lightProbeGrids ) {
|
|
43836
|
+
|
|
43837
|
+
this._lightProbeGrids = lightProbeGrids;
|
|
43838
|
+
|
|
43839
|
+
if ( this._lightProbeGridNode !== null ) {
|
|
43840
|
+
|
|
43841
|
+
this._lightProbeGridNode.lightProbeGrids = lightProbeGrids;
|
|
43842
|
+
|
|
43843
|
+
}
|
|
43844
|
+
|
|
43845
|
+
this._lightNodes = null;
|
|
43846
|
+
this._lightNodesHash = null;
|
|
43847
|
+
|
|
43848
|
+
return this;
|
|
43849
|
+
|
|
43850
|
+
}
|
|
43851
|
+
// !WITH_GENESYS
|
|
43852
|
+
|
|
43474
43853
|
/**
|
|
43475
43854
|
* Returns an array of the scene's lights.
|
|
43476
43855
|
*
|
|
@@ -43489,7 +43868,11 @@ class LightsNode extends Node {
|
|
|
43489
43868
|
*/
|
|
43490
43869
|
get hasLights() {
|
|
43491
43870
|
|
|
43492
|
-
return this._lights.length > 0
|
|
43871
|
+
return this._lights.length > 0
|
|
43872
|
+
// WITH_GENESYS
|
|
43873
|
+
|| this._lightProbeGrids.length > 0
|
|
43874
|
+
// !WITH_GENESYS
|
|
43875
|
+
;
|
|
43493
43876
|
|
|
43494
43877
|
}
|
|
43495
43878
|
|
|
@@ -47875,6 +48258,8 @@ var TSL = /*#__PURE__*/Object.freeze({
|
|
|
47875
48258
|
getDirection: getDirection,
|
|
47876
48259
|
getDistanceAttenuation: getDistanceAttenuation,
|
|
47877
48260
|
getGeometryRoughness: getGeometryRoughness,
|
|
48261
|
+
getLightProbeGridIrradiance: getLightProbeGridIrradiance,
|
|
48262
|
+
getLightProbeGridIrradianceAtUV: getLightProbeGridIrradianceAtUV,
|
|
47878
48263
|
getNormalFromDepth: getNormalFromDepth,
|
|
47879
48264
|
getParallaxCorrectNormal: getParallaxCorrectNormal,
|
|
47880
48265
|
getRoughness: getRoughness,
|
|
@@ -48347,6 +48732,39 @@ class Background extends DataMap {
|
|
|
48347
48732
|
|
|
48348
48733
|
}
|
|
48349
48734
|
|
|
48735
|
+
// WITH_GENESYS
|
|
48736
|
+
/**
|
|
48737
|
+
* Disposes the renderer-owned background skybox mesh (material and geometry)
|
|
48738
|
+
* for `scene` and clears cached mesh state.
|
|
48739
|
+
*
|
|
48740
|
+
* Does not dispose {@link Scene#background}.
|
|
48741
|
+
*
|
|
48742
|
+
* @param {Scene} scene - The scene.
|
|
48743
|
+
*/
|
|
48744
|
+
disposeScene( scene ) {
|
|
48745
|
+
|
|
48746
|
+
if ( this.has( scene ) === false ) return;
|
|
48747
|
+
|
|
48748
|
+
const sceneData = this.get( scene );
|
|
48749
|
+
|
|
48750
|
+
const backgroundMesh = sceneData.backgroundMesh;
|
|
48751
|
+
|
|
48752
|
+
if ( backgroundMesh !== undefined ) {
|
|
48753
|
+
|
|
48754
|
+
this.renderer._objects.disposeObjectResources( backgroundMesh, scene );
|
|
48755
|
+
|
|
48756
|
+
backgroundMesh.material.dispose();
|
|
48757
|
+
backgroundMesh.geometry.dispose();
|
|
48758
|
+
|
|
48759
|
+
delete sceneData.backgroundMesh;
|
|
48760
|
+
delete sceneData.backgroundMeshNode;
|
|
48761
|
+
delete sceneData.backgroundCacheKey;
|
|
48762
|
+
|
|
48763
|
+
}
|
|
48764
|
+
|
|
48765
|
+
}
|
|
48766
|
+
// !WITH_GENESYS
|
|
48767
|
+
|
|
48350
48768
|
/**
|
|
48351
48769
|
* Updates the background for the given scene. Depending on how `Scene.background`
|
|
48352
48770
|
* or `Scene.backgroundNode` are configured, this method might configure a simple clear
|
|
@@ -55089,6 +55507,30 @@ class NodeManager extends DataMap {
|
|
|
55089
55507
|
|
|
55090
55508
|
}
|
|
55091
55509
|
|
|
55510
|
+
// WITH_GENESYS
|
|
55511
|
+
/**
|
|
55512
|
+
* Clears cached background and environment node state for `scene`.
|
|
55513
|
+
*
|
|
55514
|
+
* Does not call `texture.dispose()` on {@link Scene#background} or
|
|
55515
|
+
* {@link Scene#environment}.
|
|
55516
|
+
*
|
|
55517
|
+
* @param {Scene} scene - The scene.
|
|
55518
|
+
*/
|
|
55519
|
+
clearSceneBackgroundAndEnvironmentNodes( scene ) {
|
|
55520
|
+
|
|
55521
|
+
if ( this.has( scene ) === false ) return;
|
|
55522
|
+
|
|
55523
|
+
const sceneData = this.get( scene );
|
|
55524
|
+
|
|
55525
|
+
delete sceneData.backgroundNode;
|
|
55526
|
+
delete sceneData.background;
|
|
55527
|
+
delete sceneData.backgroundBlurriness;
|
|
55528
|
+
delete sceneData.environmentNode;
|
|
55529
|
+
delete sceneData.environment;
|
|
55530
|
+
|
|
55531
|
+
}
|
|
55532
|
+
// !WITH_GENESYS
|
|
55533
|
+
|
|
55092
55534
|
/**
|
|
55093
55535
|
* This method is part of the caching of nodes which are used to represents the
|
|
55094
55536
|
* scene's background, fog or environment.
|
|
@@ -58968,7 +59410,11 @@ class Renderer {
|
|
|
58968
59410
|
|
|
58969
59411
|
renderList.pushLight( object );
|
|
58970
59412
|
|
|
58971
|
-
}
|
|
59413
|
+
} else if ( object.isLightProbeGrid && object.layers.test( camera.layers ) ) { // WITH_GENESYS
|
|
59414
|
+
|
|
59415
|
+
renderList.pushLightProbeGrid( object );
|
|
59416
|
+
|
|
59417
|
+
} // !WITH_GENESYS
|
|
58972
59418
|
|
|
58973
59419
|
} );
|
|
58974
59420
|
|
|
@@ -60585,6 +61031,28 @@ class Renderer {
|
|
|
60585
61031
|
|
|
60586
61032
|
}
|
|
60587
61033
|
|
|
61034
|
+
// WITH_GENESYS
|
|
61035
|
+
/**
|
|
61036
|
+
* Releases renderer resources scoped to `scene` when the scene is removed but
|
|
61037
|
+
* this renderer instance continues to run. Disposes matching {@link RenderObject}s,
|
|
61038
|
+
* the internal background skybox mesh, and cached background/environment nodes.
|
|
61039
|
+
*
|
|
61040
|
+
* Does not call `texture.dispose()` on {@link Scene#background} or
|
|
61041
|
+
* {@link Scene#environment}; the caller remains responsible for those textures.
|
|
61042
|
+
*
|
|
61043
|
+
* @param {Scene} scene - The scene being removed.
|
|
61044
|
+
*/
|
|
61045
|
+
disposeSceneResources( scene ) {
|
|
61046
|
+
|
|
61047
|
+
if ( this._initialized !== true ) return;
|
|
61048
|
+
|
|
61049
|
+
this._objects.disposeSceneResources( scene );
|
|
61050
|
+
this._nodes.clearSceneBackgroundAndEnvironmentNodes( scene );
|
|
61051
|
+
this._background.disposeScene( scene );
|
|
61052
|
+
|
|
61053
|
+
}
|
|
61054
|
+
// !WITH_GENESYS
|
|
61055
|
+
|
|
60588
61056
|
/**
|
|
60589
61057
|
* Sets the given render target. Calling this method means the renderer does not
|
|
60590
61058
|
* target the default framebuffer (meaning the canvas) anymore but a custom framebuffer.
|
|
@@ -61118,7 +61586,11 @@ class Renderer {
|
|
|
61118
61586
|
|
|
61119
61587
|
renderList.pushLight( object );
|
|
61120
61588
|
|
|
61121
|
-
} else if ( object.
|
|
61589
|
+
} else if ( object.isLightProbeGrid ) { // WITH_GENESYS
|
|
61590
|
+
|
|
61591
|
+
renderList.pushLightProbeGrid( object );
|
|
61592
|
+
|
|
61593
|
+
} else if ( object.isSprite ) { // !WITH_GENESYS
|
|
61122
61594
|
|
|
61123
61595
|
const frustum = camera.isArrayCamera ? _frustumArray : _frustum;
|
|
61124
61596
|
|
|
@@ -83981,4 +84453,4 @@ class ClippingGroup extends Group {
|
|
|
83981
84453
|
|
|
83982
84454
|
}
|
|
83983
84455
|
|
|
83984
|
-
export { ACESFilmicToneMapping, AONode, AddEquation, AddOperation, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightNode, AnalyticLightNode, ArrayCamera, ArrayElementNode, ArrayNode, AssignNode, AtomicFunctionNode, AttributeNode, BackSide, BarrierNode, BasicEnvironmentNode, BasicLightMapNode, BasicShadowMap, BatchNode, BitcastNode, BitcountNode, BlendMode, BoxGeometry, BufferAttribute, BufferAttributeNode, BufferGeometry, BufferNode, BuiltinNode, BumpMapNode, BundleGroup, BypassNode, ByteType, CanvasTarget, CineonToneMapping, ClampToEdgeWrapping, ClippingGroup, ClippingNode, CodeNode, Color, ColorManagement, ColorSpaceNode, Compatibility, ComputeBuiltinNode, ComputeNode, ConditionalNode, ConstNode, ContextNode, ConvertNode, CubeCamera, CubeDepthTexture, CubeMapNode, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureNode, CubeUVReflectionMapping, CullFaceBack, CullFaceFront, CullFaceNone, CustomBlending, CylinderGeometry, DataArrayTexture, DataTexture, DebugNode, DecrementStencilOp, DecrementWrapStencilOp, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightNode, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicDrawUsage, EnvironmentNode, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, EventDispatcher, EventNode, ExpressionNode, FileLoader, FlipNode, Float16BufferAttribute, Float32BufferAttribute, FloatType, FramebufferTexture, FrontFacingNode, FrontSide, Frustum, FrustumArray, FunctionCallNode, FunctionNode, FunctionOverloadingNode, GLSLNodeParser, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, Group, HalfFloatType, HemisphereLight, HemisphereLightNode, IESSpotLight, IESSpotLightNode, IncrementStencilOp, IncrementWrapStencilOp, IndexNode, IndirectStorageBufferAttribute, InputNode, InspectorBase, InspectorNode, InstanceNode, InstancedBufferAttribute, InstancedInterleavedBuffer, InstancedMeshNode, IntType, InterleavedBuffer, InterleavedBufferAttribute, InvertStencilOp, IrradianceNode, IsolateNode, JoinNode, KeepStencilOp, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, LightProbe, LightProbeNode, Lighting, LightingContextNode, LightingModel, LightingNode, LightsNode, Line2NodeMaterial, LineBasicMaterial, LineBasicNodeMaterial, LineDashedMaterial, LineDashedNodeMaterial, LinearFilter, LinearMipMapLinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoopNode, MRTNode, Material, MaterialBlending, MaterialLightsNode, MaterialLoader, MaterialNode, MaterialReferenceNode, MathNode, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, MaxMipLevelNode, MemberNode, Mesh, MeshBasicMaterial, MeshBasicNodeMaterial, MeshLambertMaterial, MeshLambertNodeMaterial, MeshMatcapMaterial, MeshMatcapNodeMaterial, MeshNormalMaterial, MeshNormalNodeMaterial, MeshPhongMaterial, MeshPhongNodeMaterial, MeshPhysicalMaterial, MeshPhysicalNodeMaterial, MeshSSSNodeMaterial, MeshStandardMaterial, MeshStandardNodeMaterial, MeshToonMaterial, MeshToonNodeMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, ModelNode, MorphNode, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoNormalPacking, NoToneMapping, Node, NodeAccess, NodeAttribute, NodeBuilder, NodeCache, NodeCode, NodeError, NodeFrame, NodeFunctionInput, NodeLoader, NodeMaterial, NodeMaterialLoader, NodeMaterialObserver, NodeObjectLoader, NodeShaderStage, NodeType, NodeUniform, NodeUpdateType, NodeUtils, NodeVar, NodeVarying, NormalBlending, NormalGAPacking, NormalMapNode, NormalRGPacking, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, Object3D, Object3DNode, ObjectLoader, ObjectSpaceNormalMap, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OperatorNode, OrthographicCamera, OutputStructNode, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, PMREMNode, PackFloatNode, ParameterNode, PassNode, PerspectiveCamera, PhongLightingModel, PhysicalLightingModel, Plane, PlaneGeometry, PointLight, PointLightNode, PointShadowNode, PointUVNode, PointsMaterial, PointsNodeMaterial, PostProcessing, ProjectorLight, ProjectorLightNode, PropertyNode, QuadMesh, Quaternion, R11_EAC_Format, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RG11_EAC_Format, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBFormat, RGBIntegerFormat, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RTTNode, RangeNode, ReadbackBuffer, RectAreaLight, RectAreaLightNode, RedFormat, RedIntegerFormat, ReferenceBaseNode, ReferenceNode, ReflectorNode, ReinhardToneMapping, RenderOutputNode, RenderPipeline, RenderTarget, RendererReferenceNode, RendererUtils, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RotateNode, SIGNED_R11_EAC_Format, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SIGNED_RG11_EAC_Format, SRGBColorSpace, SRGBTransfer, SampleNode, Scene, ScreenNode, SetNode, ShadowBaseNode, ShadowMaterial, ShadowNode, ShadowNodeMaterial, ShortType, SkinningNode, Sphere, SphereGeometry, SplitNode, SpotLight, SpotLightNode, SpriteMaterial, SpriteNodeMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StackNode, StackTrace, StaticDrawUsage, StorageArrayElementNode, StorageBufferAttribute, StorageBufferNode, StorageInstancedBufferAttribute, StorageTexture, StorageTextureNode, StructNode, StructTypeNode, SubBuildNode, SubgroupFunctionNode, SubtractEquation, SubtractiveBlending, TSL, TangentSpaceNormalMap, TempNode, Texture, Texture3DNode, TextureNode, TextureSizeNode, TimestampQuery, ToneMappingNode, ToonOutlinePassNode, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, UniformArrayNode, UniformGroupNode, UniformNode, UnpackFloatNode, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, UserDataNode, VSMShadowMap, VarNode, VaryingNode, Vector2, Vector3, Vector4, VelocityNode, VertexColorNode, ViewportDepthNode, ViewportDepthTextureNode, ViewportSharedTextureNode, ViewportTextureNode, VolumeNodeMaterial, WebGLBackend, WebGLCoordinateSystem, WebGPUBackend, WebGPUCoordinateSystem, WebGPURenderer, WebXRController, WorkgroupInfoNode, ZeroFactor, ZeroStencilOp, createCanvasElement, defaultBuildStages, defaultShaderStages, error, log$1 as log, shaderStages, vectorComponents, warn, warnOnce };
|
|
84456
|
+
export { ACESFilmicToneMapping, AONode, AddEquation, AddOperation, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AmbientLightNode, AnalyticLightNode, ArrayCamera, ArrayElementNode, ArrayNode, AssignNode, AtomicFunctionNode, AttributeNode, BackSide, BarrierNode, BasicEnvironmentNode, BasicLightMapNode, BasicShadowMap, BatchNode, BitcastNode, BitcountNode, BlendMode, BoxGeometry, BufferAttribute, BufferAttributeNode, BufferGeometry, BufferNode, BuiltinNode, BumpMapNode, BundleGroup, BypassNode, ByteType, CanvasTarget, CineonToneMapping, ClampToEdgeWrapping, ClippingGroup, ClippingNode, CodeNode, Color, ColorManagement, ColorSpaceNode, Compatibility, ComputeBuiltinNode, ComputeNode, ConditionalNode, ConstNode, ContextNode, ConvertNode, CubeCamera, CubeDepthTexture, CubeMapNode, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureNode, CubeUVReflectionMapping, CullFaceBack, CullFaceFront, CullFaceNone, CustomBlending, CylinderGeometry, Data3DTexture, DataArrayTexture, DataTexture, DebugNode, DecrementStencilOp, DecrementWrapStencilOp, DepthFormat, DepthStencilFormat, DepthTexture, DirectionalLight, DirectionalLightNode, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicDrawUsage, EnvironmentNode, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, EventDispatcher, EventNode, ExpressionNode, FileLoader, FlipNode, Float16BufferAttribute, Float32BufferAttribute, FloatType, FramebufferTexture, FrontFacingNode, FrontSide, Frustum, FrustumArray, FunctionCallNode, FunctionNode, FunctionOverloadingNode, GLSLNodeParser, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, Group, HalfFloatType, HemisphereLight, HemisphereLightNode, IESSpotLight, IESSpotLightNode, IncrementStencilOp, IncrementWrapStencilOp, IndexNode, IndirectStorageBufferAttribute, InputNode, InspectorBase, InspectorNode, InstanceNode, InstancedBufferAttribute, InstancedInterleavedBuffer, InstancedMeshNode, IntType, InterleavedBuffer, InterleavedBufferAttribute, InvertStencilOp, IrradianceNode, IsolateNode, JoinNode, KeepStencilOp, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, LightProbe, LightProbeGridNode, LightProbeNode, Lighting, LightingContextNode, LightingModel, LightingNode, LightsNode, Line2NodeMaterial, LineBasicMaterial, LineBasicNodeMaterial, LineDashedMaterial, LineDashedNodeMaterial, LinearFilter, LinearMipMapLinearFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoopNode, MRTNode, Material, MaterialBlending, MaterialLightsNode, MaterialLoader, MaterialNode, MaterialReferenceNode, MathNode, MathUtils, Matrix2, Matrix3, Matrix4, MaxEquation, MaxMipLevelNode, MemberNode, Mesh, MeshBasicMaterial, MeshBasicNodeMaterial, MeshLambertMaterial, MeshLambertNodeMaterial, MeshMatcapMaterial, MeshMatcapNodeMaterial, MeshNormalMaterial, MeshNormalNodeMaterial, MeshPhongMaterial, MeshPhongNodeMaterial, MeshPhysicalMaterial, MeshPhysicalNodeMaterial, MeshSSSNodeMaterial, MeshStandardMaterial, MeshStandardNodeMaterial, MeshToonMaterial, MeshToonNodeMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, ModelNode, MorphNode, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoNormalPacking, NoToneMapping, Node, NodeAccess, NodeAttribute, NodeBuilder, NodeCache, NodeCode, NodeError, NodeFrame, NodeFunctionInput, NodeLoader, NodeMaterial, NodeMaterialLoader, NodeMaterialObserver, NodeObjectLoader, NodeShaderStage, NodeType, NodeUniform, NodeUpdateType, NodeUtils, NodeVar, NodeVarying, NormalBlending, NormalGAPacking, NormalMapNode, NormalRGPacking, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, Object3D, Object3DNode, ObjectLoader, ObjectSpaceNormalMap, OneFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OperatorNode, OrthographicCamera, OutputStructNode, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, PMREMNode, PackFloatNode, ParameterNode, PassNode, PerspectiveCamera, PhongLightingModel, PhysicalLightingModel, Plane, PlaneGeometry, PointLight, PointLightNode, PointShadowNode, PointUVNode, PointsMaterial, PointsNodeMaterial, PostProcessing, ProjectorLight, ProjectorLightNode, PropertyNode, QuadMesh, Quaternion, R11_EAC_Format, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RG11_EAC_Format, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBFormat, RGBIntegerFormat, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RTTNode, RangeNode, ReadbackBuffer, RectAreaLight, RectAreaLightNode, RedFormat, RedIntegerFormat, ReferenceBaseNode, ReferenceNode, ReflectorNode, ReinhardToneMapping, RenderOutputNode, RenderPipeline, RenderTarget, RendererReferenceNode, RendererUtils, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RotateNode, SIGNED_R11_EAC_Format, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SIGNED_RG11_EAC_Format, SRGBColorSpace, SRGBTransfer, SampleNode, Scene, ScreenNode, SetNode, ShadowBaseNode, ShadowMaterial, ShadowNode, ShadowNodeMaterial, ShortType, SkinningNode, Sphere, SphereGeometry, SplitNode, SpotLight, SpotLightNode, SpriteMaterial, SpriteNodeMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StackNode, StackTrace, StaticDrawUsage, StorageArrayElementNode, StorageBufferAttribute, StorageBufferNode, StorageInstancedBufferAttribute, StorageTexture, StorageTextureNode, StructNode, StructTypeNode, SubBuildNode, SubgroupFunctionNode, SubtractEquation, SubtractiveBlending, TSL, TangentSpaceNormalMap, TempNode, Texture, Texture3DNode, TextureNode, TextureSizeNode, TimestampQuery, ToneMappingNode, ToonOutlinePassNode, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, UniformArrayNode, UniformGroupNode, UniformNode, UnpackFloatNode, UnsignedByteType, UnsignedInt101111Type, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, UserDataNode, VSMShadowMap, VarNode, VaryingNode, Vector2, Vector3, Vector4, VelocityNode, VertexColorNode, ViewportDepthNode, ViewportDepthTextureNode, ViewportSharedTextureNode, ViewportTextureNode, VolumeNodeMaterial, WebGLBackend, WebGLCoordinateSystem, WebGPUBackend, WebGPUCoordinateSystem, WebGPURenderer, WebXRController, WorkgroupInfoNode, ZeroFactor, ZeroStencilOp, createCanvasElement, defaultBuildStages, defaultShaderStages, error, log$1 as log, shaderStages, vectorComponents, warn, warnOnce };
|