@needle-tools/engine 3.2.5-alpha → 3.2.6-alpha
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/CHANGELOG.md +12 -0
- package/dist/needle-engine.js +7125 -6981
- package/dist/needle-engine.min.js +277 -277
- package/dist/needle-engine.umd.cjs +275 -275
- package/lib/engine/api.d.ts +4 -1
- package/lib/engine/api.js +3 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/engine_context.d.ts +4 -2
- package/lib/engine/engine_context.js +5 -3
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_element_loading.js +0 -1
- package/lib/engine/engine_element_loading.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.js +4 -2
- package/lib/engine/engine_mainloop_utils.js.map +1 -1
- package/lib/engine/engine_scenelighting.d.ts +68 -0
- package/lib/engine/{engine_rendererdata.js → engine_scenelighting.js} +102 -30
- package/lib/engine/engine_scenelighting.js.map +1 -0
- package/lib/engine/engine_serialization_core.d.ts +5 -8
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_lighting_settings.d.ts +3 -1
- package/lib/engine/extensions/NEEDLE_lighting_settings.js +32 -20
- package/lib/engine/extensions/NEEDLE_lighting_settings.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +3 -3
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
- package/lib/engine/extensions/index.d.ts +5 -0
- package/lib/engine/extensions/index.js +6 -0
- package/lib/engine/extensions/index.js.map +1 -0
- package/lib/engine-components/Component.js +15 -3
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/Renderer.js +1 -1
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.d.ts +2 -0
- package/lib/engine-components/SceneSwitcher.js +16 -4
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/api.d.ts +1 -0
- package/lib/engine-components/api.js +1 -0
- package/lib/engine-components/api.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.d.ts +1 -1
- package/lib/engine-components/postprocessing/VolumeParameter.d.ts +1 -1
- package/lib/engine-components/postprocessing/VolumeParameter.js +7 -6
- package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
- package/lib/engine-components/webxr/index.d.ts +2 -0
- package/lib/engine-components/webxr/index.js +2 -0
- package/lib/engine-components/webxr/index.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/engine/api.ts +4 -1
- package/src/engine/engine_context.ts +5 -3
- package/src/engine/engine_element_loading.ts +0 -1
- package/src/engine/engine_mainloop_utils.ts +4 -2
- package/src/engine/{engine_rendererdata.ts → engine_scenelighting.ts} +109 -36
- package/src/engine/engine_serialization_core.ts +7 -8
- package/src/engine/extensions/NEEDLE_lighting_settings.ts +40 -25
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +3 -3
- package/src/engine/extensions/index.ts +5 -0
- package/src/engine-components/Component.ts +15 -3
- package/src/engine-components/Renderer.ts +1 -1
- package/src/engine-components/SceneSwitcher.ts +14 -4
- package/src/engine-components/api.ts +1 -0
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
- package/src/engine-components/postprocessing/VolumeParameter.ts +7 -6
- package/src/engine-components/webxr/index.ts +3 -1
- package/lib/engine/engine_rendererdata.d.ts +0 -49
- package/lib/engine/engine_rendererdata.js.map +0 -1
|
@@ -2,6 +2,7 @@ import { Vector4, EquirectangularReflectionMapping, sRGBEncoding, WebGLCubeRende
|
|
|
2
2
|
import { LightProbeGenerator } from "three/examples/jsm/lights/LightProbeGenerator.js";
|
|
3
3
|
import { createFlatTexture, createTrilightTexture } from "./engine_shaders";
|
|
4
4
|
import { getParam } from "./engine_utils";
|
|
5
|
+
import { AssetReference } from "./engine_addressables";
|
|
5
6
|
const debug = getParam("debugenvlight");
|
|
6
7
|
export var AmbientMode;
|
|
7
8
|
(function (AmbientMode) {
|
|
@@ -21,8 +22,8 @@ export class RendererData {
|
|
|
21
22
|
this.context = context;
|
|
22
23
|
this.context.pre_update_callbacks.push(this.preUpdate.bind(this));
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
_currentLightSettingsId;
|
|
26
|
+
_sceneLightSettings;
|
|
26
27
|
preUpdate() {
|
|
27
28
|
const time = this.context.time;
|
|
28
29
|
this._timevec4.x = time.time;
|
|
@@ -34,41 +35,102 @@ export class RendererData {
|
|
|
34
35
|
get timeVec4() {
|
|
35
36
|
return this._timevec4;
|
|
36
37
|
}
|
|
38
|
+
/** the current environment intensity */
|
|
37
39
|
get environmentIntensity() {
|
|
38
|
-
if (!this.
|
|
40
|
+
if (!this._sceneLightSettings)
|
|
39
41
|
return 1;
|
|
40
|
-
if (!this.
|
|
42
|
+
if (!this._currentLightSettingsId)
|
|
41
43
|
return 1;
|
|
42
|
-
const settings = this.
|
|
44
|
+
const settings = this._sceneLightSettings.get(this._currentLightSettingsId);
|
|
43
45
|
if (settings)
|
|
44
46
|
return settings.ambientIntensity; // * Math.PI * .5;
|
|
45
47
|
return 1;
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
/** Get all currently registered scene light settings */
|
|
50
|
+
get sceneLightSettings() { return this._sceneLightSettings?.values(); }
|
|
51
|
+
/** set the scene lighting from a specific scene. Will disable any previously enabled lighting settings */
|
|
52
|
+
enable(sourceId) {
|
|
53
|
+
if (sourceId instanceof AssetReference)
|
|
54
|
+
sourceId = sourceId.uri;
|
|
55
|
+
const settings = this._sceneLightSettings?.get(sourceId);
|
|
56
|
+
if (!settings) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (debug)
|
|
60
|
+
console.log("Enable scene light settings", sourceId, settings);
|
|
61
|
+
if (sourceId !== this._currentLightSettingsId && this._currentLightSettingsId) {
|
|
62
|
+
this.disable(this._currentLightSettingsId);
|
|
63
|
+
}
|
|
64
|
+
this._currentLightSettingsId = sourceId;
|
|
65
|
+
settings.enabled = true;
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
/** disable the lighting of a specific scene, will only have any effect if it is currently active */
|
|
69
|
+
disable(sourceId) {
|
|
70
|
+
if (sourceId instanceof AssetReference)
|
|
71
|
+
sourceId = sourceId.uri;
|
|
72
|
+
if (sourceId === null || sourceId === undefined)
|
|
73
|
+
return false;
|
|
74
|
+
const settings = this._sceneLightSettings?.get(sourceId);
|
|
75
|
+
if (!settings) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (debug)
|
|
79
|
+
console.log("Disable scene light settings", sourceId, settings);
|
|
80
|
+
settings.enabled = false;
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
/** Disables the currently active scene lighting (if any), returns the id of the previously active lighting */
|
|
84
|
+
disableCurrent() {
|
|
85
|
+
if (this._currentLightSettingsId) {
|
|
86
|
+
const prev = this._currentLightSettingsId;
|
|
87
|
+
this.disable(this._currentLightSettingsId);
|
|
88
|
+
return prev;
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
/** @internal */
|
|
93
|
+
internalRegisterSceneLightSettings(sceneLightSettings) {
|
|
48
94
|
const sourceId = sceneLightSettings.sourceId;
|
|
49
95
|
if (!sourceId) {
|
|
50
96
|
console.error("Missing source id for scene light settings, can not register:", sceneLightSettings);
|
|
51
97
|
return;
|
|
52
98
|
}
|
|
53
99
|
if (debug)
|
|
54
|
-
console.log("Register
|
|
55
|
-
if (!this.
|
|
56
|
-
this.
|
|
57
|
-
this.
|
|
100
|
+
console.log("Register " + sceneLightSettings?.sourceId + " lighting", sceneLightSettings);
|
|
101
|
+
if (!this._sceneLightSettings)
|
|
102
|
+
this._sceneLightSettings = new Map();
|
|
103
|
+
this._sceneLightSettings.set(sourceId, sceneLightSettings);
|
|
58
104
|
}
|
|
59
|
-
|
|
105
|
+
/** @internal */
|
|
106
|
+
internalUnregisterSceneLightSettings(sceneLightSettings) {
|
|
107
|
+
const sourceId = sceneLightSettings.sourceId;
|
|
108
|
+
if (!sourceId) {
|
|
109
|
+
console.error("Missing source id for scene light settings, can not unregister:", sceneLightSettings);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (debug)
|
|
113
|
+
console.log("Unregister " + sceneLightSettings?.sourceId + " lighting", sceneLightSettings);
|
|
114
|
+
if (!this._sceneLightSettings)
|
|
115
|
+
return;
|
|
116
|
+
this._sceneLightSettings.delete(sourceId);
|
|
117
|
+
}
|
|
118
|
+
/** @internal */
|
|
119
|
+
internalRegisterReflection(sourceId, reflectionTexture) {
|
|
60
120
|
if (debug)
|
|
61
121
|
console.log("Register reflection", sourceId, reflectionTexture);
|
|
62
122
|
const h = new LightData(this.context, reflectionTexture, 1);
|
|
63
123
|
this._lighting[sourceId] = h;
|
|
64
124
|
}
|
|
65
|
-
|
|
125
|
+
/** @internal */
|
|
126
|
+
internalGetReflection(sourceId) {
|
|
66
127
|
return this._lighting[sourceId];
|
|
67
128
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
129
|
+
__currentReflectionId = null;
|
|
130
|
+
/** @internal */
|
|
131
|
+
internalEnableReflection(sourceId) {
|
|
132
|
+
this.__currentReflectionId = sourceId;
|
|
133
|
+
const settings = this._sceneLightSettings?.get(sourceId);
|
|
72
134
|
if (debug) {
|
|
73
135
|
console.log("Enable reflection", sourceId, settings ? AmbientMode[settings.ambientMode] : "Unknown ambient mode");
|
|
74
136
|
}
|
|
@@ -76,10 +138,10 @@ export class RendererData {
|
|
|
76
138
|
case AmbientMode.Skybox:
|
|
77
139
|
case AmbientMode.Custom:
|
|
78
140
|
// only set environment reflection when ambient mode is skybox or custom
|
|
79
|
-
const existing = this.
|
|
141
|
+
const existing = this.internalGetReflection(sourceId);
|
|
80
142
|
if (existing && existing.Source) {
|
|
81
143
|
if (debug)
|
|
82
|
-
console.log("Setting environment reflection", existing
|
|
144
|
+
console.log("Setting environment reflection", existing);
|
|
83
145
|
const scene = this.context.scene;
|
|
84
146
|
const tex = existing.Source;
|
|
85
147
|
tex.encoding = sRGBEncoding;
|
|
@@ -119,13 +181,20 @@ export class RendererData {
|
|
|
119
181
|
}
|
|
120
182
|
}
|
|
121
183
|
}
|
|
122
|
-
|
|
123
|
-
|
|
184
|
+
/** @internal */
|
|
185
|
+
internalDisableReflection(sourceId) {
|
|
186
|
+
if (sourceId && sourceId !== this.__currentReflectionId) {
|
|
187
|
+
if (debug)
|
|
188
|
+
console.log("Not disabling reflection for", sourceId, "because it is not the current light settings id", this.__currentReflectionId);
|
|
124
189
|
return;
|
|
190
|
+
}
|
|
191
|
+
if (debug)
|
|
192
|
+
console.log("Disable reflection", sourceId);
|
|
125
193
|
const scene = this.context.scene;
|
|
126
194
|
scene.environment = null;
|
|
127
195
|
}
|
|
128
|
-
|
|
196
|
+
/** @internal */
|
|
197
|
+
async internalGetSceneLightingData(sourceId) {
|
|
129
198
|
if (debug)
|
|
130
199
|
console.log("GET SCENE LIGHT DATA", sourceId);
|
|
131
200
|
// const existing = this.getReflection(sourceId);
|
|
@@ -139,7 +208,7 @@ export class RendererData {
|
|
|
139
208
|
return this._waitPromise;
|
|
140
209
|
this._waitPromise = new Promise((res, _rej) => {
|
|
141
210
|
let interval = setInterval(async () => {
|
|
142
|
-
const ex = this.
|
|
211
|
+
const ex = this.internalGetReflection(sourceId);
|
|
143
212
|
if (ex) {
|
|
144
213
|
clearInterval(interval);
|
|
145
214
|
res(ex.getSphericalHarmonicsArray(this.environmentIntensity ?? 1));
|
|
@@ -180,7 +249,8 @@ export class LightData {
|
|
|
180
249
|
const size = Math.min(reflection.image.width, 512);
|
|
181
250
|
const target = new WebGLCubeRenderTarget(size);
|
|
182
251
|
rt = target.fromEquirectangularTexture(this._context.renderer, reflection);
|
|
183
|
-
this.
|
|
252
|
+
// Not sure why we did assign the resulting texture here again but this causes rendering to break when toggling env lighting (e.g. on website) because this texture will then be set as the scene.environment
|
|
253
|
+
// this._source = rt.texture;
|
|
184
254
|
}
|
|
185
255
|
this._sphericalHarmonicsArray = [];
|
|
186
256
|
if (rt) {
|
|
@@ -190,13 +260,15 @@ export class LightData {
|
|
|
190
260
|
// console.log(intensityFactor, lightFactor);
|
|
191
261
|
this._sphericalHarmonics = sampledProbe.sh;
|
|
192
262
|
this._sphericalHarmonicsArray = this._sphericalHarmonics.toArray();
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
this._sphericalHarmonicsArray
|
|
263
|
+
if (this._sphericalHarmonicsArray) {
|
|
264
|
+
const factor = ((intensityFactor) / (Math.PI * .5));
|
|
265
|
+
for (let i = 0; i < this._sphericalHarmonicsArray.length; i++) {
|
|
266
|
+
this._sphericalHarmonicsArray[i] *= factor;
|
|
267
|
+
}
|
|
268
|
+
sampledProbe.sh.scale(lightFactor);
|
|
269
|
+
if (this._source)
|
|
270
|
+
return { array: this._sphericalHarmonicsArray, texture: this._source, lightProbe: sampledProbe };
|
|
196
271
|
}
|
|
197
|
-
sampledProbe.sh.scale(lightFactor);
|
|
198
|
-
if (this._source)
|
|
199
|
-
return { array: this._sphericalHarmonicsArray, texture: this._source, lightProbe: sampledProbe };
|
|
200
272
|
}
|
|
201
273
|
}
|
|
202
274
|
catch (err) {
|
|
@@ -205,4 +277,4 @@ export class LightData {
|
|
|
205
277
|
return null;
|
|
206
278
|
}
|
|
207
279
|
}
|
|
208
|
-
//# sourceMappingURL=
|
|
280
|
+
//# sourceMappingURL=engine_scenelighting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine_scenelighting.js","sourceRoot":"","sources":["../../src/engine/engine_scenelighting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import { GLTF } from "three/examples/jsm/loaders/GLTFLoader";
|
|
2
2
|
import { Object3D } from "three";
|
|
3
3
|
import { Context } from "./engine_setup";
|
|
4
|
-
import { SourceIdentifier } from "./engine_types";
|
|
5
|
-
export type Constructor<T> = {
|
|
6
|
-
new (...args: any[]): T;
|
|
7
|
-
};
|
|
4
|
+
import { ConstructorConcrete, SourceIdentifier } from "./engine_types";
|
|
8
5
|
export declare type NodeToObjectMap = {
|
|
9
6
|
[nodeId: string]: Object3D;
|
|
10
7
|
};
|
|
@@ -34,12 +31,12 @@ export interface ITypeSerializer {
|
|
|
34
31
|
* }
|
|
35
32
|
*/
|
|
36
33
|
export declare abstract class TypeSerializer implements ITypeSerializer {
|
|
37
|
-
constructor(type:
|
|
34
|
+
constructor(type: ConstructorConcrete<any> | ConstructorConcrete<any>[]);
|
|
38
35
|
abstract onSerialize(data: any, context: SerializationContext): any | void;
|
|
39
36
|
abstract onDeserialize(data: any, context: SerializationContext): any | void;
|
|
40
37
|
}
|
|
41
38
|
export interface ITypeInformation {
|
|
42
|
-
type?:
|
|
39
|
+
type?: ConstructorConcrete<any>;
|
|
43
40
|
}
|
|
44
41
|
/** holds information if a field was undefined before serialization. This gives us info if we might want to warn the user about missing attributes */
|
|
45
42
|
export declare class ImplementationInformation {
|
|
@@ -61,14 +58,14 @@ export declare class SerializationContext {
|
|
|
61
58
|
objectToNode?: ObjectToNodeMap;
|
|
62
59
|
context?: Context;
|
|
63
60
|
path?: string;
|
|
64
|
-
type?:
|
|
61
|
+
type?: ConstructorConcrete<any>;
|
|
65
62
|
/** holds information if a field was undefined before serialization. This gives us info if we might want to warn the user about missing attributes */
|
|
66
63
|
implementationInformation?: ImplementationInformation;
|
|
67
64
|
constructor(root: THREE.Object3D);
|
|
68
65
|
}
|
|
69
66
|
export interface ISerializable {
|
|
70
67
|
$serializedTypes?: {
|
|
71
|
-
[key: string]:
|
|
68
|
+
[key: string]: ConstructorConcrete<any> | ITypeInformation | null;
|
|
72
69
|
};
|
|
73
70
|
onBeforeDeserialize?(data: any, context: SerializationContext): void | undefined | boolean;
|
|
74
71
|
onBeforeDeserializeMember?(key: string, data: any, context: SerializationContext): void | undefined | boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_serialization_core.js","sourceRoot":"","sources":["../../src/engine/engine_serialization_core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine_serialization_core.js","sourceRoot":"","sources":["../../src/engine/engine_serialization_core.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { Color } from "three";
|
|
|
2
2
|
import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
|
|
3
3
|
import { SourceIdentifier } from "../engine_types";
|
|
4
4
|
import { Behaviour } from "../../engine-components/Component";
|
|
5
|
-
import { AmbientMode, DefaultReflectionMode } from "../
|
|
5
|
+
import { AmbientMode, DefaultReflectionMode } from "../engine_scenelighting";
|
|
6
6
|
import { Context } from "../engine_setup";
|
|
7
7
|
export declare const EXTENSION_NAME = "NEEDLE_lighting_settings";
|
|
8
8
|
export type LightingSettings = {
|
|
@@ -28,8 +28,10 @@ export declare class SceneLightSettings extends Behaviour {
|
|
|
28
28
|
environmentReflectionSource: DefaultReflectionMode;
|
|
29
29
|
private _hasReflection;
|
|
30
30
|
private _ambientLightObj?;
|
|
31
|
+
private _hemisphereLightObj?;
|
|
31
32
|
private _lightProbeObj?;
|
|
32
33
|
awake(): void;
|
|
34
|
+
onDestroy(): void;
|
|
33
35
|
onEnable(): void;
|
|
34
36
|
onDisable(): void;
|
|
35
37
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AmbientLight, Color, HemisphereLight, Object3D } from "three";
|
|
2
2
|
import { Behaviour, GameObject } from "../../engine-components/Component";
|
|
3
|
-
import { AmbientMode, DefaultReflectionMode } from "../
|
|
3
|
+
import { AmbientMode, DefaultReflectionMode } from "../engine_scenelighting";
|
|
4
4
|
import { LightmapType } from "./NEEDLE_lightmaps";
|
|
5
5
|
import { getParam } from "../engine_utils";
|
|
6
|
+
import { ContextEvent, ContextRegistry } from "../engine_context_registry";
|
|
6
7
|
export const EXTENSION_NAME = "NEEDLE_lighting_settings";
|
|
7
8
|
const debug = getParam("debugenvlight");
|
|
8
9
|
export class NEEDLE_lighting_settings {
|
|
@@ -23,7 +24,7 @@ export class NEEDLE_lighting_settings {
|
|
|
23
24
|
const ext = extensions[EXTENSION_NAME];
|
|
24
25
|
if (ext) {
|
|
25
26
|
if (debug)
|
|
26
|
-
console.log("
|
|
27
|
+
console.log("Loaded \"" + this.name + "\", src: \"" + this.sourceId + "\"", ext);
|
|
27
28
|
let settings = undefined;
|
|
28
29
|
// If the result scene has only one child we add the LightingSettingsComponent to that child
|
|
29
30
|
if (_result.scene.children.length === 1) {
|
|
@@ -33,7 +34,7 @@ export class NEEDLE_lighting_settings {
|
|
|
33
34
|
// if the scene already has multiple children we add it as a new object
|
|
34
35
|
else {
|
|
35
36
|
const lightSettings = new Object3D();
|
|
36
|
-
lightSettings.name = "
|
|
37
|
+
lightSettings.name = "LightSettings " + this.sourceId;
|
|
37
38
|
_result.scene.add(lightSettings);
|
|
38
39
|
settings = GameObject.addNewComponent(lightSettings, SceneLightSettings, false);
|
|
39
40
|
}
|
|
@@ -44,13 +45,17 @@ export class NEEDLE_lighting_settings {
|
|
|
44
45
|
settings.ambientTrilight = ext.ambientTrilight.map(c => new Color().fromArray(c));
|
|
45
46
|
settings.ambientMode = ext.ambientMode;
|
|
46
47
|
settings.environmentReflectionSource = ext.environmentReflectionSource;
|
|
47
|
-
if (this.context)
|
|
48
|
-
this.context.rendererData.registerSceneLightSettings(settings);
|
|
49
48
|
}
|
|
50
49
|
}
|
|
51
50
|
return null;
|
|
52
51
|
}
|
|
53
52
|
}
|
|
53
|
+
ContextRegistry.registerCallback(ContextEvent.ContextCreated, e => {
|
|
54
|
+
const ctx = e.context;
|
|
55
|
+
const lightingSettings = GameObject.findObjectOfType(SceneLightSettings, ctx);
|
|
56
|
+
if (lightingSettings?.sourceId)
|
|
57
|
+
ctx.sceneLighting.enable(lightingSettings.sourceId);
|
|
58
|
+
});
|
|
54
59
|
// exists once per gltf scene root (if it contains reflection)
|
|
55
60
|
// when enabled it does currently automatically set the reflection
|
|
56
61
|
// this might not be desireable
|
|
@@ -62,6 +67,7 @@ export class SceneLightSettings extends Behaviour {
|
|
|
62
67
|
environmentReflectionSource = DefaultReflectionMode.Skybox;
|
|
63
68
|
_hasReflection = false;
|
|
64
69
|
_ambientLightObj;
|
|
70
|
+
_hemisphereLightObj;
|
|
65
71
|
// used when skybox is used to support ambient intensity for "non custom shaders"
|
|
66
72
|
_lightProbeObj;
|
|
67
73
|
awake() {
|
|
@@ -70,10 +76,14 @@ export class SceneLightSettings extends Behaviour {
|
|
|
70
76
|
const tex = this.context.lightmaps.tryGet(this.sourceId, type, 0);
|
|
71
77
|
this._hasReflection = tex !== null && tex !== undefined;
|
|
72
78
|
if (tex)
|
|
73
|
-
this.context.
|
|
79
|
+
this.context.sceneLighting.internalRegisterReflection(this.sourceId, tex);
|
|
74
80
|
}
|
|
81
|
+
this.enabled = false;
|
|
82
|
+
this.context.sceneLighting.internalRegisterSceneLightSettings(this);
|
|
75
83
|
if (debug) {
|
|
76
84
|
window.addEventListener("keydown", evt => {
|
|
85
|
+
if (this.destroyed)
|
|
86
|
+
return;
|
|
77
87
|
switch (evt.key) {
|
|
78
88
|
case "l":
|
|
79
89
|
this.enabled = !this.enabled;
|
|
@@ -82,19 +92,17 @@ export class SceneLightSettings extends Behaviour {
|
|
|
82
92
|
});
|
|
83
93
|
}
|
|
84
94
|
}
|
|
95
|
+
onDestroy() {
|
|
96
|
+
this.context.sceneLighting.internalUnregisterSceneLightSettings(this);
|
|
97
|
+
}
|
|
85
98
|
onEnable() {
|
|
86
|
-
const isActive = this.context.mainCameraComponent?.sourceId === this.sourceId;
|
|
87
99
|
if (debug)
|
|
88
|
-
console.
|
|
89
|
-
if (!isActive) {
|
|
90
|
-
if (debug)
|
|
91
|
-
console.warn("This environment light is not active??!", this.context.mainCameraComponent?.sourceId);
|
|
92
|
-
this.enabled = false;
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
100
|
+
console.warn("💡🟡 >>> Enable lighting", this.sourceId, this);
|
|
95
101
|
if (this.ambientMode == AmbientMode.Flat) {
|
|
96
102
|
if (this.ambientLight && !this._ambientLightObj) {
|
|
97
103
|
this._ambientLightObj = new AmbientLight(this.ambientLight, this.ambientIntensity);
|
|
104
|
+
if (debug)
|
|
105
|
+
console.log("Created ambient light", this.sourceId, this._ambientLightObj);
|
|
98
106
|
}
|
|
99
107
|
if (this._ambientLightObj) {
|
|
100
108
|
this.gameObject.add(this._ambientLightObj);
|
|
@@ -106,17 +114,19 @@ export class SceneLightSettings extends Behaviour {
|
|
|
106
114
|
if (this.ambientTrilight) {
|
|
107
115
|
const ground = this.ambientTrilight[0];
|
|
108
116
|
const sky = this.ambientTrilight[this.ambientTrilight.length - 1];
|
|
109
|
-
|
|
110
|
-
this.gameObject.add(
|
|
117
|
+
this._hemisphereLightObj = new HemisphereLight(sky, ground, this.ambientIntensity);
|
|
118
|
+
this.gameObject.add(this._hemisphereLightObj);
|
|
111
119
|
}
|
|
112
120
|
}
|
|
113
121
|
else {
|
|
114
122
|
if (this._ambientLightObj)
|
|
115
123
|
this._ambientLightObj.removeFromParent();
|
|
124
|
+
if (this._hemisphereLightObj)
|
|
125
|
+
this._hemisphereLightObj.removeFromParent();
|
|
116
126
|
// create light probe object
|
|
117
127
|
if (!this._lightProbeObj) {
|
|
118
128
|
if (this.sourceId) {
|
|
119
|
-
this.context.
|
|
129
|
+
this.context.sceneLighting.internalGetSceneLightingData(this.sourceId).then(data => {
|
|
120
130
|
if (!data)
|
|
121
131
|
return;
|
|
122
132
|
this._lightProbeObj = data.lightProbe;
|
|
@@ -135,17 +145,19 @@ export class SceneLightSettings extends Behaviour {
|
|
|
135
145
|
}
|
|
136
146
|
}
|
|
137
147
|
if (this.sourceId)
|
|
138
|
-
this.context.
|
|
148
|
+
this.context.sceneLighting.internalEnableReflection(this.sourceId);
|
|
139
149
|
}
|
|
140
150
|
onDisable() {
|
|
141
151
|
if (debug)
|
|
142
|
-
console.
|
|
152
|
+
console.warn("💡⚫ <<< Disable lighting:", this.sourceId, this);
|
|
143
153
|
if (this._lightProbeObj)
|
|
144
154
|
this._lightProbeObj.removeFromParent();
|
|
145
155
|
if (this._ambientLightObj)
|
|
146
156
|
this._ambientLightObj.removeFromParent();
|
|
157
|
+
if (this._hemisphereLightObj)
|
|
158
|
+
this._hemisphereLightObj.removeFromParent();
|
|
147
159
|
if (this.sourceId)
|
|
148
|
-
this.context.
|
|
160
|
+
this.context.sceneLighting.internalDisableReflection(this.sourceId);
|
|
149
161
|
}
|
|
150
162
|
}
|
|
151
163
|
//# sourceMappingURL=NEEDLE_lighting_settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NEEDLE_lighting_settings.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_lighting_settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGvE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"NEEDLE_lighting_settings.js","sourceRoot":"","sources":["../../../src/engine/extensions/NEEDLE_lighting_settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,7 +99,7 @@ export class CustomShader extends RawShaderMaterial {
|
|
|
99
99
|
console.error("Missing context");
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
const data = await context.
|
|
102
|
+
const data = await context.sceneLighting.internalGetSceneLightingData(this.identifier);
|
|
103
103
|
if (!data || !data.array) {
|
|
104
104
|
console.warn("Missing lighting data for custom shader, getSceneLightingData did not return anything");
|
|
105
105
|
return;
|
|
@@ -177,10 +177,10 @@ export class CustomShader extends RawShaderMaterial {
|
|
|
177
177
|
}
|
|
178
178
|
// this._lastFrame = context.time.frame;
|
|
179
179
|
if (this.uniforms["_TimeParameters"]) {
|
|
180
|
-
this.uniforms["_TimeParameters"].value = context.
|
|
180
|
+
this.uniforms["_TimeParameters"].value = context.sceneLighting.timeVec4;
|
|
181
181
|
}
|
|
182
182
|
else if (this.uniforms["_Time"]) {
|
|
183
|
-
this.uniforms["_Time"].value = context.
|
|
183
|
+
this.uniforms["_Time"].value = context.sceneLighting.timeVec4;
|
|
184
184
|
}
|
|
185
185
|
const mainLight = context.mainLight;
|
|
186
186
|
if (mainLight) {
|