reze-engine 0.8.0 → 0.8.1
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 +24 -32
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +374 -486
- package/dist/model.d.ts +9 -3
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +20 -24
- package/package.json +1 -1
- package/src/engine.ts +393 -592
- package/src/model.ts +28 -28
package/dist/engine.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vec3 } from "./math";
|
|
2
2
|
import { Model } from "./model";
|
|
3
|
-
export type RaycastCallback = (material: string | null, screenX: number, screenY: number) => void;
|
|
3
|
+
export type RaycastCallback = (modelName: string, material: string | null, screenX: number, screenY: number) => void;
|
|
4
4
|
export type EngineOptions = {
|
|
5
5
|
ambientColor?: Vec3;
|
|
6
6
|
directionalLightIntensity?: number;
|
|
@@ -10,8 +10,6 @@ export type EngineOptions = {
|
|
|
10
10
|
cameraTarget?: Vec3;
|
|
11
11
|
cameraFov?: number;
|
|
12
12
|
onRaycast?: RaycastCallback;
|
|
13
|
-
disableIK?: boolean;
|
|
14
|
-
disablePhysics?: boolean;
|
|
15
13
|
multisampleCount?: 1 | 4;
|
|
16
14
|
};
|
|
17
15
|
export type RequiredEngineOptions = Required<Omit<EngineOptions, "onRaycast">> & Pick<EngineOptions, "onRaycast">;
|
|
@@ -36,8 +34,6 @@ export declare class Engine {
|
|
|
36
34
|
private lightUniformBuffer;
|
|
37
35
|
private lightData;
|
|
38
36
|
private lightCount;
|
|
39
|
-
private vertexBuffer;
|
|
40
|
-
private indexBuffer?;
|
|
41
37
|
private resizeObserver;
|
|
42
38
|
private depthTexture;
|
|
43
39
|
private modelPipeline;
|
|
@@ -52,10 +48,6 @@ export declare class Engine {
|
|
|
52
48
|
private hairOutlinePipeline;
|
|
53
49
|
private mainBindGroupLayout;
|
|
54
50
|
private outlineBindGroupLayout;
|
|
55
|
-
private jointsBuffer;
|
|
56
|
-
private weightsBuffer;
|
|
57
|
-
private skinMatrixBuffer?;
|
|
58
|
-
private inverseBindMatrixBuffer?;
|
|
59
51
|
private multisampleTexture;
|
|
60
52
|
private sampleCount;
|
|
61
53
|
private renderPassDescriptor;
|
|
@@ -76,7 +68,6 @@ export declare class Engine {
|
|
|
76
68
|
private shadowMapTexture?;
|
|
77
69
|
private shadowMapDepthView?;
|
|
78
70
|
private shadowDepthPipeline;
|
|
79
|
-
private shadowBindGroup?;
|
|
80
71
|
private shadowLightVPBuffer;
|
|
81
72
|
private shadowLightVPMatrix;
|
|
82
73
|
private groundShadowPipeline;
|
|
@@ -84,25 +75,18 @@ export declare class Engine {
|
|
|
84
75
|
private groundShadowBindGroup?;
|
|
85
76
|
private shadowComparisonSampler;
|
|
86
77
|
private groundShadowMaterialBuffer?;
|
|
87
|
-
private
|
|
78
|
+
private groundDrawCall;
|
|
88
79
|
private shadowVPLightX;
|
|
89
80
|
private shadowVPLightY;
|
|
90
81
|
private shadowVPLightZ;
|
|
91
82
|
private onRaycast?;
|
|
92
|
-
private cachedSkinnedVertices?;
|
|
93
|
-
private cachedSkinMatricesVersion;
|
|
94
|
-
private skinMatricesVersion;
|
|
95
83
|
private lastTouchTime;
|
|
96
84
|
private readonly DOUBLE_TAP_DELAY;
|
|
97
|
-
private
|
|
98
|
-
private _disablePhysics;
|
|
99
|
-
private currentModel;
|
|
100
|
-
private modelDir;
|
|
85
|
+
private modelInstances;
|
|
101
86
|
private materialSampler;
|
|
102
87
|
private textureCache;
|
|
103
|
-
|
|
104
|
-
private
|
|
105
|
-
private hiddenMaterials;
|
|
88
|
+
/** Reusable buffer for raycast skinning to avoid per-instance allocations (Three.js/Babylon.js style). */
|
|
89
|
+
private raycastVertexBuffer;
|
|
106
90
|
private lastFpsUpdate;
|
|
107
91
|
private framesSinceLastUpdate;
|
|
108
92
|
private lastFrameTime;
|
|
@@ -139,23 +123,29 @@ export declare class Engine {
|
|
|
139
123
|
runRenderLoop(callback?: () => void): void;
|
|
140
124
|
stopRenderLoop(): void;
|
|
141
125
|
dispose(): void;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
126
|
+
addModel(model: Model, pmxPath: string, name?: string): Promise<string>;
|
|
127
|
+
registerModel(model: Model, pmxPath: string): Promise<string>;
|
|
128
|
+
removeModel(name: string): void;
|
|
129
|
+
getModelNames(): string[];
|
|
130
|
+
getModel(name: string): Model | null;
|
|
131
|
+
markVertexBufferDirty(modelNameOrModel?: string | Model): void;
|
|
132
|
+
setMaterialVisible(modelName: string, materialName: string, visible: boolean): void;
|
|
133
|
+
toggleMaterialVisible(modelName: string, materialName: string): void;
|
|
134
|
+
isMaterialVisible(modelName: string, materialName: string): boolean;
|
|
135
|
+
setModelIKEnabled(modelName: string, enabled: boolean): void;
|
|
136
|
+
setModelPhysicsEnabled(modelName: string, enabled: boolean): void;
|
|
137
|
+
resetPhysics(): void;
|
|
138
|
+
private instances;
|
|
139
|
+
private forEachInstance;
|
|
140
|
+
private updateInstances;
|
|
151
141
|
private updateVertexBuffer;
|
|
152
|
-
private
|
|
142
|
+
private setupModelInstance;
|
|
153
143
|
private createGroundGeometry;
|
|
154
144
|
private createGroundMaterialBuffer;
|
|
155
145
|
private createReflectionTexture;
|
|
156
146
|
private createShadowGroundResources;
|
|
157
147
|
private updateShadowLightVP;
|
|
158
|
-
private
|
|
148
|
+
private setupMaterialsForInstance;
|
|
159
149
|
private createMaterialUniformBuffer;
|
|
160
150
|
private createUniformBuffer;
|
|
161
151
|
private shouldRenderDrawCall;
|
|
@@ -168,6 +158,8 @@ export declare class Engine {
|
|
|
168
158
|
private handleCanvasTouch;
|
|
169
159
|
private performRaycast;
|
|
170
160
|
render(): void;
|
|
161
|
+
private drawInstanceShadow;
|
|
162
|
+
private renderOneModel;
|
|
171
163
|
private updateCameraUniforms;
|
|
172
164
|
private updateRenderTarget;
|
|
173
165
|
private updateSkinMatrices;
|
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,EAAc,IAAI,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|