@skenora/runtime 0.1.2
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 +92 -0
- package/dist/core/built-in-runtime-capabilities.d.ts +21 -0
- package/dist/core/built-in-runtime-capabilities.d.ts.map +1 -0
- package/dist/core/built-in-runtime-capabilities.js +175 -0
- package/dist/core/built-in-runtime-capabilities.js.map +1 -0
- package/dist/core/runtime-capability-registry.d.ts +90 -0
- package/dist/core/runtime-capability-registry.d.ts.map +1 -0
- package/dist/core/runtime-capability-registry.js +42 -0
- package/dist/core/runtime-capability-registry.js.map +1 -0
- package/dist/core/runtime-document-coordinator.d.ts +28 -0
- package/dist/core/runtime-document-coordinator.d.ts.map +1 -0
- package/dist/core/runtime-document-coordinator.js +124 -0
- package/dist/core/runtime-document-coordinator.js.map +1 -0
- package/dist/core/runtime-events.d.ts +43 -0
- package/dist/core/runtime-events.d.ts.map +1 -0
- package/dist/core/runtime-events.js +2 -0
- package/dist/core/runtime-events.js.map +1 -0
- package/dist/core/runtime-session.d.ts +93 -0
- package/dist/core/runtime-session.d.ts.map +1 -0
- package/dist/core/runtime-session.js +1344 -0
- package/dist/core/runtime-session.js.map +1 -0
- package/dist/editor-tools/camera-path-editing-controller.d.ts +36 -0
- package/dist/editor-tools/camera-path-editing-controller.d.ts.map +1 -0
- package/dist/editor-tools/camera-path-editing-controller.js +212 -0
- package/dist/editor-tools/camera-path-editing-controller.js.map +1 -0
- package/dist/editor-tools/camera-path-visualizer.d.ts +28 -0
- package/dist/editor-tools/camera-path-visualizer.d.ts.map +1 -0
- package/dist/editor-tools/camera-path-visualizer.js +151 -0
- package/dist/editor-tools/camera-path-visualizer.js.map +1 -0
- package/dist/editor-tools/drop-preview-controller.d.ts +34 -0
- package/dist/editor-tools/drop-preview-controller.d.ts.map +1 -0
- package/dist/editor-tools/drop-preview-controller.js +209 -0
- package/dist/editor-tools/drop-preview-controller.js.map +1 -0
- package/dist/editor-tools/grid-helper.d.ts +18 -0
- package/dist/editor-tools/grid-helper.d.ts.map +1 -0
- package/dist/editor-tools/grid-helper.js +27 -0
- package/dist/editor-tools/grid-helper.js.map +1 -0
- package/dist/editor-tools/light-editing-controller.d.ts +25 -0
- package/dist/editor-tools/light-editing-controller.d.ts.map +1 -0
- package/dist/editor-tools/light-editing-controller.js +207 -0
- package/dist/editor-tools/light-editing-controller.js.map +1 -0
- package/dist/editor-tools/node-operations.d.ts +51 -0
- package/dist/editor-tools/node-operations.d.ts.map +1 -0
- package/dist/editor-tools/node-operations.js +182 -0
- package/dist/editor-tools/node-operations.js.map +1 -0
- package/dist/editor-tools/selection-controller.d.ts +44 -0
- package/dist/editor-tools/selection-controller.d.ts.map +1 -0
- package/dist/editor-tools/selection-controller.js +299 -0
- package/dist/editor-tools/selection-controller.js.map +1 -0
- package/dist/editor-tools/shape-drawing-controller.d.ts +45 -0
- package/dist/editor-tools/shape-drawing-controller.d.ts.map +1 -0
- package/dist/editor-tools/shape-drawing-controller.js +205 -0
- package/dist/editor-tools/shape-drawing-controller.js.map +1 -0
- package/dist/editor-tools/shape-editing-controller.d.ts +40 -0
- package/dist/editor-tools/shape-editing-controller.d.ts.map +1 -0
- package/dist/editor-tools/shape-editing-controller.js +340 -0
- package/dist/editor-tools/shape-editing-controller.js.map +1 -0
- package/dist/editor.d.ts +12 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +12 -0
- package/dist/editor.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/inspection/node-tools.d.ts +51 -0
- package/dist/inspection/node-tools.d.ts.map +1 -0
- package/dist/inspection/node-tools.js +282 -0
- package/dist/inspection/node-tools.js.map +1 -0
- package/dist/interaction/runtime-third-person-controller.d.ts +24 -0
- package/dist/interaction/runtime-third-person-controller.d.ts.map +1 -0
- package/dist/interaction/runtime-third-person-controller.js +71 -0
- package/dist/interaction/runtime-third-person-controller.js.map +1 -0
- package/dist/interaction/third-person-controller.d.ts +61 -0
- package/dist/interaction/third-person-controller.d.ts.map +1 -0
- package/dist/interaction/third-person-controller.js +400 -0
- package/dist/interaction/third-person-controller.js.map +1 -0
- package/dist/interaction.d.ts +3 -0
- package/dist/interaction.d.ts.map +1 -0
- package/dist/interaction.js +3 -0
- package/dist/interaction.js.map +1 -0
- package/dist/presentation/scene-renderer.d.ts +75 -0
- package/dist/presentation/scene-renderer.d.ts.map +1 -0
- package/dist/presentation/scene-renderer.js +324 -0
- package/dist/presentation/scene-renderer.js.map +1 -0
- package/dist/presentation/viewport-controller.d.ts +13 -0
- package/dist/presentation/viewport-controller.d.ts.map +1 -0
- package/dist/presentation/viewport-controller.js +186 -0
- package/dist/presentation/viewport-controller.js.map +1 -0
- package/dist/projection/annotation-projector.d.ts +28 -0
- package/dist/projection/annotation-projector.d.ts.map +1 -0
- package/dist/projection/annotation-projector.js +98 -0
- package/dist/projection/annotation-projector.js.map +1 -0
- package/dist/projection/built-in-entity-projectors.d.ts +7 -0
- package/dist/projection/built-in-entity-projectors.d.ts.map +1 -0
- package/dist/projection/built-in-entity-projectors.js +75 -0
- package/dist/projection/built-in-entity-projectors.js.map +1 -0
- package/dist/projection/camera-entity-factory.d.ts +9 -0
- package/dist/projection/camera-entity-factory.d.ts.map +1 -0
- package/dist/projection/camera-entity-factory.js +93 -0
- package/dist/projection/camera-entity-factory.js.map +1 -0
- package/dist/projection/document-applier.d.ts +38 -0
- package/dist/projection/document-applier.d.ts.map +1 -0
- package/dist/projection/document-applier.js +219 -0
- package/dist/projection/document-applier.js.map +1 -0
- package/dist/projection/entity-projection-registry.d.ts +56 -0
- package/dist/projection/entity-projection-registry.d.ts.map +1 -0
- package/dist/projection/entity-projection-registry.js +121 -0
- package/dist/projection/entity-projection-registry.js.map +1 -0
- package/dist/projection/model-importer.d.ts +41 -0
- package/dist/projection/model-importer.d.ts.map +1 -0
- package/dist/projection/model-importer.js +469 -0
- package/dist/projection/model-importer.js.map +1 -0
- package/dist/projection/particle-capability.d.ts +5 -0
- package/dist/projection/particle-capability.d.ts.map +1 -0
- package/dist/projection/particle-capability.js +2 -0
- package/dist/projection/particle-capability.js.map +1 -0
- package/dist/projection/particle-factory.d.ts +18 -0
- package/dist/projection/particle-factory.d.ts.map +1 -0
- package/dist/projection/particle-factory.js +313 -0
- package/dist/projection/particle-factory.js.map +1 -0
- package/dist/projection/primitive-factory.d.ts +5 -0
- package/dist/projection/primitive-factory.d.ts.map +1 -0
- package/dist/projection/primitive-factory.js +55 -0
- package/dist/projection/primitive-factory.js.map +1 -0
- package/dist/projection/procedural-factory.d.ts +6 -0
- package/dist/projection/procedural-factory.d.ts.map +1 -0
- package/dist/projection/procedural-factory.js +34 -0
- package/dist/projection/procedural-factory.js.map +1 -0
- package/dist/projection/runtime-projection-state.d.ts +19 -0
- package/dist/projection/runtime-projection-state.d.ts.map +1 -0
- package/dist/projection/runtime-projection-state.js +58 -0
- package/dist/projection/runtime-projection-state.js.map +1 -0
- package/dist/projection/shape-factory.d.ts +5 -0
- package/dist/projection/shape-factory.d.ts.map +1 -0
- package/dist/projection/shape-factory.js +101 -0
- package/dist/projection/shape-factory.js.map +1 -0
- package/dist/projection-entry.d.ts +10 -0
- package/dist/projection-entry.d.ts.map +1 -0
- package/dist/projection-entry.js +8 -0
- package/dist/projection-entry.js.map +1 -0
- package/dist/simulation/fixed-step-scheduler.d.ts +13 -0
- package/dist/simulation/fixed-step-scheduler.d.ts.map +1 -0
- package/dist/simulation/fixed-step-scheduler.js +45 -0
- package/dist/simulation/fixed-step-scheduler.js.map +1 -0
- package/dist/simulation/simulation-runtime-model.d.ts +24 -0
- package/dist/simulation/simulation-runtime-model.d.ts.map +1 -0
- package/dist/simulation/simulation-runtime-model.js +63 -0
- package/dist/simulation/simulation-runtime-model.js.map +1 -0
- package/dist/simulation/simulation-wgsl.d.ts +3 -0
- package/dist/simulation/simulation-wgsl.d.ts.map +1 -0
- package/dist/simulation/simulation-wgsl.js +294 -0
- package/dist/simulation/simulation-wgsl.js.map +1 -0
- package/dist/simulation/webgpu-simulation-renderer.d.ts +67 -0
- package/dist/simulation/webgpu-simulation-renderer.d.ts.map +1 -0
- package/dist/simulation/webgpu-simulation-renderer.js +504 -0
- package/dist/simulation/webgpu-simulation-renderer.js.map +1 -0
- package/dist/simulation/webgpu-types.d.ts +90 -0
- package/dist/simulation/webgpu-types.d.ts.map +1 -0
- package/dist/simulation/webgpu-types.js +10 -0
- package/dist/simulation/webgpu-types.js.map +1 -0
- package/dist/simulation.d.ts +4 -0
- package/dist/simulation.d.ts.map +1 -0
- package/dist/simulation.js +4 -0
- package/dist/simulation.js.map +1 -0
- package/dist/systems/animation-controller.d.ts +52 -0
- package/dist/systems/animation-controller.d.ts.map +1 -0
- package/dist/systems/animation-controller.js +146 -0
- package/dist/systems/animation-controller.js.map +1 -0
- package/dist/systems/camera-controller.d.ts +41 -0
- package/dist/systems/camera-controller.d.ts.map +1 -0
- package/dist/systems/camera-controller.js +207 -0
- package/dist/systems/camera-controller.js.map +1 -0
- package/dist/systems/camera-path-controller.d.ts +39 -0
- package/dist/systems/camera-path-controller.d.ts.map +1 -0
- package/dist/systems/camera-path-controller.js +287 -0
- package/dist/systems/camera-path-controller.js.map +1 -0
- package/dist/systems/environment-controller.d.ts +18 -0
- package/dist/systems/environment-controller.d.ts.map +1 -0
- package/dist/systems/environment-controller.js +251 -0
- package/dist/systems/environment-controller.js.map +1 -0
- package/dist/systems/environment-texture.d.ts +7 -0
- package/dist/systems/environment-texture.d.ts.map +1 -0
- package/dist/systems/environment-texture.js +57 -0
- package/dist/systems/environment-texture.js.map +1 -0
- package/dist/systems/fog-controller.d.ts +12 -0
- package/dist/systems/fog-controller.d.ts.map +1 -0
- package/dist/systems/fog-controller.js +60 -0
- package/dist/systems/fog-controller.js.map +1 -0
- package/dist/systems/generated-texture-cache.d.ts +33 -0
- package/dist/systems/generated-texture-cache.d.ts.map +1 -0
- package/dist/systems/generated-texture-cache.js +101 -0
- package/dist/systems/generated-texture-cache.js.map +1 -0
- package/dist/systems/glass-transmission-controller.d.ts +21 -0
- package/dist/systems/glass-transmission-controller.d.ts.map +1 -0
- package/dist/systems/glass-transmission-controller.js +119 -0
- package/dist/systems/glass-transmission-controller.js.map +1 -0
- package/dist/systems/gpu-program-cache.d.ts +19 -0
- package/dist/systems/gpu-program-cache.d.ts.map +1 -0
- package/dist/systems/gpu-program-cache.js +95 -0
- package/dist/systems/gpu-program-cache.js.map +1 -0
- package/dist/systems/ground-controller.d.ts +14 -0
- package/dist/systems/ground-controller.d.ts.map +1 -0
- package/dist/systems/ground-controller.js +121 -0
- package/dist/systems/ground-controller.js.map +1 -0
- package/dist/systems/lighting-controller.d.ts +23 -0
- package/dist/systems/lighting-controller.d.ts.map +1 -0
- package/dist/systems/lighting-controller.js +204 -0
- package/dist/systems/lighting-controller.js.map +1 -0
- package/dist/systems/material-animation-controller.d.ts +26 -0
- package/dist/systems/material-animation-controller.d.ts.map +1 -0
- package/dist/systems/material-animation-controller.js +221 -0
- package/dist/systems/material-animation-controller.js.map +1 -0
- package/dist/systems/material-binding-resolver.d.ts +16 -0
- package/dist/systems/material-binding-resolver.d.ts.map +1 -0
- package/dist/systems/material-binding-resolver.js +54 -0
- package/dist/systems/material-binding-resolver.js.map +1 -0
- package/dist/systems/material-controller.d.ts +29 -0
- package/dist/systems/material-controller.d.ts.map +1 -0
- package/dist/systems/material-controller.js +233 -0
- package/dist/systems/material-controller.js.map +1 -0
- package/dist/systems/material-preparation.d.ts +9 -0
- package/dist/systems/material-preparation.d.ts.map +1 -0
- package/dist/systems/material-preparation.js +51 -0
- package/dist/systems/material-preparation.js.map +1 -0
- package/dist/systems/material-slots.d.ts +18 -0
- package/dist/systems/material-slots.d.ts.map +1 -0
- package/dist/systems/material-slots.js +78 -0
- package/dist/systems/material-slots.js.map +1 -0
- package/dist/systems/owned-material-controller.d.ts +20 -0
- package/dist/systems/owned-material-controller.d.ts.map +1 -0
- package/dist/systems/owned-material-controller.js +611 -0
- package/dist/systems/owned-material-controller.js.map +1 -0
- package/dist/systems/pbr-material.d.ts +22 -0
- package/dist/systems/pbr-material.d.ts.map +1 -0
- package/dist/systems/pbr-material.js +358 -0
- package/dist/systems/pbr-material.js.map +1 -0
- package/dist/systems/post-process-controller.d.ts +17 -0
- package/dist/systems/post-process-controller.d.ts.map +1 -0
- package/dist/systems/post-process-controller.js +246 -0
- package/dist/systems/post-process-controller.js.map +1 -0
- package/dist/systems/runtime-clock.d.ts +9 -0
- package/dist/systems/runtime-clock.d.ts.map +1 -0
- package/dist/systems/runtime-clock.js +25 -0
- package/dist/systems/runtime-clock.js.map +1 -0
- package/dist/systems/skybox-controller.d.ts +15 -0
- package/dist/systems/skybox-controller.d.ts.map +1 -0
- package/dist/systems/skybox-controller.js +282 -0
- package/dist/systems/skybox-controller.js.map +1 -0
- package/dist/systems/sprite-sheet-controller.d.ts +52 -0
- package/dist/systems/sprite-sheet-controller.d.ts.map +1 -0
- package/dist/systems/sprite-sheet-controller.js +187 -0
- package/dist/systems/sprite-sheet-controller.js.map +1 -0
- package/dist/systems/surface-effect-plugin.d.ts +26 -0
- package/dist/systems/surface-effect-plugin.d.ts.map +1 -0
- package/dist/systems/surface-effect-plugin.js +204 -0
- package/dist/systems/surface-effect-plugin.js.map +1 -0
- package/dist/systems/surface-program-plugin.d.ts +29 -0
- package/dist/systems/surface-program-plugin.d.ts.map +1 -0
- package/dist/systems/surface-program-plugin.js +139 -0
- package/dist/systems/surface-program-plugin.js.map +1 -0
- package/dist/systems/texture-animation-controller.d.ts +18 -0
- package/dist/systems/texture-animation-controller.d.ts.map +1 -0
- package/dist/systems/texture-animation-controller.js +147 -0
- package/dist/systems/texture-animation-controller.js.map +1 -0
- package/dist/systems/weather-controller.d.ts +16 -0
- package/dist/systems/weather-controller.d.ts.map +1 -0
- package/dist/systems/weather-controller.js +205 -0
- package/dist/systems/weather-controller.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Internal PBR projection helpers shared by legacy overrides and owned materials. */
|
|
2
|
+
import type { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial";
|
|
3
|
+
import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
|
|
4
|
+
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
|
|
5
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
6
|
+
import type { Scene } from "@babylonjs/core/scene";
|
|
7
|
+
import type { MaterialOverride, MaterialRuntimeProperty, MaterialTextureSlot, TextureReference } from "@skenora/contracts";
|
|
8
|
+
export declare function applyPbrOverride(material: PBRMaterial, override: Readonly<MaterialOverride>): void;
|
|
9
|
+
export declare function setPbrMaterialProperty(material: PBRMaterial, property: MaterialRuntimeProperty, value: unknown): void;
|
|
10
|
+
export declare function createTexture(scene: Scene, url: string, reference: Readonly<TextureReference>, name: string, callbacks?: {
|
|
11
|
+
onLoad: () => void;
|
|
12
|
+
onError: () => void;
|
|
13
|
+
}): Texture;
|
|
14
|
+
export declare function readTextureSlot(material: PBRMaterial, slot: MaterialTextureSlot): BaseTexture | null;
|
|
15
|
+
export declare function assignTextureSlot(material: PBRMaterial, slot: MaterialTextureSlot, texture: BaseTexture | null): void;
|
|
16
|
+
export declare function readManagedReference(texture: Texture): TextureReference | null;
|
|
17
|
+
export declare function toColorValue(value: Color3): {
|
|
18
|
+
r: number;
|
|
19
|
+
g: number;
|
|
20
|
+
b: number;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=pbr-material.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbr-material.d.ts","sourceRoot":"","sources":["../../src/systems/pbr-material.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,4CAA4C,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GACnC,IAAI,CA2IN;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,OAAO,GACb,IAAI,CA2EN;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE;IAAE,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GACtD,OAAO,CAgCT;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,mBAAmB,GACxB,WAAW,GAAG,IAAI,CAyBpB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,WAAW,GAAG,IAAI,GAC1B,IAAI,CA4BN;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,GACf,gBAAgB,GAAG,IAAI,CAMzB;AAsCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG;IAC3C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAEA"}
|
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { Texture } from "@babylonjs/core/Materials/Textures/texture";
|
|
2
|
+
import { Color3 } from "@babylonjs/core/Maths/math.color";
|
|
3
|
+
import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
4
|
+
export function applyPbrOverride(material, override) {
|
|
5
|
+
if (override.workflow === "specular-glossiness") {
|
|
6
|
+
material.metallic = null;
|
|
7
|
+
material.roughness = null;
|
|
8
|
+
material.useMicroSurfaceFromReflectivityMapAlpha = true;
|
|
9
|
+
}
|
|
10
|
+
if (override.baseColor)
|
|
11
|
+
material.albedoColor = toColor3(override.baseColor);
|
|
12
|
+
if (override.reflectivityColor) {
|
|
13
|
+
material.reflectivityColor = toColor3(override.reflectivityColor);
|
|
14
|
+
}
|
|
15
|
+
if (override.ambientColor) {
|
|
16
|
+
material.ambientColor = toColor3(override.ambientColor);
|
|
17
|
+
}
|
|
18
|
+
if (override.emissiveColor) {
|
|
19
|
+
material.emissiveColor = toColor3(override.emissiveColor);
|
|
20
|
+
}
|
|
21
|
+
setDefined(override.metallic, (value) => (material.metallic = value));
|
|
22
|
+
setDefined(override.roughness, (value) => (material.roughness = value));
|
|
23
|
+
setDefined(override.microSurface, (value) => (material.microSurface = value));
|
|
24
|
+
setDefined(override.metallicF0Factor, (value) => (material.metallicF0Factor = value));
|
|
25
|
+
setDefined(override.alpha, (value) => (material.alpha = value));
|
|
26
|
+
setDefined(override.emissiveIntensity, (value) => (material.emissiveIntensity = value));
|
|
27
|
+
setDefined(override.indexOfRefraction, (value) => (material.indexOfRefraction = value));
|
|
28
|
+
setDefined(override.transparencyMode, (value) => (material.transparencyMode = value));
|
|
29
|
+
setDefined(override.alphaCutOff, (value) => (material.alphaCutOff = value));
|
|
30
|
+
setDefined(override.useAlphaFromBaseColorTexture, (value) => {
|
|
31
|
+
material.useAlphaFromAlbedoTexture = value;
|
|
32
|
+
});
|
|
33
|
+
setDefined(override.useLightmapAsShadowmap, (value) => {
|
|
34
|
+
material.useLightmapAsShadowmap = value;
|
|
35
|
+
});
|
|
36
|
+
setDefined(override.useAmbientInGrayScale, (value) => {
|
|
37
|
+
material.useAmbientInGrayScale = value;
|
|
38
|
+
});
|
|
39
|
+
setDefined(override.useMicroSurfaceFromReflectivityMapAlpha, (value) => {
|
|
40
|
+
material.useMicroSurfaceFromReflectivityMapAlpha = value;
|
|
41
|
+
});
|
|
42
|
+
setDefined(override.useAutoMicroSurfaceFromReflectivityMap, (value) => {
|
|
43
|
+
material.useAutoMicroSurfaceFromReflectivityMap = value;
|
|
44
|
+
});
|
|
45
|
+
setDefined(override.unlit, (value) => (material.unlit = value));
|
|
46
|
+
setDefined(override.doubleSided, (value) => (material.backFaceCulling = !value));
|
|
47
|
+
if (override.clearCoat) {
|
|
48
|
+
const config = override.clearCoat;
|
|
49
|
+
material.clearCoat.isEnabled = config.enabled;
|
|
50
|
+
material.clearCoat.intensity = config.intensity;
|
|
51
|
+
material.clearCoat.roughness = config.roughness;
|
|
52
|
+
material.clearCoat.indexOfRefraction = config.indexOfRefraction;
|
|
53
|
+
setDefined(config.remapF0OnInterfaceChange, (value) => {
|
|
54
|
+
material.clearCoat.remapF0OnInterfaceChange = value;
|
|
55
|
+
});
|
|
56
|
+
setDefined(config.tintEnabled, (value) => (material.clearCoat.isTintEnabled = value));
|
|
57
|
+
if (config.tintColor) {
|
|
58
|
+
material.clearCoat.tintColor = toColor3(config.tintColor);
|
|
59
|
+
}
|
|
60
|
+
setDefined(config.tintThickness, (value) => (material.clearCoat.tintThickness = value));
|
|
61
|
+
setDefined(config.tintColorAtDistance, (value) => {
|
|
62
|
+
material.clearCoat.tintColorAtDistance = value;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (override.sheen) {
|
|
66
|
+
const config = override.sheen;
|
|
67
|
+
material.sheen.isEnabled = config.enabled;
|
|
68
|
+
material.sheen.intensity = config.intensity;
|
|
69
|
+
material.sheen.roughness = config.roughness;
|
|
70
|
+
material.sheen.color = toColor3(config.color);
|
|
71
|
+
setDefined(config.linkWithBaseColor, (value) => {
|
|
72
|
+
material.sheen.linkSheenWithAlbedo = value;
|
|
73
|
+
});
|
|
74
|
+
setDefined(config.useRoughnessFromMainTexture, (value) => {
|
|
75
|
+
material.sheen.useRoughnessFromMainTexture = value;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
if (override.anisotropy) {
|
|
79
|
+
const config = override.anisotropy;
|
|
80
|
+
material.anisotropy.isEnabled = config.enabled;
|
|
81
|
+
material.anisotropy.intensity = config.intensity;
|
|
82
|
+
material.anisotropy.direction = new Vector2(config.direction.x, config.direction.y);
|
|
83
|
+
}
|
|
84
|
+
if (override.subSurface) {
|
|
85
|
+
const config = override.subSurface;
|
|
86
|
+
material.subSurface.isRefractionEnabled = config.refractionEnabled;
|
|
87
|
+
material.subSurface.isTranslucencyEnabled = config.translucencyEnabled;
|
|
88
|
+
material.subSurface.indexOfRefraction = config.indexOfRefraction;
|
|
89
|
+
material.subSurface.volumeIndexOfRefraction =
|
|
90
|
+
config.volumeIndexOfRefraction;
|
|
91
|
+
material.subSurface.minimumThickness = config.minimumThickness;
|
|
92
|
+
material.subSurface.maximumThickness = config.maximumThickness;
|
|
93
|
+
material.subSurface.tintColor = toColor3(config.tintColor);
|
|
94
|
+
material.subSurface.tintColorAtDistance = config.tintColorAtDistance;
|
|
95
|
+
setDefined(config.refractionIntensity, (value) => {
|
|
96
|
+
material.subSurface.refractionIntensity = value;
|
|
97
|
+
});
|
|
98
|
+
setDefined(config.translucencyIntensity, (value) => {
|
|
99
|
+
material.subSurface.translucencyIntensity = value;
|
|
100
|
+
});
|
|
101
|
+
if (config.diffusionDistance) {
|
|
102
|
+
material.subSurface.diffusionDistance = toColor3(config.diffusionDistance);
|
|
103
|
+
}
|
|
104
|
+
setDefined(config.linkRefractionWithTransparency, (value) => {
|
|
105
|
+
material.subSurface.linkRefractionWithTransparency = value;
|
|
106
|
+
});
|
|
107
|
+
setDefined(config.useAlbedoToTintRefraction, (value) => {
|
|
108
|
+
material.subSurface.useAlbedoToTintRefraction = value;
|
|
109
|
+
});
|
|
110
|
+
setDefined(config.useAlbedoToTintTranslucency, (value) => {
|
|
111
|
+
material.subSurface.useAlbedoToTintTranslucency = value;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export function setPbrMaterialProperty(material, property, value) {
|
|
116
|
+
if (property === "baseColor") {
|
|
117
|
+
material.albedoColor = runtimeColor(value, property);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (property === "emissiveColor") {
|
|
121
|
+
material.emissiveColor = runtimeColor(value, property);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (property === "doubleSided") {
|
|
125
|
+
if (typeof value !== "boolean") {
|
|
126
|
+
throw new Error(`${property} must be a boolean`);
|
|
127
|
+
}
|
|
128
|
+
material.backFaceCulling = !value;
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
132
|
+
throw new Error(`${property} must be a finite number`);
|
|
133
|
+
}
|
|
134
|
+
if ([
|
|
135
|
+
"metallic",
|
|
136
|
+
"roughness",
|
|
137
|
+
"microSurface",
|
|
138
|
+
"metallicF0Factor",
|
|
139
|
+
"alpha",
|
|
140
|
+
"alphaCutOff",
|
|
141
|
+
"clearCoatRoughness",
|
|
142
|
+
"sheenRoughness",
|
|
143
|
+
].includes(property) &&
|
|
144
|
+
(value < 0 || value > 1)) {
|
|
145
|
+
throw new Error(`${property} must be within 0..1`);
|
|
146
|
+
}
|
|
147
|
+
if (["emissiveIntensity", "clearCoatIntensity", "sheenIntensity"].includes(property) &&
|
|
148
|
+
value < 0) {
|
|
149
|
+
throw new Error(`${property} must be non-negative`);
|
|
150
|
+
}
|
|
151
|
+
if (property === "indexOfRefraction" && value <= 0) {
|
|
152
|
+
throw new Error(`${property} must be positive`);
|
|
153
|
+
}
|
|
154
|
+
if (property === "transparencyMode" &&
|
|
155
|
+
(!Number.isInteger(value) || value < 0)) {
|
|
156
|
+
throw new Error(`${property} must be a non-negative integer`);
|
|
157
|
+
}
|
|
158
|
+
if (property === "metallic")
|
|
159
|
+
material.metallic = value;
|
|
160
|
+
else if (property === "roughness")
|
|
161
|
+
material.roughness = value;
|
|
162
|
+
else if (property === "microSurface")
|
|
163
|
+
material.microSurface = value;
|
|
164
|
+
else if (property === "metallicF0Factor")
|
|
165
|
+
material.metallicF0Factor = value;
|
|
166
|
+
else if (property === "alpha")
|
|
167
|
+
material.alpha = value;
|
|
168
|
+
else if (property === "emissiveIntensity") {
|
|
169
|
+
material.emissiveIntensity = value;
|
|
170
|
+
}
|
|
171
|
+
else if (property === "indexOfRefraction") {
|
|
172
|
+
material.indexOfRefraction = value;
|
|
173
|
+
}
|
|
174
|
+
else if (property === "alphaCutOff")
|
|
175
|
+
material.alphaCutOff = value;
|
|
176
|
+
else if (property === "transparencyMode")
|
|
177
|
+
material.transparencyMode = value;
|
|
178
|
+
else if (property === "clearCoatIntensity") {
|
|
179
|
+
material.clearCoat.isEnabled = true;
|
|
180
|
+
material.clearCoat.intensity = value;
|
|
181
|
+
}
|
|
182
|
+
else if (property === "clearCoatRoughness") {
|
|
183
|
+
material.clearCoat.isEnabled = true;
|
|
184
|
+
material.clearCoat.roughness = value;
|
|
185
|
+
}
|
|
186
|
+
else if (property === "sheenIntensity") {
|
|
187
|
+
material.sheen.isEnabled = true;
|
|
188
|
+
material.sheen.intensity = value;
|
|
189
|
+
}
|
|
190
|
+
else if (property === "sheenRoughness") {
|
|
191
|
+
material.sheen.isEnabled = true;
|
|
192
|
+
material.sheen.roughness = value;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
export function createTexture(scene, url, reference, name, callbacks) {
|
|
196
|
+
const texture = new Texture(url, scene, false, reference.invertY ?? true, toSamplingMode(reference.samplingMode), callbacks?.onLoad, callbacks?.onError);
|
|
197
|
+
texture.name = name;
|
|
198
|
+
texture.coordinatesIndex = reference.coordinatesIndex ?? 0;
|
|
199
|
+
texture.level = reference.level ?? 1;
|
|
200
|
+
texture.uOffset = reference.uOffset ?? 0;
|
|
201
|
+
texture.vOffset = reference.vOffset ?? 0;
|
|
202
|
+
texture.uScale = reference.uScale ?? 1;
|
|
203
|
+
texture.vScale = reference.vScale ?? 1;
|
|
204
|
+
texture.wAng = reference.wAng ?? 0;
|
|
205
|
+
texture.wrapU = toAddressMode(reference.wrapU);
|
|
206
|
+
texture.wrapV = toAddressMode(reference.wrapV);
|
|
207
|
+
if (reference.gammaSpace !== undefined) {
|
|
208
|
+
texture.gammaSpace = reference.gammaSpace;
|
|
209
|
+
}
|
|
210
|
+
if (reference.hasAlpha !== undefined)
|
|
211
|
+
texture.hasAlpha = reference.hasAlpha;
|
|
212
|
+
if (reference.getAlphaFromRGB !== undefined) {
|
|
213
|
+
texture.getAlphaFromRGB = reference.getAlphaFromRGB;
|
|
214
|
+
}
|
|
215
|
+
texture.metadata = {
|
|
216
|
+
...texture.metadata,
|
|
217
|
+
skenora: { managed: true, assetId: reference.assetId, reference },
|
|
218
|
+
};
|
|
219
|
+
return texture;
|
|
220
|
+
}
|
|
221
|
+
export function readTextureSlot(material, slot) {
|
|
222
|
+
if (slot === "baseColor")
|
|
223
|
+
return material.albedoTexture;
|
|
224
|
+
if (slot === "metallicRoughness")
|
|
225
|
+
return material.metallicTexture;
|
|
226
|
+
if (slot === "reflectivity")
|
|
227
|
+
return material.reflectivityTexture;
|
|
228
|
+
if (slot === "microSurface")
|
|
229
|
+
return material.microSurfaceTexture;
|
|
230
|
+
if (slot === "reflectance")
|
|
231
|
+
return material.reflectanceTexture;
|
|
232
|
+
if (slot === "normal")
|
|
233
|
+
return material.bumpTexture;
|
|
234
|
+
if (slot === "ambientOcclusion")
|
|
235
|
+
return material.ambientTexture;
|
|
236
|
+
if (slot === "emissive")
|
|
237
|
+
return material.emissiveTexture;
|
|
238
|
+
if (slot === "opacity")
|
|
239
|
+
return material.opacityTexture;
|
|
240
|
+
if (slot === "lightmap")
|
|
241
|
+
return material.lightmapTexture;
|
|
242
|
+
if (slot === "reflection")
|
|
243
|
+
return material.reflectionTexture;
|
|
244
|
+
if (slot === "refraction")
|
|
245
|
+
return material.refractionTexture;
|
|
246
|
+
if (slot === "clearCoat")
|
|
247
|
+
return material.clearCoat.texture;
|
|
248
|
+
if (slot === "clearCoatRoughness") {
|
|
249
|
+
return material.clearCoat.textureRoughness;
|
|
250
|
+
}
|
|
251
|
+
if (slot === "clearCoatNormal")
|
|
252
|
+
return material.clearCoat.bumpTexture;
|
|
253
|
+
if (slot === "sheen")
|
|
254
|
+
return material.sheen.texture;
|
|
255
|
+
if (slot === "sheenRoughness")
|
|
256
|
+
return material.sheen.textureRoughness;
|
|
257
|
+
if (slot === "thickness")
|
|
258
|
+
return material.subSurface.thicknessTexture;
|
|
259
|
+
if (slot === "subSurfaceRefraction") {
|
|
260
|
+
return material.subSurface.refractionTexture;
|
|
261
|
+
}
|
|
262
|
+
return material.subSurface.refractionIntensityTexture;
|
|
263
|
+
}
|
|
264
|
+
export function assignTextureSlot(material, slot, texture) {
|
|
265
|
+
if (slot === "baseColor")
|
|
266
|
+
material.albedoTexture = texture;
|
|
267
|
+
else if (slot === "metallicRoughness")
|
|
268
|
+
material.metallicTexture = texture;
|
|
269
|
+
else if (slot === "reflectivity")
|
|
270
|
+
material.reflectivityTexture = texture;
|
|
271
|
+
else if (slot === "microSurface")
|
|
272
|
+
material.microSurfaceTexture = texture;
|
|
273
|
+
else if (slot === "reflectance")
|
|
274
|
+
material.reflectanceTexture = texture;
|
|
275
|
+
else if (slot === "normal")
|
|
276
|
+
material.bumpTexture = texture;
|
|
277
|
+
else if (slot === "ambientOcclusion")
|
|
278
|
+
material.ambientTexture = texture;
|
|
279
|
+
else if (slot === "emissive")
|
|
280
|
+
material.emissiveTexture = texture;
|
|
281
|
+
else if (slot === "opacity")
|
|
282
|
+
material.opacityTexture = texture;
|
|
283
|
+
else if (slot === "lightmap")
|
|
284
|
+
material.lightmapTexture = texture;
|
|
285
|
+
else if (slot === "reflection")
|
|
286
|
+
material.reflectionTexture = texture;
|
|
287
|
+
else if (slot === "refraction")
|
|
288
|
+
material.refractionTexture = texture;
|
|
289
|
+
else if (slot === "clearCoat")
|
|
290
|
+
material.clearCoat.texture = texture;
|
|
291
|
+
else if (slot === "clearCoatRoughness") {
|
|
292
|
+
material.clearCoat.textureRoughness = texture;
|
|
293
|
+
}
|
|
294
|
+
else if (slot === "clearCoatNormal") {
|
|
295
|
+
material.clearCoat.bumpTexture = texture;
|
|
296
|
+
}
|
|
297
|
+
else if (slot === "sheen")
|
|
298
|
+
material.sheen.texture = texture;
|
|
299
|
+
else if (slot === "sheenRoughness") {
|
|
300
|
+
material.sheen.textureRoughness = texture;
|
|
301
|
+
}
|
|
302
|
+
else if (slot === "thickness") {
|
|
303
|
+
material.subSurface.thicknessTexture = texture;
|
|
304
|
+
}
|
|
305
|
+
else if (slot === "subSurfaceRefraction") {
|
|
306
|
+
material.subSurface.refractionTexture = texture;
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
material.subSurface.refractionIntensityTexture = texture;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
export function readManagedReference(texture) {
|
|
313
|
+
const metadata = texture.metadata;
|
|
314
|
+
if (metadata?.skenora?.managed !== true)
|
|
315
|
+
return null;
|
|
316
|
+
return metadata.skenora.reference;
|
|
317
|
+
}
|
|
318
|
+
function toAddressMode(value) {
|
|
319
|
+
if (value === "clamp")
|
|
320
|
+
return Texture.CLAMP_ADDRESSMODE;
|
|
321
|
+
if (value === "mirror")
|
|
322
|
+
return Texture.MIRROR_ADDRESSMODE;
|
|
323
|
+
return Texture.WRAP_ADDRESSMODE;
|
|
324
|
+
}
|
|
325
|
+
function toSamplingMode(value) {
|
|
326
|
+
if (value === "nearest")
|
|
327
|
+
return Texture.NEAREST_SAMPLINGMODE;
|
|
328
|
+
if (value === "bilinear")
|
|
329
|
+
return Texture.BILINEAR_SAMPLINGMODE;
|
|
330
|
+
return Texture.TRILINEAR_SAMPLINGMODE;
|
|
331
|
+
}
|
|
332
|
+
function toColor3(value) {
|
|
333
|
+
return new Color3(value.r, value.g, value.b);
|
|
334
|
+
}
|
|
335
|
+
function runtimeColor(value, property) {
|
|
336
|
+
if (typeof value === "string")
|
|
337
|
+
return Color3.FromHexString(value);
|
|
338
|
+
if (value && typeof value === "object") {
|
|
339
|
+
const color = value;
|
|
340
|
+
if (typeof color.r === "number" &&
|
|
341
|
+
Number.isFinite(color.r) &&
|
|
342
|
+
typeof color.g === "number" &&
|
|
343
|
+
Number.isFinite(color.g) &&
|
|
344
|
+
typeof color.b === "number" &&
|
|
345
|
+
Number.isFinite(color.b)) {
|
|
346
|
+
return new Color3(color.r, color.g, color.b);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
throw new Error(`${property} must be a color object or hex string`);
|
|
350
|
+
}
|
|
351
|
+
export function toColorValue(value) {
|
|
352
|
+
return { r: value.r, g: value.g, b: value.b };
|
|
353
|
+
}
|
|
354
|
+
function setDefined(value, apply) {
|
|
355
|
+
if (value !== undefined)
|
|
356
|
+
apply(value);
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=pbr-material.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbr-material.js","sourceRoot":"","sources":["../../src/systems/pbr-material.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DefaultRenderingPipeline } from "@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline";
|
|
2
|
+
import { SSAORenderingPipeline } from "@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline";
|
|
3
|
+
import type { Scene } from "@babylonjs/core/scene";
|
|
4
|
+
import type { PostProcessConfig } from "@skenora/contracts";
|
|
5
|
+
/** Owns every post-processing object created from a scene document. */
|
|
6
|
+
export declare class PostProcessController {
|
|
7
|
+
#private;
|
|
8
|
+
readonly scene: Scene;
|
|
9
|
+
constructor(scene: Scene);
|
|
10
|
+
get pipeline(): DefaultRenderingPipeline | null;
|
|
11
|
+
get ssaoPipeline(): SSAORenderingPipeline | null;
|
|
12
|
+
apply(config: Readonly<PostProcessConfig>): void;
|
|
13
|
+
refreshCamera(): void;
|
|
14
|
+
capture(fallback: Readonly<PostProcessConfig>): PostProcessConfig;
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=post-process-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-process-controller.d.ts","sourceRoot":"","sources":["../../src/systems/post-process-controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iFAAiF,CAAC;AAC3H,OAAO,EAAE,qBAAqB,EAAE,MAAM,8EAA8E,CAAC;AAErH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,uEAAuE;AACvE,qBAAa,qBAAqB;;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;gBAOV,KAAK,EAAE,KAAK;IAIxB,IAAI,QAAQ,IAAI,wBAAwB,GAAG,IAAI,CAE9C;IAED,IAAI,YAAY,IAAI,qBAAqB,GAAG,IAAI,CAE/C;IAED,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAiEhD,aAAa,IAAI,IAAI;IAKrB,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,iBAAiB;IAmGjE,OAAO,IAAI,IAAI;CAmFhB"}
|