reze-engine 0.2.8 → 0.2.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/dist/engine.d.ts +5 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +7 -3
- package/package.json +1 -1
- package/src/engine.ts +9 -3
package/dist/engine.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { Quat } from "./math";
|
|
1
|
+
import { Quat, Vec3 } from "./math";
|
|
2
2
|
export type EngineOptions = {
|
|
3
3
|
ambient?: number;
|
|
4
4
|
bloomIntensity?: number;
|
|
5
5
|
rimLightIntensity?: number;
|
|
6
|
+
cameraDistance?: number;
|
|
7
|
+
cameraTarget?: Vec3;
|
|
6
8
|
};
|
|
7
9
|
export interface EngineStats {
|
|
8
10
|
fps: number;
|
|
@@ -17,6 +19,8 @@ export declare class Engine {
|
|
|
17
19
|
private camera;
|
|
18
20
|
private cameraUniformBuffer;
|
|
19
21
|
private cameraMatrixData;
|
|
22
|
+
private cameraDistance;
|
|
23
|
+
private cameraTarget;
|
|
20
24
|
private lightUniformBuffer;
|
|
21
25
|
private lightData;
|
|
22
26
|
private lightCount;
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js
CHANGED
|
@@ -6,6 +6,8 @@ import { VMDLoader } from "./vmd-loader";
|
|
|
6
6
|
export class Engine {
|
|
7
7
|
constructor(canvas, options) {
|
|
8
8
|
this.cameraMatrixData = new Float32Array(36);
|
|
9
|
+
this.cameraDistance = 26.6;
|
|
10
|
+
this.cameraTarget = new Vec3(0, 12.5, 0);
|
|
9
11
|
this.lightData = new Float32Array(64);
|
|
10
12
|
this.lightCount = 0;
|
|
11
13
|
this.resizeObserver = null;
|
|
@@ -56,6 +58,8 @@ export class Engine {
|
|
|
56
58
|
this.ambient = options.ambient ?? 1.0;
|
|
57
59
|
this.bloomIntensity = options.bloomIntensity ?? 0.12;
|
|
58
60
|
this.rimLightIntensity = options.rimLightIntensity ?? 0.45;
|
|
61
|
+
this.cameraDistance = options.cameraDistance ?? 26.6;
|
|
62
|
+
this.cameraTarget = options.cameraTarget ?? new Vec3(0, 12.5, 0);
|
|
59
63
|
}
|
|
60
64
|
}
|
|
61
65
|
// Step 1: Get WebGPU device and context
|
|
@@ -276,7 +280,7 @@ export class Engine {
|
|
|
276
280
|
depthStencil: {
|
|
277
281
|
format: "depth24plus-stencil8",
|
|
278
282
|
depthWriteEnabled: true,
|
|
279
|
-
depthCompare: "less",
|
|
283
|
+
depthCompare: "less-equal",
|
|
280
284
|
},
|
|
281
285
|
multisample: {
|
|
282
286
|
count: this.sampleCount,
|
|
@@ -423,7 +427,7 @@ export class Engine {
|
|
|
423
427
|
depthStencil: {
|
|
424
428
|
format: "depth24plus-stencil8",
|
|
425
429
|
depthWriteEnabled: true,
|
|
426
|
-
depthCompare: "less",
|
|
430
|
+
depthCompare: "less-equal",
|
|
427
431
|
},
|
|
428
432
|
multisample: {
|
|
429
433
|
count: this.sampleCount,
|
|
@@ -1219,7 +1223,7 @@ export class Engine {
|
|
|
1219
1223
|
size: 40 * 4,
|
|
1220
1224
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
1221
1225
|
});
|
|
1222
|
-
this.camera = new Camera(Math.PI, Math.PI / 2.5,
|
|
1226
|
+
this.camera = new Camera(Math.PI, Math.PI / 2.5, this.cameraDistance, this.cameraTarget);
|
|
1223
1227
|
this.camera.aspect = this.canvas.width / this.canvas.height;
|
|
1224
1228
|
this.camera.attachControl(this.canvas);
|
|
1225
1229
|
}
|
package/package.json
CHANGED
package/src/engine.ts
CHANGED
|
@@ -9,6 +9,8 @@ export type EngineOptions = {
|
|
|
9
9
|
ambient?: number
|
|
10
10
|
bloomIntensity?: number
|
|
11
11
|
rimLightIntensity?: number
|
|
12
|
+
cameraDistance?: number
|
|
13
|
+
cameraTarget?: Vec3
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
export interface EngineStats {
|
|
@@ -38,6 +40,8 @@ export class Engine {
|
|
|
38
40
|
private camera!: Camera
|
|
39
41
|
private cameraUniformBuffer!: GPUBuffer
|
|
40
42
|
private cameraMatrixData = new Float32Array(36)
|
|
43
|
+
private cameraDistance: number = 26.6
|
|
44
|
+
private cameraTarget: Vec3 = new Vec3(0, 12.5, 0)
|
|
41
45
|
private lightUniformBuffer!: GPUBuffer
|
|
42
46
|
private lightData = new Float32Array(64)
|
|
43
47
|
private lightCount = 0
|
|
@@ -140,6 +144,8 @@ export class Engine {
|
|
|
140
144
|
this.ambient = options.ambient ?? 1.0
|
|
141
145
|
this.bloomIntensity = options.bloomIntensity ?? 0.12
|
|
142
146
|
this.rimLightIntensity = options.rimLightIntensity ?? 0.45
|
|
147
|
+
this.cameraDistance = options.cameraDistance ?? 26.6
|
|
148
|
+
this.cameraTarget = options.cameraTarget ?? new Vec3(0, 12.5, 0)
|
|
143
149
|
}
|
|
144
150
|
}
|
|
145
151
|
|
|
@@ -370,7 +376,7 @@ export class Engine {
|
|
|
370
376
|
depthStencil: {
|
|
371
377
|
format: "depth24plus-stencil8",
|
|
372
378
|
depthWriteEnabled: true,
|
|
373
|
-
depthCompare: "less",
|
|
379
|
+
depthCompare: "less-equal",
|
|
374
380
|
},
|
|
375
381
|
multisample: {
|
|
376
382
|
count: this.sampleCount,
|
|
@@ -521,7 +527,7 @@ export class Engine {
|
|
|
521
527
|
depthStencil: {
|
|
522
528
|
format: "depth24plus-stencil8",
|
|
523
529
|
depthWriteEnabled: true,
|
|
524
|
-
depthCompare: "less",
|
|
530
|
+
depthCompare: "less-equal",
|
|
525
531
|
},
|
|
526
532
|
multisample: {
|
|
527
533
|
count: this.sampleCount,
|
|
@@ -1360,7 +1366,7 @@ export class Engine {
|
|
|
1360
1366
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
1361
1367
|
})
|
|
1362
1368
|
|
|
1363
|
-
this.camera = new Camera(Math.PI, Math.PI / 2.5,
|
|
1369
|
+
this.camera = new Camera(Math.PI, Math.PI / 2.5, this.cameraDistance, this.cameraTarget)
|
|
1364
1370
|
|
|
1365
1371
|
this.camera.aspect = this.canvas.width / this.canvas.height
|
|
1366
1372
|
this.camera.attachControl(this.canvas)
|