@crystaldesign/real-time-viewer 26.1.0-beta.1 → 26.1.0-beta.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 (342) hide show
  1. package/build/esm/index.js +165 -41
  2. package/build/types/real-time-viewer/src/index.d.ts.map +1 -1
  3. package/build/types/real-time-viewer/src/parser/createCams/index.d.ts.map +1 -1
  4. package/build/types/real-time-viewer/src/store/SceneStore.d.ts +1 -0
  5. package/build/types/real-time-viewer/src/store/SceneStore.d.ts.map +1 -1
  6. package/build/types/real-time-viewer/src/store/UIStore.d.ts +1 -0
  7. package/build/types/real-time-viewer/src/store/UIStore.d.ts.map +1 -1
  8. package/build/types/real-time-viewer/src/useRealTimeRenderData.d.ts +2 -0
  9. package/build/types/real-time-viewer/src/useRealTimeRenderData.d.ts.map +1 -1
  10. package/build/umd/243.real-time-viewer.umd.min.js +2 -0
  11. package/build/umd/243.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  12. package/build/umd/470.real-time-viewer.umd.min.js +2 -0
  13. package/build/umd/470.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  14. package/build/umd/833.real-time-viewer.umd.min.js +2 -0
  15. package/build/umd/833.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  16. package/build/umd/real-time-viewer.umd.min.js +1 -1
  17. package/build/umd/report.html +1 -1
  18. package/package.json +2 -2
  19. package/build/umd/1020.real-time-viewer.umd.min.js +0 -2
  20. package/build/umd/1020.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  21. package/build/umd/1107.real-time-viewer.umd.min.js +0 -2
  22. package/build/umd/1107.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  23. package/build/umd/1153.real-time-viewer.umd.min.js +0 -2
  24. package/build/umd/1153.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  25. package/build/umd/1309.real-time-viewer.umd.min.js +0 -2
  26. package/build/umd/1309.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  27. package/build/umd/1399.real-time-viewer.umd.min.js +0 -2
  28. package/build/umd/1399.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  29. package/build/umd/1447.real-time-viewer.umd.min.js +0 -2
  30. package/build/umd/1447.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  31. package/build/umd/1459.real-time-viewer.umd.min.js +0 -2
  32. package/build/umd/1459.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  33. package/build/umd/1499.real-time-viewer.umd.min.js +0 -2
  34. package/build/umd/1499.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  35. package/build/umd/1510.real-time-viewer.umd.min.js +0 -2
  36. package/build/umd/1510.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  37. package/build/umd/1605.real-time-viewer.umd.min.js +0 -2
  38. package/build/umd/1605.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  39. package/build/umd/1781.real-time-viewer.umd.min.js +0 -2
  40. package/build/umd/1781.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  41. package/build/umd/1808.real-time-viewer.umd.min.js +0 -2
  42. package/build/umd/1808.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  43. package/build/umd/1887.real-time-viewer.umd.min.js +0 -2
  44. package/build/umd/1887.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  45. package/build/umd/1924.real-time-viewer.umd.min.js +0 -2
  46. package/build/umd/1924.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  47. package/build/umd/2011.real-time-viewer.umd.min.js +0 -2
  48. package/build/umd/2011.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  49. package/build/umd/2128.real-time-viewer.umd.min.js +0 -2
  50. package/build/umd/2128.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  51. package/build/umd/2265.real-time-viewer.umd.min.js +0 -2
  52. package/build/umd/2265.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  53. package/build/umd/2371.real-time-viewer.umd.min.js +0 -2
  54. package/build/umd/2371.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  55. package/build/umd/2439.real-time-viewer.umd.min.js +0 -2
  56. package/build/umd/2439.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  57. package/build/umd/2517.real-time-viewer.umd.min.js +0 -2
  58. package/build/umd/2517.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  59. package/build/umd/2619.real-time-viewer.umd.min.js +0 -2
  60. package/build/umd/2619.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  61. package/build/umd/2668.real-time-viewer.umd.min.js +0 -2
  62. package/build/umd/2668.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  63. package/build/umd/2760.real-time-viewer.umd.min.js +0 -2
  64. package/build/umd/2760.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  65. package/build/umd/2782.real-time-viewer.umd.min.js +0 -2
  66. package/build/umd/2782.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  67. package/build/umd/2795.real-time-viewer.umd.min.js +0 -2
  68. package/build/umd/2795.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  69. package/build/umd/2796.real-time-viewer.umd.min.js +0 -2
  70. package/build/umd/2796.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  71. package/build/umd/2817.real-time-viewer.umd.min.js +0 -2
  72. package/build/umd/2817.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  73. package/build/umd/2871.real-time-viewer.umd.min.js +0 -2
  74. package/build/umd/2871.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  75. package/build/umd/3040.real-time-viewer.umd.min.js +0 -2
  76. package/build/umd/3040.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  77. package/build/umd/3116.real-time-viewer.umd.min.js +0 -2
  78. package/build/umd/3116.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  79. package/build/umd/3210.real-time-viewer.umd.min.js +0 -2
  80. package/build/umd/3210.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  81. package/build/umd/3219.real-time-viewer.umd.min.js +0 -2
  82. package/build/umd/3219.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  83. package/build/umd/3242.real-time-viewer.umd.min.js +0 -2
  84. package/build/umd/3242.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  85. package/build/umd/3243.real-time-viewer.umd.min.js +0 -2
  86. package/build/umd/3243.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  87. package/build/umd/3296.real-time-viewer.umd.min.js +0 -2
  88. package/build/umd/3296.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  89. package/build/umd/3330.real-time-viewer.umd.min.js +0 -2
  90. package/build/umd/3330.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  91. package/build/umd/3351.real-time-viewer.umd.min.js +0 -2
  92. package/build/umd/3351.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  93. package/build/umd/3420.real-time-viewer.umd.min.js +0 -2
  94. package/build/umd/3420.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  95. package/build/umd/3436.real-time-viewer.umd.min.js +0 -2
  96. package/build/umd/3436.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  97. package/build/umd/3439.real-time-viewer.umd.min.js +0 -2
  98. package/build/umd/3439.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  99. package/build/umd/3456.real-time-viewer.umd.min.js +0 -2
  100. package/build/umd/3456.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  101. package/build/umd/3652.real-time-viewer.umd.min.js +0 -2
  102. package/build/umd/3652.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  103. package/build/umd/377.real-time-viewer.umd.min.js +0 -2
  104. package/build/umd/377.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  105. package/build/umd/3839.real-time-viewer.umd.min.js +0 -2
  106. package/build/umd/3839.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  107. package/build/umd/3917.real-time-viewer.umd.min.js +0 -2
  108. package/build/umd/3917.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  109. package/build/umd/3945.real-time-viewer.umd.min.js +0 -2
  110. package/build/umd/3945.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  111. package/build/umd/4022.real-time-viewer.umd.min.js +0 -2
  112. package/build/umd/4022.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  113. package/build/umd/4049.real-time-viewer.umd.min.js +0 -2
  114. package/build/umd/4049.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  115. package/build/umd/4051.real-time-viewer.umd.min.js +0 -2
  116. package/build/umd/4051.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  117. package/build/umd/4091.real-time-viewer.umd.min.js +0 -2
  118. package/build/umd/4091.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  119. package/build/umd/410.real-time-viewer.umd.min.js +0 -2
  120. package/build/umd/410.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  121. package/build/umd/4141.real-time-viewer.umd.min.js +0 -2
  122. package/build/umd/4141.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  123. package/build/umd/4153.real-time-viewer.umd.min.js +0 -2
  124. package/build/umd/4153.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  125. package/build/umd/4248.real-time-viewer.umd.min.js +0 -2
  126. package/build/umd/4248.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  127. package/build/umd/4358.real-time-viewer.umd.min.js +0 -2
  128. package/build/umd/4358.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  129. package/build/umd/4378.real-time-viewer.umd.min.js +0 -2
  130. package/build/umd/4378.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  131. package/build/umd/4431.real-time-viewer.umd.min.js +0 -2
  132. package/build/umd/4431.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  133. package/build/umd/4478.real-time-viewer.umd.min.js +0 -2
  134. package/build/umd/4478.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  135. package/build/umd/4486.real-time-viewer.umd.min.js +0 -2
  136. package/build/umd/4486.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  137. package/build/umd/4555.real-time-viewer.umd.min.js +0 -2
  138. package/build/umd/4555.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  139. package/build/umd/4560.real-time-viewer.umd.min.js +0 -2
  140. package/build/umd/4560.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  141. package/build/umd/4602.real-time-viewer.umd.min.js +0 -2
  142. package/build/umd/4602.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  143. package/build/umd/4623.real-time-viewer.umd.min.js +0 -2
  144. package/build/umd/4623.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  145. package/build/umd/4661.real-time-viewer.umd.min.js +0 -2
  146. package/build/umd/4661.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  147. package/build/umd/4667.real-time-viewer.umd.min.js +0 -2
  148. package/build/umd/4667.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  149. package/build/umd/4669.real-time-viewer.umd.min.js +0 -2
  150. package/build/umd/4669.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  151. package/build/umd/4711.real-time-viewer.umd.min.js +0 -2
  152. package/build/umd/4711.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  153. package/build/umd/4806.real-time-viewer.umd.min.js +0 -2
  154. package/build/umd/4806.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  155. package/build/umd/4823.real-time-viewer.umd.min.js +0 -2
  156. package/build/umd/4823.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  157. package/build/umd/4953.real-time-viewer.umd.min.js +0 -2
  158. package/build/umd/4953.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  159. package/build/umd/5197.real-time-viewer.umd.min.js +0 -2
  160. package/build/umd/5197.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  161. package/build/umd/539.real-time-viewer.umd.min.js +0 -2
  162. package/build/umd/539.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  163. package/build/umd/5462.real-time-viewer.umd.min.js +0 -2
  164. package/build/umd/5462.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  165. package/build/umd/5477.real-time-viewer.umd.min.js +0 -2
  166. package/build/umd/5477.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  167. package/build/umd/5483.real-time-viewer.umd.min.js +0 -2
  168. package/build/umd/5483.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  169. package/build/umd/5498.real-time-viewer.umd.min.js +0 -2
  170. package/build/umd/5498.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  171. package/build/umd/5555.real-time-viewer.umd.min.js +0 -2
  172. package/build/umd/5555.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  173. package/build/umd/5573.real-time-viewer.umd.min.js +0 -2
  174. package/build/umd/5573.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  175. package/build/umd/5645.real-time-viewer.umd.min.js +0 -2
  176. package/build/umd/5645.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  177. package/build/umd/5650.real-time-viewer.umd.min.js +0 -2
  178. package/build/umd/5650.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  179. package/build/umd/5746.real-time-viewer.umd.min.js +0 -2
  180. package/build/umd/5746.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  181. package/build/umd/5750.real-time-viewer.umd.min.js +0 -2
  182. package/build/umd/5750.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  183. package/build/umd/5779.real-time-viewer.umd.min.js +0 -2
  184. package/build/umd/5779.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  185. package/build/umd/580.real-time-viewer.umd.min.js +0 -2
  186. package/build/umd/580.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  187. package/build/umd/5846.real-time-viewer.umd.min.js +0 -2
  188. package/build/umd/5846.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  189. package/build/umd/5860.real-time-viewer.umd.min.js +0 -2
  190. package/build/umd/5860.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  191. package/build/umd/5880.real-time-viewer.umd.min.js +0 -2
  192. package/build/umd/5880.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  193. package/build/umd/5922.real-time-viewer.umd.min.js +0 -2
  194. package/build/umd/5922.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  195. package/build/umd/6057.real-time-viewer.umd.min.js +0 -2
  196. package/build/umd/6057.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  197. package/build/umd/6095.real-time-viewer.umd.min.js +0 -2
  198. package/build/umd/6095.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  199. package/build/umd/6126.real-time-viewer.umd.min.js +0 -2
  200. package/build/umd/6126.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  201. package/build/umd/6141.real-time-viewer.umd.min.js +0 -2
  202. package/build/umd/6141.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  203. package/build/umd/615.real-time-viewer.umd.min.js +0 -2
  204. package/build/umd/615.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  205. package/build/umd/6169.real-time-viewer.umd.min.js +0 -2
  206. package/build/umd/6169.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  207. package/build/umd/6182.real-time-viewer.umd.min.js +0 -2
  208. package/build/umd/6182.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  209. package/build/umd/6230.real-time-viewer.umd.min.js +0 -2
  210. package/build/umd/6230.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  211. package/build/umd/6288.real-time-viewer.umd.min.js +0 -2
  212. package/build/umd/6288.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  213. package/build/umd/6357.real-time-viewer.umd.min.js +0 -2
  214. package/build/umd/6357.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  215. package/build/umd/6442.real-time-viewer.umd.min.js +0 -2
  216. package/build/umd/6442.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  217. package/build/umd/653.real-time-viewer.umd.min.js +0 -2
  218. package/build/umd/653.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  219. package/build/umd/6656.real-time-viewer.umd.min.js +0 -2
  220. package/build/umd/6656.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  221. package/build/umd/6728.real-time-viewer.umd.min.js +0 -2
  222. package/build/umd/6728.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  223. package/build/umd/6746.real-time-viewer.umd.min.js +0 -2
  224. package/build/umd/6746.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  225. package/build/umd/6748.real-time-viewer.umd.min.js +0 -2
  226. package/build/umd/6748.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  227. package/build/umd/6761.real-time-viewer.umd.min.js +0 -2
  228. package/build/umd/6761.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  229. package/build/umd/6829.real-time-viewer.umd.min.js +0 -2
  230. package/build/umd/6829.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  231. package/build/umd/6954.real-time-viewer.umd.min.js +0 -2
  232. package/build/umd/6954.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  233. package/build/umd/7038.real-time-viewer.umd.min.js +0 -2
  234. package/build/umd/7038.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  235. package/build/umd/7042.real-time-viewer.umd.min.js +0 -2
  236. package/build/umd/7042.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  237. package/build/umd/7074.real-time-viewer.umd.min.js +0 -2
  238. package/build/umd/7074.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  239. package/build/umd/710.real-time-viewer.umd.min.js +0 -2
  240. package/build/umd/710.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  241. package/build/umd/7142.real-time-viewer.umd.min.js +0 -2
  242. package/build/umd/7142.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  243. package/build/umd/7154.real-time-viewer.umd.min.js +0 -2
  244. package/build/umd/7154.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  245. package/build/umd/7229.real-time-viewer.umd.min.js +0 -2
  246. package/build/umd/7229.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  247. package/build/umd/7352.real-time-viewer.umd.min.js +0 -2
  248. package/build/umd/7352.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  249. package/build/umd/7489.real-time-viewer.umd.min.js +0 -2
  250. package/build/umd/7489.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  251. package/build/umd/7501.real-time-viewer.umd.min.js +0 -2
  252. package/build/umd/7501.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  253. package/build/umd/7540.real-time-viewer.umd.min.js +0 -2
  254. package/build/umd/7540.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  255. package/build/umd/7607.real-time-viewer.umd.min.js +0 -2
  256. package/build/umd/7607.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  257. package/build/umd/7615.real-time-viewer.umd.min.js +0 -2
  258. package/build/umd/7615.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  259. package/build/umd/7635.real-time-viewer.umd.min.js +0 -2
  260. package/build/umd/7635.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  261. package/build/umd/7647.real-time-viewer.umd.min.js +0 -2
  262. package/build/umd/7647.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  263. package/build/umd/7664.real-time-viewer.umd.min.js +0 -2
  264. package/build/umd/7664.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  265. package/build/umd/7729.real-time-viewer.umd.min.js +0 -2
  266. package/build/umd/7729.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  267. package/build/umd/7736.real-time-viewer.umd.min.js +0 -2
  268. package/build/umd/7736.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  269. package/build/umd/7751.real-time-viewer.umd.min.js +0 -2
  270. package/build/umd/7751.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  271. package/build/umd/7754.real-time-viewer.umd.min.js +0 -2
  272. package/build/umd/7754.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  273. package/build/umd/781.real-time-viewer.umd.min.js +0 -2
  274. package/build/umd/781.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  275. package/build/umd/8008.real-time-viewer.umd.min.js +0 -2
  276. package/build/umd/8008.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  277. package/build/umd/8078.real-time-viewer.umd.min.js +0 -2
  278. package/build/umd/8078.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  279. package/build/umd/8105.real-time-viewer.umd.min.js +0 -2
  280. package/build/umd/8105.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  281. package/build/umd/815.real-time-viewer.umd.min.js +0 -2
  282. package/build/umd/815.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  283. package/build/umd/8180.real-time-viewer.umd.min.js +0 -2
  284. package/build/umd/8180.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  285. package/build/umd/8240.real-time-viewer.umd.min.js +0 -2
  286. package/build/umd/8240.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  287. package/build/umd/8254.real-time-viewer.umd.min.js +0 -2
  288. package/build/umd/8254.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  289. package/build/umd/8333.real-time-viewer.umd.min.js +0 -2
  290. package/build/umd/8333.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  291. package/build/umd/8588.real-time-viewer.umd.min.js +0 -2
  292. package/build/umd/8588.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  293. package/build/umd/8620.real-time-viewer.umd.min.js +0 -2
  294. package/build/umd/8620.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  295. package/build/umd/8627.real-time-viewer.umd.min.js +0 -2
  296. package/build/umd/8627.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  297. package/build/umd/8645.real-time-viewer.umd.min.js +0 -2
  298. package/build/umd/8645.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  299. package/build/umd/8728.real-time-viewer.umd.min.js +0 -2
  300. package/build/umd/8728.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  301. package/build/umd/8729.real-time-viewer.umd.min.js +0 -2
  302. package/build/umd/8729.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  303. package/build/umd/8833.real-time-viewer.umd.min.js +0 -2
  304. package/build/umd/8833.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  305. package/build/umd/8954.real-time-viewer.umd.min.js +0 -2
  306. package/build/umd/8954.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  307. package/build/umd/8991.real-time-viewer.umd.min.js +0 -2
  308. package/build/umd/8991.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  309. package/build/umd/9046.real-time-viewer.umd.min.js +0 -2
  310. package/build/umd/9046.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  311. package/build/umd/9078.real-time-viewer.umd.min.js +0 -2
  312. package/build/umd/9078.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  313. package/build/umd/913.real-time-viewer.umd.min.js +0 -2
  314. package/build/umd/913.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  315. package/build/umd/9199.real-time-viewer.umd.min.js +0 -2
  316. package/build/umd/9199.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  317. package/build/umd/930.real-time-viewer.umd.min.js +0 -2
  318. package/build/umd/930.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  319. package/build/umd/9383.real-time-viewer.umd.min.js +0 -2
  320. package/build/umd/9383.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  321. package/build/umd/9449.real-time-viewer.umd.min.js +0 -2
  322. package/build/umd/9449.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  323. package/build/umd/9487.real-time-viewer.umd.min.js +0 -2
  324. package/build/umd/9487.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  325. package/build/umd/9568.real-time-viewer.umd.min.js +0 -2
  326. package/build/umd/9568.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  327. package/build/umd/9643.real-time-viewer.umd.min.js +0 -2
  328. package/build/umd/9643.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  329. package/build/umd/9646.real-time-viewer.umd.min.js +0 -2
  330. package/build/umd/9646.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  331. package/build/umd/9712.real-time-viewer.umd.min.js +0 -2
  332. package/build/umd/9712.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  333. package/build/umd/9883.real-time-viewer.umd.min.js +0 -2
  334. package/build/umd/9883.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  335. package/build/umd/9884.real-time-viewer.umd.min.js +0 -2
  336. package/build/umd/9884.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  337. package/build/umd/9928.real-time-viewer.umd.min.js +0 -2
  338. package/build/umd/9928.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  339. package/build/umd/9959.real-time-viewer.umd.min.js +0 -2
  340. package/build/umd/9959.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  341. package/build/umd/9990.real-time-viewer.umd.min.js +0 -2
  342. package/build/umd/9990.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
