@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.
Files changed (270) hide show
  1. package/README.md +92 -0
  2. package/dist/core/built-in-runtime-capabilities.d.ts +21 -0
  3. package/dist/core/built-in-runtime-capabilities.d.ts.map +1 -0
  4. package/dist/core/built-in-runtime-capabilities.js +175 -0
  5. package/dist/core/built-in-runtime-capabilities.js.map +1 -0
  6. package/dist/core/runtime-capability-registry.d.ts +90 -0
  7. package/dist/core/runtime-capability-registry.d.ts.map +1 -0
  8. package/dist/core/runtime-capability-registry.js +42 -0
  9. package/dist/core/runtime-capability-registry.js.map +1 -0
  10. package/dist/core/runtime-document-coordinator.d.ts +28 -0
  11. package/dist/core/runtime-document-coordinator.d.ts.map +1 -0
  12. package/dist/core/runtime-document-coordinator.js +124 -0
  13. package/dist/core/runtime-document-coordinator.js.map +1 -0
  14. package/dist/core/runtime-events.d.ts +43 -0
  15. package/dist/core/runtime-events.d.ts.map +1 -0
  16. package/dist/core/runtime-events.js +2 -0
  17. package/dist/core/runtime-events.js.map +1 -0
  18. package/dist/core/runtime-session.d.ts +93 -0
  19. package/dist/core/runtime-session.d.ts.map +1 -0
  20. package/dist/core/runtime-session.js +1344 -0
  21. package/dist/core/runtime-session.js.map +1 -0
  22. package/dist/editor-tools/camera-path-editing-controller.d.ts +36 -0
  23. package/dist/editor-tools/camera-path-editing-controller.d.ts.map +1 -0
  24. package/dist/editor-tools/camera-path-editing-controller.js +212 -0
  25. package/dist/editor-tools/camera-path-editing-controller.js.map +1 -0
  26. package/dist/editor-tools/camera-path-visualizer.d.ts +28 -0
  27. package/dist/editor-tools/camera-path-visualizer.d.ts.map +1 -0
  28. package/dist/editor-tools/camera-path-visualizer.js +151 -0
  29. package/dist/editor-tools/camera-path-visualizer.js.map +1 -0
  30. package/dist/editor-tools/drop-preview-controller.d.ts +34 -0
  31. package/dist/editor-tools/drop-preview-controller.d.ts.map +1 -0
  32. package/dist/editor-tools/drop-preview-controller.js +209 -0
  33. package/dist/editor-tools/drop-preview-controller.js.map +1 -0
  34. package/dist/editor-tools/grid-helper.d.ts +18 -0
  35. package/dist/editor-tools/grid-helper.d.ts.map +1 -0
  36. package/dist/editor-tools/grid-helper.js +27 -0
  37. package/dist/editor-tools/grid-helper.js.map +1 -0
  38. package/dist/editor-tools/light-editing-controller.d.ts +25 -0
  39. package/dist/editor-tools/light-editing-controller.d.ts.map +1 -0
  40. package/dist/editor-tools/light-editing-controller.js +207 -0
  41. package/dist/editor-tools/light-editing-controller.js.map +1 -0
  42. package/dist/editor-tools/node-operations.d.ts +51 -0
  43. package/dist/editor-tools/node-operations.d.ts.map +1 -0
  44. package/dist/editor-tools/node-operations.js +182 -0
  45. package/dist/editor-tools/node-operations.js.map +1 -0
  46. package/dist/editor-tools/selection-controller.d.ts +44 -0
  47. package/dist/editor-tools/selection-controller.d.ts.map +1 -0
  48. package/dist/editor-tools/selection-controller.js +299 -0
  49. package/dist/editor-tools/selection-controller.js.map +1 -0
  50. package/dist/editor-tools/shape-drawing-controller.d.ts +45 -0
  51. package/dist/editor-tools/shape-drawing-controller.d.ts.map +1 -0
  52. package/dist/editor-tools/shape-drawing-controller.js +205 -0
  53. package/dist/editor-tools/shape-drawing-controller.js.map +1 -0
  54. package/dist/editor-tools/shape-editing-controller.d.ts +40 -0
  55. package/dist/editor-tools/shape-editing-controller.d.ts.map +1 -0
  56. package/dist/editor-tools/shape-editing-controller.js +340 -0
  57. package/dist/editor-tools/shape-editing-controller.js.map +1 -0
  58. package/dist/editor.d.ts +12 -0
  59. package/dist/editor.d.ts.map +1 -0
  60. package/dist/editor.js +12 -0
  61. package/dist/editor.js.map +1 -0
  62. package/dist/index.d.ts +2 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +2 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/inspection/node-tools.d.ts +51 -0
  67. package/dist/inspection/node-tools.d.ts.map +1 -0
  68. package/dist/inspection/node-tools.js +282 -0
  69. package/dist/inspection/node-tools.js.map +1 -0
  70. package/dist/interaction/runtime-third-person-controller.d.ts +24 -0
  71. package/dist/interaction/runtime-third-person-controller.d.ts.map +1 -0
  72. package/dist/interaction/runtime-third-person-controller.js +71 -0
  73. package/dist/interaction/runtime-third-person-controller.js.map +1 -0
  74. package/dist/interaction/third-person-controller.d.ts +61 -0
  75. package/dist/interaction/third-person-controller.d.ts.map +1 -0
  76. package/dist/interaction/third-person-controller.js +400 -0
  77. package/dist/interaction/third-person-controller.js.map +1 -0
  78. package/dist/interaction.d.ts +3 -0
  79. package/dist/interaction.d.ts.map +1 -0
  80. package/dist/interaction.js +3 -0
  81. package/dist/interaction.js.map +1 -0
  82. package/dist/presentation/scene-renderer.d.ts +75 -0
  83. package/dist/presentation/scene-renderer.d.ts.map +1 -0
  84. package/dist/presentation/scene-renderer.js +324 -0
  85. package/dist/presentation/scene-renderer.js.map +1 -0
  86. package/dist/presentation/viewport-controller.d.ts +13 -0
  87. package/dist/presentation/viewport-controller.d.ts.map +1 -0
  88. package/dist/presentation/viewport-controller.js +186 -0
  89. package/dist/presentation/viewport-controller.js.map +1 -0
  90. package/dist/projection/annotation-projector.d.ts +28 -0
  91. package/dist/projection/annotation-projector.d.ts.map +1 -0
  92. package/dist/projection/annotation-projector.js +98 -0
  93. package/dist/projection/annotation-projector.js.map +1 -0
  94. package/dist/projection/built-in-entity-projectors.d.ts +7 -0
  95. package/dist/projection/built-in-entity-projectors.d.ts.map +1 -0
  96. package/dist/projection/built-in-entity-projectors.js +75 -0
  97. package/dist/projection/built-in-entity-projectors.js.map +1 -0
  98. package/dist/projection/camera-entity-factory.d.ts +9 -0
  99. package/dist/projection/camera-entity-factory.d.ts.map +1 -0
  100. package/dist/projection/camera-entity-factory.js +93 -0
  101. package/dist/projection/camera-entity-factory.js.map +1 -0
  102. package/dist/projection/document-applier.d.ts +38 -0
  103. package/dist/projection/document-applier.d.ts.map +1 -0
  104. package/dist/projection/document-applier.js +219 -0
  105. package/dist/projection/document-applier.js.map +1 -0
  106. package/dist/projection/entity-projection-registry.d.ts +56 -0
  107. package/dist/projection/entity-projection-registry.d.ts.map +1 -0
  108. package/dist/projection/entity-projection-registry.js +121 -0
  109. package/dist/projection/entity-projection-registry.js.map +1 -0
  110. package/dist/projection/model-importer.d.ts +41 -0
  111. package/dist/projection/model-importer.d.ts.map +1 -0
  112. package/dist/projection/model-importer.js +469 -0
  113. package/dist/projection/model-importer.js.map +1 -0
  114. package/dist/projection/particle-capability.d.ts +5 -0
  115. package/dist/projection/particle-capability.d.ts.map +1 -0
  116. package/dist/projection/particle-capability.js +2 -0
  117. package/dist/projection/particle-capability.js.map +1 -0
  118. package/dist/projection/particle-factory.d.ts +18 -0
  119. package/dist/projection/particle-factory.d.ts.map +1 -0
  120. package/dist/projection/particle-factory.js +313 -0
  121. package/dist/projection/particle-factory.js.map +1 -0
  122. package/dist/projection/primitive-factory.d.ts +5 -0
  123. package/dist/projection/primitive-factory.d.ts.map +1 -0
  124. package/dist/projection/primitive-factory.js +55 -0
  125. package/dist/projection/primitive-factory.js.map +1 -0
  126. package/dist/projection/procedural-factory.d.ts +6 -0
  127. package/dist/projection/procedural-factory.d.ts.map +1 -0
  128. package/dist/projection/procedural-factory.js +34 -0
  129. package/dist/projection/procedural-factory.js.map +1 -0
  130. package/dist/projection/runtime-projection-state.d.ts +19 -0
  131. package/dist/projection/runtime-projection-state.d.ts.map +1 -0
  132. package/dist/projection/runtime-projection-state.js +58 -0
  133. package/dist/projection/runtime-projection-state.js.map +1 -0
  134. package/dist/projection/shape-factory.d.ts +5 -0
  135. package/dist/projection/shape-factory.d.ts.map +1 -0
  136. package/dist/projection/shape-factory.js +101 -0
  137. package/dist/projection/shape-factory.js.map +1 -0
  138. package/dist/projection-entry.d.ts +10 -0
  139. package/dist/projection-entry.d.ts.map +1 -0
  140. package/dist/projection-entry.js +8 -0
  141. package/dist/projection-entry.js.map +1 -0
  142. package/dist/simulation/fixed-step-scheduler.d.ts +13 -0
  143. package/dist/simulation/fixed-step-scheduler.d.ts.map +1 -0
  144. package/dist/simulation/fixed-step-scheduler.js +45 -0
  145. package/dist/simulation/fixed-step-scheduler.js.map +1 -0
  146. package/dist/simulation/simulation-runtime-model.d.ts +24 -0
  147. package/dist/simulation/simulation-runtime-model.d.ts.map +1 -0
  148. package/dist/simulation/simulation-runtime-model.js +63 -0
  149. package/dist/simulation/simulation-runtime-model.js.map +1 -0
  150. package/dist/simulation/simulation-wgsl.d.ts +3 -0
  151. package/dist/simulation/simulation-wgsl.d.ts.map +1 -0
  152. package/dist/simulation/simulation-wgsl.js +294 -0
  153. package/dist/simulation/simulation-wgsl.js.map +1 -0
  154. package/dist/simulation/webgpu-simulation-renderer.d.ts +67 -0
  155. package/dist/simulation/webgpu-simulation-renderer.d.ts.map +1 -0
  156. package/dist/simulation/webgpu-simulation-renderer.js +504 -0
  157. package/dist/simulation/webgpu-simulation-renderer.js.map +1 -0
  158. package/dist/simulation/webgpu-types.d.ts +90 -0
  159. package/dist/simulation/webgpu-types.d.ts.map +1 -0
  160. package/dist/simulation/webgpu-types.js +10 -0
  161. package/dist/simulation/webgpu-types.js.map +1 -0
  162. package/dist/simulation.d.ts +4 -0
  163. package/dist/simulation.d.ts.map +1 -0
  164. package/dist/simulation.js +4 -0
  165. package/dist/simulation.js.map +1 -0
  166. package/dist/systems/animation-controller.d.ts +52 -0
  167. package/dist/systems/animation-controller.d.ts.map +1 -0
  168. package/dist/systems/animation-controller.js +146 -0
  169. package/dist/systems/animation-controller.js.map +1 -0
  170. package/dist/systems/camera-controller.d.ts +41 -0
  171. package/dist/systems/camera-controller.d.ts.map +1 -0
  172. package/dist/systems/camera-controller.js +207 -0
  173. package/dist/systems/camera-controller.js.map +1 -0
  174. package/dist/systems/camera-path-controller.d.ts +39 -0
  175. package/dist/systems/camera-path-controller.d.ts.map +1 -0
  176. package/dist/systems/camera-path-controller.js +287 -0
  177. package/dist/systems/camera-path-controller.js.map +1 -0
  178. package/dist/systems/environment-controller.d.ts +18 -0
  179. package/dist/systems/environment-controller.d.ts.map +1 -0
  180. package/dist/systems/environment-controller.js +251 -0
  181. package/dist/systems/environment-controller.js.map +1 -0
  182. package/dist/systems/environment-texture.d.ts +7 -0
  183. package/dist/systems/environment-texture.d.ts.map +1 -0
  184. package/dist/systems/environment-texture.js +57 -0
  185. package/dist/systems/environment-texture.js.map +1 -0
  186. package/dist/systems/fog-controller.d.ts +12 -0
  187. package/dist/systems/fog-controller.d.ts.map +1 -0
  188. package/dist/systems/fog-controller.js +60 -0
  189. package/dist/systems/fog-controller.js.map +1 -0
  190. package/dist/systems/generated-texture-cache.d.ts +33 -0
  191. package/dist/systems/generated-texture-cache.d.ts.map +1 -0
  192. package/dist/systems/generated-texture-cache.js +101 -0
  193. package/dist/systems/generated-texture-cache.js.map +1 -0
  194. package/dist/systems/glass-transmission-controller.d.ts +21 -0
  195. package/dist/systems/glass-transmission-controller.d.ts.map +1 -0
  196. package/dist/systems/glass-transmission-controller.js +119 -0
  197. package/dist/systems/glass-transmission-controller.js.map +1 -0
  198. package/dist/systems/gpu-program-cache.d.ts +19 -0
  199. package/dist/systems/gpu-program-cache.d.ts.map +1 -0
  200. package/dist/systems/gpu-program-cache.js +95 -0
  201. package/dist/systems/gpu-program-cache.js.map +1 -0
  202. package/dist/systems/ground-controller.d.ts +14 -0
  203. package/dist/systems/ground-controller.d.ts.map +1 -0
  204. package/dist/systems/ground-controller.js +121 -0
  205. package/dist/systems/ground-controller.js.map +1 -0
  206. package/dist/systems/lighting-controller.d.ts +23 -0
  207. package/dist/systems/lighting-controller.d.ts.map +1 -0
  208. package/dist/systems/lighting-controller.js +204 -0
  209. package/dist/systems/lighting-controller.js.map +1 -0
  210. package/dist/systems/material-animation-controller.d.ts +26 -0
  211. package/dist/systems/material-animation-controller.d.ts.map +1 -0
  212. package/dist/systems/material-animation-controller.js +221 -0
  213. package/dist/systems/material-animation-controller.js.map +1 -0
  214. package/dist/systems/material-binding-resolver.d.ts +16 -0
  215. package/dist/systems/material-binding-resolver.d.ts.map +1 -0
  216. package/dist/systems/material-binding-resolver.js +54 -0
  217. package/dist/systems/material-binding-resolver.js.map +1 -0
  218. package/dist/systems/material-controller.d.ts +29 -0
  219. package/dist/systems/material-controller.d.ts.map +1 -0
  220. package/dist/systems/material-controller.js +233 -0
  221. package/dist/systems/material-controller.js.map +1 -0
  222. package/dist/systems/material-preparation.d.ts +9 -0
  223. package/dist/systems/material-preparation.d.ts.map +1 -0
  224. package/dist/systems/material-preparation.js +51 -0
  225. package/dist/systems/material-preparation.js.map +1 -0
  226. package/dist/systems/material-slots.d.ts +18 -0
  227. package/dist/systems/material-slots.d.ts.map +1 -0
  228. package/dist/systems/material-slots.js +78 -0
  229. package/dist/systems/material-slots.js.map +1 -0
  230. package/dist/systems/owned-material-controller.d.ts +20 -0
  231. package/dist/systems/owned-material-controller.d.ts.map +1 -0
  232. package/dist/systems/owned-material-controller.js +611 -0
  233. package/dist/systems/owned-material-controller.js.map +1 -0
  234. package/dist/systems/pbr-material.d.ts +22 -0
  235. package/dist/systems/pbr-material.d.ts.map +1 -0
  236. package/dist/systems/pbr-material.js +358 -0
  237. package/dist/systems/pbr-material.js.map +1 -0
  238. package/dist/systems/post-process-controller.d.ts +17 -0
  239. package/dist/systems/post-process-controller.d.ts.map +1 -0
  240. package/dist/systems/post-process-controller.js +246 -0
  241. package/dist/systems/post-process-controller.js.map +1 -0
  242. package/dist/systems/runtime-clock.d.ts +9 -0
  243. package/dist/systems/runtime-clock.d.ts.map +1 -0
  244. package/dist/systems/runtime-clock.js +25 -0
  245. package/dist/systems/runtime-clock.js.map +1 -0
  246. package/dist/systems/skybox-controller.d.ts +15 -0
  247. package/dist/systems/skybox-controller.d.ts.map +1 -0
  248. package/dist/systems/skybox-controller.js +282 -0
  249. package/dist/systems/skybox-controller.js.map +1 -0
  250. package/dist/systems/sprite-sheet-controller.d.ts +52 -0
  251. package/dist/systems/sprite-sheet-controller.d.ts.map +1 -0
  252. package/dist/systems/sprite-sheet-controller.js +187 -0
  253. package/dist/systems/sprite-sheet-controller.js.map +1 -0
  254. package/dist/systems/surface-effect-plugin.d.ts +26 -0
  255. package/dist/systems/surface-effect-plugin.d.ts.map +1 -0
  256. package/dist/systems/surface-effect-plugin.js +204 -0
  257. package/dist/systems/surface-effect-plugin.js.map +1 -0
  258. package/dist/systems/surface-program-plugin.d.ts +29 -0
  259. package/dist/systems/surface-program-plugin.d.ts.map +1 -0
  260. package/dist/systems/surface-program-plugin.js +139 -0
  261. package/dist/systems/surface-program-plugin.js.map +1 -0
  262. package/dist/systems/texture-animation-controller.d.ts +18 -0
  263. package/dist/systems/texture-animation-controller.d.ts.map +1 -0
  264. package/dist/systems/texture-animation-controller.js +147 -0
  265. package/dist/systems/texture-animation-controller.js.map +1 -0
  266. package/dist/systems/weather-controller.d.ts +16 -0
  267. package/dist/systems/weather-controller.d.ts.map +1 -0
  268. package/dist/systems/weather-controller.js +205 -0
  269. package/dist/systems/weather-controller.js.map +1 -0
  270. 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"}