reze-engine 0.3.5 → 0.3.7
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 +0 -1
- package/dist/engine.d.ts +10 -26
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +261 -670
- package/dist/engine_r.d.ts +132 -0
- package/dist/engine_r.d.ts.map +1 -0
- package/dist/engine_r.js +1489 -0
- package/dist/engine_ts.d.ts +143 -0
- package/dist/engine_ts.d.ts.map +1 -0
- package/dist/engine_ts.js +1575 -0
- package/dist/ik-solver.d.ts +6 -0
- package/dist/ik-solver.d.ts.map +1 -1
- package/dist/ik-solver.js +98 -101
- package/dist/math.d.ts +0 -5
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +0 -55
- package/dist/model.d.ts +59 -13
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +415 -141
- package/dist/player.d.ts +6 -20
- package/dist/player.d.ts.map +1 -1
- package/dist/player.js +88 -191
- package/package.json +1 -1
- package/src/engine.ts +299 -729
- package/src/ik-solver.ts +106 -124
- package/src/math.ts +0 -74
- package/src/model.ts +516 -186
- package/src/player.ts +115 -210
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Quat, Vec3 } from "reze-mmd";
|
|
2
|
+
export type EngineOptions = {
|
|
3
|
+
ambientColor?: Vec3;
|
|
4
|
+
bloomIntensity?: number;
|
|
5
|
+
rimLightIntensity?: number;
|
|
6
|
+
cameraDistance?: number;
|
|
7
|
+
cameraTarget?: Vec3;
|
|
8
|
+
};
|
|
9
|
+
export interface EngineStats {
|
|
10
|
+
fps: number;
|
|
11
|
+
frameTime: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class Engine {
|
|
14
|
+
private canvas;
|
|
15
|
+
private device;
|
|
16
|
+
private context;
|
|
17
|
+
private presentationFormat;
|
|
18
|
+
private camera;
|
|
19
|
+
private cameraUniformBuffer;
|
|
20
|
+
private cameraMatrixData;
|
|
21
|
+
private cameraDistance;
|
|
22
|
+
private cameraTarget;
|
|
23
|
+
private lightUniformBuffer;
|
|
24
|
+
private lightData;
|
|
25
|
+
private vertexBuffer;
|
|
26
|
+
private indexBuffer?;
|
|
27
|
+
private resizeObserver;
|
|
28
|
+
private depthTexture;
|
|
29
|
+
private modelPipeline;
|
|
30
|
+
private eyePipeline;
|
|
31
|
+
private hairPipelineOverEyes;
|
|
32
|
+
private hairPipelineOverNonEyes;
|
|
33
|
+
private hairDepthPipeline;
|
|
34
|
+
private outlinePipeline;
|
|
35
|
+
private hairOutlinePipeline;
|
|
36
|
+
private mainBindGroupLayout;
|
|
37
|
+
private outlineBindGroupLayout;
|
|
38
|
+
private jointsBuffer;
|
|
39
|
+
private weightsBuffer;
|
|
40
|
+
private skinMatrixBuffer?;
|
|
41
|
+
private multisampleTexture;
|
|
42
|
+
private readonly sampleCount;
|
|
43
|
+
private renderPassDescriptor;
|
|
44
|
+
private readonly STENCIL_EYE_VALUE;
|
|
45
|
+
private readonly BLOOM_DOWNSCALE_FACTOR;
|
|
46
|
+
private static readonly DEFAULT_BLOOM_THRESHOLD;
|
|
47
|
+
private static readonly DEFAULT_BLOOM_INTENSITY;
|
|
48
|
+
private static readonly DEFAULT_RIM_LIGHT_INTENSITY;
|
|
49
|
+
private static readonly DEFAULT_CAMERA_DISTANCE;
|
|
50
|
+
private static readonly DEFAULT_CAMERA_TARGET;
|
|
51
|
+
private static readonly TRANSPARENCY_EPSILON;
|
|
52
|
+
private static readonly STATS_FPS_UPDATE_INTERVAL_MS;
|
|
53
|
+
private static readonly STATS_FRAME_TIME_ROUNDING;
|
|
54
|
+
private ambientColor;
|
|
55
|
+
private sceneRenderTexture;
|
|
56
|
+
private sceneRenderTextureView;
|
|
57
|
+
private bloomExtractTexture;
|
|
58
|
+
private bloomBlurTexture1;
|
|
59
|
+
private bloomBlurTexture2;
|
|
60
|
+
private bloomExtractPipeline;
|
|
61
|
+
private bloomBlurPipeline;
|
|
62
|
+
private bloomComposePipeline;
|
|
63
|
+
private blurDirectionBuffer;
|
|
64
|
+
private bloomIntensityBuffer;
|
|
65
|
+
private bloomThresholdBuffer;
|
|
66
|
+
private linearSampler;
|
|
67
|
+
private bloomExtractBindGroup?;
|
|
68
|
+
private bloomBlurHBindGroup?;
|
|
69
|
+
private bloomBlurVBindGroup?;
|
|
70
|
+
private bloomComposeBindGroup?;
|
|
71
|
+
private bloomThreshold;
|
|
72
|
+
private bloomIntensity;
|
|
73
|
+
private rimLightIntensity;
|
|
74
|
+
private currentModel;
|
|
75
|
+
private modelDir;
|
|
76
|
+
private physics;
|
|
77
|
+
private materialSampler;
|
|
78
|
+
private textureCache;
|
|
79
|
+
private vertexBufferNeedsUpdate;
|
|
80
|
+
private drawCalls;
|
|
81
|
+
private lastFpsUpdate;
|
|
82
|
+
private framesSinceLastUpdate;
|
|
83
|
+
private lastFrameTime;
|
|
84
|
+
private frameTimeSum;
|
|
85
|
+
private frameTimeCount;
|
|
86
|
+
private stats;
|
|
87
|
+
private animationFrameId;
|
|
88
|
+
private renderLoopCallback;
|
|
89
|
+
private player;
|
|
90
|
+
private hasAnimation;
|
|
91
|
+
constructor(canvas: HTMLCanvasElement, options?: EngineOptions);
|
|
92
|
+
init(): Promise<void>;
|
|
93
|
+
private createRenderPipeline;
|
|
94
|
+
private createPipelines;
|
|
95
|
+
private createBloomPipelines;
|
|
96
|
+
private setupBloom;
|
|
97
|
+
private setupResize;
|
|
98
|
+
private handleResize;
|
|
99
|
+
private setupCamera;
|
|
100
|
+
private setupLighting;
|
|
101
|
+
private setAmbientColor;
|
|
102
|
+
loadAnimation(url: string): Promise<void>;
|
|
103
|
+
playAnimation(): void;
|
|
104
|
+
stopAnimation(): void;
|
|
105
|
+
pauseAnimation(): void;
|
|
106
|
+
seekAnimation(time: number): void;
|
|
107
|
+
getAnimationProgress(): import("./player").AnimationProgress;
|
|
108
|
+
/**
|
|
109
|
+
* Apply animation pose to model
|
|
110
|
+
*/
|
|
111
|
+
private applyPose;
|
|
112
|
+
/**
|
|
113
|
+
* Reset bones and physics to match a given pose
|
|
114
|
+
* @param pose The pose to apply
|
|
115
|
+
* @param resetBonesWithoutKeyframes If true, reset bones that don't have keyframes in the pose to identity
|
|
116
|
+
*/
|
|
117
|
+
private resetBonesAndPhysics;
|
|
118
|
+
getStats(): EngineStats;
|
|
119
|
+
runRenderLoop(callback?: () => void): void;
|
|
120
|
+
stopRenderLoop(): void;
|
|
121
|
+
dispose(): void;
|
|
122
|
+
loadModel(path: string): Promise<void>;
|
|
123
|
+
rotateBones(bones: string[], rotations: Quat[], durationMs?: number): void;
|
|
124
|
+
moveBones(bones: string[], relativeTranslations: Vec3[], durationMs?: number): void;
|
|
125
|
+
setMorphWeight(name: string, weight: number, durationMs?: number): void;
|
|
126
|
+
private updateVertexBuffer;
|
|
127
|
+
private setupModelBuffers;
|
|
128
|
+
private setupMaterials;
|
|
129
|
+
private createMaterialUniformBuffer;
|
|
130
|
+
private createUniformBuffer;
|
|
131
|
+
private createTextureFromPath;
|
|
132
|
+
private renderEyes;
|
|
133
|
+
private renderHair;
|
|
134
|
+
render(): void;
|
|
135
|
+
private applyBloom;
|
|
136
|
+
private updateCameraUniforms;
|
|
137
|
+
private updateRenderTarget;
|
|
138
|
+
private updateModelPose;
|
|
139
|
+
private computeSkinMatrices;
|
|
140
|
+
private drawOutlines;
|
|
141
|
+
private updateStats;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=engine_ts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine_ts.d.ts","sourceRoot":"","sources":["../src/engine_ts.ts"],"names":[],"mappings":"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"}
|