@@ -1,2 +0,0 @@
1
- /*! For license information please see 2796.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[2796],{82796:(e,n,i)=>{var t=i(17416);const o="lightFragment",f="#ifdef LIGHT{X}\n#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})\n#else\nvar diffuse{X}: vec4f=light{X}.vLightDiffuse;\n#define CUSTOM_LIGHT{X}_COLOR \n#if defined(PBR) && defined(CLUSTLIGHT{X})\n{let sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,fragmentInputs.vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(\nlightDataTexture{X},\n&tileMaskBuffer{X},\nlight{X}.vLightData,\nvec2u(light{X}.vSliceRanges[sliceIndex].xy),\nviewDirectionW,\nnormalW,\nfragmentInputs.vPositionW,\nsurfaceAlbedo,\nreflectivityOut,\n#ifdef IRIDESCENCE\niridescenceIntensity,\n#endif\n#ifdef SS_TRANSLUCENCY\nsubSurfaceOut,\n#endif\n#ifdef SPECULARTERM\nAARoughnessFactors.x,\n#endif\n#ifdef ANISOTROPIC\nanisotropicOut,\n#endif\n#ifdef SHEEN\nsheenOut,\n#endif\n#ifdef CLEARCOAT\nclearcoatOut,\n#endif\n);}\n#elif defined(PBR)\n#ifdef SPOTLIGHT{X}\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);\n#elif defined(POINTLIGHT{X})\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,fragmentInputs.vPositionW);\n#elif defined(HEMILIGHT{X})\npreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(DIRLIGHT{X})\npreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)\npreInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);\n#endif\npreInfo.NdotV=NdotV;\n#ifdef SPOTLIGHT{X}\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#endif\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\n#endif\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\n#endif\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X},iesLightTexture{X}Sampler);\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#endif\n#endif\n#elif defined(POINTLIGHT{X})\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\n#endif\n#else\npreInfo.attenuation=1.0;\n#endif\n#if defined(HEMILIGHT{X}) || defined(AREALIGHT{X})\npreInfo.roughness=roughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\npreInfo.diffuseRoughness=diffuseRoughness;preInfo.surfaceAlbedo=surfaceAlbedo;\n#ifdef IRIDESCENCE\npreInfo.iridescenceIntensity=iridescenceIntensity;\n#endif\n#ifdef SS_TRANSLUCENCY\ninfo.diffuseTransmission=vec3f(0.0);\n#endif\n#ifdef HEMILIGHT{X}\ninfo.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);\n#elif defined(AREALIGHT{X})\ninfo.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);\n#elif defined(SS_TRANSLUCENCY)\n#ifndef SS_TRANSLUCENCY_LEGACY\ninfo.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb)*(1.0-subSurfaceOut.translucencyIntensity);info.diffuseTransmission=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance); \n#else\ninfo.diffuse=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);\n#endif\n#else\ninfo.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);\n#endif\n#ifdef SPECULARTERM\n#if AREALIGHT{X}\ninfo.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);\n#else\n#if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)\n{let metalFresnel: vec3f=vec3f(reflectivityOut.specularWeight)*getF82Specular(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90,reflectivityOut.roughness);let dielectricFresnel: vec3f=fresnelSchlickGGXVec3(preInfo.VdotH,reflectivityOut.dielectricColorF0,reflectivityOut.colorReflectanceF90);coloredFresnel=mix(dielectricFresnel,metalFresnel,reflectivityOut.metallic);}\n#else\ncoloredFresnel=fresnelSchlickGGXVec3(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);\n#endif\n#ifndef LEGACY_SPECULAR_ENERGY_CONSERVATION\n{let NdotH: f32=dot(normalW,preInfo.H);let fresnel: vec3f=fresnelSchlickGGXVec3(NdotH,vec3f(reflectanceF0),specularEnvironmentR90);info.diffuse*=(vec3f(1.0)-fresnel);}\n#endif\n#ifdef ANISOTROPIC\ninfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);\n#else\ninfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,coloredFresnel,AARoughnessFactors.x,diffuse{X}.rgb);\n#endif\n#endif\n#endif\n#ifndef AREALIGHT{X}\n#ifdef SHEEN\n#ifdef SHEEN_LINKWITHALBEDO\npreInfo.roughness=sheenOut.sheenIntensity;\n#else\n#ifdef HEMILIGHT{X}\npreInfo.roughness=sheenOut.sheenRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\n#endif\ninfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);\n#endif\n#ifdef CLEARCOAT\n#ifdef HEMILIGHT{X}\npreInfo.roughness=clearcoatOut.clearCoatRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\ninfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);\n#ifdef CLEARCOAT_TINT\nabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;\n#ifdef SS_TRANSLUCENCY\ninfo.diffuseTransmission*=absorption;\n#endif\n#ifdef SPECULARTERM\ninfo.specular*=absorption;\n#endif\n#endif\ninfo.diffuse*=info.clearCoat.w;\n#ifdef SS_TRANSLUCENCY\ninfo.diffuseTransmission*=info.clearCoat.w;\n#endif\n#ifdef SPECULARTERM\ninfo.specular*=info.clearCoat.w;\n#endif\n#ifdef SHEEN\ninfo.sheen*=info.clearCoat.w;\n#endif\n#endif\n#endif\n#else\n#ifdef SPOTLIGHT{X}\n#ifdef IESLIGHTTEXTURE{X}\ninfo=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X},iesLightTexture{X}Sampler);\n#else\ninfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);\n#endif\n#elif defined(HEMILIGHT{X})\ninfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\n#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})\ninfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);\n#elif define(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)\ninfo=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC1SamplerSampler,areaLightsLTC2Sampler,areaLightsLTC2SamplerSampler,viewDirectionW,normalW,fragmentInputs.vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,\n#ifdef AREALIGHTNOROUGHTNESS\n0.5\n#else\nuniforms.vReflectionInfos.y\n#endif\n);\n#elif defined(CLUSTLIGHT{X})\n{let sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,fragmentInputs.vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(lightDataTexture{X},&tileMaskBuffer{X},viewDirectionW,normalW,light{X}.vLightData,vec2u(light{X}.vSliceRanges[sliceIndex].xy),glossiness);}\n#endif\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\ninfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},projectionLightTexture{X}Sampler,uniforms.textureProjectionMatrix{X},fragmentInputs.vPositionW);\n#endif\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSMDEBUG{X}\nvar shadowDebug{X}: vec3f;\n#endif\n#ifdef SHADOWCSM{X}\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nvar index{X}: i32=-1;\n#else\nvar index{X}: i32=SHADOWCSMNUM_CASCADES{X}-1;\n#endif\nvar diff{X}: f32=0.;vPositionFromLight{X}[0]=fragmentInputs.vPositionFromLight{X}_0;vPositionFromLight{X}[1]=fragmentInputs.vPositionFromLight{X}_1;vPositionFromLight{X}[2]=fragmentInputs.vPositionFromLight{X}_2;vPositionFromLight{X}[3]=fragmentInputs.vPositionFromLight{X}_3;vDepthMetric{X}[0]=fragmentInputs.vDepthMetric{X}_0;vDepthMetric{X}[1]=fragmentInputs.vDepthMetric{X}_1;vDepthMetric{X}[2]=fragmentInputs.vDepthMetric{X}_2;vDepthMetric{X}[3]=fragmentInputs.vDepthMetric{X}_3;for (var i:i32=0; i<SHADOWCSMNUM_CASCADES{X}; i++)\n{\n#ifdef SHADOWCSM_RIGHTHANDED{X}\ndiff{X}=uniforms.viewFrustumZ{X}[i]+fragmentInputs.vPositionFromCamera{X}.z;\n#else\ndiff{X}=uniforms.viewFrustumZ{X}[i]-fragmentInputs.vPositionFromCamera{X}.z;\n#endif\nif (diff{X}>=0.) {index{X}=i;break;}}\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nif (index{X}>=0)\n#endif\n{\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#else\nshadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#endif\n#else\nshadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=vec3f(shadow)*vCascadeColorsMultiplier{X}[index{X}];\n#endif\n#ifndef SHADOWCSMNOBLEND{X}\nvar frustumLength:f32=uniforms.frustumLengths{X}[index{X}];var diffRatio:f32=clamp(diff{X}/frustumLength,0.,1.)*uniforms.cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)\n{index{X}+=1;var nextShadow: f32=0.;\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCF1(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],,shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCF3(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nnextShadow=computeShadowWithCSMPCF5(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS16(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS32(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#else\nnextShadow=computeShadowWithCSMPCSS64(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,uniforms.lightSizeUVCorrection{X}[index{X}],uniforms.depthCorrection{X}[index{X}],uniforms.penumbraDarkness{X});\n#endif\n#else\nnextShadow=computeShadowCSM(index{X},vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\nshadow=mix(nextShadow,shadow,diffRatio);\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\n#endif\n}\n#endif\n}\n#elif defined(SHADOWCLOSEESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithCloseESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithCloseESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithESMCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithESM(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPOISSON{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithPoissonSamplingCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadowWithPoissonSampling(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCF1(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCF3(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCF5(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCSS16(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCSS32(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCSS64(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},depthTexture{X},depthTexture{X}Sampler,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#else\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowCube(fragmentInputs.vPositionW,light{X}.vLightData.xyz,shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadow(fragmentInputs.vPositionFromLight{X},fragmentInputs.vDepthMetric{X},shadowTexture{X},shadowTexture{X}Sampler,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#endif\n#ifdef SHADOWONLY\n#ifndef SHADOWINUSE\n#define SHADOWINUSE\n#endif\nglobalShadow+=shadow;shadowLightCount+=1.0;\n#endif\n#else\nshadow=1.;\n#endif\naggShadow+=shadow;numLights+=1.0;\n#ifndef SHADOWONLY\n#ifdef CUSTOMUSERLIGHTING\ndiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\n#ifdef SPECULARTERM\nspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\n#endif\n#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})\ndiffuseBase+=lightmapColor.rgb*shadow;\n#ifdef SPECULARTERM\n#ifndef LIGHTMAPNOSPECULAR{X}\nspecularBase+=info.specular*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifndef LIGHTMAPNOSPECULAR{X}\nclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef SHEEN\n#ifndef LIGHTMAPNOSPECULAR{X}\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#else\n#ifdef SHADOWCSMDEBUG{X}\ndiffuseBase+=info.diffuse*shadowDebug{X};\n#else\ndiffuseBase+=info.diffuse*shadow;\n#endif\n#ifdef SS_TRANSLUCENCY\ndiffuseTransmissionBase+=info.diffuseTransmission*shadow;\n#endif\n#ifdef SPECULARTERM\nspecularBase+=info.specular*shadow;\n#endif\n#ifdef CLEARCOAT\nclearCoatBase+=info.clearCoat.rgb*shadow;\n#endif\n#ifdef SHEEN\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#endif\n#endif\n";t.v.IncludesShadersStoreWGSL[o]||(t.v.IncludesShadersStoreWGSL[o]=f)}}]);
@@ -1 +0,0 @@
1
- /*! filename:2796 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 2817.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[2817],{72817:(e,t,n)=>{n.r(t),n.d(t,{proceduralVertexShaderWGSL:()=>a});var i=n(17416);const r="proceduralVertexShader",s="attribute position: vec2f;varying vPosition: vec2f;varying vUV: vec2f;const madd: vec2f= vec2f(0.5,0.5);\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.vPosition=input.position;vertexOutputs.vUV=input.position*madd+madd;vertexOutputs.position= vec4f(input.position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}";i.v.ShadersStoreWGSL[r]||(i.v.ShadersStoreWGSL[r]=s);const a={name:r,shader:s}}}]);
@@ -1 +0,0 @@
1
- /*! filename:2817 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 2871.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[2871],{52871:(e,n,i)=>{i.r(n),i.d(n,{depthVertexShaderWGSL:()=>a});var t=i(17416);i(97762),i(31990),i(19120),i(46212),i(80870),i(42724),i(56403),i(39966),i(49413),i(58333),i(28439),i(56601);const r="depthVertexShader",d="attribute position: vec3f;\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<morphTargetsVertexGlobalDeclaration>\n#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\n#include<clipPlaneVertexDeclaration>\n#include<instancesDeclaration>\nuniform viewProjection: mat4x4f;uniform depthValues: vec2f;\n#if defined(ALPHATEST) || defined(NEED_UV)\nvarying vUV: vec2f;uniform diffuseMatrix: mat4x4f;\n#ifdef UV1\nattribute uv: vec2f;\n#endif\n#ifdef UV2\nattribute uv2: vec2f;\n#endif\n#endif\n#ifdef STORE_CAMERASPACE_Z\nuniform view: mat4x4f;varying vViewPos: vec4f;\n#endif\nvarying vDepthMetric: f32;\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {var positionUpdated: vec3f=input.position;\n#ifdef UV1\nvar uvUpdated: vec2f=input.uv;\n#endif\n#ifdef UV2\nvar uv2Updated: vec2f=input.uv2;\n#endif\n#include<morphTargetsVertexGlobal>\n#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvar worldPos: vec4f=finalWorld* vec4f(positionUpdated,1.0);\n#include<clipPlaneVertex>\nvertexOutputs.position=uniforms.viewProjection*worldPos;\n#ifdef STORE_CAMERASPACE_Z\nvertexOutputs.vViewPos=uniforms.view*worldPos;\n#else\n#ifdef USE_REVERSE_DEPTHBUFFER\nvertexOutputs.vDepthMetric=((-vertexOutputs.position.z+uniforms.depthValues.x)/(uniforms.depthValues.y));\n#else\nvertexOutputs.vDepthMetric=((vertexOutputs.position.z+uniforms.depthValues.x)/(uniforms.depthValues.y));\n#endif\n#endif\n#if defined(ALPHATEST) || defined(BASIC_RENDER)\n#ifdef UV1\nvertexOutputs.vUV= (uniforms.diffuseMatrix* vec4f(uvUpdated,1.0,0.0)).xy;\n#endif\n#ifdef UV2\nvertexOutputs.vUV= (uniforms.diffuseMatrix* vec4f(uv2Updated,1.0,0.0)).xy;\n#endif\n#endif\n}\n";t.v.ShadersStoreWGSL[r]||(t.v.ShadersStoreWGSL[r]=d);const a={name:r,shader:d}}}]);
@@ -1 +0,0 @@
1
- /*! filename:2871 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3040.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3040],{3040:(t,a,e)=>{e.r(a),e.d(a,{FlowGraphCombineMatrix2DBlock:()=>FlowGraphCombineMatrix2DBlock,FlowGraphCombineMatrix3DBlock:()=>FlowGraphCombineMatrix3DBlock,FlowGraphCombineMatrixBlock:()=>FlowGraphCombineMatrixBlock,FlowGraphCombineVector2Block:()=>FlowGraphCombineVector2Block,FlowGraphCombineVector3Block:()=>FlowGraphCombineVector3Block,FlowGraphCombineVector4Block:()=>FlowGraphCombineVector4Block,FlowGraphExtractMatrix2DBlock:()=>FlowGraphExtractMatrix2DBlock,FlowGraphExtractMatrix3DBlock:()=>FlowGraphExtractMatrix3DBlock,FlowGraphExtractMatrixBlock:()=>FlowGraphExtractMatrixBlock,FlowGraphExtractVector2Block:()=>FlowGraphExtractVector2Block,FlowGraphExtractVector3Block:()=>FlowGraphExtractVector3Block,FlowGraphExtractVector4Block:()=>FlowGraphExtractVector4Block});var u=e(49492),i=e(39426),o=e(43890),r=e(72781),l=e(20538),n=e(33203);class FlowGraphMathCombineBlock extends u.D{constructor(t,a,e){super(a,e);for(let a=0;a<t;a++)this.registerDataInput(`input_${a}`,i.ab,0)}}class FlowGraphMathExtractBlock extends o.A{constructor(t,a,e){super(e),this.registerDataInput("input",a);for(let a=0;a<t;a++)this.registerDataOutput(`output_${a}`,i.ab,0)}}class FlowGraphCombineVector2Block extends FlowGraphMathCombineBlock{constructor(t){super(2,i.rh,t)}_doOperation(t){t._hasExecutionVariable(this,"cachedVector")||t._setExecutionVariable(this,"cachedVector",new r.FM);const a=t._getExecutionVariable(this,"cachedVector",null);return a.set(this.getDataInput("input_0").getValue(t),this.getDataInput("input_1").getValue(t)),a}getClassName(){return"FlowGraphCombineVector2Block"}}(0,l.H7)("FlowGraphCombineVector2Block",FlowGraphCombineVector2Block);class FlowGraphCombineVector3Block extends FlowGraphMathCombineBlock{constructor(t){super(3,i.FO,t)}_doOperation(t){t._hasExecutionVariable(this,"cachedVector")||t._setExecutionVariable(this,"cachedVector",new r.P);const a=t._getExecutionVariable(this,"cachedVector",null);return a.set(this.getDataInput("input_0").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_2").getValue(t)),a}getClassName(){return"FlowGraphCombineVector3Block"}}(0,l.H7)("FlowGraphCombineVector3Block",FlowGraphCombineVector3Block);class FlowGraphCombineVector4Block extends FlowGraphMathCombineBlock{constructor(t){super(4,i.Sx,t)}_doOperation(t){t._hasExecutionVariable(this,"cachedVector")||t._setExecutionVariable(this,"cachedVector",new r.Lt);const a=t._getExecutionVariable(this,"cachedVector",null);return a.set(this.getDataInput("input_0").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_3").getValue(t)),a}getClassName(){return"FlowGraphCombineVector4Block"}}(0,l.H7)("FlowGraphCombineVector4Block",FlowGraphCombineVector4Block);class FlowGraphCombineMatrixBlock extends FlowGraphMathCombineBlock{constructor(t){super(16,i.WT,t)}_doOperation(t){t._hasExecutionVariable(this,"cachedMatrix")||t._setExecutionVariable(this,"cachedMatrix",new r.y3);const a=t._getExecutionVariable(this,"cachedMatrix",null);return this.config?.inputIsColumnMajor?a.set(this.getDataInput("input_0").getValue(t),this.getDataInput("input_4").getValue(t),this.getDataInput("input_8").getValue(t),this.getDataInput("input_12").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_5").getValue(t),this.getDataInput("input_9").getValue(t),this.getDataInput("input_13").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_6").getValue(t),this.getDataInput("input_10").getValue(t),this.getDataInput("input_14").getValue(t),this.getDataInput("input_3").getValue(t),this.getDataInput("input_7").getValue(t),this.getDataInput("input_11").getValue(t),this.getDataInput("input_15").getValue(t)):a.set(this.getDataInput("input_0").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_3").getValue(t),this.getDataInput("input_4").getValue(t),this.getDataInput("input_5").getValue(t),this.getDataInput("input_6").getValue(t),this.getDataInput("input_7").getValue(t),this.getDataInput("input_8").getValue(t),this.getDataInput("input_9").getValue(t),this.getDataInput("input_10").getValue(t),this.getDataInput("input_11").getValue(t),this.getDataInput("input_12").getValue(t),this.getDataInput("input_13").getValue(t),this.getDataInput("input_14").getValue(t),this.getDataInput("input_15").getValue(t)),a}getClassName(){return"FlowGraphCombineMatrixBlock"}}(0,l.H7)("FlowGraphCombineMatrixBlock",FlowGraphCombineMatrixBlock);class FlowGraphCombineMatrix2DBlock extends FlowGraphMathCombineBlock{constructor(t){super(4,i.fz,t)}_doOperation(t){t._hasExecutionVariable(this,"cachedMatrix")||t._setExecutionVariable(this,"cachedMatrix",new n.x);const a=t._getExecutionVariable(this,"cachedMatrix",null),e=this.config?.inputIsColumnMajor?[this.getDataInput("input_0").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_3").getValue(t)]:[this.getDataInput("input_0").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_3").getValue(t)];return a.fromArray(e),a}getClassName(){return"FlowGraphCombineMatrix2DBlock"}}(0,l.H7)("FlowGraphCombineMatrix2DBlock",FlowGraphCombineMatrix2DBlock);class FlowGraphCombineMatrix3DBlock extends FlowGraphMathCombineBlock{constructor(t){super(9,i.pD,t)}_doOperation(t){t._hasExecutionVariable(this,"cachedMatrix")||t._setExecutionVariable(this,"cachedMatrix",new n.o);const a=t._getExecutionVariable(this,"cachedMatrix",null),e=this.config?.inputIsColumnMajor?[this.getDataInput("input_0").getValue(t),this.getDataInput("input_3").getValue(t),this.getDataInput("input_6").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_4").getValue(t),this.getDataInput("input_7").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_5").getValue(t),this.getDataInput("input_8").getValue(t)]:[this.getDataInput("input_0").getValue(t),this.getDataInput("input_1").getValue(t),this.getDataInput("input_2").getValue(t),this.getDataInput("input_3").getValue(t),this.getDataInput("input_4").getValue(t),this.getDataInput("input_5").getValue(t),this.getDataInput("input_6").getValue(t),this.getDataInput("input_7").getValue(t),this.getDataInput("input_8").getValue(t)];return a.fromArray(e),a}getClassName(){return"FlowGraphCombineMatrix3DBlock"}}(0,l.H7)("FlowGraphCombineMatrix3DBlock",FlowGraphCombineMatrix3DBlock);class FlowGraphExtractVector2Block extends FlowGraphMathExtractBlock{constructor(t){super(2,i.rh,t)}_updateOutputs(t){let a=this.getDataInput("input")?.getValue(t);a||(a=r.FM.Zero(),this.getDataInput("input").setValue(a,t)),this.getDataOutput("output_0").setValue(a.x,t),this.getDataOutput("output_1").setValue(a.y,t)}getClassName(){return"FlowGraphExtractVector2Block"}}(0,l.H7)("FlowGraphExtractVector2Block",FlowGraphExtractVector2Block);class FlowGraphExtractVector3Block extends FlowGraphMathExtractBlock{constructor(t){super(3,i.FO,t)}_updateOutputs(t){let a=this.getDataInput("input")?.getValue(t);a||(a=r.P.Zero(),this.getDataInput("input").setValue(a,t)),this.getDataOutput("output_0").setValue(a.x,t),this.getDataOutput("output_1").setValue(a.y,t),this.getDataOutput("output_2").setValue(a.z,t)}getClassName(){return"FlowGraphExtractVector3Block"}}(0,l.H7)("FlowGraphExtractVector3Block",FlowGraphExtractVector3Block);class FlowGraphExtractVector4Block extends FlowGraphMathExtractBlock{constructor(t){super(4,i.Sx,t)}_updateOutputs(t){let a=this.getDataInput("input")?.getValue(t);a||(a=r.Lt.Zero(),this.getDataInput("input").setValue(a,t)),this.getDataOutput("output_0").setValue(a.x,t),this.getDataOutput("output_1").setValue(a.y,t),this.getDataOutput("output_2").setValue(a.z,t),this.getDataOutput("output_3").setValue(a.w,t)}getClassName(){return"FlowGraphExtractVector4Block"}}(0,l.H7)("FlowGraphExtractVector4Block",FlowGraphExtractVector4Block);class FlowGraphExtractMatrixBlock extends FlowGraphMathExtractBlock{constructor(t){super(16,i.WT,t)}_updateOutputs(t){let a=this.getDataInput("input")?.getValue(t);a||(a=r.y3.Identity(),this.getDataInput("input").setValue(a,t));for(let e=0;e<16;e++)this.getDataOutput(`output_${e}`).setValue(a.m[e],t)}getClassName(){return"FlowGraphExtractMatrixBlock"}}(0,l.H7)("FlowGraphExtractMatrixBlock",FlowGraphExtractMatrixBlock);class FlowGraphExtractMatrix2DBlock extends FlowGraphMathExtractBlock{constructor(t){super(4,i.fz,t)}_updateOutputs(t){let a=this.getDataInput("input")?.getValue(t);a||(a=new n.x,this.getDataInput("input").setValue(a,t));for(let e=0;e<4;e++)this.getDataOutput(`output_${e}`).setValue(a.m[e],t)}getClassName(){return"FlowGraphExtractMatrix2DBlock"}}(0,l.H7)("FlowGraphExtractMatrix2DBlock",FlowGraphExtractMatrix2DBlock);class FlowGraphExtractMatrix3DBlock extends FlowGraphMathExtractBlock{constructor(t){super(9,i.pD,t)}_updateOutputs(t){let a=this.getDataInput("input")?.getValue(t);a||(a=new n.o,this.getDataInput("input").setValue(a,t));for(let e=0;e<9;e++)this.getDataOutput(`output_${e}`).setValue(a.m[e],t)}getClassName(){return"FlowGraphExtractMatrix3DBlock"}}(0,l.H7)("FlowGraphExtractMatrix3DBlock",FlowGraphExtractMatrix3DBlock)},49492:(t,a,e)=>{e.d(a,{D:()=>FlowGraphCachedOperationBlock});var u=e(43890),i=e(39426);const o="cachedOperationValue",r="cachedExecutionId";class FlowGraphCachedOperationBlock extends u.A{constructor(t,a){super(a),this.value=this.registerDataOutput("value",t),this.isValid=this.registerDataOutput("isValid",i.PE)}_updateOutputs(t){const a=t._getExecutionVariable(this,r,-1),e=t._getExecutionVariable(this,o,null);if(null!=e&&a===t.executionId)this.isValid.setValue(!0,t),this.value.setValue(e,t);else try{const a=this._doOperation(t);if(null==a)return void this.isValid.setValue(!1,t);t._setExecutionVariable(this,o,a),t._setExecutionVariable(this,r,t.executionId),this.value.setValue(a,t),this.isValid.setValue(!0,t)}catch(a){this.isValid.setValue(!1,t)}}}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3040 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3116.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3116],{3116:(e,r,t)=>{t.r(r),t.d(r,{ssao2PixelShaderWGSL:()=>f});var a=t(17416);const m="ssao2PixelShader",p="varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#ifdef SSAO\nconst scales: array<f32,16>=array<f32,16>(\n0.1,\n0.11406250000000001,\n0.131640625,\n0.15625,\n0.187890625,\n0.2265625,\n0.272265625,\n0.325,\n0.384765625,\n0.4515625,\n0.525390625,\n0.60625,\n0.694140625,\n0.7890625,\n0.891015625,\n1.0\n);uniform near: f32;uniform radius: f32;var depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;var randomSamplerSampler: sampler;var randomSampler: texture_2d<f32>;var normalSamplerSampler: sampler;var normalSampler: texture_2d<f32>;uniform randTextureTiles: f32;uniform samplesFactor: f32;uniform sampleSphere: array<vec3f,SAMPLES>;uniform totalStrength: f32;uniform base: f32;\n#ifdef ORTHOGRAPHIC_CAMERA\nuniform viewport: vec4f;\n#else\nuniform xViewport: f32;uniform yViewport: f32;\n#endif\nuniform depthProjection: mat3x3f;uniform maxZ: f32;uniform minZAspect: f32;uniform texelSize: vec2f;uniform projection: mat4x4f;@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {var random: vec3f=textureSampleLevel(randomSampler,randomSamplerSampler,input.vUV*uniforms.randTextureTiles,0.0).rgb;var depth: f32=textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV,0.0).r;var depthSign: f32=sign(depth);depth=depth*depthSign;var normal: vec3f=textureSampleLevel(normalSampler,normalSamplerSampler,input.vUV,0.0).rgb;var occlusion: f32=0.0;var correctedRadius: f32=min(uniforms.radius,uniforms.minZAspect*depth/uniforms.near);\n#ifdef ORTHOGRAPHIC_CAMERA\nvar vViewRay: vec3f= vec3f(mix(uniforms.viewport.x,uniforms.viewport.y,input.vUV.x),mix(uniforms.viewport.z,uniforms.viewport.w,input.vUV.y),depthSign);\n#else\nvar vViewRay: vec3f= vec3f((input.vUV.x*2.0-1.0)*uniforms.xViewport,(input.vUV.y*2.0-1.0)*uniforms.yViewport,depthSign);\n#endif\nvar vDepthFactor: vec3f=uniforms.depthProjection* vec3f(1.0,1.0,depth);var origin: vec3f=vViewRay*vDepthFactor;var rvec: vec3f=random*2.0-1.0;rvec.z=0.0;var dotProduct: f32=dot(rvec,normal);rvec=select( vec3f(-rvec.y,0.0,rvec.x),rvec,1.0-abs(dotProduct)>1e-2);var tangent: vec3f=normalize(rvec-normal*dot(rvec,normal));var bitangent: vec3f=cross(normal,tangent);var tbn: mat3x3f= mat3x3f(tangent,bitangent,normal);var difference: f32;for (var i: i32=0; i<SAMPLES; i++) {var samplePosition: vec3f=scales[(i+ i32(random.x*16.0)) % 16]*tbn*uniforms.sampleSphere[(i+ i32(random.y*16.0)) % 16];samplePosition=samplePosition*correctedRadius+origin;var offset: vec4f= vec4f(samplePosition,1.0);offset=uniforms.projection*offset;offset=vec4f(offset.xyz/offset.w,offset.w);offset=vec4f(offset.xy*0.5+0.5,offset.z,offset.w);if (offset.x<0.0 || offset.y<0.0 || offset.x>1.0 || offset.y>1.0) {continue;}\nvar sampleDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,offset.xy,0.0).r);difference=depthSign*samplePosition.z-sampleDepth;var rangeCheck: f32=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);occlusion+=step(EPSILON,difference)*rangeCheck;}\nocclusion=occlusion*(1.0-smoothstep(uniforms.maxZ*0.75,uniforms.maxZ,depth));var ao: f32=1.0-uniforms.totalStrength*occlusion*uniforms.samplesFactor;var result: f32=clamp(ao+uniforms.base,0.0,1.0);fragmentOutputs.color= vec4f( vec3f(result),1.0);}\n#else\n#ifdef BLUR\nuniform outSize: f32;uniform soften: f32;uniform tolerance: f32;uniform samples: i32;\n#ifndef BLUR_BYPASS\nvar depthSamplerSampler: sampler;var depthSampler: texture_2d<f32>;\n#ifdef BLUR_LEGACY\nfn blur13Bilateral(image: texture_2d<f32>,imageSampler: sampler,uv: vec2f,step: vec2f)->f32 {var result: f32=0.0;var off1: vec2f= vec2f(1.411764705882353)*step;var off2: vec2f= vec2f(3.2941176470588234)*step;var off3: vec2f= vec2f(5.176470588235294)*step;var compareDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv,0.0).r);var sampleDepth: f32;var weight: f32;var weightSum: f32=30.0;result+=textureSampleLevel(image,imageSampler,uv,0.0).r*30.0;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv+off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureSampleLevel(image,imageSampler,uv+off1,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv-off1,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+= weight;result+=textureSampleLevel(image,imageSampler,uv-off1,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv+off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv+off2,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv-off2,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv-off2,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv+off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv+off3,0.0).r*weight;sampleDepth=abs(textureSampleLevel(depthSampler,depthSamplerSampler,uv-off3,0.0).r);weight=clamp(1.0/( 0.003+abs(compareDepth-sampleDepth)),0.0,30.0);weightSum+=weight;result+=textureSampleLevel(image,imageSampler,uv-off3,0.0).r*weight;return result/weightSum;}\n#endif\n#endif\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {var result: f32=0.0;\n#ifdef BLUR_BYPASS\nresult=textureSampleLevel(textureSampler,textureSamplerSampler,input.vUV,0.0).r;\n#else\n#ifdef BLUR_H\nvar step: vec2f= vec2f(1.0/uniforms.outSize,0.0);\n#else\nvar step: vec2f= vec2f(0.0,1.0/uniforms.outSize);\n#endif\n#ifdef BLUR_LEGACY\nresult=blur13Bilateral(textureSampler,textureSamplerSampler,input.vUV,step);\n#else\nvar compareDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,input.vUV,0.0).r);var weightSum: f32=0.0;for (var i: i32=-uniforms.samples; i<uniforms.samples; i+=2)\n{var samplePos: vec2f=input.vUV+step*( f32(i)+0.5);var sampleDepth: f32=abs(textureSampleLevel(depthSampler,depthSamplerSampler,samplePos,0.0).r);var falloff: f32=smoothstep(0.0,\nf32(uniforms.samples),\nf32(uniforms.samples)-abs( f32(i))*uniforms.soften);var minDivider: f32=uniforms.tolerance*0.5+0.003;var weight: f32=falloff/( minDivider+abs(compareDepth-sampleDepth));result+=textureSampleLevel(textureSampler,textureSamplerSampler,samplePos,0.0).r*weight;weightSum+=weight;}\nresult/=weightSum;\n#endif\n#endif\nfragmentOutputs.color=vec4f(result,result,result,1.0);}\n#endif\n#endif\n";a.v.ShadersStoreWGSL[m]||(a.v.ShadersStoreWGSL[m]=p);const f={name:m,shader:p}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3116 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3210.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3210],{38269:(e,i,n)=>{var t=n(17416);const o="clusteredLightingFunctions",f="struct ClusteredLight {vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;vec4 vLightDirection;vec4 vLightFalloff;};\n#define inline\nClusteredLight getClusteredLight(sampler2D lightDataTexture,int index) {return ClusteredLight(\ntexelFetch(lightDataTexture,ivec2(0,index),0),\ntexelFetch(lightDataTexture,ivec2(1,index),0),\ntexelFetch(lightDataTexture,ivec2(2,index),0),\ntexelFetch(lightDataTexture,ivec2(3,index),0),\ntexelFetch(lightDataTexture,ivec2(4,index),0)\n);}\nint getClusteredSliceIndex(vec2 sliceData,float viewDepth) {return int(log(viewDepth)*sliceData.x+sliceData.y);}\n";t.v.IncludesShadersStore[o]||(t.v.IncludesShadersStore[o]=f)},6012:(e,i,n)=>{var t=n(17416);const o="lightFragment",f="#ifdef LIGHT{X}\n#if defined(SHADOWONLY) || defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X}) && defined(LIGHTMAPNOSPECULAR{X})\n#else\nvec4 diffuse{X}=light{X}.vLightDiffuse;\n#define CUSTOM_LIGHT{X}_COLOR \n#if defined(PBR) && defined(CLUSTLIGHT{X}) && defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0\n{int sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(\nlightDataTexture{X},\ntileMaskTexture{X},\nlight{X}.vLightData,\nivec2(light{X}.vSliceRanges[sliceIndex]),\nviewDirectionW,\nnormalW,\nvPositionW,\nsurfaceAlbedo,\nreflectivityOut\n#ifdef IRIDESCENCE\n,iridescenceIntensity\n#endif\n#ifdef SS_TRANSLUCENCY\n,subSurfaceOut\n#endif\n#ifdef SPECULARTERM\n,AARoughnessFactors.x\n#endif\n#ifdef ANISOTROPIC\n,anisotropicOut\n#endif\n#ifdef SHEEN\n,sheenOut\n#endif\n#ifdef CLEARCOAT\n,clearcoatOut\n#endif\n);}\n#elif defined(PBR)\n#ifdef SPOTLIGHT{X}\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,vPositionW);\n#elif defined(POINTLIGHT{X})\npreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW,vPositionW);\n#elif defined(HEMILIGHT{X})\npreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(DIRLIGHT{X})\npreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\n#elif defined(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)\npreInfo=computeAreaPreLightingInfo(areaLightsLTC1Sampler,areaLightsLTC2Sampler,viewDirectionW,normalW,vPositionW,light{X}.vLightData,light{X}.vLightWidth.xyz,light{X}.vLightHeight.xyz,roughness);\n#endif\npreInfo.NdotV=NdotV;\n#ifdef SPOTLIGHT{X}\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#endif\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\n#endif\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\n#endif\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\n#ifdef IESLIGHTTEXTURE{X}\npreInfo.attenuation*=computeDirectionalLightFalloff_IES(light{X}.vLightDirection.xyz,preInfo.L,iesLightTexture{X});\n#else\npreInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\n#endif\n#endif\n#elif defined(POINTLIGHT{X})\n#ifdef LIGHT_FALLOFF_GLTF{X}\npreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\n#elif defined(LIGHT_FALLOFF_PHYSICAL{X})\npreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\n#elif defined(LIGHT_FALLOFF_STANDARD{X})\npreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\n#else\npreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\n#endif\n#else\npreInfo.attenuation=1.0;\n#endif\n#if defined(HEMILIGHT{X}) || defined(AREALIGHT{X})\npreInfo.roughness=roughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\npreInfo.diffuseRoughness=diffuseRoughness;preInfo.surfaceAlbedo=surfaceAlbedo;\n#ifdef IRIDESCENCE\npreInfo.iridescenceIntensity=iridescenceIntensity;\n#endif\n#ifdef SS_TRANSLUCENCY\ninfo.diffuseTransmission=vec3(0.0);\n#endif\n#ifdef HEMILIGHT{X}\ninfo.diffuse=computeHemisphericDiffuseLighting(preInfo,diffuse{X}.rgb,light{X}.vLightGround);\n#elif defined(AREALIGHT{X})\ninfo.diffuse=computeAreaDiffuseLighting(preInfo,diffuse{X}.rgb);\n#elif defined(SS_TRANSLUCENCY)\n#ifndef SS_TRANSLUCENCY_LEGACY\ninfo.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb)*(1.0-subSurfaceOut.translucencyIntensity);info.diffuseTransmission=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance); \n#else\ninfo.diffuse=computeDiffuseTransmittedLighting(preInfo,diffuse{X}.rgb,subSurfaceOut.transmittance);\n#endif\n#else\ninfo.diffuse=computeDiffuseLighting(preInfo,diffuse{X}.rgb);\n#endif\n#ifdef SPECULARTERM\n#if AREALIGHT{X}\ninfo.specular=computeAreaSpecularLighting(preInfo,light{X}.vLightSpecular.rgb,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);\n#else\n#if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)\n{vec3 metalFresnel=reflectivityOut.specularWeight*getF82Specular(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90,reflectivityOut.roughness);vec3 dielectricFresnel=fresnelSchlickGGX(preInfo.VdotH,reflectivityOut.dielectricColorF0,reflectivityOut.colorReflectanceF90);coloredFresnel=mix(dielectricFresnel,metalFresnel,reflectivityOut.metallic);}\n#else\ncoloredFresnel=fresnelSchlickGGX(preInfo.VdotH,clearcoatOut.specularEnvironmentR0,reflectivityOut.colorReflectanceF90);\n#endif\n#ifndef LEGACY_SPECULAR_ENERGY_CONSERVATION\n{float NdotH=dot(normalW,preInfo.H);vec3 fresnel=fresnelSchlickGGX(NdotH,vec3(reflectanceF0),specularEnvironmentR90);info.diffuse*=(vec3(1.0)-fresnel);}\n#endif\n#ifdef ANISOTROPIC\ninfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);\n#else\ninfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,coloredFresnel,AARoughnessFactors.x,diffuse{X}.rgb);\n#endif\n#endif\n#endif\n#ifndef AREALIGHT{X}\n#ifdef SHEEN\n#ifdef SHEEN_LINKWITHALBEDO\npreInfo.roughness=sheenOut.sheenIntensity;\n#else\n#ifdef HEMILIGHT{X}\npreInfo.roughness=sheenOut.sheenRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\n#endif\ninfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,diffuse{X}.rgb);\n#endif\n#ifdef CLEARCOAT\n#ifdef HEMILIGHT{X}\npreInfo.roughness=clearcoatOut.clearCoatRoughness;\n#else\npreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\n#endif\ninfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,diffuse{X}.rgb);\n#ifdef CLEARCOAT_TINT\nabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);info.diffuse*=absorption;\n#ifdef SS_TRANSLUCENCY\ninfo.diffuseTransmission*=absorption;\n#endif\n#ifdef SPECULARTERM\ninfo.specular*=absorption;\n#endif\n#endif\ninfo.diffuse*=info.clearCoat.w;\n#ifdef SS_TRANSLUCENCY\ninfo.diffuseTransmission*=info.clearCoat.w;\n#endif\n#ifdef SPECULARTERM\ninfo.specular*=info.clearCoat.w;\n#endif\n#ifdef SHEEN\ninfo.sheen*=info.clearCoat.w;\n#endif\n#endif\n#endif\n#else\n#ifdef SPOTLIGHT{X}\n#ifdef IESLIGHTTEXTURE{X}\ninfo=computeIESSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness,iesLightTexture{X});\n#else\ninfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);\n#endif\n#elif defined(HEMILIGHT{X})\ninfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\n#elif defined(POINTLIGHT{X}) || defined(DIRLIGHT{X})\ninfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,diffuse{X}.a,glossiness);\n#elif defined(AREALIGHT{X}) && defined(AREALIGHTSUPPORTED)\ninfo=computeAreaLighting(areaLightsLTC1Sampler,areaLightsLTC2Sampler,viewDirectionW,normalW,vPositionW,light{X}.vLightData.xyz,light{X}.vLightWidth.rgb,light{X}.vLightHeight.rgb,diffuse{X}.rgb,light{X}.vLightSpecular.rgb,\n#ifdef AREALIGHTNOROUGHTNESS\n0.5\n#else\nvReflectionInfos.y\n#endif\n);\n#elif defined(CLUSTLIGHT{X}) && CLUSTLIGHT_BATCH>0\n{int sliceIndex=min(getClusteredSliceIndex(light{X}.vSliceData,vViewDepth),CLUSTLIGHT_SLICES-1);info=computeClusteredLighting(lightDataTexture{X},tileMaskTexture{X},viewDirectionW,normalW,light{X}.vLightData,ivec2(light{X}.vSliceRanges[sliceIndex]),glossiness);}\n#endif\n#endif\n#ifdef PROJECTEDLIGHTTEXTURE{X}\ninfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightTexture{X},textureProjectionMatrix{X},vPositionW);\n#endif\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nfor (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++)\n{\n#ifdef SHADOWCSM_RIGHTHANDED{X}\ndiff{X}=viewFrustumZ{X}[i]+vPositionFromCamera{X}.z;\n#else\ndiff{X}=viewFrustumZ{X}[i]-vPositionFromCamera{X}.z;\n#endif\nif (diff{X}>=0.) {index{X}=i;break;}}\n#ifdef SHADOWCSMUSESHADOWMAXZ{X}\nif (index{X}>=0)\n#endif\n{\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#else\nshadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#endif\n#else\nshadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];\n#endif\n#ifndef SHADOWCSMNOBLEND{X}\nfloat frustumLength=frustumLengths{X}[index{X}];float diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};if (index{X}<(SHADOWCSMNUM_CASCADES{X}-1) && diffRatio<1.)\n{index{X}+=1;float nextShadow=0.;\n#if defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nnextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#elif defined(SHADOWMEDIUMQUALITY{X})\nnextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#else\nnextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\n#endif\n#else\nnextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\nshadow=mix(nextShadow,shadow,diffRatio);\n#ifdef SHADOWCSMDEBUG{X}\nshadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\n#endif\n}\n#endif\n}\n#elif defined(SHADOWCLOSEESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithCloseESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWESM{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithESMCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\n#else\nshadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPOISSON{X})\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowWithPoissonSamplingCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCF{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#elif defined(SHADOWPCSS{X})\n#if defined(SHADOWLOWQUALITY{X})\nshadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#elif defined(SHADOWMEDIUMQUALITY{X})\nshadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#else\nshadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthTexture{X},shadowTexture{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#else\n#if defined(SHADOWCUBE{X})\nshadow=computeShadowCube(vPositionW,light{X}.vLightData.xyz,shadowTexture{X},light{X}.shadowsInfo.x,light{X}.depthValues);\n#else\nshadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowTexture{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\n#endif\n#endif\n#ifdef SHADOWONLY\n#ifndef SHADOWINUSE\n#define SHADOWINUSE\n#endif\nglobalShadow+=shadow;shadowLightCount+=1.0;\n#endif\n#else\nshadow=1.;\n#endif\naggShadow+=shadow;numLights+=1.0;\n#ifndef SHADOWONLY\n#ifdef CUSTOMUSERLIGHTING\ndiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\n#ifdef SPECULARTERM\nspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\n#endif\n#elif defined(LIGHTMAP) && defined(LIGHTMAPEXCLUDED{X})\ndiffuseBase+=lightmapColor.rgb*shadow;\n#ifdef SPECULARTERM\n#ifndef LIGHTMAPNOSPECULAR{X}\nspecularBase+=info.specular*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifndef LIGHTMAPNOSPECULAR{X}\nclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\n#endif\n#endif\n#ifdef SHEEN\n#ifndef LIGHTMAPNOSPECULAR{X}\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#else\n#ifdef SHADOWCSMDEBUG{X}\ndiffuseBase+=info.diffuse*shadowDebug{X};\n#else\ndiffuseBase+=info.diffuse*shadow;\n#endif\n#ifdef SS_TRANSLUCENCY\ndiffuseTransmissionBase+=info.diffuseTransmission*shadow;\n#endif\n#ifdef SPECULARTERM\nspecularBase+=info.specular*shadow;\n#endif\n#ifdef CLEARCOAT\nclearCoatBase+=info.clearCoat.rgb*shadow;\n#endif\n#ifdef SHEEN\nsheenBase+=info.sheen.rgb*shadow;\n#endif\n#endif\n#endif\n#endif\n";t.v.IncludesShadersStore[o]||(t.v.IncludesShadersStore[o]=f)},95001:(e,i,n)=>{var t=n(17416);n(33893),n(38269);const o="lightsFragmentFunctions",f="struct lightingInfo\n{vec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef NDOTL\nfloat ndl;\n#endif\n};lightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 lightVectorW;float attenuation=1.0;if (lightData.w==0.)\n{vec3 direction=lightData.xyz-vPositionW;attenuation=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}\nelse\n{lightVectorW=normalize(-lightData.xyz);}\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nfloat getAttenuation(float cosAngle,float exponent) {return max(0.,pow(cosAngle,exponent));}\nfloat getIESAttenuation(float cosAngle,sampler2D iesLightSampler) {float angle=acos(cosAngle)/PI;return texture2D(iesLightSampler,vec2(angle,0.)).r;}\nlightingInfo basicSpotLighting(vec3 viewDirectionW,vec3 lightVectorW,vec3 vNormal,float attenuation,vec3 diffuseColor,vec3 specularColor,float glossiness) {lightingInfo result; \nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nlightingInfo computeIESSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness,sampler2D iesLightSampler) { \nvec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float dotProduct=dot(lightDirection.xyz,-lightVectorW);float cosAngle=max(0.,dotProduct);if (cosAngle>=lightDirection.w)\n{ \nattenuation*=getIESAttenuation(dotProduct,iesLightSampler);return basicSpotLighting(viewDirectionW,lightVectorW,vNormal,attenuation,diffuseColor,specularColor,glossiness);}\nlightingInfo result;result.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;}\nlightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {vec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)\n{ \nattenuation*=getAttenuation(cosAngle,lightData.w);return basicSpotLighting(viewDirectionW,lightVectorW,vNormal,attenuation,diffuseColor,specularColor,glossiness);}\nlightingInfo result;result.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;}\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {lightingInfo result;float ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;\n#endif\nreturn result;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return textureColor;}\n#if defined(AREALIGHTUSED) && defined(AREALIGHTSUPPORTED)\n#include<ltcHelperFunctions>\nuniform sampler2D areaLightsLTC1Sampler;uniform sampler2D areaLightsLTC2Sampler;\n#define inline\nlightingInfo computeAreaLighting(sampler2D ltc1,sampler2D ltc2,vec3 viewDirectionW,vec3 vNormal,vec3 vPosition,vec3 lightPosition,vec3 halfWidth,vec3 halfHeight,vec3 diffuseColor,vec3 specularColor,float roughness) \n{lightingInfo result;areaLightData data=computeAreaLightSpecularDiffuseFresnel(ltc1,ltc2,viewDirectionW,vNormal,vPosition,lightPosition,halfWidth,halfHeight,roughness);\n#ifdef SPECULARTERM\nvec3 fresnel=( specularColor*data.Fresnel.x+( vec3( 1.0 )-specularColor )*data.Fresnel.y );result.specular+=specularColor*fresnel*data.Specular;\n#endif\nresult.diffuse+=diffuseColor*data.Diffuse;return result;}\n#endif\n#if defined(CLUSTLIGHT_BATCH) && CLUSTLIGHT_BATCH>0\n#include<clusteredLightingFunctions>\n#define inline\nlightingInfo computeClusteredLighting(\nsampler2D lightDataTexture,\nsampler2D tileMaskTexture,\nvec3 viewDirectionW,\nvec3 vNormal,\nvec4 lightData,\nivec2 sliceRange,\nfloat glossiness\n) {lightingInfo result;ivec2 tilePosition=ivec2(gl_FragCoord.xy*lightData.xy);int maskHeight=int(lightData.z);tilePosition.y=min(tilePosition.y,maskHeight-1);ivec2 batchRange=sliceRange/CLUSTLIGHT_BATCH;int batchOffset=batchRange.x*CLUSTLIGHT_BATCH;tilePosition.y+=maskHeight*batchRange.x;for (int i=batchRange.x; i<=batchRange.y; i+=1) {uint mask=uint(texelFetch(tileMaskTexture,tilePosition,0).r);tilePosition.y+=maskHeight;int maskOffset=max(sliceRange.x-batchOffset,0);int maskWidth=min(sliceRange.y-batchOffset+1,CLUSTLIGHT_BATCH);mask=extractBits(mask,maskOffset,maskWidth);while (mask != 0u) {uint bit=mask & -mask;mask ^= bit;int position=onlyBitPosition(bit);ClusteredLight light=getClusteredLight(lightDataTexture,batchOffset+maskOffset+position);lightingInfo info;if (light.vLightDirection.w<0.0) {info=computeLighting(viewDirectionW,vNormal,light.vLightData,light.vLightDiffuse.rgb,light.vLightSpecular.rgb,light.vLightDiffuse.a,glossiness);} else {info=computeSpotLighting(viewDirectionW,vNormal,light.vLightData,light.vLightDirection,light.vLightDiffuse.rgb,light.vLightSpecular.rgb,light.vLightDiffuse.a,glossiness);}\nresult.diffuse+=info.diffuse;\n#ifdef SPECULARTERM\nresult.specular+=info.specular;\n#endif\n}\nbatchOffset+=CLUSTLIGHT_BATCH;}\nreturn result;}\n#endif\n";t.v.IncludesShadersStore[o]||(t.v.IncludesShadersStore[o]=f)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3210 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3219.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3219],{13219:(o,a,t)=>{t.r(a),t.d(a,{FlowGraphBooleanToFloat:()=>FlowGraphBooleanToFloat,FlowGraphBooleanToInt:()=>FlowGraphBooleanToInt,FlowGraphFloatToBoolean:()=>FlowGraphFloatToBoolean,FlowGraphFloatToInt:()=>FlowGraphFloatToInt,FlowGraphIntToBoolean:()=>FlowGraphIntToBoolean,FlowGraphIntToFloat:()=>FlowGraphIntToFloat});var l=t(86562),e=t(39426),r=t(20538),n=t(234);class FlowGraphBooleanToFloat extends l.p{constructor(o){super(e.PE,e.ab,(o=>+o),"FlowGraphBooleanToFloat",o)}}(0,r.H7)("FlowGraphBooleanToFloat",FlowGraphBooleanToFloat);class FlowGraphBooleanToInt extends l.p{constructor(o){super(e.PE,e.fj,(o=>n.K.FromValue(+o)),"FlowGraphBooleanToInt",o)}}(0,r.H7)("FlowGraphBooleanToInt",FlowGraphBooleanToInt);class FlowGraphFloatToBoolean extends l.p{constructor(o){super(e.ab,e.PE,(o=>!!o),"FlowGraphFloatToBoolean",o)}}(0,r.H7)("FlowGraphFloatToBoolean",FlowGraphFloatToBoolean);class FlowGraphIntToBoolean extends l.p{constructor(o){super(e.fj,e.PE,(o=>!!o.value),"FlowGraphIntToBoolean",o)}}(0,r.H7)("FlowGraphIntToBoolean",FlowGraphIntToBoolean);class FlowGraphIntToFloat extends l.p{constructor(o){super(e.fj,e.ab,(o=>o.value),"FlowGraphIntToFloat",o)}}(0,r.H7)("FlowGraphIntToFloat",FlowGraphIntToFloat);class FlowGraphFloatToInt extends l.p{constructor(o){super(e.ab,e.fj,(a=>{const t=o?.roundingMode;switch(t){case"floor":return n.K.FromValue(Math.floor(a));case"ceil":return n.K.FromValue(Math.ceil(a));case"round":return n.K.FromValue(Math.round(a));default:return n.K.FromValue(a)}}),"FlowGraphFloatToInt",o)}}(0,r.H7)("FlowGraphFloatToInt",FlowGraphFloatToInt)},49492:(o,a,t)=>{t.d(a,{D:()=>FlowGraphCachedOperationBlock});var l=t(43890),e=t(39426);const r="cachedOperationValue",n="cachedExecutionId";class FlowGraphCachedOperationBlock extends l.A{constructor(o,a){super(a),this.value=this.registerDataOutput("value",o),this.isValid=this.registerDataOutput("isValid",e.PE)}_updateOutputs(o){const a=o._getExecutionVariable(this,n,-1),t=o._getExecutionVariable(this,r,null);if(null!=t&&a===o.executionId)this.isValid.setValue(!0,o),this.value.setValue(t,o);else try{const a=this._doOperation(o);if(null==a)return void this.isValid.setValue(!1,o);o._setExecutionVariable(this,r,a),o._setExecutionVariable(this,n,o.executionId),this.value.setValue(a,o),this.isValid.setValue(!0,o)}catch(a){this.isValid.setValue(!1,o)}}}},86562:(o,a,t)=>{t.d(a,{p:()=>FlowGraphUnaryOperationBlock});var l=t(49492);class FlowGraphUnaryOperationBlock extends l.D{constructor(o,a,t,l,e){super(a,e),this._operation=t,this._className=l,this.a=this.registerDataInput("a",o)}_doOperation(o){return this._operation(this.a.getValue(o))}getClassName(){return this._className}}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3219 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3242.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3242],{3242:(e,t,s)=>{s.r(t),s.d(t,{FlowGraphReceiveCustomEventBlock:()=>FlowGraphReceiveCustomEventBlock});var o=s(3274),n=s(88741),r=s(20538),i=s(44103);class FlowGraphReceiveCustomEventBlock extends o.N{constructor(e){super(e),this.config=e,this.initPriority=1;for(const e in this.config.eventData)this.registerDataOutput(e,this.config.eventData[e].type)}_preparePendingTasks(e){const t=e.configuration.coordinator.getCustomEventObservable(this.config.eventId);if(t&&t.hasObservers()&&t.observers.length>i.l.MaxEventsPerType)return void this._reportError(e,`FlowGraphReceiveCustomEventBlock: Too many observers for event ${this.config.eventId}. Max is ${i.l.MaxEventsPerType}.`);const s=t.add((t=>{const s=Object.keys(t);for(const o of s)this.getDataOutput(o)?.setValue(t[o],e);this._execute(e)}));e._setExecutionVariable(this,"_eventObserver",s)}_cancelPendingTasks(e){const t=e.configuration.coordinator.getCustomEventObservable(this.config.eventId);if(t){const s=e._getExecutionVariable(this,"_eventObserver",null);t.remove(s)}else n.w1.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`)}_executeEvent(e,t){return!0}getClassName(){return"FlowGraphReceiveCustomEventBlock"}}(0,r.H7)("FlowGraphReceiveCustomEventBlock",FlowGraphReceiveCustomEventBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3242 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3243.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3243],{63243:(e,n,r)=>{r.r(n),r.d(n,{textureMergerPixelShader:()=>l});var t=r(17416);const a="textureMergerPixelShader",u="#ifdef USE_TEXTURE0\nuniform sampler2D inputTexture0;\n#endif\n#ifdef USE_TEXTURE1\nuniform sampler2D inputTexture1;\n#endif\n#ifdef USE_TEXTURE2\nuniform sampler2D inputTexture2;\n#endif\n#ifdef USE_TEXTURE3\nuniform sampler2D inputTexture3;\n#endif\n#ifdef RED_FROM_TEXTURE\nuniform int redTextureIndex;uniform int redSourceChannel;\n#else\nuniform float redConstantValue;\n#endif\n#ifdef GREEN_FROM_TEXTURE\nuniform int greenTextureIndex;uniform int greenSourceChannel;\n#else\nuniform float greenConstantValue;\n#endif\n#ifdef BLUE_FROM_TEXTURE\nuniform int blueTextureIndex;uniform int blueSourceChannel;\n#else\nuniform float blueConstantValue;\n#endif\n#ifdef ALPHA_FROM_TEXTURE\nuniform int alphaTextureIndex;uniform int alphaSourceChannel;\n#else\nuniform float alphaConstantValue;\n#endif\nvarying vec2 vUV;\n#if defined(RED_FROM_TEXTURE) || defined(GREEN_FROM_TEXTURE) || defined(BLUE_FROM_TEXTURE) || defined(ALPHA_FROM_TEXTURE)\nvec4 sampleTexture(int textureIndex,vec2 uv) {switch (textureIndex) {\n#ifdef USE_TEXTURE0\ncase 0:\nreturn texture2D(inputTexture0,uv);\n#endif\n#ifdef USE_TEXTURE1\ncase 1:\nreturn texture2D(inputTexture1,uv);\n#endif\n#ifdef USE_TEXTURE2\ncase 2:\nreturn texture2D(inputTexture2,uv);\n#endif\n#ifdef USE_TEXTURE3\ncase 3:\nreturn texture2D(inputTexture3,uv);\n#endif\ndefault:\nreturn vec4(0.0,0.0,0.0,1.0); }}\nfloat extractChannel(vec4 color,int channelIndex) {switch (channelIndex) {case 0:\nreturn color.r; \ncase 1:\nreturn color.g; \ncase 2:\nreturn color.b; \ndefault:\nreturn color.a; }}\n#endif\nvoid main() {vec2 uv=vUV;\n#ifdef RED_FROM_TEXTURE\nvec4 redSample=sampleTexture(redTextureIndex,uv);float r=extractChannel(redSample,redSourceChannel);\n#else\nfloat r=redConstantValue;\n#endif\n#ifdef GREEN_FROM_TEXTURE\nvec4 greenSample=sampleTexture(greenTextureIndex,uv);float g=extractChannel(greenSample,greenSourceChannel);\n#else\nfloat g=greenConstantValue;\n#endif\n#ifdef BLUE_FROM_TEXTURE\nvec4 blueSample=sampleTexture(blueTextureIndex,uv);float b=extractChannel(blueSample,blueSourceChannel);\n#else\nfloat b=blueConstantValue;\n#endif\n#ifdef ALPHA_FROM_TEXTURE\nvec4 alphaSample=sampleTexture(alphaTextureIndex,uv);float a=extractChannel(alphaSample,alphaSourceChannel);\n#else\nfloat a=alphaConstantValue;\n#endif\ngl_FragColor=vec4(r,g,b,a);}";t.v.ShadersStore[a]||(t.v.ShadersStore[a]=u);const l={name:a,shader:u}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3243 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3296.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3296],{63296:(e,t,i)=>{i.r(t),i.d(t,{iblIcdfPixelShader:()=>r});var n=i(17416);i(65276);const c="iblIcdfPixelShader",o="precision highp sampler2D;\n#include<helperFunctions>\nvarying vec2 vUV;\n#ifdef IBL_USE_CUBE_MAP\nuniform samplerCube iblSource;\n#else\nuniform sampler2D iblSource;\n#endif\nuniform sampler2D scaledLuminanceSampler;uniform int iblWidth;uniform int iblHeight;uniform sampler2D cdfx;uniform sampler2D cdfy;float fetchLuminance(vec2 coords) {\n#ifdef IBL_USE_CUBE_MAP\nvec3 direction=equirectangularToCubemapDirection(coords);vec3 color=textureCubeLodEXT(iblSource,direction,0.0).rgb;\n#else\nvec3 color=textureLod(iblSource,coords,0.0).rgb;\n#endif\nreturn dot(color,LuminanceEncodeApprox);}\nfloat fetchCDFx(int x) { return texelFetch(cdfx,ivec2(x,0),0).x; }\nfloat bisectx(int size,float targetValue) {int a=0,b=size-1;while (b-a>1) {int c=a+b>>1;if (fetchCDFx(c)<targetValue)\na=c;else\nb=c;}\nreturn mix(float(a),float(b),\n(targetValue-fetchCDFx(a))/(fetchCDFx(b)-fetchCDFx(a))) /\nfloat(size-1);}\nfloat fetchCDFy(int y,int invocationId) {return texelFetch(cdfy,ivec2(invocationId,y),0).x;}\nfloat bisecty(int size,float targetValue,int invocationId) {int a=0,b=size-1;while (b-a>1) {int c=a+b>>1;if (fetchCDFy(c,invocationId)<targetValue)\na=c;else\nb=c;}\nreturn mix(float(a),float(b),\n(targetValue-fetchCDFy(a,invocationId)) /\n(fetchCDFy(b,invocationId)-fetchCDFy(a,invocationId))) /\nfloat(size-1);}\nvoid main(void) {ivec2 cdfxSize=textureSize(cdfx,0);int cdfWidth=cdfxSize.x;int icdfWidth=cdfWidth-1;ivec2 currentPixel=ivec2(gl_FragCoord.xy);vec3 outputColor=vec3(1.0);if (currentPixel.x==0) {outputColor.x=0.0;} else if (currentPixel.x==icdfWidth-1) {outputColor.x=1.0;} else {float targetValue=fetchCDFx(cdfWidth-1)*vUV.x;outputColor.x=bisectx(cdfWidth,targetValue);}\nivec2 cdfySize=textureSize(cdfy,0);int cdfHeight=cdfySize.y;if (currentPixel.y==0) {outputColor.y=0.0;} else if (currentPixel.y==cdfHeight-2) {outputColor.y=1.0;} else {float targetValue=fetchCDFy(cdfHeight-1,currentPixel.x)*vUV.y;outputColor.y=max(bisecty(cdfHeight,targetValue,currentPixel.x),0.0);}\nvec2 size=vec2(textureSize(scaledLuminanceSampler,0));float highestMip=floor(log2(size.x));float normalization=texture(scaledLuminanceSampler,vUV,highestMip).r;float pixelLuminance=fetchLuminance(vUV);outputColor.z=pixelLuminance/(2.0*PI*normalization);gl_FragColor=vec4(outputColor,1.0);}\n";n.v.ShadersStore[c]||(n.v.ShadersStore[c]=o);const r={name:c,shader:o}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3296 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3330.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3330],{73330:(e,a,t)=>{t.r(a),t.d(a,{FlowGraphBranchBlock:()=>FlowGraphBranchBlock});var r=t(39426),i=t(17693),s=t(20538);class FlowGraphBranchBlock extends i.Q{constructor(e){super(e),this.condition=this.registerDataInput("condition",r.PE),this.onTrue=this._registerSignalOutput("onTrue"),this.onFalse=this._registerSignalOutput("onFalse")}_execute(e){this.condition.getValue(e)?this.onTrue._activateSignal(e):this.onFalse._activateSignal(e)}getClassName(){return"FlowGraphBranchBlock"}}(0,s.H7)("FlowGraphBranchBlock",FlowGraphBranchBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3330 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3351.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3351],{36782:(e,r,n)=>{var t=n(17416);const a="kernelBlurVaryingDeclaration",s="varying sampleCoord{X}: vec2f;";t.v.IncludesShadersStoreWGSL[a]||(t.v.IncludesShadersStoreWGSL[a]=s)},83351:(e,r,n)=>{n.r(r),n.d(r,{kernelBlurVertexShaderWGSL:()=>u});var t=n(17416);n(36782);const a="vertexOutputs.sampleCoord{X}=vertexOutputs.sampleCenter+uniforms.delta*KERNEL_OFFSET{X};";t.v.IncludesShadersStoreWGSL.kernelBlurVertex||(t.v.IncludesShadersStoreWGSL.kernelBlurVertex=a);const s="kernelBlurVertexShader",l="attribute position: vec2f;uniform delta: vec2f;varying sampleCenter: vec2f;\n#include<kernelBlurVaryingDeclaration>[0..varyingCount]\n#define CUSTOM_VERTEX_DEFINITIONS\n@vertex\nfn main(input : VertexInputs)->FragmentInputs {const madd: vec2f= vec2f(0.5,0.5);\n#define CUSTOM_VERTEX_MAIN_BEGIN\nvertexOutputs.sampleCenter=(input.position*madd+madd);\n#include<kernelBlurVertex>[0..varyingCount]\nvertexOutputs.position= vec4f(input.position,0.0,1.0);\n#define CUSTOM_VERTEX_MAIN_END\n}";t.v.ShadersStoreWGSL.kernelBlurVertexShader||(t.v.ShadersStoreWGSL.kernelBlurVertexShader=l);const u={name:s,shader:l}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3351 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3420.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3420],{13420:(e,t,s)=>{s.r(t),s.d(t,{FlowGraphContextBlock:()=>FlowGraphContextBlock});var a=s(43890),r=s(39426),l=s(20538);class FlowGraphContextBlock extends a.A{constructor(e){super(e),this.userVariables=this.registerDataOutput("userVariables",r.s8),this.executionId=this.registerDataOutput("executionId",r.ab)}_updateOutputs(e){this.userVariables.setValue(e.userVariables,e),this.executionId.setValue(e.executionId,e)}serialize(e){super.serialize(e)}getClassName(){return"FlowGraphContextBlock"}}(0,l.H7)("FlowGraphContextBlock",FlowGraphContextBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3420 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3436.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3436],{43436:(t,a,e)=>{e.r(a),e.d(a,{FlowGraphConditionalDataBlock:()=>FlowGraphConditionalDataBlock});var o=e(43890),i=e(39426),s=e(20538);class FlowGraphConditionalDataBlock extends o.A{constructor(t){super(t),this.condition=this.registerDataInput("condition",i.PE),this.onTrue=this.registerDataInput("onTrue",i.s8),this.onFalse=this.registerDataInput("onFalse",i.s8),this.output=this.registerDataOutput("output",i.s8)}_updateOutputs(t){const a=this.condition.getValue(t);this.output.setValue(a?this.onTrue.getValue(t):this.onFalse.getValue(t),t)}getClassName(){return"FlowGraphConditionalBlock"}}(0,s.H7)("FlowGraphConditionalBlock",FlowGraphConditionalDataBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3436 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3439.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3439],{43439:(e,t,a)=>{a.r(t),a.d(t,{FlowGraphSetDelayBlock:()=>FlowGraphSetDelayBlock});var l=a(96512),n=a(39426),i=a(51497),s=a(3146),r=a(20538),o=a(234);class FlowGraphSetDelayBlock extends l.g{constructor(e){super(e),this.cancel=this._registerSignalInput("cancel"),this.duration=this.registerDataInput("duration",n.ab),this.lastDelayIndex=this.registerDataOutput("lastDelayIndex",n.fj,new o.K(-1))}_preparePendingTasks(e){const t=this.duration.getValue(e);if(t<0||isNaN(t)||!isFinite(t))return this._reportError(e,"Invalid duration in SetDelay block");if(e._getGlobalContextVariable("activeDelays",0)>=FlowGraphSetDelayBlock.MaxParallelDelayCount)return this._reportError(e,"Max parallel delays reached");const a=e._getGlobalContextVariable("lastDelayIndex",-1),l=e._getExecutionVariable(this,"pendingDelays",[]),n=e.configuration.scene,s=new i.xb({timeout:1e3*t,contextObservable:n.onBeforeRenderObservable,onEnded:()=>this._onEnded(s,e)});s.start();const r=a+1;this.lastDelayIndex.setValue(new o.K(r),e),e._setGlobalContextVariable("lastDelayIndex",r),l[r]=s,e._setExecutionVariable(this,"pendingDelays",l),this._updateGlobalTimers(e)}_cancelPendingTasks(e){const t=e._getExecutionVariable(this,"pendingDelays",[]);for(const e of t)e?.dispose();e._deleteExecutionVariable(this,"pendingDelays"),this.lastDelayIndex.setValue(new o.K(-1),e),this._updateGlobalTimers(e)}_execute(e,t){t!==this.cancel?(this._preparePendingTasks(e),this.out._activateSignal(e)):this._cancelPendingTasks(e)}getClassName(){return"FlowGraphSetDelayBlock"}_onEnded(e,t){const a=t._getExecutionVariable(this,"pendingDelays",[]),l=a.indexOf(e);-1!==l?a.splice(l,1):s.Y.Warn("FlowGraphTimerBlock: Timer ended but was not found in the running timers list"),t._removePendingBlock(this),this.done._activateSignal(t),this._updateGlobalTimers(t)}_updateGlobalTimers(e){const t=e._getExecutionVariable(this,"pendingDelays",[]),a=e._getGlobalContextVariable("pendingDelays",[]);for(let e=0;e<t.length;e++){if(!t[e])continue;const l=t[e];a[e]&&a[e]!==l?s.Y.Warn("FlowGraphTimerBlock: Timer ended but was not found in the running timers list"):a[e]=l}e._setGlobalContextVariable("pendingDelays",a)}}FlowGraphSetDelayBlock.MaxParallelDelayCount=100,(0,r.H7)("FlowGraphSetDelayBlock",FlowGraphSetDelayBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3439 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3456.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3456],{13456:(a,e,o)=>{o.r(e),o.d(e,{fxaaPixelShader:()=>m});var l=o(17416);const n="fxaaPixelShader",t="#if defined(WEBGL2) || defined(WEBGPU) || defined(NATIVE)\n#define TEXTUREFUNC(s,c,l) texture2DLodEXT(s,c,l)\n#else\n#define TEXTUREFUNC(s,c,b) texture2D(s,c,b)\n#endif\nuniform sampler2D textureSampler;uniform vec2 texelSize;varying vec2 vUV;varying vec2 sampleCoordS;varying vec2 sampleCoordE;varying vec2 sampleCoordN;varying vec2 sampleCoordW;varying vec2 sampleCoordNW;varying vec2 sampleCoordSE;varying vec2 sampleCoordNE;varying vec2 sampleCoordSW;const float fxaaQualitySubpix=1.0;const float fxaaQualityEdgeThreshold=0.166;const float fxaaQualityEdgeThresholdMin=0.0833;const vec3 kLumaCoefficients=vec3(0.2126,0.7152,0.0722);\n#define FxaaLuma(rgba) dot(rgba.rgb,kLumaCoefficients)\nvoid main(){vec2 posM;posM.x=vUV.x;posM.y=vUV.y;vec4 rgbyM=TEXTUREFUNC(textureSampler,vUV,0.0);float lumaM=FxaaLuma(rgbyM);float lumaS=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordS,0.0));float lumaE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordE,0.0));float lumaN=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordN,0.0));float lumaW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordW,0.0));float maxSM=max(lumaS,lumaM);float minSM=min(lumaS,lumaM);float maxESM=max(lumaE,maxSM);float minESM=min(lumaE,minSM);float maxWN=max(lumaN,lumaW);float minWN=min(lumaN,lumaW);float rangeMax=max(maxWN,maxESM);float rangeMin=min(minWN,minESM);float rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;float range=rangeMax-rangeMin;float rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);\n#ifndef MALI\nif(range<rangeMaxClamped) \n{gl_FragColor=rgbyM;return;}\n#endif\nfloat lumaNW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNW,0.0));float lumaSE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSE,0.0));float lumaNE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNE,0.0));float lumaSW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSW,0.0));float lumaNS=lumaN+lumaS;float lumaWE=lumaW+lumaE;float subpixRcpRange=1.0/range;float subpixNSWE=lumaNS+lumaWE;float edgeHorz1=(-2.0*lumaM)+lumaNS;float edgeVert1=(-2.0*lumaM)+lumaWE;float lumaNESE=lumaNE+lumaSE;float lumaNWNE=lumaNW+lumaNE;float edgeHorz2=(-2.0*lumaE)+lumaNESE;float edgeVert2=(-2.0*lumaN)+lumaNWNE;float lumaNWSW=lumaNW+lumaSW;float lumaSWSE=lumaSW+lumaSE;float edgeHorz4=(abs(edgeHorz1)*2.0)+abs(edgeHorz2);float edgeVert4=(abs(edgeVert1)*2.0)+abs(edgeVert2);float edgeHorz3=(-2.0*lumaW)+lumaNWSW;float edgeVert3=(-2.0*lumaS)+lumaSWSE;float edgeHorz=abs(edgeHorz3)+edgeHorz4;float edgeVert=abs(edgeVert3)+edgeVert4;float subpixNWSWNESE=lumaNWSW+lumaNESE;float lengthSign=texelSize.x;bool horzSpan=edgeHorz>=edgeVert;float subpixA=subpixNSWE*2.0+subpixNWSWNESE;if (!horzSpan)\n{lumaN=lumaW;}\nif (!horzSpan) \n{lumaS=lumaE;}\nif (horzSpan) \n{lengthSign=texelSize.y;}\nfloat subpixB=(subpixA*(1.0/12.0))-lumaM;float gradientN=lumaN-lumaM;float gradientS=lumaS-lumaM;float lumaNN=lumaN+lumaM;float lumaSS=lumaS+lumaM;bool pairN=abs(gradientN)>=abs(gradientS);float gradient=max(abs(gradientN),abs(gradientS));if (pairN)\n{lengthSign=-lengthSign;}\nfloat subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);vec2 posB;posB.x=posM.x;posB.y=posM.y;vec2 offNP;offNP.x=(!horzSpan) ? 0.0 : texelSize.x;offNP.y=(horzSpan) ? 0.0 : texelSize.y;if (!horzSpan) \n{posB.x+=lengthSign*0.5;}\nif (horzSpan)\n{posB.y+=lengthSign*0.5;}\nvec2 posN;posN.x=posB.x-offNP.x*1.5;posN.y=posB.y-offNP.y*1.5;vec2 posP;posP.x=posB.x+offNP.x*1.5;posP.y=posB.y+offNP.y*1.5;float subpixD=((-2.0)*subpixC)+3.0;float lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN,0.0));float subpixE=subpixC*subpixC;float lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP,0.0));if (!pairN) \n{lumaNN=lumaSS;}\nfloat gradientScaled=gradient*1.0/4.0;float lumaMM=lumaM-lumaNN*0.5;float subpixF=subpixD*subpixE;bool lumaMLTZero=lumaMM<0.0;lumaEndN-=lumaNN*0.5;lumaEndP-=lumaNN*0.5;bool doneN=abs(lumaEndN)>=gradientScaled;bool doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) \n{posN.x-=offNP.x*3.0;}\nif (!doneN) \n{posN.y-=offNP.y*3.0;}\nbool doneNP=(!doneN) || (!doneP);if (!doneP) \n{posP.x+=offNP.x*3.0;}\nif (!doneP)\n{posP.y+=offNP.y*3.0;}\nif (doneNP)\n{if (!doneN) lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN.xy,0.0));if (!doneP) lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP.xy,0.0));if (!doneN) lumaEndN=lumaEndN-lumaNN*0.5;if (!doneP) lumaEndP=lumaEndP-lumaNN*0.5;doneN=abs(lumaEndN)>=gradientScaled;doneP=abs(lumaEndP)>=gradientScaled;if (!doneN) posN.x-=offNP.x*12.0;if (!doneN) posN.y-=offNP.y*12.0;doneNP=(!doneN) || (!doneP);if (!doneP) posP.x+=offNP.x*12.0;if (!doneP) posP.y+=offNP.y*12.0;}\nfloat dstN=posM.x-posN.x;float dstP=posP.x-posM.x;if (!horzSpan)\n{dstN=posM.y-posN.y;}\nif (!horzSpan) \n{dstP=posP.y-posM.y;}\nbool goodSpanN=(lumaEndN<0.0) != lumaMLTZero;float spanLength=(dstP+dstN);bool goodSpanP=(lumaEndP<0.0) != lumaMLTZero;float spanLengthRcp=1.0/spanLength;bool directionN=dstN<dstP;float dst=min(dstN,dstP);bool goodSpan=directionN ? goodSpanN : goodSpanP;float subpixG=subpixF*subpixF;float pixelOffset=(dst*(-spanLengthRcp))+0.5;float subpixH=subpixG*fxaaQualitySubpix;float pixelOffsetGood=goodSpan ? pixelOffset : 0.0;float pixelOffsetSubpix=max(pixelOffsetGood,subpixH);if (!horzSpan)\n{posM.x+=pixelOffsetSubpix*lengthSign;}\nif (horzSpan)\n{posM.y+=pixelOffsetSubpix*lengthSign;}\n#ifdef MALI\nif(range<rangeMaxClamped) \n{gl_FragColor=rgbyM;}\nelse\n{gl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);}\n#else\ngl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);\n#endif\n}";l.v.ShadersStore[n]||(l.v.ShadersStore[n]=t);const m={name:n,shader:t}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3456 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3652.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3652],{83652:(t,e,i)=>{i.r(e),i.d(e,{FlowGraphThrottleBlock:()=>FlowGraphThrottleBlock});var a=i(39426),s=i(36442),r=i(20538);class FlowGraphThrottleBlock extends s.F{constructor(t){super(t),this.reset=this._registerSignalInput("reset"),this.duration=this.registerDataInput("duration",a.ab),this.lastRemainingTime=this.registerDataOutput("lastRemainingTime",a.ab,NaN)}_execute(t,e){if(e===this.reset)return this.lastRemainingTime.setValue(NaN,t),t._setExecutionVariable(this,"lastRemainingTime",NaN),void t._setExecutionVariable(this,"timestamp",0);const i=this.duration.getValue(t);if(i<=0||isNaN(i)||!isFinite(i))return this._reportError(t,"Invalid duration in Throttle block");const a=t._getExecutionVariable(this,"lastRemainingTime",NaN),s=Date.now();if(isNaN(a))return this.lastRemainingTime.setValue(0,t),t._setExecutionVariable(this,"lastRemainingTime",0),t._setExecutionVariable(this,"timestamp",s),this.out._activateSignal(t);{const e=s-t._getExecutionVariable(this,"timestamp",0),a=1e3*i;if(a<=e)return this.lastRemainingTime.setValue(0,t),t._setExecutionVariable(this,"lastRemainingTime",0),t._setExecutionVariable(this,"timestamp",s),this.out._activateSignal(t);{const i=a-e;this.lastRemainingTime.setValue(i/1e3,t),t._setExecutionVariable(this,"lastRemainingTime",i)}}}getClassName(){return"FlowGraphThrottleBlock"}}(0,r.H7)("FlowGraphThrottleBlock",FlowGraphThrottleBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3652 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 377.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[377],{377:(e,s,a)=>{a.r(s),a.d(s,{EasingFunctionType:()=>t,FlowGraphEasingBlock:()=>FlowGraphEasingBlock});var t,i=a(48309),n=a(43890),r=a(39426),u=a(20538);!function(e){e[e.CircleEase=0]="CircleEase",e[e.BackEase=1]="BackEase",e[e.BounceEase=2]="BounceEase",e[e.CubicEase=3]="CubicEase",e[e.ElasticEase=4]="ElasticEase",e[e.ExponentialEase=5]="ExponentialEase",e[e.PowerEase=6]="PowerEase",e[e.QuadraticEase=7]="QuadraticEase",e[e.QuarticEase=8]="QuarticEase",e[e.QuinticEase=9]="QuinticEase",e[e.SineEase=10]="SineEase",e[e.BezierCurveEase=11]="BezierCurveEase"}(t||(t={}));class FlowGraphEasingBlock extends n.A{constructor(e){super(e),this.config=e,this._easingFunctions={},this.type=this.registerDataInput("type",r.s8,11),this.mode=this.registerDataInput("mode",r.ab,0),this.parameters=this.registerDataInput("parameters",r.s8,[1,0,0,1]),this.easingFunction=this.registerDataOutput("easingFunction",r.s8)}_updateOutputs(e){const s=this.type.getValue(e),a=this.mode.getValue(e),t=this.parameters.getValue(e);if(void 0===s||void 0===a)return;const n=`${s}-${a}-${t.join("-")}`;if(!this._easingFunctions[n]){const e=function CreateEasingFunction(e,...s){switch(e){case 11:return new i.sj(...s);case 0:return new i.qP;case 1:return new i.ud(...s);case 2:return new i.R$(...s);case 3:return new i.o0;case 4:return new i.$A(...s);case 5:return new i.EI(...s);default:throw new Error("Easing type not yet implemented")}}(s,...t);e.setEasingMode(a),this._easingFunctions[n]=e}this.easingFunction.setValue(this._easingFunctions[n],e)}getClassName(){return"FlowGraphEasingBlock"}}(0,u.H7)("FlowGraphEasingBlock",FlowGraphEasingBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:377 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3839.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3839],{83839:(e,t,r)=>{r.r(t),r.d(t,{FlowGraphPointerOverEventBlock:()=>FlowGraphPointerOverEventBlock});var s=r(3274),n=r(39426),i=r(20538),a=r(7181);class FlowGraphPointerOverEventBlock extends s.N{constructor(e){super(e),this.type="PointerOver",this.pointerId=this.registerDataOutput("pointerId",n.ab),this.targetMesh=this.registerDataInput("targetMesh",n.s8,e?.targetMesh),this.meshUnderPointer=this.registerDataOutput("meshUnderPointer",n.s8)}_executeEvent(e,t){const r=this.targetMesh.getValue(e);this.meshUnderPointer.setValue(t.mesh,e);const s=t.out&&(0,a.jH)(t.out,r);return this.pointerId.setValue(t.pointerId,e),!(!s&&(t.mesh===r||(0,a.jH)(t.mesh,r)))||(this._execute(e),!this.config?.stopPropagation)}_preparePendingTasks(e){}_cancelPendingTasks(e){}getClassName(){return"FlowGraphPointerOverEventBlock"}}(0,i.H7)("FlowGraphPointerOverEventBlock",FlowGraphPointerOverEventBlock)}}]);
@@ -1 +0,0 @@
1
- /*! filename:3839 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3917.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3917],{83917:(r,o,l)=>{l.r(o),l.d(o,{greasedLinePixelShaderWGSL:()=>i});var e=l(17416);const n="greasedLinePixelShader",t="var grlColors: texture_2d<f32>;var grlColorsSampler: sampler;uniform grlUseColors: f32;uniform grlUseDash: f32;uniform grlDashArray: f32;uniform grlDashOffset: f32;uniform grlDashRatio: f32;uniform grlVisibility: f32;uniform grlColorsWidth: f32;uniform grl_colorModeAndColorDistributionType: vec2f;uniform grlColor: vec3f;varying grlCounters: f32;varying grlColorPointer: f32;\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\nlet grlColorMode: f32=uniforms.grl_colorModeAndColorDistributionType.x;let grlColorDistributionType: f32=uniforms.grl_colorModeAndColorDistributionType.y;var outColor=vec4(uniforms.grlColor,1.);outColor.a=step(fragmentInputs.grlCounters,uniforms.grlVisibility);if (outColor.a==0.0) {discard;}\nif (uniforms.grlUseDash==1.0) {let dashPosition=(fragmentInputs.grlCounters+uniforms.grlDashOffset) % uniforms.grlDashArray;outColor.a*=ceil(dashPosition-(uniforms.grlDashArray*uniforms.grlDashRatio));if (outColor.a==0.0) {discard;}}\nif (uniforms.grlUseColors==1.) {\n#ifdef GREASED_LINE_COLOR_DISTRIBUTION_TYPE_LINE\nlet grlColor: vec4f=textureSample(grlColors,grlColorsSampler,vec2f(fragmentInputs.grlCounters,0.));\n#else\nlet lookup: vec2f=vec2(fract(fragmentInputs.grlColorPointer/uniforms.grlColorsWidth),1.0-floor(fragmentInputs.grlColorPointer/uniforms.grlColorsWidth));let grlColor: vec4f=textureSample(grlColors,grlColorsSampler,lookup);\n#endif\nif (grlColorMode==COLOR_MODE_SET) {outColor=grlColor;} else if (grlColorMode==COLOR_MODE_ADD) {outColor+=grlColor;} else if (grlColorMode==COLOR_MODE_MULTIPLY) {outColor*=grlColor;}}\n#if !defined(PREPASS) && !defined(ORDER_INDEPENDENT_TRANSPARENCY)\nfragmentOutputs.color=outColor;\n#endif\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {fragmentOutputs.frontColor=vec4f(fragmentOutputs.frontColor.rgb+outColor.rgb*outColor.a*alphaMultiplier,1.0-alphaMultiplier*(1.0-outColor.a));} else {fragmentOutputs.backColor+=outColor;}\n#endif\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n";e.v.ShadersStoreWGSL[n]||(e.v.ShadersStoreWGSL[n]=t);const i={name:n,shader:t}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3917 */
@@ -1,2 +0,0 @@
1
- /*! For license information please see 3945.real-time-viewer.umd.min.js.LICENSE.txt */
2
- "use strict";(self.webpackChunkCrystaldesignRealTimeViewer=self.webpackChunkCrystaldesignRealTimeViewer||[]).push([[3945],{73945:(e,r,t)=>{t.r(r),t.d(r,{passCubePixelShaderWGSL:()=>p});var a=t(17416);const u="passCubePixelShader",n="varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_cube<f32>;\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {var uv: vec2f=input.vUV*2.0-1.0;\n#ifdef POSITIVEX\nfragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(1.001,uv.y,uv.x));\n#endif\n#ifdef NEGATIVEX\nfragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(-1.001,uv.y,uv.x));\n#endif\n#ifdef POSITIVEY\nfragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv.y,1.001,uv.x));\n#endif\n#ifdef NEGATIVEY\nfragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv.y,-1.001,uv.x));\n#endif\n#ifdef POSITIVEZ\nfragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv,1.001));\n#endif\n#ifdef NEGATIVEZ\nfragmentOutputs.color=textureSample(textureSampler,textureSamplerSampler,vec3f(uv,-1.001));\n#endif\n}";a.v.ShadersStoreWGSL[u]||(a.v.ShadersStoreWGSL[u]=n);const p={name:u,shader:n}}}]);
@@ -1 +0,0 @@
1
- /*! filename:3945 */