reze-engine 0.8.3 → 0.9.0
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/README.md +3 -3
- package/dist/engine.d.ts +50 -38
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +400 -722
- package/dist/model.d.ts +1 -13
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +3 -28
- package/dist/pmx-loader.d.ts.map +1 -1
- package/dist/pmx-loader.js +0 -17
- package/package.json +2 -2
- package/src/engine.ts +470 -790
- package/src/model.ts +3 -38
- package/src/pmx-loader.ts +0 -21
package/README.md
CHANGED
|
@@ -16,16 +16,16 @@ import { Engine, Model } from "reze-engine"
|
|
|
16
16
|
|
|
17
17
|
const engine = new Engine(canvas, {})
|
|
18
18
|
await engine.init()
|
|
19
|
-
const model = await
|
|
19
|
+
const model = await engine.loadModel("/models/reze/reze.pmx")
|
|
20
20
|
await model.loadAnimation("default", "/animations/dance.vmd")
|
|
21
21
|
model.show("default")
|
|
22
|
-
model.
|
|
22
|
+
model.play()
|
|
23
23
|
engine.runRenderLoop(() => {})
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
## API (summary)
|
|
27
27
|
|
|
28
|
-
- **Multi-model:** `engine.addModel(model, pmxPath, name?)`, `getModel(name)`, `getModelNames()`, `removeModel(name)`, `setMaterialVisible(modelName, materialName, visible)`, `
|
|
28
|
+
- **Multi-model:** `engine.loadModel(path)` / `engine.loadModel(name, path)`, `engine.addModel(model, pmxPath, name?)`, `getModel(name)`, `getModelNames()`, `removeModel(name)`, `setMaterialVisible(modelName, materialName, visible)`, `setIKEnabled(enabled)`, `setPhysicsEnabled(enabled)`, `getIKEnabled()`, `getPhysicsEnabled()`, `resetPhysics()`, `markVertexBufferDirty(modelName?)`
|
|
29
29
|
- **Animation:** `model.loadAnimation(name, vmdUrl)`; `model.show(name)`; `model.play()` / `model.play(name)`; `model.pause()`; `model.stop()`; `model.seek(t)`; `model.getAnimationProgress()`. Animations are non-interruptible (next is queued).
|
|
30
30
|
- **Bones / morphs:** `model.rotateBones()`, `model.moveBones()`, `model.setMorphWeight()`, `model.resetAllBones()`, `model.resetAllMorphs()`
|
|
31
31
|
- **Engine:** `runRenderLoop()`, `addGround({ mode: "reflection" | "shadow", ... })`, `onRaycast: (modelName, material, screenX, screenY) => {}`
|
package/dist/engine.d.ts
CHANGED
|
@@ -10,7 +10,6 @@ export type EngineOptions = {
|
|
|
10
10
|
cameraTarget?: Vec3;
|
|
11
11
|
cameraFov?: number;
|
|
12
12
|
onRaycast?: RaycastCallback;
|
|
13
|
-
multisampleCount?: 1 | 4;
|
|
14
13
|
};
|
|
15
14
|
export type RequiredEngineOptions = Required<Omit<EngineOptions, "onRaycast">> & Pick<EngineOptions, "onRaycast">;
|
|
16
15
|
export declare const DEFAULT_ENGINE_OPTIONS: RequiredEngineOptions;
|
|
@@ -37,41 +36,31 @@ export declare class Engine {
|
|
|
37
36
|
private resizeObserver;
|
|
38
37
|
private depthTexture;
|
|
39
38
|
private modelPipeline;
|
|
40
|
-
private
|
|
41
|
-
private
|
|
42
|
-
private hairPipelineOverNonEyes;
|
|
43
|
-
private hairDepthPipeline;
|
|
44
|
-
private groundPipeline;
|
|
45
|
-
private groundBindGroupLayout;
|
|
46
|
-
private reflectionPipeline;
|
|
39
|
+
private groundShadowPipeline;
|
|
40
|
+
private groundShadowBindGroupLayout;
|
|
47
41
|
private outlinePipeline;
|
|
48
|
-
private
|
|
49
|
-
private
|
|
50
|
-
private
|
|
42
|
+
private mainPerFrameBindGroupLayout;
|
|
43
|
+
private mainPerInstanceBindGroupLayout;
|
|
44
|
+
private mainPerMaterialBindGroupLayout;
|
|
45
|
+
private outlinePerFrameBindGroupLayout;
|
|
46
|
+
private outlinePerMaterialBindGroupLayout;
|
|
47
|
+
private perFrameBindGroup;
|
|
48
|
+
private outlinePerFrameBindGroup;
|
|
51
49
|
private multisampleTexture;
|
|
52
|
-
private
|
|
50
|
+
private static readonly MULTISAMPLE_COUNT;
|
|
53
51
|
private renderPassDescriptor;
|
|
54
|
-
private readonly STENCIL_EYE_VALUE;
|
|
55
52
|
private ambientColor;
|
|
56
53
|
private directionalLightIntensity;
|
|
57
54
|
private minSpecularIntensity;
|
|
58
55
|
private rimLightIntensity;
|
|
59
56
|
private groundVertexBuffer?;
|
|
60
57
|
private groundIndexBuffer?;
|
|
61
|
-
private
|
|
62
|
-
private groundReflectionResolveTexture?;
|
|
63
|
-
private groundReflectionDepthTexture?;
|
|
64
|
-
private groundReflectionBindGroup?;
|
|
65
|
-
private groundMaterialUniformBuffer?;
|
|
66
|
-
private groundHasReflections;
|
|
67
|
-
private groundMode;
|
|
58
|
+
private hasGround;
|
|
68
59
|
private shadowMapTexture?;
|
|
69
60
|
private shadowMapDepthView?;
|
|
70
61
|
private shadowDepthPipeline;
|
|
71
62
|
private shadowLightVPBuffer;
|
|
72
63
|
private shadowLightVPMatrix;
|
|
73
|
-
private groundShadowPipeline;
|
|
74
|
-
private groundShadowBindGroupLayout;
|
|
75
64
|
private groundShadowBindGroup?;
|
|
76
65
|
private shadowComparisonSampler;
|
|
77
66
|
private groundShadowMaterialBuffer?;
|
|
@@ -82,10 +71,24 @@ export declare class Engine {
|
|
|
82
71
|
private onRaycast?;
|
|
83
72
|
private lastTouchTime;
|
|
84
73
|
private readonly DOUBLE_TAP_DELAY;
|
|
74
|
+
private pickPipeline;
|
|
75
|
+
private pickPerFrameBindGroupLayout;
|
|
76
|
+
private pickPerInstanceBindGroupLayout;
|
|
77
|
+
private pickPerMaterialBindGroupLayout;
|
|
78
|
+
private pickPerFrameBindGroup;
|
|
79
|
+
private pickTexture;
|
|
80
|
+
private pickDepthTexture;
|
|
81
|
+
private pickReadbackBuffer;
|
|
82
|
+
private pendingPick;
|
|
85
83
|
private modelInstances;
|
|
86
84
|
private materialSampler;
|
|
87
85
|
private textureCache;
|
|
88
|
-
private
|
|
86
|
+
private _nextDefaultModelId;
|
|
87
|
+
private ikEnabled;
|
|
88
|
+
private physicsEnabled;
|
|
89
|
+
private cameraTargetModel;
|
|
90
|
+
private cameraTargetBoneName;
|
|
91
|
+
private cameraTargetOffset;
|
|
89
92
|
private lastFpsUpdate;
|
|
90
93
|
private framesSinceLastUpdate;
|
|
91
94
|
private lastFrameTime;
|
|
@@ -101,6 +104,18 @@ export declare class Engine {
|
|
|
101
104
|
private setupResize;
|
|
102
105
|
private handleResize;
|
|
103
106
|
private setupCamera;
|
|
107
|
+
/** Set static camera look-at / orbit center. Clears any model follow binding. */
|
|
108
|
+
setCameraTarget(v: Vec3): void;
|
|
109
|
+
/** Bind camera orbit center to a model's bone (Souls-style follow cam). Pass null to unbind. */
|
|
110
|
+
setCameraTarget(model: Model | null, boneName: string, offset?: Vec3): void;
|
|
111
|
+
/** Souls-style follow cam: orbit center tracks a model bone each frame. Shorthand for setCameraTarget(model, boneName, offset). */
|
|
112
|
+
setCameraFollow(model: Model | null, boneName?: string, offset?: Vec3): void;
|
|
113
|
+
getCameraDistance(): number;
|
|
114
|
+
setCameraDistance(d: number): void;
|
|
115
|
+
getCameraAlpha(): number;
|
|
116
|
+
setCameraAlpha(a: number): void;
|
|
117
|
+
getCameraBeta(): number;
|
|
118
|
+
setCameraBeta(b: number): void;
|
|
104
119
|
private setupLighting;
|
|
105
120
|
private setAmbientColor;
|
|
106
121
|
clearLights(): void;
|
|
@@ -109,11 +124,8 @@ export declare class Engine {
|
|
|
109
124
|
width?: number;
|
|
110
125
|
height?: number;
|
|
111
126
|
diffuseColor?: Vec3;
|
|
112
|
-
reflectionLevel?: number;
|
|
113
|
-
reflectionTextureSize?: number;
|
|
114
127
|
fadeStart?: number;
|
|
115
128
|
fadeEnd?: number;
|
|
116
|
-
mode?: "reflection" | "shadow";
|
|
117
129
|
shadowMapSize?: number;
|
|
118
130
|
shadowStrength?: number;
|
|
119
131
|
}): void;
|
|
@@ -122,8 +134,9 @@ export declare class Engine {
|
|
|
122
134
|
runRenderLoop(callback?: () => void): void;
|
|
123
135
|
stopRenderLoop(): void;
|
|
124
136
|
dispose(): void;
|
|
137
|
+
loadModel(path: string): Promise<Model>;
|
|
138
|
+
loadModel(name: string, path: string): Promise<Model>;
|
|
125
139
|
addModel(model: Model, pmxPath: string, name?: string): Promise<string>;
|
|
126
|
-
registerModel(model: Model, pmxPath: string): Promise<string>;
|
|
127
140
|
removeModel(name: string): void;
|
|
128
141
|
getModelNames(): string[];
|
|
129
142
|
getModel(name: string): Model | null;
|
|
@@ -131,17 +144,16 @@ export declare class Engine {
|
|
|
131
144
|
setMaterialVisible(modelName: string, materialName: string, visible: boolean): void;
|
|
132
145
|
toggleMaterialVisible(modelName: string, materialName: string): void;
|
|
133
146
|
isMaterialVisible(modelName: string, materialName: string): boolean;
|
|
134
|
-
|
|
135
|
-
|
|
147
|
+
setIKEnabled(enabled: boolean): void;
|
|
148
|
+
getIKEnabled(): boolean;
|
|
149
|
+
setPhysicsEnabled(enabled: boolean): void;
|
|
150
|
+
getPhysicsEnabled(): boolean;
|
|
136
151
|
resetPhysics(): void;
|
|
137
|
-
private instances;
|
|
138
152
|
private forEachInstance;
|
|
139
153
|
private updateInstances;
|
|
140
154
|
private updateVertexBuffer;
|
|
141
155
|
private setupModelInstance;
|
|
142
156
|
private createGroundGeometry;
|
|
143
|
-
private createGroundMaterialBuffer;
|
|
144
|
-
private createReflectionTexture;
|
|
145
157
|
private createShadowGroundResources;
|
|
146
158
|
private updateShadowLightVP;
|
|
147
159
|
private setupMaterialsForInstance;
|
|
@@ -149,22 +161,22 @@ export declare class Engine {
|
|
|
149
161
|
private createUniformBuffer;
|
|
150
162
|
private shouldRenderDrawCall;
|
|
151
163
|
private createTextureFromPath;
|
|
152
|
-
private renderEyes;
|
|
153
164
|
private renderGround;
|
|
154
|
-
private renderReflectionTexture;
|
|
155
|
-
private renderHair;
|
|
156
165
|
private handleCanvasDoubleClick;
|
|
157
166
|
private handleCanvasTouch;
|
|
158
167
|
private performRaycast;
|
|
168
|
+
private renderPickPass;
|
|
169
|
+
private resolvePickResult;
|
|
159
170
|
render(): void;
|
|
171
|
+
private updateRenderTarget;
|
|
160
172
|
private drawInstanceShadow;
|
|
173
|
+
private drawOpaque;
|
|
174
|
+
private drawTransparent;
|
|
175
|
+
private bindMainGroups;
|
|
161
176
|
private renderOneModel;
|
|
162
177
|
private updateCameraUniforms;
|
|
163
|
-
private updateRenderTarget;
|
|
164
178
|
private updateSkinMatrices;
|
|
165
179
|
private drawOutlines;
|
|
166
180
|
private updateStats;
|
|
167
|
-
private createMirrorMatrix;
|
|
168
|
-
private writeMirrorTransformedSkinMatrices;
|
|
169
181
|
}
|
|
170
182
|
//# sourceMappingURL=engine.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|