@fps-games/engine 0.0.1-beta.5 → 0.0.1-beta.8

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 (294) hide show
  1. package/dist/asset-resource.d.ts +39 -0
  2. package/dist/asset-resource.d.ts.map +1 -0
  3. package/dist/asset-resource.js +121 -0
  4. package/dist/asset-resource.js.map +1 -0
  5. package/dist/babylon/game-world-plugin-lifecycle.d.ts +26 -0
  6. package/dist/babylon/game-world-plugin-lifecycle.d.ts.map +1 -0
  7. package/dist/babylon/game-world-plugin-lifecycle.js +257 -0
  8. package/dist/babylon/game-world-plugin-lifecycle.js.map +1 -0
  9. package/dist/babylon/plugin-contract.d.ts +15 -0
  10. package/dist/babylon/plugin-contract.d.ts.map +1 -0
  11. package/dist/babylon/plugin-contract.js +9 -0
  12. package/dist/babylon/plugin-contract.js.map +1 -0
  13. package/dist/babylon/renderer/brdf-texture-settlement.d.ts +7 -0
  14. package/dist/babylon/renderer/brdf-texture-settlement.d.ts.map +1 -0
  15. package/dist/babylon/renderer/brdf-texture-settlement.js +29 -0
  16. package/dist/babylon/renderer/brdf-texture-settlement.js.map +1 -0
  17. package/dist/babylon/renderer/environment/environment-texture-controller.d.ts +7 -0
  18. package/dist/babylon/renderer/environment/environment-texture-controller.d.ts.map +1 -0
  19. package/dist/babylon/renderer/environment/environment-texture-controller.js +357 -0
  20. package/dist/babylon/renderer/environment/environment-texture-controller.js.map +1 -0
  21. package/dist/babylon/renderer/environment/index.d.ts +4 -0
  22. package/dist/babylon/renderer/environment/index.d.ts.map +1 -0
  23. package/dist/babylon/renderer/environment/index.js +4 -0
  24. package/dist/babylon/renderer/environment/index.js.map +1 -0
  25. package/dist/babylon/renderer/environment/profile.d.ts +3 -0
  26. package/dist/babylon/renderer/environment/profile.d.ts.map +1 -0
  27. package/dist/babylon/renderer/environment/profile.js +27 -0
  28. package/dist/babylon/renderer/environment/profile.js.map +1 -0
  29. package/dist/babylon/renderer/environment/types.d.ts +24 -0
  30. package/dist/babylon/renderer/environment/types.d.ts.map +1 -0
  31. package/dist/babylon/renderer/environment/types.js +6 -0
  32. package/dist/babylon/renderer/environment/types.js.map +1 -0
  33. package/dist/babylon/renderer/index.d.ts +24 -0
  34. package/dist/babylon/renderer/index.d.ts.map +1 -0
  35. package/dist/babylon/renderer/index.js +24 -0
  36. package/dist/babylon/renderer/index.js.map +1 -0
  37. package/dist/babylon/renderer/lighting/directional-light-angles.d.ts +17 -0
  38. package/dist/babylon/renderer/lighting/directional-light-angles.d.ts.map +1 -0
  39. package/dist/babylon/renderer/lighting/directional-light-angles.js +67 -0
  40. package/dist/babylon/renderer/lighting/directional-light-angles.js.map +1 -0
  41. package/dist/babylon/renderer/material-owner-candidates.d.ts +19 -0
  42. package/dist/babylon/renderer/material-owner-candidates.d.ts.map +1 -0
  43. package/dist/babylon/renderer/material-owner-candidates.js +212 -0
  44. package/dist/babylon/renderer/material-owner-candidates.js.map +1 -0
  45. package/dist/babylon/renderer/materials/index.d.ts +3 -0
  46. package/dist/babylon/renderer/materials/index.d.ts.map +1 -0
  47. package/dist/babylon/renderer/materials/index.js +3 -0
  48. package/dist/babylon/renderer/materials/index.js.map +1 -0
  49. package/dist/babylon/renderer/materials/material-runtime.d.ts +29 -0
  50. package/dist/babylon/renderer/materials/material-runtime.d.ts.map +1 -0
  51. package/dist/babylon/renderer/materials/material-runtime.js +660 -0
  52. package/dist/babylon/renderer/materials/material-runtime.js.map +1 -0
  53. package/dist/babylon/renderer/materials/material-slot-owner.d.ts +42 -0
  54. package/dist/babylon/renderer/materials/material-slot-owner.d.ts.map +1 -0
  55. package/dist/babylon/renderer/materials/material-slot-owner.js +318 -0
  56. package/dist/babylon/renderer/materials/material-slot-owner.js.map +1 -0
  57. package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts +4 -0
  58. package/dist/babylon/renderer/outlines/babylon-default/apply.d.ts.map +1 -0
  59. package/dist/babylon/renderer/outlines/babylon-default/apply.js +45 -0
  60. package/dist/babylon/renderer/outlines/babylon-default/apply.js.map +1 -0
  61. package/dist/babylon/renderer/outlines/babylon-default/index.d.ts +3 -0
  62. package/dist/babylon/renderer/outlines/babylon-default/index.d.ts.map +1 -0
  63. package/dist/babylon/renderer/outlines/babylon-default/index.js +2 -0
  64. package/dist/babylon/renderer/outlines/babylon-default/index.js.map +1 -0
  65. package/dist/babylon/renderer/outlines/babylon-default/types.d.ts +7 -0
  66. package/dist/babylon/renderer/outlines/babylon-default/types.d.ts.map +1 -0
  67. package/dist/babylon/renderer/outlines/babylon-default/types.js +2 -0
  68. package/dist/babylon/renderer/outlines/babylon-default/types.js.map +1 -0
  69. package/dist/babylon/renderer/outlines/index.d.ts +4 -0
  70. package/dist/babylon/renderer/outlines/index.d.ts.map +1 -0
  71. package/dist/babylon/renderer/outlines/index.js +3 -0
  72. package/dist/babylon/renderer/outlines/index.js.map +1 -0
  73. package/dist/babylon/renderer/outlines/runtime-override.d.ts +36 -0
  74. package/dist/babylon/renderer/outlines/runtime-override.d.ts.map +1 -0
  75. package/dist/babylon/renderer/outlines/runtime-override.js +131 -0
  76. package/dist/babylon/renderer/outlines/runtime-override.js.map +1 -0
  77. package/dist/babylon/renderer/outlines/types.d.ts +7 -0
  78. package/dist/babylon/renderer/outlines/types.d.ts.map +1 -0
  79. package/dist/babylon/renderer/outlines/types.js +2 -0
  80. package/dist/babylon/renderer/outlines/types.js.map +1 -0
  81. package/dist/babylon/renderer/placement/index.d.ts +2 -0
  82. package/dist/babylon/renderer/placement/index.d.ts.map +1 -0
  83. package/dist/babylon/renderer/placement/index.js +2 -0
  84. package/dist/babylon/renderer/placement/index.js.map +1 -0
  85. package/dist/babylon/renderer/placement/runtime-drop-position.d.ts +24 -0
  86. package/dist/babylon/renderer/placement/runtime-drop-position.d.ts.map +1 -0
  87. package/dist/babylon/renderer/placement/runtime-drop-position.js +63 -0
  88. package/dist/babylon/renderer/placement/runtime-drop-position.js.map +1 -0
  89. package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts +7 -0
  90. package/dist/babylon/renderer/post-process/babylon-default-pipeline.d.ts.map +1 -0
  91. package/dist/babylon/renderer/post-process/babylon-default-pipeline.js +301 -0
  92. package/dist/babylon/renderer/post-process/babylon-default-pipeline.js.map +1 -0
  93. package/dist/babylon/renderer/post-process/index.d.ts +5 -0
  94. package/dist/babylon/renderer/post-process/index.d.ts.map +1 -0
  95. package/dist/babylon/renderer/post-process/index.js +5 -0
  96. package/dist/babylon/renderer/post-process/index.js.map +1 -0
  97. package/dist/babylon/renderer/post-process/profile.d.ts +5 -0
  98. package/dist/babylon/renderer/post-process/profile.d.ts.map +1 -0
  99. package/dist/babylon/renderer/post-process/profile.js +155 -0
  100. package/dist/babylon/renderer/post-process/profile.js.map +1 -0
  101. package/dist/babylon/renderer/post-process/types.d.ts +81 -0
  102. package/dist/babylon/renderer/post-process/types.d.ts.map +1 -0
  103. package/dist/babylon/renderer/post-process/types.js +24 -0
  104. package/dist/babylon/renderer/post-process/types.js.map +1 -0
  105. package/dist/babylon/renderer/post-process/volume-stack.d.ts +4 -0
  106. package/dist/babylon/renderer/post-process/volume-stack.d.ts.map +1 -0
  107. package/dist/babylon/renderer/post-process/volume-stack.js +105 -0
  108. package/dist/babylon/renderer/post-process/volume-stack.js.map +1 -0
  109. package/dist/babylon/renderer/rendering/image-node.d.ts +35 -0
  110. package/dist/babylon/renderer/rendering/image-node.d.ts.map +1 -0
  111. package/dist/babylon/renderer/rendering/image-node.js +39 -0
  112. package/dist/babylon/renderer/rendering/image-node.js.map +1 -0
  113. package/dist/babylon/renderer/rendering/index.d.ts +3 -0
  114. package/dist/babylon/renderer/rendering/index.d.ts.map +1 -0
  115. package/dist/babylon/renderer/rendering/index.js +3 -0
  116. package/dist/babylon/renderer/rendering/index.js.map +1 -0
  117. package/dist/babylon/renderer/rendering/node-rendering.d.ts +19 -0
  118. package/dist/babylon/renderer/rendering/node-rendering.d.ts.map +1 -0
  119. package/dist/babylon/renderer/rendering/node-rendering.js +66 -0
  120. package/dist/babylon/renderer/rendering/node-rendering.js.map +1 -0
  121. package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts +5 -0
  122. package/dist/babylon/renderer/shadows/blob-shadow-shaders.d.ts.map +1 -0
  123. package/dist/babylon/renderer/shadows/blob-shadow-shaders.js +46 -0
  124. package/dist/babylon/renderer/shadows/blob-shadow-shaders.js.map +1 -0
  125. package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts +5 -0
  126. package/dist/babylon/renderer/shadows/blob-shadow-system.d.ts.map +1 -0
  127. package/dist/babylon/renderer/shadows/blob-shadow-system.js +402 -0
  128. package/dist/babylon/renderer/shadows/blob-shadow-system.js.map +1 -0
  129. package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts +84 -0
  130. package/dist/babylon/renderer/shadows/dynamic-shadow-system.d.ts.map +1 -0
  131. package/dist/babylon/renderer/shadows/dynamic-shadow-system.js +566 -0
  132. package/dist/babylon/renderer/shadows/dynamic-shadow-system.js.map +1 -0
  133. package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts +7 -0
  134. package/dist/babylon/renderer/shadows/planar-shadow-shaders.d.ts.map +1 -0
  135. package/dist/babylon/renderer/shadows/planar-shadow-shaders.js +316 -0
  136. package/dist/babylon/renderer/shadows/planar-shadow-shaders.js.map +1 -0
  137. package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts +5 -0
  138. package/dist/babylon/renderer/shadows/planar-shadow-system.d.ts.map +1 -0
  139. package/dist/babylon/renderer/shadows/planar-shadow-system.js +1562 -0
  140. package/dist/babylon/renderer/shadows/planar-shadow-system.js.map +1 -0
  141. package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts +14 -0
  142. package/dist/babylon/renderer/shadows/shadow-generator-shaders.d.ts.map +1 -0
  143. package/dist/babylon/renderer/shadows/shadow-generator-shaders.js +14 -0
  144. package/dist/babylon/renderer/shadows/shadow-generator-shaders.js.map +1 -0
  145. package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts +68 -0
  146. package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
  147. package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js +829 -0
  148. package/dist/babylon/renderer/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
  149. package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts +148 -0
  150. package/dist/babylon/renderer/shadows/shadow-map-experiment-system.d.ts.map +1 -0
  151. package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js +4529 -0
  152. package/dist/babylon/renderer/shadows/shadow-map-experiment-system.js.map +1 -0
  153. package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts +4 -0
  154. package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -0
  155. package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js +645 -0
  156. package/dist/babylon/renderer/shadows/static-projected-shadow-artifact-system.js.map +1 -0
  157. package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts +61 -0
  158. package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.d.ts.map +1 -0
  159. package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js +382 -0
  160. package/dist/babylon/renderer/shadows/static-projected-shadow-atlas.js.map +1 -0
  161. package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts +47 -0
  162. package/dist/babylon/renderer/shadows/static-projected-shadow-bake.d.ts.map +1 -0
  163. package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js +285 -0
  164. package/dist/babylon/renderer/shadows/static-projected-shadow-bake.js.map +1 -0
  165. package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts +88 -0
  166. package/dist/babylon/renderer/shadows/static-projected-shadow-baker.d.ts.map +1 -0
  167. package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js +830 -0
  168. package/dist/babylon/renderer/shadows/static-projected-shadow-baker.js.map +1 -0
  169. package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts +3 -0
  170. package/dist/babylon/renderer/shadows/static-projected-shadow-options.d.ts.map +1 -0
  171. package/dist/babylon/renderer/shadows/static-projected-shadow-options.js +60 -0
  172. package/dist/babylon/renderer/shadows/static-projected-shadow-options.js.map +1 -0
  173. package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts +27 -0
  174. package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.d.ts.map +1 -0
  175. package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js +220 -0
  176. package/dist/babylon/renderer/shadows/static-projected-shadow-rendering.js.map +1 -0
  177. package/dist/babylon/renderer/shadows/types.d.ts +421 -0
  178. package/dist/babylon/renderer/shadows/types.d.ts.map +1 -0
  179. package/dist/babylon/renderer/shadows/types.js +127 -0
  180. package/dist/babylon/renderer/shadows/types.js.map +1 -0
  181. package/dist/babylon/renderer-controller.d.ts +93 -0
  182. package/dist/babylon/renderer-controller.d.ts.map +1 -0
  183. package/dist/babylon/renderer-controller.js +699 -0
  184. package/dist/babylon/renderer-controller.js.map +1 -0
  185. package/dist/babylon.d.ts +4 -0
  186. package/dist/babylon.d.ts.map +1 -1
  187. package/dist/babylon.js +4 -0
  188. package/dist/babylon.js.map +1 -1
  189. package/dist/build-info.json +4 -4
  190. package/dist/compiled-scene-data.d.ts +23 -0
  191. package/dist/compiled-scene-data.d.ts.map +1 -0
  192. package/dist/compiled-scene-data.js +100 -0
  193. package/dist/compiled-scene-data.js.map +1 -0
  194. package/dist/ground-decal.d.ts +22 -0
  195. package/dist/ground-decal.d.ts.map +1 -0
  196. package/dist/ground-decal.js +48 -0
  197. package/dist/ground-decal.js.map +1 -0
  198. package/dist/index.d.ts +13 -0
  199. package/dist/index.d.ts.map +1 -1
  200. package/dist/index.js +13 -0
  201. package/dist/index.js.map +1 -1
  202. package/dist/material-owner.d.ts +128 -0
  203. package/dist/material-owner.d.ts.map +1 -0
  204. package/dist/material-owner.js +434 -0
  205. package/dist/material-owner.js.map +1 -0
  206. package/dist/material-profile.d.ts +62 -0
  207. package/dist/material-profile.d.ts.map +1 -0
  208. package/dist/material-profile.js +132 -0
  209. package/dist/material-profile.js.map +1 -0
  210. package/dist/rendering/index.d.ts +14 -0
  211. package/dist/rendering/index.d.ts.map +1 -0
  212. package/dist/rendering/index.js +12 -0
  213. package/dist/rendering/index.js.map +1 -0
  214. package/dist/rendering/rendering-profile-types.d.ts +322 -0
  215. package/dist/rendering/rendering-profile-types.d.ts.map +1 -0
  216. package/dist/rendering/rendering-profile-types.js +2 -0
  217. package/dist/rendering/rendering-profile-types.js.map +1 -0
  218. package/dist/rendering/rendering-profile-validation.d.ts +2 -0
  219. package/dist/rendering/rendering-profile-validation.d.ts.map +1 -0
  220. package/dist/rendering/rendering-profile-validation.js +364 -0
  221. package/dist/rendering/rendering-profile-validation.js.map +1 -0
  222. package/dist/rendering/rendering-profile-values.d.ts +19 -0
  223. package/dist/rendering/rendering-profile-values.d.ts.map +1 -0
  224. package/dist/rendering/rendering-profile-values.js +79 -0
  225. package/dist/rendering/rendering-profile-values.js.map +1 -0
  226. package/dist/rendering/rendering-profile.d.ts +15 -0
  227. package/dist/rendering/rendering-profile.d.ts.map +1 -0
  228. package/dist/rendering/rendering-profile.js +442 -0
  229. package/dist/rendering/rendering-profile.js.map +1 -0
  230. package/dist/rendering/shadow-map-experiment-depth.d.ts +63 -0
  231. package/dist/rendering/shadow-map-experiment-depth.d.ts.map +1 -0
  232. package/dist/rendering/shadow-map-experiment-depth.js +186 -0
  233. package/dist/rendering/shadow-map-experiment-depth.js.map +1 -0
  234. package/dist/rendering/shadow-map-experiment-lifecycle.d.ts +94 -0
  235. package/dist/rendering/shadow-map-experiment-lifecycle.d.ts.map +1 -0
  236. package/dist/rendering/shadow-map-experiment-lifecycle.js +407 -0
  237. package/dist/rendering/shadow-map-experiment-lifecycle.js.map +1 -0
  238. package/dist/rendering/shadow-map-experiment.d.ts +189 -0
  239. package/dist/rendering/shadow-map-experiment.d.ts.map +1 -0
  240. package/dist/rendering/shadow-map-experiment.js +549 -0
  241. package/dist/rendering/shadow-map-experiment.js.map +1 -0
  242. package/dist/rendering/shadow-quality.d.ts +5 -0
  243. package/dist/rendering/shadow-quality.d.ts.map +1 -0
  244. package/dist/rendering/shadow-quality.js +83 -0
  245. package/dist/rendering/shadow-quality.js.map +1 -0
  246. package/dist/rendering/shadow-runtime.d.ts +59 -0
  247. package/dist/rendering/shadow-runtime.d.ts.map +1 -0
  248. package/dist/rendering/shadow-runtime.js +378 -0
  249. package/dist/rendering/shadow-runtime.js.map +1 -0
  250. package/dist/rendering/shadow-settings.d.ts +15 -0
  251. package/dist/rendering/shadow-settings.d.ts.map +1 -0
  252. package/dist/rendering/shadow-settings.js +129 -0
  253. package/dist/rendering/shadow-settings.js.map +1 -0
  254. package/dist/rendering/shadow-types.d.ts +99 -0
  255. package/dist/rendering/shadow-types.d.ts.map +1 -0
  256. package/dist/rendering/shadow-types.js +5 -0
  257. package/dist/rendering/shadow-types.js.map +1 -0
  258. package/dist/rendering/shadow-validation.d.ts +3 -0
  259. package/dist/rendering/shadow-validation.d.ts.map +1 -0
  260. package/dist/rendering/shadow-validation.js +166 -0
  261. package/dist/rendering/shadow-validation.js.map +1 -0
  262. package/dist/rendering/value.d.ts +2 -0
  263. package/dist/rendering/value.d.ts.map +1 -0
  264. package/dist/rendering/value.js +6 -0
  265. package/dist/rendering/value.js.map +1 -0
  266. package/dist/runtime-data-token.d.ts +4 -0
  267. package/dist/runtime-data-token.d.ts.map +1 -0
  268. package/dist/runtime-data-token.js +4 -0
  269. package/dist/runtime-data-token.js.map +1 -0
  270. package/dist/runtime-data-types.d.ts +83 -0
  271. package/dist/runtime-data-types.d.ts.map +1 -0
  272. package/dist/runtime-data-types.js +2 -0
  273. package/dist/runtime-data-types.js.map +1 -0
  274. package/dist/runtime-data.d.ts +18 -0
  275. package/dist/runtime-data.d.ts.map +1 -0
  276. package/dist/runtime-data.js +301 -0
  277. package/dist/runtime-data.js.map +1 -0
  278. package/dist/runtime-scene-resolvers.d.ts +37 -0
  279. package/dist/runtime-scene-resolvers.d.ts.map +1 -0
  280. package/dist/runtime-scene-resolvers.js +40 -0
  281. package/dist/runtime-scene-resolvers.js.map +1 -0
  282. package/dist/scene-artifact-types.d.ts +383 -0
  283. package/dist/scene-artifact-types.d.ts.map +1 -0
  284. package/dist/scene-artifact-types.js +2 -0
  285. package/dist/scene-artifact-types.js.map +1 -0
  286. package/dist/scene-artifact-validation.d.ts +19 -0
  287. package/dist/scene-artifact-validation.d.ts.map +1 -0
  288. package/dist/scene-artifact-validation.js +1352 -0
  289. package/dist/scene-artifact-validation.js.map +1 -0
  290. package/dist/static-shadow-artifact.d.ts +131 -0
  291. package/dist/static-shadow-artifact.d.ts.map +1 -0
  292. package/dist/static-shadow-artifact.js +327 -0
  293. package/dist/static-shadow-artifact.js.map +1 -0
  294. package/package.json +9 -1
