@base2datadesign/viewer-kit 0.1.1 → 0.1.3
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/dist/engine/types.d.ts +51 -0
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/systems/debugSystem.d.ts.map +1 -1
- package/dist/systems/debugSystem.js +32 -9
- package/dist/systems/environmentSystem.d.ts +1 -0
- package/dist/systems/environmentSystem.d.ts.map +1 -1
- package/dist/systems/environmentSystem.js +19 -0
- package/dist/systems/lightingSystem.d.ts +1 -0
- package/dist/systems/lightingSystem.d.ts.map +1 -1
- package/dist/systems/lightingSystem.js +27 -0
- package/dist/systems/postfxSystem.d.ts +5 -0
- package/dist/systems/postfxSystem.d.ts.map +1 -1
- package/dist/systems/postfxSystem.js +57 -4
- package/package.json +3 -3
package/dist/engine/types.d.ts
CHANGED
|
@@ -29,6 +29,11 @@ export type SkyHdrConfig = {
|
|
|
29
29
|
src: string;
|
|
30
30
|
exposure?: number;
|
|
31
31
|
rotationY?: number;
|
|
32
|
+
rotation?: {
|
|
33
|
+
yaw?: number;
|
|
34
|
+
pitch?: number;
|
|
35
|
+
roll?: number;
|
|
36
|
+
};
|
|
32
37
|
showBackground?: boolean;
|
|
33
38
|
showLighting?: boolean;
|
|
34
39
|
pmremResolution?: 256 | 512 | 1024;
|
|
@@ -43,6 +48,11 @@ export type SkyCubeConfig = {
|
|
|
43
48
|
nz: string;
|
|
44
49
|
exposure?: number;
|
|
45
50
|
rotationY?: number;
|
|
51
|
+
rotation?: {
|
|
52
|
+
yaw?: number;
|
|
53
|
+
pitch?: number;
|
|
54
|
+
roll?: number;
|
|
55
|
+
};
|
|
46
56
|
showBackground?: boolean;
|
|
47
57
|
showLighting?: boolean;
|
|
48
58
|
pmremResolution?: 256 | 512 | 1024;
|
|
@@ -82,6 +92,14 @@ export type LightingRigConfig = {
|
|
|
82
92
|
intensity: number;
|
|
83
93
|
position: [number, number, number];
|
|
84
94
|
};
|
|
95
|
+
shadow?: {
|
|
96
|
+
cameraSize?: number;
|
|
97
|
+
near?: number;
|
|
98
|
+
far?: number;
|
|
99
|
+
bias?: number;
|
|
100
|
+
radius?: number;
|
|
101
|
+
mapSize?: number;
|
|
102
|
+
};
|
|
85
103
|
};
|
|
86
104
|
export type PostFxConfig = {
|
|
87
105
|
ao?: {
|
|
@@ -91,12 +109,37 @@ export type PostFxConfig = {
|
|
|
91
109
|
distanceFalloff?: number;
|
|
92
110
|
halfRes?: boolean;
|
|
93
111
|
};
|
|
112
|
+
bloom?: {
|
|
113
|
+
enabled: boolean;
|
|
114
|
+
intensity?: number;
|
|
115
|
+
radius?: number;
|
|
116
|
+
threshold?: number;
|
|
117
|
+
smoothing?: number;
|
|
118
|
+
};
|
|
119
|
+
vignette?: {
|
|
120
|
+
enabled: boolean;
|
|
121
|
+
offset?: number;
|
|
122
|
+
darkness?: number;
|
|
123
|
+
};
|
|
94
124
|
};
|
|
95
125
|
export type SceneExtrasConfig = {
|
|
96
126
|
grid?: boolean;
|
|
97
127
|
ground?: boolean;
|
|
98
128
|
axes?: boolean;
|
|
99
129
|
origin?: boolean;
|
|
130
|
+
groundColor?: number;
|
|
131
|
+
groundRoughness?: number;
|
|
132
|
+
groundMetalness?: number;
|
|
133
|
+
groundSize?: number;
|
|
134
|
+
gridColor?: number;
|
|
135
|
+
gridColorSecondary?: number;
|
|
136
|
+
gridOpacity?: number;
|
|
137
|
+
gridDivisions?: number;
|
|
138
|
+
gridSize?: number;
|
|
139
|
+
gridHeightOffset?: number;
|
|
140
|
+
originColor?: number;
|
|
141
|
+
originSize?: number;
|
|
142
|
+
axesPosition?: [number, number, number];
|
|
100
143
|
};
|
|
101
144
|
export type RenderPresetDefinition = {
|
|
102
145
|
id: string;
|
|
@@ -104,6 +147,12 @@ export type RenderPresetDefinition = {
|
|
|
104
147
|
renderer?: RendererConfig;
|
|
105
148
|
sky?: SkyDefinition;
|
|
106
149
|
lighting?: LightingRigConfig;
|
|
150
|
+
interiorLights?: Array<{
|
|
151
|
+
position: [number, number, number];
|
|
152
|
+
intensity: number;
|
|
153
|
+
color?: string;
|
|
154
|
+
distance?: number;
|
|
155
|
+
}>;
|
|
107
156
|
postfx?: PostFxConfig;
|
|
108
157
|
sceneExtras?: SceneExtrasConfig;
|
|
109
158
|
};
|
|
@@ -123,6 +172,8 @@ export type ViewerSnapshot = {
|
|
|
123
172
|
};
|
|
124
173
|
postfx: {
|
|
125
174
|
aoEnabled: boolean;
|
|
175
|
+
bloomEnabled: boolean;
|
|
176
|
+
vignetteEnabled: boolean;
|
|
126
177
|
};
|
|
127
178
|
};
|
|
128
179
|
export type CameraState = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engine/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ViewerCreateOptions, ViewerHandle, ViewerSnapshot, CameraState, RenderPresetDefinition, PresetCatalog, } from "./engine/types";
|
|
1
|
+
export type { ViewerCreateOptions, ViewerHandle, ViewerSnapshot, CameraState, RenderPresetDefinition, PresetCatalog, LightingRigConfig, PostFxConfig, SceneExtrasConfig, SkyDefinition, SkyHdrConfig, SkyCubeConfig, } from "./engine/types";
|
|
2
2
|
export { createViewer } from "./engine/createViewer";
|
|
3
3
|
export { DEFAULT_PRESET_ID, DEFAULT_PRESETS } from "./presets/defaults";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debugSystem.d.ts","sourceRoot":"","sources":["../../src/systems/debugSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AASjF,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,KAAK,EAAE,KAAK,CAAC,KAAK;IAI9B,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"debugSystem.d.ts","sourceRoot":"","sources":["../../src/systems/debugSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AASjF,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAwB;gBAE3B,KAAK,EAAE,KAAK,CAAC,KAAK;IAI9B,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAkE3C,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,KAAK;CAed"}
|
|
@@ -15,11 +15,12 @@ export class DebugSystem {
|
|
|
15
15
|
const extras = { ...DEFAULT_EXTRAS, ...(preset.sceneExtras ?? {}) };
|
|
16
16
|
this.clear();
|
|
17
17
|
if (extras.ground) {
|
|
18
|
-
const
|
|
18
|
+
const size = extras.groundSize ?? 300;
|
|
19
|
+
const groundGeometry = new THREE.PlaneGeometry(size, size);
|
|
19
20
|
const groundMaterial = new THREE.MeshStandardMaterial({
|
|
20
|
-
color: 0xf5f5f5,
|
|
21
|
-
roughness: 0.75,
|
|
22
|
-
metalness: 0.0,
|
|
21
|
+
color: extras.groundColor ?? 0xf5f5f5,
|
|
22
|
+
roughness: extras.groundRoughness ?? 0.75,
|
|
23
|
+
metalness: extras.groundMetalness ?? 0.0,
|
|
23
24
|
toneMapped: false,
|
|
24
25
|
});
|
|
25
26
|
const ground = new THREE.Mesh(groundGeometry, groundMaterial);
|
|
@@ -29,18 +30,40 @@ export class DebugSystem {
|
|
|
29
30
|
this.add(ground);
|
|
30
31
|
}
|
|
31
32
|
if (extras.grid) {
|
|
32
|
-
const
|
|
33
|
-
|
|
33
|
+
const gridSize = extras.gridSize ?? 100;
|
|
34
|
+
const divisions = extras.gridDivisions ?? 50;
|
|
35
|
+
const gridHelper = new THREE.GridHelper(gridSize, divisions, extras.gridColor ?? 0xdedede, extras.gridColorSecondary ?? 0xeaeaea);
|
|
36
|
+
gridHelper.position.y = extras.gridHeightOffset ?? -0.09;
|
|
37
|
+
const gridOpacity = extras.gridOpacity;
|
|
38
|
+
if (typeof gridOpacity === "number") {
|
|
39
|
+
const material = gridHelper.material;
|
|
40
|
+
const applyOpacity = (mat) => {
|
|
41
|
+
mat.opacity = gridOpacity;
|
|
42
|
+
mat.transparent = gridOpacity < 1;
|
|
43
|
+
};
|
|
44
|
+
if (Array.isArray(material)) {
|
|
45
|
+
material.forEach(applyOpacity);
|
|
46
|
+
}
|
|
47
|
+
else if (material) {
|
|
48
|
+
applyOpacity(material);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
34
51
|
this.add(gridHelper);
|
|
35
52
|
}
|
|
36
53
|
if (extras.axes) {
|
|
37
54
|
const axes = new THREE.AxesHelper(3);
|
|
38
|
-
|
|
55
|
+
if (extras.axesPosition) {
|
|
56
|
+
axes.position.set(...extras.axesPosition);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
axes.position.set(-15, 0.1, -15);
|
|
60
|
+
}
|
|
39
61
|
this.add(axes);
|
|
40
62
|
}
|
|
41
63
|
if (extras.origin) {
|
|
42
|
-
const
|
|
43
|
-
const
|
|
64
|
+
const originSize = extras.originSize ?? 0.1;
|
|
65
|
+
const originGeometry = new THREE.SphereGeometry(originSize, 16, 16);
|
|
66
|
+
const originMaterial = new THREE.MeshBasicMaterial({ color: extras.originColor ?? 0x666666 });
|
|
44
67
|
const origin = new THREE.Mesh(originGeometry, originMaterial);
|
|
45
68
|
origin.position.set(0, 0, 0);
|
|
46
69
|
this.add(origin);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environmentSystem.d.ts","sourceRoot":"","sources":["../../src/systems/environmentSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAA8C,MAAM,iBAAiB,CAAC;AAEzH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,kBAAkB,CAAkD;IAC5E,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,KAAK,CAAwF;gBAEzF,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa;IAM5F,QAAQ,IAAI,gBAAgB;IAItB,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"environmentSystem.d.ts","sourceRoot":"","sources":["../../src/systems/environmentSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAA8C,MAAM,iBAAiB,CAAC;AAEzH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;IAC3C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,cAAc,CAAqC;IAE3D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,kBAAkB,CAAkD;IAC5E,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,KAAK,CAAwF;gBAEzF,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,aAAa;IAM5F,QAAQ,IAAI,gBAAgB;IAItB,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,OAAO,IAAI,IAAI;IAQf,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,gBAAgB;YA6CV,YAAY;YAaZ,WAAW;YAsDX,YAAY;IAoD1B,OAAO,CAAC,oBAAoB;CAY7B"}
|
|
@@ -70,6 +70,11 @@ export class EnvironmentSystem {
|
|
|
70
70
|
if (this.scene.environment === this.currentEnvironment) {
|
|
71
71
|
this.scene.environment = null;
|
|
72
72
|
}
|
|
73
|
+
const anyScene = this.scene;
|
|
74
|
+
if (anyScene.backgroundRotation?.set)
|
|
75
|
+
anyScene.backgroundRotation.set(0, 0, 0);
|
|
76
|
+
if (anyScene.environmentRotation?.set)
|
|
77
|
+
anyScene.environmentRotation.set(0, 0, 0);
|
|
73
78
|
if (this.currentBackground)
|
|
74
79
|
this.currentBackground.dispose();
|
|
75
80
|
if (this.currentEnvironment && this.currentEnvironment !== this.currentBackground) {
|
|
@@ -159,6 +164,7 @@ export class EnvironmentSystem {
|
|
|
159
164
|
if (typeof hdr.rotationY === "number") {
|
|
160
165
|
texture.rotation = hdr.rotationY;
|
|
161
166
|
}
|
|
167
|
+
this.applyRotationToScene(hdr.rotation, hdr.rotationY);
|
|
162
168
|
let environmentTexture = null;
|
|
163
169
|
if (lightingEnabled) {
|
|
164
170
|
if (usePmrem) {
|
|
@@ -207,6 +213,7 @@ export class EnvironmentSystem {
|
|
|
207
213
|
return;
|
|
208
214
|
}
|
|
209
215
|
texture.needsUpdate = true;
|
|
216
|
+
this.applyRotationToScene(cube.rotation, cube.rotationY);
|
|
210
217
|
let environmentTexture = null;
|
|
211
218
|
if (lightingEnabled) {
|
|
212
219
|
if (usePmrem) {
|
|
@@ -229,4 +236,16 @@ export class EnvironmentSystem {
|
|
|
229
236
|
}
|
|
230
237
|
this.state = { mode: "cube", backgroundEnabled, lightingEnabled };
|
|
231
238
|
}
|
|
239
|
+
applyRotationToScene(rotation, rotationY) {
|
|
240
|
+
const yaw = rotation?.yaw ?? rotationY ?? 0;
|
|
241
|
+
const pitch = rotation?.pitch ?? 0;
|
|
242
|
+
const roll = rotation?.roll ?? 0;
|
|
243
|
+
const anyScene = this.scene;
|
|
244
|
+
if (anyScene.backgroundRotation?.set) {
|
|
245
|
+
anyScene.backgroundRotation.set(pitch, yaw, roll);
|
|
246
|
+
}
|
|
247
|
+
if (anyScene.environmentRotation?.set) {
|
|
248
|
+
anyScene.environmentRotation.set(pitch, yaw, roll);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
232
251
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lightingSystem.d.ts","sourceRoot":"","sources":["../../src/systems/lightingSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAUjF,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,KAAK,EAAE,KAAK,CAAC,KAAK;IAI9B,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"lightingSystem.d.ts","sourceRoot":"","sources":["../../src/systems/lightingSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAqB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAUjF,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,KAAK,EAAE,KAAK,CAAC,KAAK;IAI9B,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAkD3C,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,eAAe;CAcxB"}
|
|
@@ -32,6 +32,9 @@ export class LightingSystem {
|
|
|
32
32
|
const light = new THREE.DirectionalLight(new THREE.Color(key.color), key.intensity);
|
|
33
33
|
light.position.set(...key.position);
|
|
34
34
|
light.castShadow = key.castShadow ?? false;
|
|
35
|
+
if (light.castShadow) {
|
|
36
|
+
this.configureShadow(light, config.shadow);
|
|
37
|
+
}
|
|
35
38
|
this.add(light);
|
|
36
39
|
}
|
|
37
40
|
const fill = config.fill ?? DEFAULT_LIGHTING.fill;
|
|
@@ -40,6 +43,15 @@ export class LightingSystem {
|
|
|
40
43
|
light.position.set(...fill.position);
|
|
41
44
|
this.add(light);
|
|
42
45
|
}
|
|
46
|
+
if (preset.interiorLights?.length) {
|
|
47
|
+
preset.interiorLights.forEach((interior) => {
|
|
48
|
+
const color = interior.color ? new THREE.Color(interior.color) : new THREE.Color("#ffffff");
|
|
49
|
+
const distance = typeof interior.distance === "number" ? interior.distance : 40;
|
|
50
|
+
const point = new THREE.PointLight(color, interior.intensity, distance);
|
|
51
|
+
point.position.set(...interior.position);
|
|
52
|
+
this.add(point);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
43
55
|
}
|
|
44
56
|
dispose() {
|
|
45
57
|
this.clear();
|
|
@@ -55,4 +67,19 @@ export class LightingSystem {
|
|
|
55
67
|
});
|
|
56
68
|
this.lights = [];
|
|
57
69
|
}
|
|
70
|
+
configureShadow(light, config) {
|
|
71
|
+
if (!light.shadow)
|
|
72
|
+
return;
|
|
73
|
+
const cameraSize = config?.cameraSize ?? 25;
|
|
74
|
+
light.shadow.camera.left = -cameraSize;
|
|
75
|
+
light.shadow.camera.right = cameraSize;
|
|
76
|
+
light.shadow.camera.top = cameraSize;
|
|
77
|
+
light.shadow.camera.bottom = -cameraSize;
|
|
78
|
+
light.shadow.camera.near = config?.near ?? 0.1;
|
|
79
|
+
light.shadow.camera.far = config?.far ?? 60;
|
|
80
|
+
const mapSize = config?.mapSize ?? 2048;
|
|
81
|
+
light.shadow.mapSize.set(mapSize, mapSize);
|
|
82
|
+
light.shadow.bias = config?.bias ?? -0.0001;
|
|
83
|
+
light.shadow.radius = config?.radius ?? 3;
|
|
84
|
+
}
|
|
58
85
|
}
|
|
@@ -7,6 +7,9 @@ export declare class PostFxSystem {
|
|
|
7
7
|
private composer;
|
|
8
8
|
private renderPass;
|
|
9
9
|
private aoPass;
|
|
10
|
+
private effectPass;
|
|
11
|
+
private bloomEffect;
|
|
12
|
+
private vignetteEffect;
|
|
10
13
|
private enabled;
|
|
11
14
|
constructor(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.PerspectiveCamera);
|
|
12
15
|
apply(config?: PostFxConfig): void;
|
|
@@ -15,6 +18,8 @@ export declare class PostFxSystem {
|
|
|
15
18
|
dispose(): void;
|
|
16
19
|
getState(): {
|
|
17
20
|
aoEnabled: boolean;
|
|
21
|
+
bloomEnabled: boolean;
|
|
22
|
+
vignetteEnabled: boolean;
|
|
18
23
|
};
|
|
19
24
|
}
|
|
20
25
|
//# sourceMappingURL=postfxSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postfxSystem.d.ts","sourceRoot":"","sources":["../../src/systems/postfxSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB;IAM9F,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"postfxSystem.d.ts","sourceRoot":"","sources":["../../src/systems/postfxSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,OAAO,CAAS;gBAEZ,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,iBAAiB;IAM9F,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;IA6ElC,MAAM,IAAI,IAAI;IAQd,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS3C,OAAO,IAAI,IAAI;IAaf,QAAQ,IAAI;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE;CAOpF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EffectComposer, RenderPass } from "postprocessing";
|
|
1
|
+
import { BloomEffect, EffectComposer, EffectPass, RenderPass, VignetteEffect } from "postprocessing";
|
|
2
2
|
import { N8AOPostPass } from "n8ao";
|
|
3
3
|
export class PostFxSystem {
|
|
4
4
|
renderer;
|
|
@@ -7,6 +7,9 @@ export class PostFxSystem {
|
|
|
7
7
|
composer = null;
|
|
8
8
|
renderPass = null;
|
|
9
9
|
aoPass = null;
|
|
10
|
+
effectPass = null;
|
|
11
|
+
bloomEffect = null;
|
|
12
|
+
vignetteEffect = null;
|
|
10
13
|
enabled = false;
|
|
11
14
|
constructor(renderer, scene, camera) {
|
|
12
15
|
this.renderer = renderer;
|
|
@@ -15,23 +18,47 @@ export class PostFxSystem {
|
|
|
15
18
|
}
|
|
16
19
|
apply(config) {
|
|
17
20
|
const ao = config?.ao;
|
|
18
|
-
const
|
|
21
|
+
const bloom = config?.bloom;
|
|
22
|
+
const vignette = config?.vignette;
|
|
23
|
+
const shouldEnable = Boolean(ao?.enabled || bloom?.enabled || vignette?.enabled);
|
|
19
24
|
if (!shouldEnable) {
|
|
20
25
|
this.enabled = false;
|
|
21
26
|
if (this.aoPass)
|
|
22
27
|
this.aoPass.enabled = false;
|
|
28
|
+
if (this.effectPass)
|
|
29
|
+
this.effectPass.enabled = false;
|
|
23
30
|
return;
|
|
24
31
|
}
|
|
25
32
|
if (!this.composer) {
|
|
26
33
|
this.composer = new EffectComposer(this.renderer);
|
|
27
34
|
this.renderPass = new RenderPass(this.scene, this.camera);
|
|
28
35
|
this.composer.addPass(this.renderPass);
|
|
36
|
+
}
|
|
37
|
+
if (!this.aoPass) {
|
|
29
38
|
this.aoPass = new N8AOPostPass(this.scene, this.camera, this.renderer.domElement.width, this.renderer.domElement.height);
|
|
30
39
|
this.composer.addPass(this.aoPass);
|
|
31
40
|
}
|
|
41
|
+
if (!this.bloomEffect) {
|
|
42
|
+
this.bloomEffect = new BloomEffect({
|
|
43
|
+
intensity: bloom?.intensity ?? 0.0,
|
|
44
|
+
radius: bloom?.radius ?? 0.85,
|
|
45
|
+
luminanceThreshold: bloom?.threshold ?? 1.0,
|
|
46
|
+
luminanceSmoothing: bloom?.smoothing ?? 0.03,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
if (!this.vignetteEffect) {
|
|
50
|
+
this.vignetteEffect = new VignetteEffect({
|
|
51
|
+
offset: vignette?.offset ?? 0.5,
|
|
52
|
+
darkness: vignette?.darkness ?? 0.5,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (!this.effectPass) {
|
|
56
|
+
this.effectPass = new EffectPass(this.camera, this.bloomEffect, this.vignetteEffect);
|
|
57
|
+
this.composer.addPass(this.effectPass);
|
|
58
|
+
}
|
|
32
59
|
this.enabled = true;
|
|
33
60
|
if (this.aoPass) {
|
|
34
|
-
this.aoPass.enabled =
|
|
61
|
+
this.aoPass.enabled = Boolean(ao?.enabled);
|
|
35
62
|
if (ao?.intensity !== undefined)
|
|
36
63
|
this.aoPass.configuration.intensity = ao.intensity;
|
|
37
64
|
if (ao?.radius !== undefined)
|
|
@@ -42,6 +69,25 @@ export class PostFxSystem {
|
|
|
42
69
|
this.aoPass.configuration.halfRes = ao.halfRes;
|
|
43
70
|
this.aoPass.firstFrame?.();
|
|
44
71
|
}
|
|
72
|
+
if (this.bloomEffect) {
|
|
73
|
+
this.bloomEffect.intensity = bloom?.enabled ? bloom?.intensity ?? 1.0 : 0.0;
|
|
74
|
+
if (bloom?.radius !== undefined) {
|
|
75
|
+
this.bloomEffect.mipmapBlurPass.radius = bloom.radius;
|
|
76
|
+
}
|
|
77
|
+
if (bloom?.threshold !== undefined)
|
|
78
|
+
this.bloomEffect.luminanceMaterial.threshold = bloom.threshold;
|
|
79
|
+
if (bloom?.smoothing !== undefined)
|
|
80
|
+
this.bloomEffect.luminanceMaterial.smoothing = bloom.smoothing;
|
|
81
|
+
}
|
|
82
|
+
if (this.vignetteEffect) {
|
|
83
|
+
const offset = vignette?.offset ?? 0.5;
|
|
84
|
+
const darkness = vignette?.enabled ? vignette.darkness ?? 0.5 : 0.0;
|
|
85
|
+
this.vignetteEffect.offset = offset;
|
|
86
|
+
this.vignetteEffect.darkness = darkness;
|
|
87
|
+
}
|
|
88
|
+
if (this.effectPass) {
|
|
89
|
+
this.effectPass.enabled = Boolean(bloom?.enabled || vignette?.enabled);
|
|
90
|
+
}
|
|
45
91
|
}
|
|
46
92
|
render() {
|
|
47
93
|
if (this.enabled && this.composer) {
|
|
@@ -64,10 +110,17 @@ export class PostFxSystem {
|
|
|
64
110
|
}
|
|
65
111
|
this.renderPass = null;
|
|
66
112
|
this.aoPass = null;
|
|
113
|
+
this.effectPass = null;
|
|
114
|
+
this.bloomEffect = null;
|
|
115
|
+
this.vignetteEffect = null;
|
|
67
116
|
this.composer = null;
|
|
68
117
|
this.enabled = false;
|
|
69
118
|
}
|
|
70
119
|
getState() {
|
|
71
|
-
return {
|
|
120
|
+
return {
|
|
121
|
+
aoEnabled: Boolean(this.aoPass?.enabled),
|
|
122
|
+
bloomEnabled: Boolean(this.effectPass?.enabled && this.bloomEffect && this.bloomEffect.intensity > 0),
|
|
123
|
+
vignetteEnabled: Boolean(this.effectPass?.enabled && this.vignetteEffect && this.vignetteEffect.darkness > 0),
|
|
124
|
+
};
|
|
72
125
|
}
|
|
73
126
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@base2datadesign/viewer-kit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,13 +18,13 @@
|
|
|
18
18
|
"access": "public"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"three": "^0.
|
|
21
|
+
"three": "^0.180.0",
|
|
22
22
|
"postprocessing": "^6.37.8",
|
|
23
23
|
"n8ao": "^1.10.1"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/three": "^0.178.1",
|
|
27
|
-
"three": "^0.
|
|
27
|
+
"three": "^0.180.0",
|
|
28
28
|
"postprocessing": "^6.37.8",
|
|
29
29
|
"n8ao": "^1.10.1"
|
|
30
30
|
},
|