reze-engine 0.41.0 → 0.41.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 +31 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +141 -15
- package/dist/graph/presets/body.js +2 -2
- package/dist/graph/presets/cloth_rough.js +2 -2
- package/dist/graph/presets/cloth_smooth.js +2 -2
- package/dist/graph/presets/default.js +2 -2
- package/dist/graph/presets/eye.js +2 -2
- package/dist/graph/presets/face.js +2 -2
- package/dist/graph/presets/hair.js +2 -2
- package/dist/graph/presets/metal.js +2 -2
- package/dist/graph/presets/stockings.js +3 -3
- package/dist/graph/registry.d.ts.map +1 -1
- package/dist/graph/registry.js +426 -10
- package/dist/graph/style-group.d.ts +46 -0
- package/dist/graph/style-group.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/shaders/agx-lut.d.ts +11 -0
- package/dist/shaders/agx-lut.d.ts.map +1 -0
- package/dist/shaders/agx-lut.js +29 -0
- package/dist/shaders/materials/common.d.ts +1 -1
- package/dist/shaders/materials/common.d.ts.map +1 -1
- package/dist/shaders/materials/common.js +10 -0
- package/dist/shaders/materials/nodes.d.ts +1 -1
- package/dist/shaders/materials/nodes.d.ts.map +1 -1
- package/dist/shaders/materials/nodes.js +957 -576
- package/dist/shaders/passes/composite.d.ts.map +1 -1
- package/dist/shaders/passes/composite.js +57 -3
- package/package.json +1 -1
- package/src/engine.ts +165 -14
- package/src/graph/presets/body.ts +2 -2
- package/src/graph/presets/cloth_rough.ts +2 -2
- package/src/graph/presets/cloth_smooth.ts +2 -2
- package/src/graph/presets/default.ts +2 -2
- package/src/graph/presets/eye.ts +2 -2
- package/src/graph/presets/face.ts +2 -2
- package/src/graph/presets/hair.ts +2 -2
- package/src/graph/presets/metal.ts +2 -2
- package/src/graph/presets/stockings.ts +3 -3
- package/src/graph/registry.ts +439 -10
- package/src/graph/style-group.ts +44 -0
- package/src/index.ts +2 -0
- package/src/shaders/agx-lut.ts +30 -0
- package/src/shaders/materials/common.ts +10 -0
- package/src/shaders/materials/nodes.ts +962 -581
- package/src/shaders/passes/composite.ts +57 -3
package/dist/engine.d.ts
CHANGED
|
@@ -18,6 +18,9 @@ type GroupInstall = {
|
|
|
18
18
|
/** hair render-class only: the stencil-matched IS_OVER_EYES=true variant. */
|
|
19
19
|
overEyesPipeline?: GPURenderPipeline;
|
|
20
20
|
uniformBuffer: GPUBuffer;
|
|
21
|
+
/** The group's own image maps, uploaded once per apply and owned here — the
|
|
22
|
+
* install destroys them when it is replaced, so a re-apply cannot leak. */
|
|
23
|
+
images?: (GPUTexture | null)[];
|
|
21
24
|
slotMap: StyleSlot[];
|
|
22
25
|
/** Serialized (graph + renderClass + alphaMode) — lets applyStyleGroups skip recompiling
|
|
23
26
|
* an unchanged group. */
|
|
@@ -121,7 +124,17 @@ export type ViewTransformOptions = {
|
|
|
121
124
|
exposure: number;
|
|
122
125
|
/** After Filmic, display gamma (`pow(rgb, 1/gamma)`). */
|
|
123
126
|
gamma: number;
|
|
124
|
-
|
|
127
|
+
/**
|
|
128
|
+
* Which display transform the frame is formed with.
|
|
129
|
+
*
|
|
130
|
+
* "standard" is Blender's Standard: the sRGB encoding and nothing else, which
|
|
131
|
+
* is what NPR and anime work uses — the colours the graph computes are the
|
|
132
|
+
* colours that land, with no film curve reinterpreting them. Both of the
|
|
133
|
+
* reference Wuthering Waves projects render this way.
|
|
134
|
+
*
|
|
135
|
+
* "filmic" is Blender 3.6's Filmic, Medium High Contrast, baked as a LUT.
|
|
136
|
+
*/
|
|
137
|
+
transform: "agx" | "filmic" | "standard";
|
|
125
138
|
};
|
|
126
139
|
export declare const DEFAULT_VIEW_TRANSFORM: ViewTransformOptions;
|
|
127
140
|
/** Color grading applied to the tonemapped scene (ASC CDL — see grade() in
|
|
@@ -408,6 +421,8 @@ export declare class Engine {
|
|
|
408
421
|
private fallbackEquirectTexture;
|
|
409
422
|
private fallbackEquirectView;
|
|
410
423
|
private effect;
|
|
424
|
+
private agxLutTexture;
|
|
425
|
+
private agxFallbackTexture;
|
|
411
426
|
/** Bound at composite binding 7 when no effect (or a param-less one) is set. */
|
|
412
427
|
private bgParamsDummyBuffer;
|
|
413
428
|
private compositePipelineLayout;
|
|
@@ -597,6 +612,15 @@ export declare class Engine {
|
|
|
597
612
|
private writeBloomUniforms;
|
|
598
613
|
init(): Promise<void>;
|
|
599
614
|
private bakeBrdfLut;
|
|
615
|
+
/**
|
|
616
|
+
* Decompress and upload Blender's AgX cube.
|
|
617
|
+
*
|
|
618
|
+
* Deliberately off the critical path: it is 723 KB once inflated, and a frame
|
|
619
|
+
* rendered before it lands should show the scene under whatever transform is
|
|
620
|
+
* already there rather than wait. Until then binding 10 holds a 1×1×1 stand-in,
|
|
621
|
+
* which is only ever sampled if someone selects AgX in that window.
|
|
622
|
+
*/
|
|
623
|
+
private loadAgxLut;
|
|
600
624
|
private bakeFilmicLut;
|
|
601
625
|
private createRenderPipeline;
|
|
602
626
|
private createPipelines;
|
|
@@ -756,6 +780,12 @@ export declare class Engine {
|
|
|
756
780
|
markVertexBufferDirty(modelNameOrModel?: string | Model): void;
|
|
757
781
|
setSelectedMaterial(modelName: string | null, materialName: string | null): void;
|
|
758
782
|
setSelectedBone(modelName: string | null, boneName: string | null): void;
|
|
783
|
+
/** A group's uniform buffer and its maps have the same lifetime — freeing one
|
|
784
|
+
* without the other is how a re-apply leaks GPU memory a frame at a time. */
|
|
785
|
+
private destroyInstall;
|
|
786
|
+
/** Upload a group's image maps. Sources are decoded images the host already
|
|
787
|
+
* holds; the engine never fetches, matching how models and motions arrive. */
|
|
788
|
+
private uploadGroupImages;
|
|
759
789
|
private createMaterialBindGroup;
|
|
760
790
|
setMaterialVisible(modelName: string, materialName: string, visible: boolean): void;
|
|
761
791
|
toggleMaterialVisible(modelName: string, materialName: string): void;
|
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,EAAQ,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,KAAK,EAA0C,MAAM,SAAS,CAAA;AAMvE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAA;AAiBvB,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEnF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EAEtB,UAAU,EACX,MAAM,qBAAqB,CAAA;AAa5B,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,WAAW,GACX,OAAO,GACP,cAAc,GACd,aAAa,CAAA;AAEjB,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;AA+GzE,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,kEAAkE;IAClE,oBAAoB,EAAE,iBAAiB,CAAA;IACvC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,aAAa,EAAE,SAAS,CAAA;IACxB,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB;8BAC0B;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,KACZ,IAAI,CAAA;AAET,kHAAkH;AAClH,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,IAAI,CAAA;CACf,CAAA;AAID,MAAM,MAAM,YAAY,GAAG;IACzB,8FAA8F;IAC9F,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;qDACqD;AACrD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yFAAyF;IACzF,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED;;wDAEwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAC3E,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,OAAO,CAAA;IACX,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB;iFAC6E;IAC7E,MAAM,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wFAAwF;AACxF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,IAAI,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,YAQnC,CAAA;AAED;;iFAEiF;AACjF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB;;;6CAGyC;IACzC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAA;IAC5B,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAA;IACrB;yEACqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAA;IAChB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,OAAO,EAAE,aAAa,GAAG,UAAU,GAAG,WAAW,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,8BAA8B,EAAE,mBAS5C,CAAA;AAED,4HAA4H;AAC5H,MAAM,MAAM,oBAAoB,GAAG;IACjC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,GAAG,sBAAsB,CAAA;CACzC,CAAA;AAID,eAAO,MAAM,sBAAsB,EAAE,oBAIpC,CAAA;AAED;;;;;gCAKgC;AAChC,MAAM,MAAM,mBAAmB,GAAG;IAChC,6CAA6C;IAC7C,OAAO,EAAE,IAAI,CAAA;IACb,6EAA6E;IAC7E,QAAQ,EAAE,IAAI,CAAA;IACd,+CAA+C;IAC/C,UAAU,EAAE,IAAI,CAAA;IAChB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAGD,eAAO,MAAM,qBAAqB,EAAE,mBAMnC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,kGAAkG;IAClG,aAAa,EAAE,IAAI,CAAA;IACnB,gBAAgB,EAAE,IAAI,CAAA;IACtB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;AAE/D,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;gFAC4E;IAC5E,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAC7B,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACpC,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,qCAAqC;IACrC,WAAW,CAAC,EAAE,iBAAiB,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;CAKlC,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,KAAK,YAAY,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,gBAAgB,GAAG,qBAAqB,CAAA;AAElG,UAAU,QAAQ;IAChB,IAAI,EAAE,YAAY,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,YAAY,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IAGpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IAKtB,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC1C;wFACoF;IACpF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;+EAE2E;IAC3E,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,YAAY,CAAA;KAAE,CAAA;CACtC;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,YAAY,CAAA;CACxB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,YAAY,EAAE,SAAS,CAAA;IACvB,WAAW,EAAE,SAAS,CAAA;IACtB,YAAY,EAAE,SAAS,CAAA;IACvB,aAAa,EAAE,SAAS,CAAA;IACxB,gBAAgB,EAAE,SAAS,CAAA;IAC3B,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,eAAe,EAAE,QAAQ,EAAE,CAAA;IAC3B,eAAe,EAAE,YAAY,CAAA;IAC7B,wBAAwB,EAAE,YAAY,CAAA;IACtC,wBAAwB,EAAE,YAAY,CAAA;IACtC,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B;8EAC0E;IAC1E,OAAO,EAAE,OAAO,CAAA;IAChB;gEAC4D;IAC5D,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B;;iDAE6C;IAC7C,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACjC,2EAA2E;IAC3E,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAA;IAClD,+EAA+E;IAC/E,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI,CAAA;IAC7D,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IAC3B,uBAAuB,EAAE,OAAO,CAAA;IAChC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IAEzB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEtC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAGpC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC;AAED;;;;;;;GAOG;AACH,UAAU,mBAAmB;IAC3B,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,SAAS,CAAA;IACjB,mFAAmF;IACnF,IAAI,EAAE,YAAY,CAAA;IAClB,+EAA+E;IAC/E,IAAI,EAAE,YAAY,CAAA;IAClB;;;0DAGsD;IACtD,IAAI,EAAE,YAAY,CAAA;CACnB;AAGD,UAAU,QAAQ;IAChB,SAAS,EAAE,YAAY,CAAA;IACvB,aAAa,EAAE,SAAS,CAAA;IACxB,WAAW,EAAE,YAAY,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;CACxB;AAuFD,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAE7C,MAAM,CAAC,WAAW,IAAI,MAAM;IAO5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,kBAAkB,CAAmB;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,GAAG,CAAqD;IAChE,OAAO,CAAC,YAAY,CAAkD;IACtE,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,YAAY,CAAa;IAGjC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,2BAA2B,CAAoB;IACvD,OAAO,CAAC,+BAA+B,CAAoB;IAK3D,OAAO,CAAC,eAAe,CAAY;IAEnC,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,uBAAuB,CAA0B;IAGzD,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,oBAAoB,CAAoB;IAChD,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,gBAAgB,CAA2D;IACnF,OAAO,CAAC,oBAAoB,CAAC,CAAY;IACzC,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAC1C,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,2BAA2B,CAA0B;IAC7D,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,sBAAsB,CAAC,CAAc;IAC7C,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,2BAA2B,CAA0B;IAC7D,OAAO,CAAC,gBAAgB,CAAa;IAGrC,OAAO,CAAC,YAAY,CAA0E;IAC9F,OAAO,CAAC,iBAAiB,CAAY;IACrC,OAAO,CAAC,oBAAoB,CAAY;IACxC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,eAAe,CAAe;IACtC,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAG/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAIhD,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAO;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAO;IAOtD,OAAO,CAAC,SAAS,CAcF;IACf,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,iCAAiC,CAAqB;IAC9D,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,wBAAwB,CAAe;IAC/C,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAI;IAiB7C,OAAO,CAAC,SAAS,CAAkC;IACnD;0FACsF;IACtF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAI;IAC7C;;;;;;;gGAO4F;IAC5F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACxE,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,uBAAuB,CAA0B;IAIzD,OAAO,CAAC,yBAAyB,CAAoB;IACrD,OAAO,CAAC,sBAAsB,CAAoB;IAClD,OAAO,CAAC,oBAAoB,CAAqB;IACjD,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,YAAY,CAA6D;IACjF,OAAO,CAAC,gBAAgB,CAAY;IACpC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAAoB;IAC3C,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,sBAAsB,CAAY;IAK1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,iFAAiF;IACjF,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,oBAAoB,CAAiB;IAM7C,OAAO,CAAC,MAAM,CAUC;IACf,gFAAgF;IAChF,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,uBAAuB,CAAoB;IACnD,kEAAkE;IAClE,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,kBAAkB,CAA8B;IAQxD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,sBAAsB,CAAY;IAC1C,OAAO,CAAC,0BAA0B,CAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsB;IAC3D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAsB;IAC/D,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,uBAAuB,CAAoB;IACnD,OAAO,CAAC,qBAAqB,CAAoB;IACjD,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,4BAA4B,CAAqB;IACzD,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,yBAAyB,CAAqB;IACtD,OAAO,CAAC,uBAAuB,CAAqB;IACpD,2EAA2E;IAC3E,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAI;IAG5C,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,iBAAiB,CAAC,CAAW;IACrC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,aAAa,CAAiB;IAEtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAI9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAO;IAC9C,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,mBAAmB,CAAY;IACvC,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,0BAA0B,CAAC,CAAW;IAC9C,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,WAAW,CAAC,CAAmB;IACvC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAEvC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,2BAA2B,CAAqB;IACxD,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,8BAA8B,CAAqB;IAC3D,OAAO,CAAC,qBAAqB,CAAe;IAC5C,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,kBAAkB,CAAY;IACtC,OAAO,CAAC,WAAW,CAAwC;IAE3D,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,YAAY,CAAgC;IAKpD,OAAO,CAAC,iBAAiB,CAA2E;IACpG,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,mBAAmB,CAAI;IAG/B,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,cAAc,CAAO;IAG7B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,YAAY,CAAO;IAI3B,OAAO,CAAC,eAAe,CAA+B;IAGtD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,qBAAqB,CAAI;IACjC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,kBAAkB,CAA0B;IAEpD,OAAO,CAAC,aAAa,CAAoB;IAGzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAM;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAC9C,OAAO,CAAC,cAAc,CAAwC;IAC9D,OAAO,CAAC,kBAAkB,CAAI;IAC9B,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,KAAK,CASZ;IACD,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAuB;gBAEhC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,aAAa;IAyB9D,qEAAqE;IACrE,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY;IAcxE,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB;IAShG,uEAAuE;IACvE,eAAe,IAAI,YAAY;IAa/B,uBAAuB,IAAI,oBAAoB;IAK/C,OAAO,CAAC,YAAY,CAMnB;IAED;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAU1D,iEAAiE;IACjE,eAAe,IAAI,mBAAmB;IAWtC,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAUnE,OAAO,CAAC,0BAA0B;IA2DlC;;;;;;OAMG;IACH,kBAAkB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAK5C,+DAA+D;IAM/D,OAAO,CAAC,cAAc,CAAQ;IAC9B,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIpC,OAAO,CAAC,yBAAyB;IAoBjC;;;;;;OAMG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAqC5F,OAAO,CAAC,qBAAqB;IAe7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IA2HtG,+EAA+E;IAC/E,eAAe,IAAI;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAI/D;2DACuD;IACvD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAc3D,wEAAwE;IACxE;kFAC8E;IAC9E,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAY1D,eAAe,IAAI,mBAAmB;IAItC;;8EAE0E;IAC1E,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,yBAAyB;IA2BjC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAoBnD,OAAO,CAAC,kBAAkB;IAsBpB,IAAI;IAyCV,OAAO,CAAC,WAAW;IAiFnB,OAAO,CAAC,aAAa;IA+ErB,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,eAAe;IA2uBvB,OAAO,CAAC,WAAW;IAsBnB;oEACgE;IAChE,OAAO,CAAC,eAAe,CAAiD;IAExE;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAClD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAU/B,OAAO,CAAC,YAAY;IA4PpB,OAAO,CAAC,UAAU;IAgKlB,OAAO,CAAC,WAAW;IAmBnB,iFAAiF;IACjF,eAAe,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI;IAC9B,gGAAgG;IAChG,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI;IAoB3E,mIAAmI;IACnI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAoBhG;6FACyF;IACnF,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/C,uFAAuF;IACvF,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAMlD,8FAA8F;IAC9F,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAS3C,4EAA4E;IAC5E,iBAAiB,IAAI,OAAO;IAI5B,qEAAqE;IACrE,kBAAkB,IAAI,OAAO;IAI7B,+EAA+E;IAC/E,YAAY,IAAI,OAAO;IAIvB;;yEAEqE;IACrE,oBAAoB,IAAI,MAAM;IAI9B,8DAA8D;IAC9D,cAAc,IAAI,IAAI;IAQtB,OAAO,CAAC,eAAe;IAUvB,yEAAyE;IACzE,iBAAiB,IAAI,IAAI;IAIzB,iBAAiB,IAAI,MAAM;IAG3B,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAGlC,cAAc,IAAI,MAAM;IAGxB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG/B,aAAa,IAAI,MAAM;IAGvB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9B;;qDAEiD;IACjD,YAAY,IAAI,MAAM;IAGtB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,aAAa;IAYrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IASlB,qFAAqF;IACrF,OAAO,CAAC,QAAQ;IAgBhB,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMrC,0FAA0F;IAC1F,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAUjC,QAAQ,IAAI,QAAQ,CAAC;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAGvD,MAAM,IAAI,QAAQ,CAAC;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC;IAItE,SAAS,CAAC,OAAO,CAAC,EAAE;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,YAAY,CAAC,EAAE,IAAI,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,aAAa,CAAC,EAAE,IAAI,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,CAAA;QACtB,8EAA8E;QAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,IAAI;IA6BR,OAAO,CAAC,iBAAiB;IAIzB,QAAQ,IAAI,WAAW;IAYvB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI;IAcnC,cAAc;IAQd,OAAO;IAgCD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACvC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IACrD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;IA2BjF;wCACoC;IAC9B,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,yBAAyB,GAAG;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;KAAE,GAC3E,OAAO,CAAC,KAAK,CAAC;IAMjB;kFAC8E;YAChE,gBAAgB;IAkBxB,QAAQ,CACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,MAAM,CAAC;IAclB;;;;;;;;;;;;;;;;;;OAkBG;IACG,QAAQ,CACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1F,OAAO,CAAC,MAAM,CAAC;IAMlB;yBACqB;IACrB,kBAAkB,IAAI,OAAO;IAK7B,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IA+B/B,aAAa,IAAI,MAAM,EAAE;IAIzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAIpC;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAezE,kFAAkF;IAClF,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAYtD,qBAAqB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAe9D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIhF,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBxE,OAAO,CAAC,uBAAuB;IAQ/B,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAOnF,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAOpE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAMnE,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIpC,YAAY,IAAI,OAAO;IAIvB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,iBAAiB,IAAI,OAAO;IAI5B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI;IAK/B,UAAU,IAAI,IAAI;IAIlB;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAKvC,OAAO,IAAI,WAAW,GAAG,IAAI;IAI7B,YAAY,IAAI,IAAI;IAWpB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,iBAAiB,CAAI;IAE7B,OAAO,CAAC,eAAe;IAwDvB,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,oBAAoB;YAgBd,kBAAkB;IA2IhC,OAAO,CAAC,cAAc;IAoEtB,OAAO,CAAC,oBAAoB;IAwE5B,OAAO,CAAC,2BAA2B;IA+DnC;;;;;;iDAM6C;IAC7C,OAAO,CAAC,kBAAkB,CAAO;IACjC,OAAO,CAAC,kBAAkB,CAAO;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,OAAO,CAAC,mBAAmB;YAsCb,yBAAyB;IA4MvC;mFAC+E;IAC/E,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,2BAA2B;IAYnC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,mBAAmB;IAyE3B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;YAId,4BAA4B;IAyF1C,OAAO,CAAC,eAAe;IA6CvB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,uBAAuB,CAI9B;IAED,OAAO,CAAC,iBAAiB,CA0BxB;IAED,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,qBAAqB;IAsC7B,OAAO,CAAC,eAAe;IA8DvB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,YAAY;IAqDpB,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,oBAAoB,CAoG3B;IAED,OAAO,CAAC,oBAAoB,CA+C3B;IAED,OAAO,CAAC,kBAAkB,CAsBzB;IAED,OAAO,CAAC,cAAc;YAgDR,iBAAiB;IAkD/B,MAAM;IASN;;;;;;;OAOG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM;IAMhC,OAAO,CAAC,eAAe;IA6MvB,OAAO,CAAC,kBAAkB;IAmB1B;6FACyF;IACzF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAM/C;;;;;;;OAOG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8BxG;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0ChG;iDAC6C;IACvC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC;IASnH,oFAAoF;IACpF,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAU1D,0FAA0F;IAC1F,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWzC,oFAAoF;IACpF,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACvC,OAAO;IAiBV,OAAO,CAAC,aAAa;YASP,sBAAsB;IA+EpC,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;IAgBrB;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IA8DjC,OAAO,CAAC,mBAAmB;IAQ3B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA+BrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,2BAA2B;IAanC;2EACuE;IAEvE,SAAS,CAAC,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAe5F;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,WAAW;CA6CpB"}
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js
CHANGED
|
@@ -17,6 +17,7 @@ import { TRANSPARENT_DEPTH_PREPASS_WGSL } from "./shaders/passes/depth-prepass";
|
|
|
17
17
|
import { SELECTION_MASK_SHADER_WGSL, SELECTION_EDGE_SHADER_WGSL } from "./shaders/passes/selection";
|
|
18
18
|
import { GIZMO_SHADER_WGSL } from "./shaders/passes/gizmo";
|
|
19
19
|
import { BLOOM_BLIT_SHADER_WGSL, BLOOM_DOWNSAMPLE_SHADER_WGSL, BLOOM_UPSAMPLE_SHADER_WGSL, } from "./shaders/passes/bloom";
|
|
20
|
+
import { AGX_LUT_GZ, AGX_LUT_SIZE } from "./shaders/agx-lut";
|
|
20
21
|
import { buildCompositeShader } from "./shaders/passes/composite";
|
|
21
22
|
import { PICK_SHADER_WGSL } from "./shaders/passes/pick";
|
|
22
23
|
import { MIPMAP_BLIT_SHADER_WGSL } from "./shaders/passes/mipmap";
|
|
@@ -46,7 +47,17 @@ const PRESET_NAME_HINTS = [
|
|
|
46
47
|
"face",
|
|
47
48
|
["顔", "颜", "顏", "脸", "臉", "かお", "face", "舌", "tongue", "牙", "牙齿", "齿", "歯", "teeth", "tooth", "口腔", "口内", "mouth", "嘴", "唇", "歯茎", "gums"],
|
|
48
49
|
],
|
|
49
|
-
|
|
50
|
+
// Simplified 发 is listed as compounds, never bare: it also writes 发光 (glow),
|
|
51
|
+
// and hair carries a renderClass, so a chance hit puts an emissive panel in the
|
|
52
|
+
// hair pass. Same reasoning as bare 口 being omitted from face above.
|
|
53
|
+
[
|
|
54
|
+
"hair",
|
|
55
|
+
[
|
|
56
|
+
"前髪", "後髪", "髪", "髮", "頭髪", "もみあげ", "アホ毛", "ヘア",
|
|
57
|
+
"头发", "前发", "后发", "长发", "短发", "发丝", "刘海", "辫", "马尾",
|
|
58
|
+
"hair", "ahoge", "bang",
|
|
59
|
+
],
|
|
60
|
+
],
|
|
50
61
|
["body", ["肌", "皮肤", "skin"]],
|
|
51
62
|
["metal", ["金属", "メタル", "metal", "earring", "耳环", "耳環"]],
|
|
52
63
|
[
|
|
@@ -159,7 +170,7 @@ export const DEFAULT_DEPTH_OF_FIELD_OPTIONS = {
|
|
|
159
170
|
export const DEFAULT_VIEW_TRANSFORM = {
|
|
160
171
|
exposure: 0.6,
|
|
161
172
|
gamma: 1.0,
|
|
162
|
-
|
|
173
|
+
transform: "filmic",
|
|
163
174
|
};
|
|
164
175
|
const NEUTRAL_GRADE_CHANNEL = 0.5;
|
|
165
176
|
export const DEFAULT_COLOR_GRADING = {
|
|
@@ -317,6 +328,7 @@ export class Engine {
|
|
|
317
328
|
// params live in their own uniform buffer so setEffectParam is a write, not a
|
|
318
329
|
// recompile (the same instant tier as setStyleParam).
|
|
319
330
|
this.effect = null;
|
|
331
|
+
this.agxLutTexture = null;
|
|
320
332
|
/** time=0 origin for the active effect — reset each setEffect. */
|
|
321
333
|
this.effectEpochMs = 0;
|
|
322
334
|
this.compositeBloomView = null;
|
|
@@ -653,7 +665,7 @@ export class Engine {
|
|
|
653
665
|
return {
|
|
654
666
|
exposure: partial?.exposure ?? d.exposure,
|
|
655
667
|
gamma: partial?.gamma ?? d.gamma,
|
|
656
|
-
|
|
668
|
+
transform: partial?.transform ?? d.transform,
|
|
657
669
|
};
|
|
658
670
|
}
|
|
659
671
|
/** Current bloom settings (Blender names; tint is a copied `Vec3`). */
|
|
@@ -671,7 +683,7 @@ export class Engine {
|
|
|
671
683
|
}
|
|
672
684
|
getViewTransformOptions() {
|
|
673
685
|
const v = this.viewTransform;
|
|
674
|
-
return { exposure: v.exposure, gamma: v.gamma,
|
|
686
|
+
return { exposure: v.exposure, gamma: v.gamma, transform: v.transform };
|
|
675
687
|
}
|
|
676
688
|
/**
|
|
677
689
|
* Color-grade the tonemapped scene (ASC CDL slope/offset/power + saturation).
|
|
@@ -711,8 +723,8 @@ export class Engine {
|
|
|
711
723
|
v.exposure = patch.exposure;
|
|
712
724
|
if (patch.gamma !== undefined)
|
|
713
725
|
v.gamma = patch.gamma;
|
|
714
|
-
if (patch.
|
|
715
|
-
v.
|
|
726
|
+
if (patch.transform !== undefined)
|
|
727
|
+
v.transform = patch.transform;
|
|
716
728
|
if (this.device && this.compositeUniformBuffer) {
|
|
717
729
|
this.writeCompositeViewUniforms();
|
|
718
730
|
}
|
|
@@ -743,8 +755,10 @@ export class Engine {
|
|
|
743
755
|
u[10] = bg?.z ?? 0;
|
|
744
756
|
// Base-layer mode only. A user effect is a separate LAYER over whichever
|
|
745
757
|
// base is active, and needs no flag of its own: the composite pipeline is
|
|
746
|
-
// rebuilt per effect, so the compiled variant IS the flag.
|
|
758
|
+
// rebuilt per effect, so the compiled variant IS the flag.
|
|
747
759
|
u[11] = this.backdropEquirectView ? 2 : bg ? 1 : 0;
|
|
760
|
+
// Which display transform forms the frame (see viewTransform in composite.ts).
|
|
761
|
+
u[25] = v.transform === "agx" ? 2 : v.transform === "standard" ? 1 : 0;
|
|
748
762
|
u[26] = this.canvas.width;
|
|
749
763
|
u[27] = this.canvas.height;
|
|
750
764
|
// ── Grade (viewU[7..9]) ── The UI's three tonal COLORS map to ASC CDL here,
|
|
@@ -806,6 +820,7 @@ export class Engine {
|
|
|
806
820
|
{ binding: 7, resource: { buffer: this.effect?.paramsBuffer ?? this.bgParamsDummyBuffer } },
|
|
807
821
|
{ binding: 8, resource: this.depthReadView },
|
|
808
822
|
{ binding: 9, resource: { buffer: this.dofUniformBuffer } },
|
|
823
|
+
{ binding: 10, resource: (this.agxLutTexture ?? this.agxFallbackTexture).createView({ dimension: "3d" }) },
|
|
809
824
|
],
|
|
810
825
|
});
|
|
811
826
|
}
|
|
@@ -1287,6 +1302,38 @@ export class Engine {
|
|
|
1287
1302
|
// smooth gradients) while still passing through every anchor (look preserved) and staying
|
|
1288
1303
|
// monotone (no tonemap overshoot/ringing). Domain is uniform in log2 space: anchor k sits
|
|
1289
1304
|
// at t=k, k=0..13 (t = log2(linear)+10). See composite.ts::filmic for the sampling map.
|
|
1305
|
+
/**
|
|
1306
|
+
* Decompress and upload Blender's AgX cube.
|
|
1307
|
+
*
|
|
1308
|
+
* Deliberately off the critical path: it is 723 KB once inflated, and a frame
|
|
1309
|
+
* rendered before it lands should show the scene under whatever transform is
|
|
1310
|
+
* already there rather than wait. Until then binding 10 holds a 1×1×1 stand-in,
|
|
1311
|
+
* which is only ever sampled if someone selects AgX in that window.
|
|
1312
|
+
*/
|
|
1313
|
+
async loadAgxLut() {
|
|
1314
|
+
try {
|
|
1315
|
+
const packed = Uint8Array.from(atob(AGX_LUT_GZ), (ch) => ch.charCodeAt(0));
|
|
1316
|
+
const stream = new Blob([packed]).stream().pipeThrough(new DecompressionStream("gzip"));
|
|
1317
|
+
const bytes = new Uint8Array(await new Response(stream).arrayBuffer());
|
|
1318
|
+
const n = AGX_LUT_SIZE;
|
|
1319
|
+
if (bytes.byteLength !== n * n * n * 4)
|
|
1320
|
+
throw new Error(`AgX LUT is ${bytes.byteLength} bytes, expected ${n ** 3 * 4}`);
|
|
1321
|
+
const tex = this.device.createTexture({
|
|
1322
|
+
label: "AgX 57³ LUT",
|
|
1323
|
+
size: [n, n, n],
|
|
1324
|
+
dimension: "3d",
|
|
1325
|
+
format: "rgb10a2unorm",
|
|
1326
|
+
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST,
|
|
1327
|
+
});
|
|
1328
|
+
// .cube order is red fastest, which is exactly a 3D texture's own layout.
|
|
1329
|
+
this.device.queue.writeTexture({ texture: tex }, bytes, { bytesPerRow: n * 4, rowsPerImage: n }, [n, n, n]);
|
|
1330
|
+
this.agxLutTexture = tex;
|
|
1331
|
+
this.rebuildCompositeBindGroup();
|
|
1332
|
+
}
|
|
1333
|
+
catch {
|
|
1334
|
+
// A missing LUT costs AgX, not the renderer — the other transforms stand.
|
|
1335
|
+
}
|
|
1336
|
+
}
|
|
1290
1337
|
bakeFilmicLut() {
|
|
1291
1338
|
const anchors = [
|
|
1292
1339
|
0.0028, 0.0068, 0.0151, 0.0313, 0.061, 0.112, 0.192, 0.306, 0.459, 0.631, 0.82, 0.907, 0.962, 0.989,
|
|
@@ -1532,6 +1579,13 @@ export class Engine {
|
|
|
1532
1579
|
// StyleUniforms for compiled graph shaders (adjust-tier sliders). Hand-written
|
|
1533
1580
|
// presets simply don't declare it — a layout may carry bindings a shader ignores.
|
|
1534
1581
|
{ binding: 4, visibility: GPUShaderStage.FRAGMENT, buffer: { type: "uniform" } },
|
|
1582
|
+
// Style-group image maps. A PMX material carries one image; a
|
|
1583
|
+
// Blender-authored look needs a lightmap or ramp beside it, and those
|
|
1584
|
+
// belong to the GROUP rather than to the model's own material data.
|
|
1585
|
+
{ binding: 5, visibility: GPUShaderStage.FRAGMENT, texture: {} },
|
|
1586
|
+
{ binding: 6, visibility: GPUShaderStage.FRAGMENT, texture: {} },
|
|
1587
|
+
{ binding: 7, visibility: GPUShaderStage.FRAGMENT, texture: {} },
|
|
1588
|
+
{ binding: 8, visibility: GPUShaderStage.FRAGMENT, texture: {} },
|
|
1535
1589
|
],
|
|
1536
1590
|
});
|
|
1537
1591
|
// Shared zero StyleUniforms buffer — bound by every ungrouped material; grouped
|
|
@@ -1659,6 +1713,14 @@ export class Engine {
|
|
|
1659
1713
|
this.shadowMapDepthView = this.shadowMapTexture.createView();
|
|
1660
1714
|
// One-shot bake of Blender EEVEE's combined BRDF LUT (DFG + LTC packed rgba8unorm).
|
|
1661
1715
|
this.bakeBrdfLut();
|
|
1716
|
+
this.agxFallbackTexture = this.device.createTexture({
|
|
1717
|
+
label: "AgX LUT fallback",
|
|
1718
|
+
size: [1, 1, 1],
|
|
1719
|
+
dimension: "3d",
|
|
1720
|
+
format: "rgb10a2unorm",
|
|
1721
|
+
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST,
|
|
1722
|
+
});
|
|
1723
|
+
void this.loadAgxLut();
|
|
1662
1724
|
this.bakeFilmicLut();
|
|
1663
1725
|
// Now that shadow resources exist, create the main per-frame bind group
|
|
1664
1726
|
this.perFrameBindGroup = this.device.createBindGroup({
|
|
@@ -1976,6 +2038,9 @@ export class Engine {
|
|
|
1976
2038
|
texture: { sampleType: "depth", viewDimension: "2d", multisampled: true },
|
|
1977
2039
|
},
|
|
1978
2040
|
{ binding: 9, visibility: GPUShaderStage.FRAGMENT, buffer: { type: "uniform" } },
|
|
2041
|
+
// AgX's 57³ cube. Decompressed and uploaded off the critical path, so a
|
|
2042
|
+
// 1×1×1 stand-in keeps the bind group valid until it arrives.
|
|
2043
|
+
{ binding: 10, visibility: GPUShaderStage.FRAGMENT, texture: { viewDimension: "3d" } },
|
|
1979
2044
|
],
|
|
1980
2045
|
});
|
|
1981
2046
|
this.fallbackEquirectTexture = this.device.createTexture({
|
|
@@ -2787,7 +2852,7 @@ export class Engine {
|
|
|
2787
2852
|
// zero buffer is engine-owned.
|
|
2788
2853
|
this.forEachInstance((inst) => {
|
|
2789
2854
|
for (const install of inst.styleGroups.values())
|
|
2790
|
-
|
|
2855
|
+
this.destroyInstall(install);
|
|
2791
2856
|
inst.styleGroups.clear();
|
|
2792
2857
|
});
|
|
2793
2858
|
this.zeroStyleBuffer?.destroy();
|
|
@@ -2913,7 +2978,7 @@ export class Engine {
|
|
|
2913
2978
|
}
|
|
2914
2979
|
// Per-group StyleUniforms buffers aren't in gpuBuffers (allocated post-load).
|
|
2915
2980
|
for (const install of inst.styleGroups.values())
|
|
2916
|
-
|
|
2981
|
+
this.destroyInstall(install);
|
|
2917
2982
|
this.modelInstances.delete(name);
|
|
2918
2983
|
}
|
|
2919
2984
|
getModelNames() {
|
|
@@ -2995,11 +3060,50 @@ export class Engine {
|
|
|
2995
3060
|
}
|
|
2996
3061
|
// Build a material's bind group with binding(4) pointing at a given StyleUniforms buffer
|
|
2997
3062
|
// (the group's buffer when grouped, or the shared zero buffer when ungrouped).
|
|
2998
|
-
|
|
3063
|
+
/** A group's uniform buffer and its maps have the same lifetime — freeing one
|
|
3064
|
+
* without the other is how a re-apply leaks GPU memory a frame at a time. */
|
|
3065
|
+
destroyInstall(install) {
|
|
3066
|
+
install.uniformBuffer.destroy();
|
|
3067
|
+
for (const tex of install.images ?? [])
|
|
3068
|
+
tex?.destroy();
|
|
3069
|
+
}
|
|
3070
|
+
/** Upload a group's image maps. Sources are decoded images the host already
|
|
3071
|
+
* holds; the engine never fetches, matching how models and motions arrive. */
|
|
3072
|
+
uploadGroupImages(group) {
|
|
3073
|
+
if (!group.images?.length)
|
|
3074
|
+
return undefined;
|
|
3075
|
+
return group.images.slice(0, 4).map((entry) => {
|
|
3076
|
+
if (!entry)
|
|
3077
|
+
return null;
|
|
3078
|
+
const wrapped = "source" in entry;
|
|
3079
|
+
const src = wrapped ? entry.source : entry;
|
|
3080
|
+
const width = Math.max(1, "naturalWidth" in src ? src.naturalWidth : src.width);
|
|
3081
|
+
const height = Math.max(1, "naturalHeight" in src ? src.naturalHeight : src.height);
|
|
3082
|
+
const tex = this.device.createTexture({
|
|
3083
|
+
label: `group map: ${group.id}`,
|
|
3084
|
+
size: [width, height],
|
|
3085
|
+
// Colour maps decode to linear on sample, the way material textures do;
|
|
3086
|
+
// data maps must not, or every threshold packed in their channels moves.
|
|
3087
|
+
format: wrapped && entry.srgb ? "rgba8unorm-srgb" : "rgba8unorm",
|
|
3088
|
+
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT,
|
|
3089
|
+
});
|
|
3090
|
+
this.device.queue.copyExternalImageToTexture({ source: src }, { texture: tex, premultipliedAlpha: wrapped && entry.premultiplied === true }, [width, height]);
|
|
3091
|
+
return tex;
|
|
3092
|
+
});
|
|
3093
|
+
}
|
|
3094
|
+
createMaterialBindGroup(label, baseEntries, styleBuffer, groupImages) {
|
|
3095
|
+
// Every material bind group in the engine is built here, which is why the
|
|
3096
|
+
// group's maps are threaded through this one function rather than patched in
|
|
3097
|
+
// at each call site — an unset slot reads white, never stale.
|
|
3098
|
+
const slots = [];
|
|
3099
|
+
for (let i = 0; i < 4; i++) {
|
|
3100
|
+
const tex = groupImages?.[i] ?? this.fallbackMaterialTexture;
|
|
3101
|
+
slots.push({ binding: 5 + i, resource: tex.createView() });
|
|
3102
|
+
}
|
|
2999
3103
|
return this.device.createBindGroup({
|
|
3000
3104
|
label,
|
|
3001
3105
|
layout: this.mainPerMaterialBindGroupLayout,
|
|
3002
|
-
entries: [...baseEntries, { binding: 4, resource: { buffer: styleBuffer } }],
|
|
3106
|
+
entries: [...baseEntries, { binding: 4, resource: { buffer: styleBuffer } }, ...slots],
|
|
3003
3107
|
});
|
|
3004
3108
|
}
|
|
3005
3109
|
setMaterialVisible(modelName, materialName, visible) {
|
|
@@ -4578,7 +4682,7 @@ export class Engine {
|
|
|
4578
4682
|
for (const [id, install] of inst.styleGroups) {
|
|
4579
4683
|
if (!nextIds.has(id)) {
|
|
4580
4684
|
inst.styleGroupGen.set(id, (inst.styleGroupGen.get(id) ?? 0) + 1);
|
|
4581
|
-
|
|
4685
|
+
this.destroyInstall(install);
|
|
4582
4686
|
inst.styleGroups.delete(id);
|
|
4583
4687
|
}
|
|
4584
4688
|
}
|
|
@@ -4612,7 +4716,7 @@ export class Engine {
|
|
|
4612
4716
|
if (!inst || !install)
|
|
4613
4717
|
return;
|
|
4614
4718
|
inst.styleGroupGen.set(groupId, (inst.styleGroupGen.get(groupId) ?? 0) + 1); // discard in-flight compile
|
|
4615
|
-
|
|
4719
|
+
this.destroyInstall(install);
|
|
4616
4720
|
inst.styleGroups.delete(groupId);
|
|
4617
4721
|
this.assignDrawCallGroups(inst, this.currentClaims(inst));
|
|
4618
4722
|
}
|
|
@@ -4623,7 +4727,7 @@ export class Engine {
|
|
|
4623
4727
|
return;
|
|
4624
4728
|
for (const [id, install] of inst.styleGroups) {
|
|
4625
4729
|
inst.styleGroupGen.set(id, (inst.styleGroupGen.get(id) ?? 0) + 1);
|
|
4626
|
-
|
|
4730
|
+
this.destroyInstall(install);
|
|
4627
4731
|
}
|
|
4628
4732
|
inst.styleGroups.clear();
|
|
4629
4733
|
this.assignDrawCallGroups(inst, new Map());
|
|
@@ -4712,6 +4816,9 @@ export class Engine {
|
|
|
4712
4816
|
size: 256,
|
|
4713
4817
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
4714
4818
|
});
|
|
4819
|
+
// The outgoing install's maps go with it — a re-apply that changes images
|
|
4820
|
+
// would otherwise strand the old textures for the life of the model.
|
|
4821
|
+
const previousImages = inst.styleGroups.get(group.id)?.images;
|
|
4715
4822
|
inst.styleGroups.set(group.id, {
|
|
4716
4823
|
group,
|
|
4717
4824
|
renderClass,
|
|
@@ -4720,9 +4827,28 @@ export class Engine {
|
|
|
4720
4827
|
pipelineNoDepthWrite,
|
|
4721
4828
|
overEyesPipeline,
|
|
4722
4829
|
uniformBuffer,
|
|
4830
|
+
images: this.uploadGroupImages(group),
|
|
4723
4831
|
slotMap: result.slotMap,
|
|
4724
4832
|
signature,
|
|
4725
4833
|
});
|
|
4834
|
+
// Rebind this group's draw calls before the old textures go.
|
|
4835
|
+
//
|
|
4836
|
+
// assignDrawCallGroups only rebuilds a bind group when a material CHANGES
|
|
4837
|
+
// group, which is the wrong test here: swapping the graph on a group a
|
|
4838
|
+
// material already belongs to leaves its id alone while replacing the maps
|
|
4839
|
+
// underneath it. The draw call then kept a bind group holding the outgoing
|
|
4840
|
+
// textures — destroyed on the next line — so a graph swap either sampled the
|
|
4841
|
+
// old maps, or the fallback white where the previous graph had none (which
|
|
4842
|
+
// reads as a blown-out white material through any screen or add), or tripped
|
|
4843
|
+
// a validation error on a destroyed texture. Only a reload cleared it.
|
|
4844
|
+
const install = inst.styleGroups.get(group.id);
|
|
4845
|
+
for (const dc of inst.drawCalls) {
|
|
4846
|
+
if (!dc.baseBindGroupEntries || dc.groupId !== group.id)
|
|
4847
|
+
continue;
|
|
4848
|
+
dc.bindGroup = this.createMaterialBindGroup(`material: ${dc.materialName}`, dc.baseBindGroupEntries, uniformBuffer, install?.images);
|
|
4849
|
+
}
|
|
4850
|
+
for (const tex of previousImages ?? [])
|
|
4851
|
+
tex?.destroy();
|
|
4726
4852
|
this.writeGroupDefaults(uniformBuffer, group, result.slotMap);
|
|
4727
4853
|
return { ok: true, diagnostics, slotMap: result.slotMap };
|
|
4728
4854
|
}
|
|
@@ -4741,7 +4867,7 @@ export class Engine {
|
|
|
4741
4867
|
if (dc.groupId === groupId)
|
|
4742
4868
|
continue;
|
|
4743
4869
|
dc.groupId = groupId;
|
|
4744
|
-
dc.bindGroup = this.createMaterialBindGroup(`material: ${dc.materialName}`, dc.baseBindGroupEntries, install ? install.uniformBuffer : this.zeroStyleBuffer);
|
|
4870
|
+
dc.bindGroup = this.createMaterialBindGroup(`material: ${dc.materialName}`, dc.baseBindGroupEntries, install ? install.uniformBuffer : this.zeroStyleBuffer, install?.images);
|
|
4745
4871
|
}
|
|
4746
4872
|
this.sortDrawCalls(inst);
|
|
4747
4873
|
}
|
|
@@ -52,7 +52,7 @@ export const BODY_GRAPH = {
|
|
|
52
52
|
{
|
|
53
53
|
id: "principled",
|
|
54
54
|
type: "principled",
|
|
55
|
-
inputs: { metallic: 0.0,
|
|
55
|
+
inputs: { metallic: 0.0, specular_ior_level: 0.5, roughness: 0.3, spec_clamp: 10.0, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
56
56
|
},
|
|
57
57
|
{ id: "p_sum", type: "add_shader" },
|
|
58
58
|
{ id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.5 } },
|
|
@@ -89,7 +89,7 @@ export const BODY_GRAPH = {
|
|
|
89
89
|
{ from: { node: "noise_ramp", socket: "fac_out" }, to: { node: "principled_base", socket: "fac" } },
|
|
90
90
|
{ from: { node: "bc", socket: "color" }, to: { node: "principled_base", socket: "a" } },
|
|
91
91
|
{ from: { node: "bc", socket: "color" }, to: { node: "p_emit", socket: "color" } },
|
|
92
|
-
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "
|
|
92
|
+
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
93
93
|
{ from: { node: "bump", socket: "vector" }, to: { node: "principled", socket: "normal" } },
|
|
94
94
|
{ from: { node: "principled", socket: "color" }, to: { node: "p_sum", socket: "a" } },
|
|
95
95
|
{ from: { node: "p_emit", socket: "color" }, to: { node: "p_sum", socket: "b" } },
|
|
@@ -27,7 +27,7 @@ export const CLOTH_ROUGH_GRAPH = {
|
|
|
27
27
|
{
|
|
28
28
|
id: "principled",
|
|
29
29
|
type: "principled",
|
|
30
|
-
inputs: { metallic: 0.0,
|
|
30
|
+
inputs: { metallic: 0.0, specular_ior_level: 0.8, roughness: 0.8187, spec_clamp: 10.0, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
31
31
|
},
|
|
32
32
|
{ id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.8999999761581421 } },
|
|
33
33
|
],
|
|
@@ -52,7 +52,7 @@ export const CLOTH_ROUGH_GRAPH = {
|
|
|
52
52
|
{ from: { node: "noise_ramp", socket: "fac_out" }, to: { node: "bump", socket: "height" } },
|
|
53
53
|
{ from: { node: "geo", socket: "normal" }, to: { node: "bump", socket: "normal" } },
|
|
54
54
|
{ from: { node: "tex", socket: "color" }, to: { node: "principled_base", socket: "color" } },
|
|
55
|
-
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "
|
|
55
|
+
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
56
56
|
{ from: { node: "bump", socket: "vector" }, to: { node: "principled", socket: "normal" } },
|
|
57
57
|
{ from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
|
|
58
58
|
{ from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
|
|
@@ -24,7 +24,7 @@ export const CLOTH_SMOOTH_GRAPH = {
|
|
|
24
24
|
{
|
|
25
25
|
id: "principled",
|
|
26
26
|
type: "principled",
|
|
27
|
-
inputs: { metallic: 0.0,
|
|
27
|
+
inputs: { metallic: 0.0, specular_ior_level: 0.8, roughness: 0.5, spec_clamp: 10.0, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
28
28
|
},
|
|
29
29
|
{ id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.8999999761581421 } },
|
|
30
30
|
],
|
|
@@ -45,7 +45,7 @@ export const CLOTH_SMOOTH_GRAPH = {
|
|
|
45
45
|
{ from: { node: "hue_004", socket: "color" }, to: { node: "npr_overlay", socket: "b" } },
|
|
46
46
|
{ from: { node: "npr_overlay", socket: "color" }, to: { node: "npr_emit", socket: "color" } },
|
|
47
47
|
{ from: { node: "tex", socket: "color" }, to: { node: "principled_base", socket: "color" } },
|
|
48
|
-
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "
|
|
48
|
+
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
49
49
|
{ from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
|
|
50
50
|
{ from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
|
|
51
51
|
],
|
|
@@ -15,13 +15,13 @@ export const DEFAULT_GRAPH = {
|
|
|
15
15
|
{
|
|
16
16
|
id: "principled",
|
|
17
17
|
type: "principled",
|
|
18
|
-
inputs: { metallic: 0.0,
|
|
18
|
+
inputs: { metallic: 0.0, specular_ior_level: 0.5, roughness: 0.5, spec_clamp: 10.0, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
19
19
|
},
|
|
20
20
|
],
|
|
21
21
|
links: [
|
|
22
22
|
{ from: { node: "tex", socket: "color" }, to: { node: "base", socket: "a" } },
|
|
23
23
|
{ from: { node: "mat", socket: "color" }, to: { node: "base", socket: "b" } },
|
|
24
|
-
{ from: { node: "base", socket: "color" }, to: { node: "principled", socket: "
|
|
24
|
+
{ from: { node: "base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
25
25
|
],
|
|
26
26
|
output: { node: "principled", socket: "color" },
|
|
27
27
|
};
|
|
@@ -15,13 +15,13 @@ export const EYE_GRAPH = {
|
|
|
15
15
|
{
|
|
16
16
|
id: "principled",
|
|
17
17
|
type: "principled",
|
|
18
|
-
inputs: { metallic: 0.0,
|
|
18
|
+
inputs: { metallic: 0.0, specular_ior_level: 0.5, roughness: 0.5, spec_clamp: 1e30, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
19
19
|
},
|
|
20
20
|
{ id: "emission", type: "emission", inputs: { strength: 1.5 } },
|
|
21
21
|
{ id: "add", type: "add_shader" },
|
|
22
22
|
],
|
|
23
23
|
links: [
|
|
24
|
-
{ from: { node: "tex", socket: "color" }, to: { node: "principled", socket: "
|
|
24
|
+
{ from: { node: "tex", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
25
25
|
{ from: { node: "tex", socket: "color" }, to: { node: "emission", socket: "color" } },
|
|
26
26
|
{ from: { node: "principled", socket: "color" }, to: { node: "add", socket: "a" } },
|
|
27
27
|
{ from: { node: "emission", socket: "color" }, to: { node: "add", socket: "b" } },
|
|
@@ -63,7 +63,7 @@ export const FACE_GRAPH = {
|
|
|
63
63
|
{
|
|
64
64
|
id: "principled",
|
|
65
65
|
type: "principled",
|
|
66
|
-
inputs: { metallic: 0.0,
|
|
66
|
+
inputs: { metallic: 0.0, specular_ior_level: 0.5, roughness: 0.3, spec_clamp: 10.0, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
67
67
|
},
|
|
68
68
|
{ id: "p_sum", type: "add_shader" },
|
|
69
69
|
{ id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.5 } },
|
|
@@ -113,7 +113,7 @@ export const FACE_GRAPH = {
|
|
|
113
113
|
{ from: { node: "noise_ramp", socket: "fac_out" }, to: { node: "principled_base", socket: "fac" } },
|
|
114
114
|
{ from: { node: "bc", socket: "color" }, to: { node: "principled_base", socket: "a" } },
|
|
115
115
|
{ from: { node: "bc", socket: "color" }, to: { node: "p_emit", socket: "color" } },
|
|
116
|
-
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "
|
|
116
|
+
{ from: { node: "principled_base", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
117
117
|
{ from: { node: "bump", socket: "vector" }, to: { node: "principled", socket: "normal" } },
|
|
118
118
|
{ from: { node: "principled", socket: "color" }, to: { node: "p_sum", socket: "a" } },
|
|
119
119
|
{ from: { node: "p_emit", socket: "color" }, to: { node: "p_sum", socket: "b" } },
|
|
@@ -41,7 +41,7 @@ export const HAIR_GRAPH = {
|
|
|
41
41
|
{
|
|
42
42
|
id: "principled",
|
|
43
43
|
type: "principled",
|
|
44
|
-
inputs: { metallic: 0.0,
|
|
44
|
+
inputs: { metallic: 0.0, specular_ior_level: 1.0, roughness: 0.3, spec_clamp: 10.0, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
45
45
|
},
|
|
46
46
|
{ id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.2 } },
|
|
47
47
|
],
|
|
@@ -68,7 +68,7 @@ export const HAIR_GRAPH = {
|
|
|
68
68
|
{ from: { node: "gate", socket: "value" }, to: { node: "gate_scale", socket: "a" } },
|
|
69
69
|
{ from: { node: "mix_shader_002", socket: "color" }, to: { node: "npr_add", socket: "a" } },
|
|
70
70
|
{ from: { node: "gate_scale", socket: "value" }, to: { node: "npr_add", socket: "b" } },
|
|
71
|
-
{ from: { node: "bc", socket: "color" }, to: { node: "principled", socket: "
|
|
71
|
+
{ from: { node: "bc", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
72
72
|
{ from: { node: "npr_add", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
|
|
73
73
|
{ from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
|
|
74
74
|
],
|
|
@@ -27,7 +27,7 @@ export const METAL_GRAPH = {
|
|
|
27
27
|
{
|
|
28
28
|
id: "principled",
|
|
29
29
|
type: "principled",
|
|
30
|
-
inputs: { metallic: 1.0,
|
|
30
|
+
inputs: { metallic: 1.0, specular_ior_level: 1.0, roughness: 0.3, spec_clamp: 1e30, sheen_weight: 0.0, sheen_tint: 0.0 },
|
|
31
31
|
},
|
|
32
32
|
{ id: "mix_shader_001", type: "mix_shader", inputs: { fac: 0.6967 } },
|
|
33
33
|
],
|
|
@@ -50,7 +50,7 @@ export const METAL_GRAPH = {
|
|
|
50
50
|
{ from: { node: "voro_ramp", socket: "fac_out" }, to: { node: "albedo", socket: "fac" } },
|
|
51
51
|
{ from: { node: "voro_ramp", socket: "fac_out" }, to: { node: "albedo", socket: "a" } },
|
|
52
52
|
{ from: { node: "hue_006", socket: "color" }, to: { node: "albedo", socket: "b" } },
|
|
53
|
-
{ from: { node: "albedo", socket: "color" }, to: { node: "principled", socket: "
|
|
53
|
+
{ from: { node: "albedo", socket: "color" }, to: { node: "principled", socket: "base_color" } },
|
|
54
54
|
{ from: { node: "npr_emit", socket: "color" }, to: { node: "mix_shader_001", socket: "a" } },
|
|
55
55
|
{ from: { node: "principled", socket: "color" }, to: { node: "mix_shader_001", socket: "b" } },
|
|
56
56
|
],
|