@@ -0,0 +1,316 @@
1
+ import { Effect } from '@babylonjs/core/Materials/effect.js';
2
+ export const PLANAR_SHADOW_SHADER_NAME = 'fpsPlanarShadow';
3
+ export function registerPlanarShadowShaders() {
4
+ const vertexKey = `${PLANAR_SHADOW_SHADER_NAME}VertexShader`;
5
+ if (Effect.ShadersStore[vertexKey])
6
+ return;
7
+ Effect.ShadersStore[vertexKey] = `
8
+ precision highp float;
9
+
10
+ attribute vec3 position;
11
+
12
+ #ifdef INSTANCES
13
+ attribute vec4 world0;
14
+ attribute vec4 world1;
15
+ attribute vec4 world2;
16
+ attribute vec4 world3;
17
+ attribute float shadowVisibility;
18
+ varying float v_shadowVisibility;
19
+ #endif
20
+
21
+ #ifdef ALPHA_CUTOUT
22
+ attribute vec2 uv;
23
+ attribute vec2 uv2;
24
+ attribute vec2 uv3;
25
+ attribute vec2 uv4;
26
+ attribute vec2 uv5;
27
+ attribute vec2 uv6;
28
+ varying vec2 v_shadowAlphaUv;
29
+ #ifdef ALPHA_CUTOUT_SECONDARY
30
+ varying vec2 v_shadowAlphaUv2;
31
+ #endif
32
+ #endif
33
+
34
+ #ifdef BONE
35
+ attribute vec4 matricesIndices;
36
+ attribute vec4 matricesWeights;
37
+ #ifdef BONETEXTURE
38
+ uniform sampler2D boneSampler;
39
+ uniform float boneTextureWidth;
40
+ #else
41
+ uniform mat4 mBones[BonesPerMesh];
42
+ #endif
43
+ #ifdef BONES_VELOCITY_ENABLED
44
+ attribute vec4 matricesIndicesExtra;
45
+ attribute vec4 matricesWeightsExtra;
46
+ #endif
47
+ #endif
48
+
49
+ uniform mat4 world;
50
+ uniform mat4 viewProjection;
51
+ uniform vec3 u_lightDir;
52
+ uniform vec3 u_planeNormal;
53
+ uniform vec3 u_shadowCenter;
54
+ uniform float u_planeHeight;
55
+ uniform float u_planeBias;
56
+ uniform float u_footprintScale;
57
+ uniform float u_shadowAlphaUvSet;
58
+ uniform mat4 u_shadowAlphaMatrix;
59
+ #ifdef ALPHA_CUTOUT_SECONDARY
60
+ uniform float u_shadowAlphaUvSet2;
61
+ uniform mat4 u_shadowAlphaMatrix2;
62
+ #endif
63
+
64
+ varying float v_t;
65
+
66
+ mat4 resolvePlanarShadowWorld() {
67
+ #ifdef INSTANCES
68
+ mat4 instanceWorld = mat4(world0, world1, world2, world3);
69
+ #ifdef THIN_INSTANCES
70
+ return world * instanceWorld;
71
+ #else
72
+ return instanceWorld;
73
+ #endif
74
+ #else
75
+ return world;
76
+ #endif
77
+ }
78
+
79
+ #ifdef BONE
80
+ #ifdef BONETEXTURE
81
+ mat4 readMatrixFromRawSampler(sampler2D smp, float index) {
82
+ float offset = index * 4.0;
83
+ float dx = 1.0 / boneTextureWidth;
84
+ vec4 m0 = texture2D(smp, vec2(dx * (offset + 0.5), 0.));
85
+ vec4 m1 = texture2D(smp, vec2(dx * (offset + 1.5), 0.));
86
+ vec4 m2 = texture2D(smp, vec2(dx * (offset + 2.5), 0.));
87
+ vec4 m3 = texture2D(smp, vec2(dx * (offset + 3.5), 0.));
88
+ return mat4(m0, m1, m2, m3);
89
+ }
90
+ #endif
91
+ #endif
92
+
93
+ void main() {
94
+ #ifdef INSTANCES
95
+ v_shadowVisibility = shadowVisibility;
96
+ if (shadowVisibility < 0.5) {
97
+ v_t = -1.0;
98
+ gl_Position = vec4(2.0, 2.0, 2.0, 1.0);
99
+ return;
100
+ }
101
+ #endif
102
+
103
+ #ifdef ALPHA_CUTOUT
104
+ vec2 sourceAlphaUv = uv;
105
+ if (u_shadowAlphaUvSet > 4.5) sourceAlphaUv = uv6;
106
+ else if (u_shadowAlphaUvSet > 3.5) sourceAlphaUv = uv5;
107
+ else if (u_shadowAlphaUvSet > 2.5) sourceAlphaUv = uv4;
108
+ else if (u_shadowAlphaUvSet > 1.5) sourceAlphaUv = uv3;
109
+ else if (u_shadowAlphaUvSet > 0.5) sourceAlphaUv = uv2;
110
+ v_shadowAlphaUv = (u_shadowAlphaMatrix * vec4(sourceAlphaUv, 1.0, 0.0)).xy;
111
+ #ifdef ALPHA_CUTOUT_SECONDARY
112
+ vec2 sourceAlphaUv2 = uv;
113
+ if (u_shadowAlphaUvSet2 > 4.5) sourceAlphaUv2 = uv6;
114
+ else if (u_shadowAlphaUvSet2 > 3.5) sourceAlphaUv2 = uv5;
115
+ else if (u_shadowAlphaUvSet2 > 2.5) sourceAlphaUv2 = uv4;
116
+ else if (u_shadowAlphaUvSet2 > 1.5) sourceAlphaUv2 = uv3;
117
+ else if (u_shadowAlphaUvSet2 > 0.5) sourceAlphaUv2 = uv2;
118
+ v_shadowAlphaUv2 = (u_shadowAlphaMatrix2 * vec4(sourceAlphaUv2, 1.0, 0.0)).xy;
119
+ #endif
120
+ #endif
121
+
122
+ #ifdef FLAT_SHADOW
123
+ vec3 projPos = (resolvePlanarShadowWorld() * vec4(position, 1.0)).xyz;
124
+ v_t = 1.0;
125
+
126
+ vec4 clipPos = viewProjection * vec4(projPos, 1.0);
127
+ clipPos.z -= u_planeBias * 2e-4 * clipPos.w;
128
+
129
+ gl_Position = clipPos;
130
+ return;
131
+ #endif
132
+
133
+ #ifdef BONE
134
+ #ifdef BONETEXTURE
135
+ mat4 m0 = readMatrixFromRawSampler(boneSampler, matricesIndices.x);
136
+ mat4 m1 = readMatrixFromRawSampler(boneSampler, matricesIndices.y);
137
+ mat4 m2 = readMatrixFromRawSampler(boneSampler, matricesIndices.z);
138
+ mat4 m3 = readMatrixFromRawSampler(boneSampler, matricesIndices.w);
139
+ #else
140
+ mat4 m0 = mBones[int(matricesIndices.x)];
141
+ mat4 m1 = mBones[int(matricesIndices.y)];
142
+ mat4 m2 = mBones[int(matricesIndices.z)];
143
+ mat4 m3 = mBones[int(matricesIndices.w)];
144
+ #endif
145
+
146
+ mat4 influence = m0 * matricesWeights.x +
147
+ m1 * matricesWeights.y +
148
+ m2 * matricesWeights.z +
149
+ m3 * matricesWeights.w;
150
+
151
+ #ifdef BONES_VELOCITY_ENABLED
152
+ #ifdef BONETEXTURE
153
+ mat4 m4 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.x);
154
+ mat4 m5 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.y);
155
+ mat4 m6 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.z);
156
+ mat4 m7 = readMatrixFromRawSampler(boneSampler, matricesIndicesExtra.w);
157
+ #else
158
+ mat4 m4 = mBones[int(matricesIndicesExtra.x)];
159
+ mat4 m5 = mBones[int(matricesIndicesExtra.y)];
160
+ mat4 m6 = mBones[int(matricesIndicesExtra.z)];
161
+ mat4 m7 = mBones[int(matricesIndicesExtra.w)];
162
+ #endif
163
+
164
+ influence += m4 * matricesWeightsExtra.x +
165
+ m5 * matricesWeightsExtra.y +
166
+ m6 * matricesWeightsExtra.z +
167
+ m7 * matricesWeightsExtra.w;
168
+ #endif
169
+
170
+ mat4 finalWorld = resolvePlanarShadowWorld() * influence;
171
+ vec3 worldPos = (finalWorld * vec4(position, 1.0)).xyz;
172
+ #else
173
+ vec3 worldPos = (resolvePlanarShadowWorld() * vec4(position, 1.0)).xyz;
174
+ #endif
175
+
176
+ float denom = dot(u_planeNormal, u_lightDir);
177
+ if (abs(denom) < 1e-5) {
178
+ v_t = -1.0;
179
+ gl_Position = vec4(2.0, 2.0, 2.0, 1.0);
180
+ return;
181
+ }
182
+
183
+ float t = (u_planeHeight - dot(u_planeNormal, worldPos)) / denom;
184
+ v_t = t;
185
+
186
+ vec3 projPos = worldPos + u_lightDir * t;
187
+ projPos = u_shadowCenter + (projPos - u_shadowCenter) * u_footprintScale;
188
+ projPos += u_planeNormal * (u_planeBias * 0.002);
189
+
190
+ vec4 clipPos = viewProjection * vec4(projPos, 1.0);
191
+ clipPos.z -= u_planeBias * 2e-4 * clipPos.w;
192
+
193
+ gl_Position = clipPos;
194
+ }
195
+ `;
196
+ Effect.ShadersStore[`${PLANAR_SHADOW_SHADER_NAME}FragmentShader`] = `
197
+ precision highp float;
198
+
199
+ uniform vec4 u_shadowColor;
200
+ uniform float u_shadowAlphaCutoff;
201
+ uniform float u_shadowAlphaLevel;
202
+ uniform float u_shadowAlphaChannelMode;
203
+ uniform vec3 u_shadowAlphaLuminanceWeights;
204
+ uniform sampler2D shadowAlphaSampler;
205
+ #ifdef INSTANCES
206
+ varying float v_shadowVisibility;
207
+ #endif
208
+ #ifdef ALPHA_CUTOUT_SECONDARY
209
+ uniform float u_shadowAlphaLevel2;
210
+ uniform float u_shadowAlphaChannelMode2;
211
+ uniform vec3 u_shadowAlphaLuminanceWeights2;
212
+ uniform sampler2D shadowAlphaSampler2;
213
+ #endif
214
+ varying float v_t;
215
+
216
+ #ifdef ALPHA_CUTOUT
217
+ varying vec2 v_shadowAlphaUv;
218
+ #ifdef ALPHA_CUTOUT_SECONDARY
219
+ varying vec2 v_shadowAlphaUv2;
220
+ #endif
221
+ #endif
222
+
223
+ #ifdef ALPHA_CUTOUT
224
+ float readShadowAlpha(sampler2D alphaSampler, vec2 alphaUv, float channelMode, vec3 luminanceWeights, float alphaLevel) {
225
+ vec4 alphaSample = texture2D(alphaSampler, alphaUv);
226
+ float sourceAlpha = alphaSample.a;
227
+ if (channelMode > 1.5) sourceAlpha = alphaSample.r;
228
+ else if (channelMode > 0.5) sourceAlpha = dot(alphaSample.rgb, luminanceWeights);
229
+ return sourceAlpha * alphaLevel;
230
+ }
231
+ #endif
232
+
233
+ void main() {
234
+ #ifdef INSTANCES
235
+ if (v_shadowVisibility < 0.5) discard;
236
+ #endif
237
+ if (v_t < 0.0) discard;
238
+ #ifdef ALPHA_CUTOUT
239
+ float sourceAlpha = readShadowAlpha(
240
+ shadowAlphaSampler,
241
+ v_shadowAlphaUv,
242
+ u_shadowAlphaChannelMode,
243
+ u_shadowAlphaLuminanceWeights,
244
+ u_shadowAlphaLevel
245
+ );
246
+ #ifdef ALPHA_CUTOUT_SECONDARY
247
+ sourceAlpha *= readShadowAlpha(
248
+ shadowAlphaSampler2,
249
+ v_shadowAlphaUv2,
250
+ u_shadowAlphaChannelMode2,
251
+ u_shadowAlphaLuminanceWeights2,
252
+ u_shadowAlphaLevel2
253
+ );
254
+ #endif
255
+ if (sourceAlpha < u_shadowAlphaCutoff) discard;
256
+ #endif
257
+ gl_FragColor = u_shadowColor;
258
+ }
259
+ `;
260
+ }
261
+ export function getPlanarShadowShaderAttributes() {
262
+ return [
263
+ 'position',
264
+ 'uv',
265
+ 'uv2',
266
+ 'uv3',
267
+ 'uv4',
268
+ 'uv5',
269
+ 'uv6',
270
+ 'matricesIndices',
271
+ 'matricesWeights',
272
+ 'matricesIndicesExtra',
273
+ 'matricesWeightsExtra',
274
+ 'shadowVisibility',
275
+ ];
276
+ }
277
+ export function getPlanarShadowShaderUniforms() {
278
+ return [
279
+ 'world',
280
+ 'viewProjection',
281
+ 'u_lightDir',
282
+ 'u_planeNormal',
283
+ 'u_shadowCenter',
284
+ 'u_planeHeight',
285
+ 'u_planeBias',
286
+ 'u_footprintScale',
287
+ 'u_shadowColor',
288
+ 'u_shadowAlphaCutoff',
289
+ 'u_shadowAlphaLevel',
290
+ 'u_shadowAlphaChannelMode',
291
+ 'u_shadowAlphaLuminanceWeights',
292
+ 'u_shadowAlphaUvSet',
293
+ 'u_shadowAlphaMatrix',
294
+ 'u_shadowAlphaLevel2',
295
+ 'u_shadowAlphaChannelMode2',
296
+ 'u_shadowAlphaLuminanceWeights2',
297
+ 'u_shadowAlphaUvSet2',
298
+ 'u_shadowAlphaMatrix2',
299
+ 'mBones',
300
+ 'boneTextureWidth',
301
+ ];
302
+ }
303
+ export function getPlanarShadowShaderSamplers() {
304
+ return ['boneSampler', 'shadowAlphaSampler', 'shadowAlphaSampler2'];
305
+ }
306
+ export function getPlanarShadowSkeletonDefines(numBones, useTexture, hasExtraInfluence) {
307
+ const defines = ['BONE'];
308
+ if (useTexture)
309
+ defines.push('BONETEXTURE');
310
+ else
311
+ defines.push(`BonesPerMesh ${numBones}`);
312
+ if (hasExtraInfluence)
313
+ defines.push('BONES_VELOCITY_ENABLED');
314
+ return defines;
315
+ }
316
+ //# sourceMappingURL=planar-shadow-shaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planar-shadow-shaders.js","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/planar-shadow-shaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE3D,MAAM,UAAU,2BAA2B;IACzC,MAAM,SAAS,GAAG,GAAG,yBAAyB,cAAc,CAAC;IAC7D,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;QAAE,OAAO;IAE3C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LlC,CAAC;IAEA,MAAM,CAAC,YAAY,CAAC,GAAG,yBAAyB,gBAAgB,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DrE,CAAC;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU;QACV,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,iBAAiB;QACjB,iBAAiB;QACjB,sBAAsB;QACtB,sBAAsB;QACtB,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO;QACL,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,qBAAqB;QACrB,oBAAoB;QACpB,0BAA0B;QAC1B,+BAA+B;QAC/B,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,2BAA2B;QAC3B,gCAAgC;QAChC,qBAAqB;QACrB,sBAAsB;QACtB,QAAQ;QACR,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CAAC,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAAgB,EAChB,UAAmB,EACnB,iBAA0B;IAE1B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,UAAU;QAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;QACvC,OAAO,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC;IAC9C,IAAI,iBAAiB;QAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { DirectionalLight } from '@babylonjs/core/Lights/directionalLight.js';
2
+ import type { Scene } from '@babylonjs/core/scene.js';
3
+ import { type PlanarShadowOptions, type PlanarShadowSystem } from './types.js';
4
+ export declare function createPlanarShadowSystem(scene: Scene, directionalLight: DirectionalLight, options?: Partial<PlanarShadowOptions>): PlanarShadowSystem;
5
+ //# sourceMappingURL=planar-shadow-system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planar-shadow-system.d.ts","sourceRoot":"","sources":["../../../../src/babylon/renderer/shadows/planar-shadow-system.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAa9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAUtD,OAAO,EAIL,KAAK,mBAAmB,EAGxB,KAAK,kBAAkB,EAExB,MAAM,YAAY,CAAC;AAuGpB,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAM,GACzC,kBAAkB,CAEpB"}