@needle-tools/engine 3.44.1 → 3.44.2
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 +3 -0
- package/components.needle.json +1 -1
- package/dist/needle-engine.js +2923 -2914
- package/dist/needle-engine.light.js +2881 -2872
- package/dist/needle-engine.light.min.js +91 -91
- package/dist/needle-engine.light.umd.cjs +130 -130
- package/dist/needle-engine.min.js +100 -100
- package/dist/needle-engine.umd.cjs +130 -130
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +7 -6
- package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +2 -0
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js +14 -3
- package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingEffect.js +1 -1
- package/lib/engine-components/postprocessing/PostProcessingEffect.js.map +1 -1
- package/lib/engine-components/postprocessing/VolumeParameter.js +4 -4
- package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
- package/package.json +1 -1
- package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +7 -6
- package/src/engine-components/postprocessing/Effects/Tonemapping.ts +18 -3
- package/src/engine-components/postprocessing/PostProcessingEffect.ts +1 -1
- package/src/engine-components/postprocessing/VolumeParameter.ts +3 -4
|
@@ -24,7 +24,6 @@ export class ColorAdjustments extends PostProcessingEffect {
|
|
|
24
24
|
v = Math.pow(2.0, v);
|
|
25
25
|
return v;
|
|
26
26
|
};
|
|
27
|
-
this.postExposure.defaultValue = 0;
|
|
28
27
|
this.contrast.valueProcessor = (v) => {
|
|
29
28
|
let divisor = 1;
|
|
30
29
|
if (v > 0)
|
|
@@ -52,15 +51,17 @@ export class ColorAdjustments extends PostProcessingEffect {
|
|
|
52
51
|
if (this.context.renderer.toneMapping !== NoToneMapping && this.postExposure.overrideState)
|
|
53
52
|
this.context.renderer.toneMapping = NoToneMapping;
|
|
54
53
|
// find the ToneMapping effect because we need it to apply post exposure
|
|
55
|
-
|
|
56
|
-
if (!
|
|
57
|
-
|
|
54
|
+
let tonemappingEffect = this.postprocessingContext?.components.find(c => c instanceof ToneMappingEffect);
|
|
55
|
+
if (!tonemappingEffect) {
|
|
56
|
+
tonemappingEffect = new ToneMappingEffect();
|
|
57
|
+
this.postprocessingContext?.components.push(tonemappingEffect);
|
|
58
58
|
}
|
|
59
59
|
// We need this effect if someone uses ACES or AgX tonemapping;
|
|
60
60
|
// problem is that we CAN'T use this effect for the "Linear" case, the package expects that in this case you remove the effect
|
|
61
61
|
this.postExposure.onValueChanged = (v) => {
|
|
62
|
-
if (this.postExposure.overrideState)
|
|
63
|
-
|
|
62
|
+
if (this.postExposure.overrideState) {
|
|
63
|
+
tonemappingEffect.exposure.value = v;
|
|
64
|
+
}
|
|
64
65
|
};
|
|
65
66
|
const brightnesscontrast = new BrightnessContrastEffect();
|
|
66
67
|
this.contrast.onValueChanged = v => brightnesscontrast.contrast = v;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorAdjustments.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/ColorAdjustments.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAA6B,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,OAAO,gBAAiB,SAAQ,oBAAoB;IAEtD,IAAI,QAAQ;QACR,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAGQ,YAAY,GAAoB,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IAGvD,QAAQ,GAAoB,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IAGnD,QAAQ,GAAoB,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IAGnD,UAAU,GAAoB,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;IAE9D,IAAI;QACA,IAAI,CAAC,YAAa,CAAC,cAAc,GAAG,CAAC,CAAC,EAAE;YACpC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO,CAAC,CAAC;QACb,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ColorAdjustments.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/ColorAdjustments.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ type NEToneMappingModeNames = keyof typeof NEToneMappingMode;
|
|
|
11
11
|
export declare class ToneMappingEffect extends PostProcessingEffect {
|
|
12
12
|
get typeName(): string;
|
|
13
13
|
readonly mode: VolumeParameter;
|
|
14
|
+
readonly exposure: VolumeParameter;
|
|
15
|
+
/** Set the tonemapping mode to e.g. "agx" */
|
|
14
16
|
setMode(mode: NEToneMappingModeNames): this;
|
|
15
17
|
get isToneMapping(): boolean;
|
|
16
18
|
onEffectEnabled(): void;
|
|
@@ -62,6 +62,8 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
62
62
|
return "ToneMapping";
|
|
63
63
|
}
|
|
64
64
|
mode = new VolumeParameter(undefined);
|
|
65
|
+
exposure = new VolumeParameter(1);
|
|
66
|
+
/** Set the tonemapping mode to e.g. "agx" */
|
|
65
67
|
setMode(mode) {
|
|
66
68
|
const enumValue = NEToneMappingMode[mode];
|
|
67
69
|
if (enumValue === undefined) {
|
|
@@ -107,18 +109,27 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
107
109
|
const threeMode = toThreeToneMapping(newValue);
|
|
108
110
|
tonemapping.mode = threeToneMappingToEffectMode(threeMode);
|
|
109
111
|
if (debug)
|
|
110
|
-
console.log("ToneMapping mode changed to", newValue,
|
|
112
|
+
console.log("ToneMapping mode changed to", NEToneMappingMode[newValue], threeMode, tonemapping.mode);
|
|
111
113
|
};
|
|
112
114
|
if (debug)
|
|
113
|
-
console.log("Use ToneMapping", this.
|
|
115
|
+
console.log("Use ToneMapping", NEToneMappingMode[this.mode.value], threeMode, tonemapping.mode, "renderer.tonemapping: " + this.context.renderer.toneMapping);
|
|
116
|
+
this.exposure.onValueChanged = (newValue) => {
|
|
117
|
+
this.context.renderer.toneMappingExposure = newValue;
|
|
118
|
+
};
|
|
114
119
|
return tonemapping;
|
|
115
120
|
}
|
|
116
121
|
onBeforeRender() {
|
|
117
|
-
|
|
122
|
+
if (this.mode.overrideState)
|
|
123
|
+
this.context.renderer.toneMapping = toThreeToneMapping(this.mode.value);
|
|
124
|
+
if (this.exposure.overrideState)
|
|
125
|
+
this.context.renderer.toneMappingExposure = this.exposure.value;
|
|
118
126
|
}
|
|
119
127
|
}
|
|
120
128
|
__decorate([
|
|
121
129
|
serializable(VolumeParameter)
|
|
122
130
|
], ToneMappingEffect.prototype, "mode", void 0);
|
|
131
|
+
__decorate([
|
|
132
|
+
serializable(VolumeParameter)
|
|
133
|
+
], ToneMappingEffect.prototype, "exposure", void 0);
|
|
123
134
|
registerCustomEffectType("Tonemapping", ToneMappingEffect);
|
|
124
135
|
//# sourceMappingURL=Tonemapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tonemapping.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Tonemapping.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,EAAiB,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAEzI,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAwB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAGpC,IAAK,iBAMJ;AAND,WAAK,iBAAiB;IAClB,yDAAQ,CAAA;IACR,+DAAW,CAAA;IACX,yDAAQ,CAAA;IACR,uDAAO,CAAA;IACP,6EAAkB,CAAA;AACtB,CAAC,EANI,iBAAiB,KAAjB,iBAAiB,QAMrB;AAKD,SAAS,kBAAkB,CAAC,IAAmC;IAC3D,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,iBAAiB,CAAC;QAC7B,KAAK,iBAAiB,CAAC,OAAO;YAC1B,OAAO,mBAAmB,CAAC;QAC/B,KAAK,iBAAiB,CAAC,IAAI;YACvB,OAAO,qBAAqB,CAAC;QACjC,KAAK,iBAAiB,CAAC,GAAG;YACtB,OAAO,cAAc,CAAC;QAC1B,KAAK,iBAAiB,CAAC,cAAc;YACjC,OAAO,kBAAkB,CAAC;QAC9B;YACI,OAAO,kBAAkB,CAAC;KACjC;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAwB;IAClD,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;QACtD,KAAK,qBAAqB,CAAC,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAC1D,KAAK,cAAc,CAAC,CAAC,OAAO,iBAAiB,CAAC,GAAG,CAAC;QAClD,KAAK,kBAAkB,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC;QAC1D,KAAK,mBAAmB,CAAC,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC;QAC3D,OAAO,CAAC,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC;KAC1C;AAEL,CAAC;AAGD,SAAS,4BAA4B,CAAC,IAAwB;IAC1D,QAAQ,IAAI,EAAE;QACV,KAAK,iBAAiB,CAAC,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC;QACtD,KAAK,qBAAqB,CAAC,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC;QAC/D,KAAK,cAAc,CAAC,CAAC,OAAO,eAAe,CAAC,GAAG,CAAC;QAChD,KAAK,kBAAkB,CAAC,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC;QACxD,KAAK,mBAAmB,CAAC,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC;QAC1D,OAAO,CAAC,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC;KAC1C;AACL,CAAC;AAGD,MAAM,OAAO,iBAAkB,SAAQ,oBAAoB;IAEvD,IAAI,QAAQ;QACR,OAAO,aAAa,CAAC;IACzB,CAAC;IAGQ,IAAI,GAAoB,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Tonemapping.js","sourceRoot":"","sources":["../../../../src/engine-components/postprocessing/Effects/Tonemapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ export class PostProcessingEffect extends Component {
|
|
|
45
45
|
const value = params[key];
|
|
46
46
|
const param = this[key];
|
|
47
47
|
if (param instanceof VolumeParameter) {
|
|
48
|
-
param.value
|
|
48
|
+
param.initialize(value);
|
|
49
49
|
}
|
|
50
50
|
// allow assigning values to properties that are not VolumeParameters
|
|
51
51
|
// this is useful when effects are created in code
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostProcessingEffect.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/PostProcessingEffect.ts"],"names":[],"mappings":";;;;;;AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,wBAAwB,EAA0B,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAcpC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAgB,oBAAqB,SAAQ,SAAS;IAExD,IAAI,sBAAsB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAE7C,YAAY,SAAc,SAAS;QAC/B,KAAK,EAAE,CAAC;QACR,IAAI,MAAM,EAAE;YACR,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,KAAK,YAAY,eAAe,EAAE;oBAClC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"PostProcessingEffect.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/PostProcessingEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,9 @@ export class VolumeParameter {
|
|
|
39
39
|
return this._valueRaw;
|
|
40
40
|
}
|
|
41
41
|
set value(val) {
|
|
42
|
+
// When a user creates an effect and then just sets a VolumeParameter via `effect.param.value` we want to use this value as the initial value
|
|
43
|
+
if (!this.isInitialized)
|
|
44
|
+
this.initialize(val);
|
|
42
45
|
this.processValue(val, false);
|
|
43
46
|
}
|
|
44
47
|
_value;
|
|
@@ -89,9 +92,6 @@ export class VolumeParameter {
|
|
|
89
92
|
if (this.onValueChanged) {
|
|
90
93
|
this.onValueChanged(val, oldValue, this);
|
|
91
94
|
}
|
|
92
|
-
else if (debug) {
|
|
93
|
-
console.log("VolumeParameter: onValueChanged not set");
|
|
94
|
-
}
|
|
95
95
|
}
|
|
96
96
|
testIfValueChanged(newValue) {
|
|
97
97
|
if (this._valueRaw === newValue)
|
|
@@ -124,7 +124,7 @@ class VolumeParameterSerializer extends TypeSerializer {
|
|
|
124
124
|
}
|
|
125
125
|
if (typeof data === "object" && "value" in data) {
|
|
126
126
|
const value = data.value;
|
|
127
|
-
parameter.value
|
|
127
|
+
parameter.initialize(value);
|
|
128
128
|
parameter.overrideState = data.overrideState;
|
|
129
129
|
}
|
|
130
130
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeParameter.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeParameter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VolumeParameter.js","sourceRoot":"","sources":["../../../src/engine-components/postprocessing/VolumeParameter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@needle-tools/engine",
|
|
3
|
-
"version": "3.44.
|
|
3
|
+
"version": "3.44.2",
|
|
4
4
|
"description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
|
|
5
5
|
"main": "dist/needle-engine.umd.cjs",
|
|
6
6
|
"type": "module",
|
|
@@ -30,7 +30,6 @@ export class ColorAdjustments extends PostProcessingEffect {
|
|
|
30
30
|
v = Math.pow(2.0, v);
|
|
31
31
|
return v;
|
|
32
32
|
}
|
|
33
|
-
this.postExposure.defaultValue = 0;
|
|
34
33
|
|
|
35
34
|
this.contrast.valueProcessor = (v: number) => {
|
|
36
35
|
let divisor = 1;
|
|
@@ -62,16 +61,18 @@ export class ColorAdjustments extends PostProcessingEffect {
|
|
|
62
61
|
|
|
63
62
|
|
|
64
63
|
// find the ToneMapping effect because we need it to apply post exposure
|
|
65
|
-
|
|
66
|
-
if(!
|
|
67
|
-
|
|
64
|
+
let tonemappingEffect = this.postprocessingContext?.components.find(c => c instanceof ToneMappingEffect) as ToneMappingEffect;
|
|
65
|
+
if (!tonemappingEffect) {
|
|
66
|
+
tonemappingEffect = new ToneMappingEffect();
|
|
67
|
+
this.postprocessingContext?.components.push(tonemappingEffect);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
// We need this effect if someone uses ACES or AgX tonemapping;
|
|
71
71
|
// problem is that we CAN'T use this effect for the "Linear" case, the package expects that in this case you remove the effect
|
|
72
72
|
this.postExposure!.onValueChanged = (v) => {
|
|
73
|
-
if (this.postExposure.overrideState)
|
|
74
|
-
|
|
73
|
+
if (this.postExposure.overrideState) {
|
|
74
|
+
tonemappingEffect.exposure.value = v;
|
|
75
|
+
}
|
|
75
76
|
};
|
|
76
77
|
|
|
77
78
|
const brightnesscontrast = new BrightnessContrastEffect();
|
|
@@ -73,6 +73,10 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
73
73
|
@serializable(VolumeParameter)
|
|
74
74
|
readonly mode: VolumeParameter = new VolumeParameter(undefined);
|
|
75
75
|
|
|
76
|
+
@serializable(VolumeParameter)
|
|
77
|
+
readonly exposure: VolumeParameter = new VolumeParameter(1);
|
|
78
|
+
|
|
79
|
+
/** Set the tonemapping mode to e.g. "agx" */
|
|
76
80
|
setMode(mode: NEToneMappingModeNames) {
|
|
77
81
|
const enumValue = NEToneMappingMode[mode as NEToneMappingModeNames];
|
|
78
82
|
if (enumValue === undefined) {
|
|
@@ -94,6 +98,7 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
94
98
|
}
|
|
95
99
|
|
|
96
100
|
onCreateEffect(): EffectProviderResult | undefined {
|
|
101
|
+
|
|
97
102
|
// TODO: this should be done in the PostProcessingHandler
|
|
98
103
|
if (this.postprocessingContext) {
|
|
99
104
|
for (const other of this.postprocessingContext.components) {
|
|
@@ -107,6 +112,7 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
107
112
|
}
|
|
108
113
|
}
|
|
109
114
|
|
|
115
|
+
|
|
110
116
|
// ensure the effect tonemapping value is initialized
|
|
111
117
|
if (this.mode.isInitialized == false) {
|
|
112
118
|
const init = threeToNeToneMapping(this.context.renderer.toneMapping);
|
|
@@ -120,15 +126,24 @@ export class ToneMappingEffect extends PostProcessingEffect {
|
|
|
120
126
|
this.mode.onValueChanged = (newValue) => {
|
|
121
127
|
const threeMode = toThreeToneMapping(newValue);
|
|
122
128
|
tonemapping.mode = threeToneMappingToEffectMode(threeMode);
|
|
123
|
-
if (debug) console.log("ToneMapping mode changed to", newValue,
|
|
129
|
+
if (debug) console.log("ToneMapping mode changed to", NEToneMappingMode[newValue], threeMode, tonemapping.mode);
|
|
124
130
|
};
|
|
125
|
-
if (debug) console.log("Use ToneMapping", this.
|
|
131
|
+
if (debug) console.log("Use ToneMapping", NEToneMappingMode[this.mode.value], threeMode, tonemapping.mode, "renderer.tonemapping: " + this.context.renderer.toneMapping);
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
this.exposure.onValueChanged = (newValue) => {
|
|
135
|
+
this.context.renderer.toneMappingExposure = newValue;
|
|
136
|
+
};
|
|
137
|
+
|
|
126
138
|
return tonemapping;
|
|
127
139
|
}
|
|
128
140
|
|
|
129
141
|
|
|
130
142
|
onBeforeRender(): void {
|
|
131
|
-
|
|
143
|
+
if (this.mode.overrideState)
|
|
144
|
+
this.context.renderer.toneMapping = toThreeToneMapping(this.mode.value);
|
|
145
|
+
if (this.exposure.overrideState)
|
|
146
|
+
this.context.renderer.toneMappingExposure = this.exposure.value;
|
|
132
147
|
}
|
|
133
148
|
|
|
134
149
|
|
|
@@ -59,7 +59,7 @@ export abstract class PostProcessingEffect extends Component implements IEffectP
|
|
|
59
59
|
const value = params[key];
|
|
60
60
|
const param = this[key];
|
|
61
61
|
if (param instanceof VolumeParameter) {
|
|
62
|
-
param.value
|
|
62
|
+
param.initialize(value);
|
|
63
63
|
}
|
|
64
64
|
// allow assigning values to properties that are not VolumeParameters
|
|
65
65
|
// this is useful when effects are created in code
|
|
@@ -49,6 +49,8 @@ export class VolumeParameter {
|
|
|
49
49
|
return this._valueRaw;
|
|
50
50
|
}
|
|
51
51
|
set value(val: any) {
|
|
52
|
+
// When a user creates an effect and then just sets a VolumeParameter via `effect.param.value` we want to use this value as the initial value
|
|
53
|
+
if (!this.isInitialized) this.initialize(val);
|
|
52
54
|
this.processValue(val, false);
|
|
53
55
|
}
|
|
54
56
|
private _value: any;
|
|
@@ -108,9 +110,6 @@ export class VolumeParameter {
|
|
|
108
110
|
if (this.onValueChanged) {
|
|
109
111
|
this.onValueChanged(val, oldValue, this);
|
|
110
112
|
}
|
|
111
|
-
else if (debug) {
|
|
112
|
-
console.log("VolumeParameter: onValueChanged not set");
|
|
113
|
-
}
|
|
114
113
|
}
|
|
115
114
|
|
|
116
115
|
private testIfValueChanged(newValue: any): boolean {
|
|
@@ -147,7 +146,7 @@ class VolumeParameterSerializer extends TypeSerializer {
|
|
|
147
146
|
|
|
148
147
|
if (typeof data === "object" && "value" in data) {
|
|
149
148
|
const value = data.value;
|
|
150
|
-
parameter.value
|
|
149
|
+
parameter.initialize(value);
|
|
151
150
|
parameter.overrideState = data.overrideState;
|
|
152
151
|
}
|
|
153
152
|
else {
|