@onerjs/materials 8.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/cell/cell.fragment.d.ts +19 -0
  2. package/cell/cell.fragment.js +100 -0
  3. package/cell/cell.fragment.js.map +1 -0
  4. package/cell/cell.vertex.d.ts +21 -0
  5. package/cell/cell.vertex.js +96 -0
  6. package/cell/cell.vertex.js.map +1 -0
  7. package/cell/cellMaterial.d.ts +37 -0
  8. package/cell/cellMaterial.js +312 -0
  9. package/cell/cellMaterial.js.map +1 -0
  10. package/cell/index.d.ts +1 -0
  11. package/cell/index.js +2 -0
  12. package/cell/index.js.map +1 -0
  13. package/custom/customMaterial.d.ts +280 -0
  14. package/custom/customMaterial.js +355 -0
  15. package/custom/customMaterial.js.map +1 -0
  16. package/custom/index.d.ts +2 -0
  17. package/custom/index.js +3 -0
  18. package/custom/index.js.map +1 -0
  19. package/custom/pbrCustomMaterial.d.ts +299 -0
  20. package/custom/pbrCustomMaterial.js +397 -0
  21. package/custom/pbrCustomMaterial.js.map +1 -0
  22. package/fire/fire.fragment.d.ts +13 -0
  23. package/fire/fire.fragment.js +65 -0
  24. package/fire/fire.fragment.js.map +1 -0
  25. package/fire/fire.vertex.d.ts +18 -0
  26. package/fire/fire.vertex.js +80 -0
  27. package/fire/fire.vertex.js.map +1 -0
  28. package/fire/fireMaterial.d.ts +38 -0
  29. package/fire/fireMaterial.js +342 -0
  30. package/fire/fireMaterial.js.map +1 -0
  31. package/fire/index.d.ts +1 -0
  32. package/fire/index.js +2 -0
  33. package/fire/index.js.map +1 -0
  34. package/fur/fur.fragment.d.ts +19 -0
  35. package/fur/fur.fragment.js +94 -0
  36. package/fur/fur.fragment.js.map +1 -0
  37. package/fur/fur.vertex.d.ts +21 -0
  38. package/fur/fur.vertex.js +126 -0
  39. package/fur/fur.vertex.js.map +1 -0
  40. package/fur/furMaterial.d.ts +57 -0
  41. package/fur/furMaterial.js +505 -0
  42. package/fur/furMaterial.js.map +1 -0
  43. package/fur/index.d.ts +1 -0
  44. package/fur/index.js +2 -0
  45. package/fur/index.js.map +1 -0
  46. package/gradient/gradient.fragment.d.ts +19 -0
  47. package/gradient/gradient.fragment.js +80 -0
  48. package/gradient/gradient.fragment.js.map +1 -0
  49. package/gradient/gradient.vertex.d.ts +21 -0
  50. package/gradient/gradient.vertex.js +87 -0
  51. package/gradient/gradient.vertex.js.map +1 -0
  52. package/gradient/gradientMaterial.d.ts +37 -0
  53. package/gradient/gradientMaterial.js +283 -0
  54. package/gradient/gradientMaterial.js.map +1 -0
  55. package/gradient/index.d.ts +1 -0
  56. package/gradient/index.js +2 -0
  57. package/gradient/index.js.map +1 -0
  58. package/grid/grid.fragment.d.ts +12 -0
  59. package/grid/grid.fragment.js +79 -0
  60. package/grid/grid.fragment.js.map +1 -0
  61. package/grid/grid.vertex.d.ts +15 -0
  62. package/grid/grid.vertex.js +60 -0
  63. package/grid/grid.vertex.js.map +1 -0
  64. package/grid/gridMaterial.d.ts +85 -0
  65. package/grid/gridMaterial.js +308 -0
  66. package/grid/gridMaterial.js.map +1 -0
  67. package/grid/index.d.ts +1 -0
  68. package/grid/index.js +2 -0
  69. package/grid/index.js.map +1 -0
  70. package/index.d.ts +15 -0
  71. package/index.js +17 -0
  72. package/index.js.map +1 -0
  73. package/lava/index.d.ts +1 -0
  74. package/lava/index.js +2 -0
  75. package/lava/index.js.map +1 -0
  76. package/lava/lava.fragment.d.ts +19 -0
  77. package/lava/lava.fragment.js +89 -0
  78. package/lava/lava.fragment.js.map +1 -0
  79. package/lava/lava.vertex.d.ts +21 -0
  80. package/lava/lava.vertex.js +113 -0
  81. package/lava/lava.vertex.js.map +1 -0
  82. package/lava/lavaMaterial.d.ts +45 -0
  83. package/lava/lavaMaterial.js +402 -0
  84. package/lava/lavaMaterial.js.map +1 -0
  85. package/legacy/legacy-cell.d.ts +1 -0
  86. package/legacy/legacy-cell.js +14 -0
  87. package/legacy/legacy-cell.js.map +1 -0
  88. package/legacy/legacy-custom.d.ts +1 -0
  89. package/legacy/legacy-custom.js +14 -0
  90. package/legacy/legacy-custom.js.map +1 -0
  91. package/legacy/legacy-fire.d.ts +1 -0
  92. package/legacy/legacy-fire.js +14 -0
  93. package/legacy/legacy-fire.js.map +1 -0
  94. package/legacy/legacy-fur.d.ts +1 -0
  95. package/legacy/legacy-fur.js +14 -0
  96. package/legacy/legacy-fur.js.map +1 -0
  97. package/legacy/legacy-gradient.d.ts +1 -0
  98. package/legacy/legacy-gradient.js +14 -0
  99. package/legacy/legacy-gradient.js.map +1 -0
  100. package/legacy/legacy-grid.d.ts +1 -0
  101. package/legacy/legacy-grid.js +14 -0
  102. package/legacy/legacy-grid.js.map +1 -0
  103. package/legacy/legacy-lava.d.ts +1 -0
  104. package/legacy/legacy-lava.js +14 -0
  105. package/legacy/legacy-lava.js.map +1 -0
  106. package/legacy/legacy-mix.d.ts +1 -0
  107. package/legacy/legacy-mix.js +14 -0
  108. package/legacy/legacy-mix.js.map +1 -0
  109. package/legacy/legacy-normal.d.ts +1 -0
  110. package/legacy/legacy-normal.js +14 -0
  111. package/legacy/legacy-normal.js.map +1 -0
  112. package/legacy/legacy-shadowOnly.d.ts +1 -0
  113. package/legacy/legacy-shadowOnly.js +14 -0
  114. package/legacy/legacy-shadowOnly.js.map +1 -0
  115. package/legacy/legacy-simple.d.ts +1 -0
  116. package/legacy/legacy-simple.js +14 -0
  117. package/legacy/legacy-simple.js.map +1 -0
  118. package/legacy/legacy-sky.d.ts +1 -0
  119. package/legacy/legacy-sky.js +14 -0
  120. package/legacy/legacy-sky.js.map +1 -0
  121. package/legacy/legacy-terrain.d.ts +1 -0
  122. package/legacy/legacy-terrain.js +14 -0
  123. package/legacy/legacy-terrain.js.map +1 -0
  124. package/legacy/legacy-triPlanar.d.ts +1 -0
  125. package/legacy/legacy-triPlanar.js +14 -0
  126. package/legacy/legacy-triPlanar.js.map +1 -0
  127. package/legacy/legacy-water.d.ts +1 -0
  128. package/legacy/legacy-water.js +14 -0
  129. package/legacy/legacy-water.js.map +1 -0
  130. package/legacy/legacy.d.ts +1 -0
  131. package/legacy/legacy.js +17 -0
  132. package/legacy/legacy.js.map +1 -0
  133. package/license.md +71 -0
  134. package/mix/index.d.ts +1 -0
  135. package/mix/index.js +2 -0
  136. package/mix/index.js.map +1 -0
  137. package/mix/mix.fragment.d.ts +19 -0
  138. package/mix/mix.fragment.js +106 -0
  139. package/mix/mix.fragment.js.map +1 -0
  140. package/mix/mix.vertex.d.ts +21 -0
  141. package/mix/mix.vertex.js +96 -0
  142. package/mix/mix.vertex.js.map +1 -0
  143. package/mix/mixMaterial.d.ts +65 -0
  144. package/mix/mixMaterial.js +508 -0
  145. package/mix/mixMaterial.js.map +1 -0
  146. package/normal/index.d.ts +1 -0
  147. package/normal/index.js +2 -0
  148. package/normal/index.js.map +1 -0
  149. package/normal/normal.fragment.d.ts +19 -0
  150. package/normal/normal.fragment.js +85 -0
  151. package/normal/normal.fragment.js.map +1 -0
  152. package/normal/normal.vertex.d.ts +20 -0
  153. package/normal/normal.vertex.js +88 -0
  154. package/normal/normal.vertex.js.map +1 -0
  155. package/normal/normalMaterial.d.ts +36 -0
  156. package/normal/normalMaterial.js +345 -0
  157. package/normal/normalMaterial.js.map +1 -0
  158. package/package.json +47 -0
  159. package/readme.md +30 -0
  160. package/shadowOnly/index.d.ts +1 -0
  161. package/shadowOnly/index.js +2 -0
  162. package/shadowOnly/index.js.map +1 -0
  163. package/shadowOnly/shadowOnly.fragment.d.ts +20 -0
  164. package/shadowOnly/shadowOnly.fragment.js +60 -0
  165. package/shadowOnly/shadowOnly.fragment.js.map +1 -0
  166. package/shadowOnly/shadowOnly.vertex.d.ts +22 -0
  167. package/shadowOnly/shadowOnly.vertex.js +69 -0
  168. package/shadowOnly/shadowOnly.vertex.js.map +1 -0
  169. package/shadowOnly/shadowOnlyMaterial.d.ts +30 -0
  170. package/shadowOnly/shadowOnlyMaterial.js +243 -0
  171. package/shadowOnly/shadowOnlyMaterial.js.map +1 -0
  172. package/simple/index.d.ts +1 -0
  173. package/simple/index.js +2 -0
  174. package/simple/index.js.map +1 -0
  175. package/simple/simple.fragment.d.ts +19 -0
  176. package/simple/simple.fragment.js +81 -0
  177. package/simple/simple.fragment.js.map +1 -0
  178. package/simple/simple.vertex.d.ts +21 -0
  179. package/simple/simple.vertex.js +96 -0
  180. package/simple/simple.vertex.js.map +1 -0
  181. package/simple/simpleMaterial.d.ts +35 -0
  182. package/simple/simpleMaterial.js +303 -0
  183. package/simple/simpleMaterial.js.map +1 -0
  184. package/sky/index.d.ts +1 -0
  185. package/sky/index.js +2 -0
  186. package/sky/index.js.map +1 -0
  187. package/sky/sky.fragment.d.ts +13 -0
  188. package/sky/sky.fragment.js +81 -0
  189. package/sky/sky.fragment.js.map +1 -0
  190. package/sky/sky.vertex.d.ts +11 -0
  191. package/sky/sky.vertex.js +47 -0
  192. package/sky/sky.vertex.js.map +1 -0
  193. package/sky/skyMaterial.d.ts +151 -0
  194. package/sky/skyMaterial.js +367 -0
  195. package/sky/skyMaterial.js.map +1 -0
  196. package/terrain/index.d.ts +1 -0
  197. package/terrain/index.js +2 -0
  198. package/terrain/index.js.map +1 -0
  199. package/terrain/terrain.fragment.d.ts +19 -0
  200. package/terrain/terrain.fragment.js +110 -0
  201. package/terrain/terrain.fragment.js.map +1 -0
  202. package/terrain/terrain.vertex.d.ts +21 -0
  203. package/terrain/terrain.vertex.js +96 -0
  204. package/terrain/terrain.vertex.js.map +1 -0
  205. package/terrain/terrainMaterial.d.ts +50 -0
  206. package/terrain/terrainMaterial.js +445 -0
  207. package/terrain/terrainMaterial.js.map +1 -0
  208. package/triPlanar/index.d.ts +1 -0
  209. package/triPlanar/index.js +2 -0
  210. package/triPlanar/index.js.map +1 -0
  211. package/triPlanar/triPlanarMaterial.d.ts +49 -0
  212. package/triPlanar/triPlanarMaterial.js +421 -0
  213. package/triPlanar/triPlanarMaterial.js.map +1 -0
  214. package/triPlanar/triplanar.fragment.d.ts +19 -0
  215. package/triPlanar/triplanar.fragment.js +126 -0
  216. package/triPlanar/triplanar.fragment.js.map +1 -0
  217. package/triPlanar/triplanar.vertex.d.ts +22 -0
  218. package/triPlanar/triplanar.vertex.js +101 -0
  219. package/triPlanar/triplanar.vertex.js.map +1 -0
  220. package/water/index.d.ts +1 -0
  221. package/water/index.js +2 -0
  222. package/water/index.js.map +1 -0
  223. package/water/water.fragment.d.ts +19 -0
  224. package/water/water.fragment.js +160 -0
  225. package/water/water.fragment.js.map +1 -0
  226. package/water/water.vertex.d.ts +21 -0
  227. package/water/water.vertex.js +125 -0
  228. package/water/water.vertex.js.map +1 -0
  229. package/water/waterMaterial.d.ts +141 -0
  230. package/water/waterMaterial.js +729 -0
  231. package/water/waterMaterial.js.map +1 -0
package/index.js ADDED
@@ -0,0 +1,17 @@
1
+ /* eslint-disable @typescript-eslint/no-restricted-imports */
2
+ export * from "./cell/index.js";
3
+ export * from "./custom/index.js";
4
+ export * from "./fire/index.js";
5
+ export * from "./fur/index.js";
6
+ export * from "./gradient/index.js";
7
+ export * from "./grid/index.js";
8
+ export * from "./lava/index.js";
9
+ export * from "./mix/index.js";
10
+ export * from "./normal/index.js";
11
+ export * from "./shadowOnly/index.js";
12
+ export * from "./simple/index.js";
13
+ export * from "./sky/index.js";
14
+ export * from "./terrain/index.js";
15
+ export * from "./triPlanar/index.js";
16
+ export * from "./water/index.js";
17
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../dev/materials/src/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-restricted-imports */\r\nexport * from \"./cell/index\";\r\nexport * from \"./custom/index\";\r\nexport * from \"./fire/index\";\r\nexport * from \"./fur/index\";\r\nexport * from \"./gradient/index\";\r\nexport * from \"./grid/index\";\r\nexport * from \"./lava/index\";\r\nexport * from \"./mix/index\";\r\nexport * from \"./normal/index\";\r\nexport * from \"./shadowOnly/index\";\r\nexport * from \"./simple/index\";\r\nexport * from \"./sky/index\";\r\nexport * from \"./terrain/index\";\r\nexport * from \"./triPlanar/index\";\r\nexport * from \"./water/index\";\r\n"]}
@@ -0,0 +1 @@
1
+ export * from "./lavaMaterial.js";
package/lava/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./lavaMaterial.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../dev/materials/src/lava/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC","sourcesContent":["export * from \"./lavaMaterial\";\r\n"]}
@@ -0,0 +1,19 @@
1
+ import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js";
2
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
3
+ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
4
+ import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js";
5
+ import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js";
6
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js";
7
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
8
+ import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
9
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js";
10
+ import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js";
11
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
12
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.js";
13
+ import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
14
+ import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
15
+ /** @internal */
16
+ export declare const lavaPixelShader: {
17
+ name: string;
18
+ shader: string;
19
+ };
@@ -0,0 +1,89 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
3
+ import "@babylonjs/core/Shaders/ShadersInclude/helperFunctions.js";
4
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
5
+ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
6
+ import "@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.js";
7
+ import "@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.js";
8
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js";
9
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
10
+ import "@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.js";
11
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.js";
12
+ import "@babylonjs/core/Shaders/ShadersInclude/depthPrePass.js";
13
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragment.js";
14
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.js";
15
+ import "@babylonjs/core/Shaders/ShadersInclude/fogFragment.js";
16
+ import "@babylonjs/core/Shaders/ShadersInclude/imageProcessingCompatibility.js";
17
+ const name = "lavaPixelShader";
18
+ const shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;uniform float time;uniform float speed;uniform float movingSpeed;uniform vec3 fogColor;uniform sampler2D noiseTexture;uniform float fogDensity;varying float noise;
19
+ #ifdef NORMAL
20
+ varying vec3 vNormalW;
21
+ #endif
22
+ #ifdef VERTEXCOLOR
23
+ varying vec4 vColor;
24
+ #endif
25
+ #include<helperFunctions>
26
+ #include<__decl__lightFragment>[0]
27
+ #include<__decl__lightFragment>[1]
28
+ #include<__decl__lightFragment>[2]
29
+ #include<__decl__lightFragment>[3]
30
+ #include<lightsFragmentFunctions>
31
+ #include<shadowsFragmentFunctions>
32
+ #ifdef DIFFUSE
33
+ varying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;
34
+ #endif
35
+ #include<clipPlaneFragmentDeclaration>
36
+ #ifdef LOGARITHMICDEPTH
37
+ #extension GL_EXT_frag_depth : enable
38
+ #endif
39
+ #include<logDepthDeclaration>
40
+ #include<fogFragmentDeclaration>
41
+ float random( vec3 scale,float seed ){return fract( sin( dot( gl_FragCoord.xyz+seed,scale ) )*43758.5453+seed ) ;}
42
+ #define CUSTOM_FRAGMENT_DEFINITIONS
43
+ void main(void) {
44
+ #define CUSTOM_FRAGMENT_MAIN_BEGIN
45
+ #include<clipPlaneFragment>
46
+ vec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;
47
+ #ifdef DIFFUSE
48
+ vec4 noiseTex=texture2D( noiseTexture,vDiffuseUV );vec2 T1=vDiffuseUV+vec2( 1.5,-1.5 )*time *0.02;vec2 T2=vDiffuseUV+vec2( -0.5,2.0 )*time*0.01*speed;T1.x+=noiseTex.x*2.0;T1.y+=noiseTex.y*2.0;T2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;T2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;float p=texture2D( noiseTexture,T1*3.0 ).a;vec4 lavaColor=texture2D( diffuseSampler,T2*4.0);vec4 temp=lavaColor*( vec4( p,p,p,p )*2. )+( lavaColor*lavaColor-0.1 );baseColor=temp;float depth=gl_FragCoord.z*4.0;const float LOG2=1.442695;float fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2 );fogFactor=1.0-clamp( fogFactor,0.0,1.0 );baseColor=mix( baseColor,vec4( fogColor,baseColor.w ),fogFactor );diffuseColor=baseColor.rgb;
49
+ #ifdef ALPHATEST
50
+ if (baseColor.a<0.4)
51
+ discard;
52
+ #endif
53
+ #include<depthPrePass>
54
+ baseColor.rgb*=vDiffuseInfos.y;
55
+ #endif
56
+ #ifdef VERTEXCOLOR
57
+ baseColor.rgb*=vColor.rgb;
58
+ #endif
59
+ #ifdef NORMAL
60
+ vec3 normalW=normalize(vNormalW);
61
+ #else
62
+ vec3 normalW=vec3(1.0,1.0,1.0);
63
+ #endif
64
+ #ifdef UNLIT
65
+ vec3 diffuseBase=vec3(1.,1.,1.);
66
+ #else
67
+ vec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;
68
+ #include<lightFragment>[0]
69
+ #include<lightFragment>[1]
70
+ #include<lightFragment>[2]
71
+ #include<lightFragment>[3]
72
+ #endif
73
+ #if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
74
+ alpha*=vColor.a;
75
+ #endif
76
+ vec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);
77
+ #include<logDepthFragment>
78
+ #include<fogFragment>
79
+ gl_FragColor=color;
80
+ #include<imageProcessingCompatibility>
81
+ #define CUSTOM_FRAGMENT_MAIN_END
82
+ }`;
83
+ // Sideeffect
84
+ if (!ShaderStore.ShadersStore[name]) {
85
+ ShaderStore.ShadersStore[name] = shader;
86
+ }
87
+ /** @internal */
88
+ export const lavaPixelShader = { name, shader };
89
+ //# sourceMappingURL=lava.fragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lava.fragment.js","sourceRoot":"","sources":["../../../../dev/materials/src/lava/lava.fragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,mEAAqD;AACrD,4EAA8D;AAC9D,uEAAyD;AACzD,2EAA6D;AAC7D,4EAA8D;AAC9D,gFAAkE;AAClE,uEAAyD;AACzD,0EAA4D;AAC5D,qEAAuD;AACvD,gEAAkD;AAClD,iEAAmD;AACnD,oEAAsD;AACtD,+DAAiD;AACjD,gFAAkE;AAElE,MAAM,IAAI,GAAG,iBAAiB,CAAC;AAC/B,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgEb,CAAC;AACH,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/helperFunctions\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/shadowsFragmentFunctions\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/logDepthDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneFragment\";\nimport \"core/Shaders/ShadersInclude/depthPrePass\";\nimport \"core/Shaders/ShadersInclude/lightFragment\";\nimport \"core/Shaders/ShadersInclude/logDepthFragment\";\nimport \"core/Shaders/ShadersInclude/fogFragment\";\nimport \"core/Shaders/ShadersInclude/imageProcessingCompatibility\";\n\nconst name = \"lavaPixelShader\";\nconst shader = `precision highp float;uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;varying vec3 vPositionW;uniform float time;uniform float speed;uniform float movingSpeed;uniform vec3 fogColor;uniform sampler2D noiseTexture;uniform float fogDensity;varying float noise;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<helperFunctions>\n#include<__decl__lightFragment>[0]\n#include<__decl__lightFragment>[1]\n#include<__decl__lightFragment>[2]\n#include<__decl__lightFragment>[3]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;uniform sampler2D diffuseSampler;uniform vec2 vDiffuseInfos;\n#endif\n#include<clipPlaneFragmentDeclaration>\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\nfloat random( vec3 scale,float seed ){return fract( sin( dot( gl_FragCoord.xyz+seed,scale ) )*43758.5453+seed ) ;}\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;\n#ifdef DIFFUSE\nvec4 noiseTex=texture2D( noiseTexture,vDiffuseUV );vec2 T1=vDiffuseUV+vec2( 1.5,-1.5 )*time *0.02;vec2 T2=vDiffuseUV+vec2( -0.5,2.0 )*time*0.01*speed;T1.x+=noiseTex.x*2.0;T1.y+=noiseTex.y*2.0;T2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;T2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;float p=texture2D( noiseTexture,T1*3.0 ).a;vec4 lavaColor=texture2D( diffuseSampler,T2*4.0);vec4 temp=lavaColor*( vec4( p,p,p,p )*2. )+( lavaColor*lavaColor-0.1 );baseColor=temp;float depth=gl_FragCoord.z*4.0;const float LOG2=1.442695;float fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2 );fogFactor=1.0-clamp( fogFactor,0.0,1.0 );baseColor=mix( baseColor,vec4( fogColor,baseColor.w ),fogFactor );diffuseColor=baseColor.rgb;\n#ifdef ALPHATEST\nif (baseColor.a<0.4)\ndiscard;\n#endif\n#include<depthPrePass>\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#ifdef VERTEXCOLOR\nbaseColor.rgb*=vColor.rgb;\n#endif\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=vec3(1.0,1.0,1.0);\n#endif\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;float shadow=1.;float glossiness=0.;float aggShadow=0.;float numLights=0.;\n#include<lightFragment>[0]\n#include<lightFragment>[1]\n#include<lightFragment>[2]\n#include<lightFragment>[3]\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4 color=vec4(finalDiffuse,alpha);\n#include<logDepthFragment>\n#include<fogFragment>\ngl_FragColor=color;\n#include<imageProcessingCompatibility>\n#define CUSTOM_FRAGMENT_MAIN_END\n}`;\n// Sideeffect\nif (!ShaderStore.ShadersStore[name]) {\n ShaderStore.ShadersStore[name] = shader;\n}\n/** @internal */\nexport const lavaPixelShader = { name, shader };\n"]}
@@ -0,0 +1,21 @@
1
+ import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js";
2
+ import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js";
3
+ import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
4
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js";
5
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
6
+ import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js";
7
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
8
+ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
9
+ import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
10
+ import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
11
+ import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
12
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
13
+ import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
14
+ import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
15
+ import "@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js";
16
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js";
17
+ /** @internal */
18
+ export declare const lavaVertexShader: {
19
+ name: string;
20
+ shader: string;
21
+ };
@@ -0,0 +1,113 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
3
+ import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js";
4
+ import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js";
5
+ import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
6
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js";
7
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.js";
8
+ import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.js";
9
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
10
+ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
11
+ import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
12
+ import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
13
+ import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
14
+ import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
15
+ import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
16
+ import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
17
+ import "@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.js";
18
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js";
19
+ const name = "lavaVertexShader";
20
+ const shader = `precision highp float;uniform float time;uniform float lowFrequencySpeed;varying float noise;attribute vec3 position;
21
+ #ifdef NORMAL
22
+ attribute vec3 normal;
23
+ #endif
24
+ #ifdef UV1
25
+ attribute vec2 uv;
26
+ #endif
27
+ #ifdef UV2
28
+ attribute vec2 uv2;
29
+ #endif
30
+ #ifdef VERTEXCOLOR
31
+ attribute vec4 color;
32
+ #endif
33
+ #include<bonesDeclaration>
34
+ #include<bakedVertexAnimationDeclaration>
35
+ #include<instancesDeclaration>
36
+ uniform mat4 view;uniform mat4 viewProjection;
37
+ #ifdef DIFFUSE
38
+ varying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;
39
+ #endif
40
+ #ifdef POINTSIZE
41
+ uniform float pointSize;
42
+ #endif
43
+ varying vec3 vPositionW;
44
+ #ifdef NORMAL
45
+ varying vec3 vNormalW;
46
+ #endif
47
+ #ifdef VERTEXCOLOR
48
+ varying vec4 vColor;
49
+ #endif
50
+ #include<clipPlaneVertexDeclaration>
51
+ #include<logDepthDeclaration>
52
+ #include<fogVertexDeclaration>
53
+ #include<__decl__lightFragment>[0..maxSimultaneousLights]
54
+ /* NOISE FUNCTIONS */
55
+ vec3 mod289(vec3 x)
56
+ {return x-floor(x*(1.0/289.0))*289.0;}
57
+ vec4 mod289(vec4 x)
58
+ {return x-floor(x*(1.0/289.0))*289.0;}
59
+ vec4 permute(vec4 x)
60
+ {return mod289(((x*34.0)+1.0)*x);}
61
+ vec4 taylorInvSqrt(vec4 r)
62
+ {return 1.79284291400159-0.85373472095314*r;}
63
+ vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}
64
+ float pnoise(vec3 P,vec3 rep)
65
+ {vec3 Pi0=mod(floor(P),rep);
66
+ vec3 Pi1=mod(Pi0+vec3(1.0),rep);
67
+ Pi0=mod289(Pi0);Pi1=mod289(Pi1);vec3 Pf0=fract(P);
68
+ vec3 Pf1=Pf0-vec3(1.0);
69
+ vec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);vec4 iy=vec4(Pi0.yy,Pi1.yy);vec4 iz0=Pi0.zzzz;vec4 iz1=Pi1.zzzz;vec4 ixy=permute(permute(ix)+iy);vec4 ixy0=permute(ixy+iz0);vec4 ixy1=permute(ixy+iz1);vec4 gx0=ixy0*(1.0/7.0);vec4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;gx0=fract(gx0);vec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);vec4 sz0=step(gz0,vec4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);vec4 gx1=ixy1*(1.0/7.0);vec4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;gx1=fract(gx1);vec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);vec4 sz1=step(gz1,vec4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);vec3 g000=vec3(gx0.x,gy0.x,gz0.x);vec3 g100=vec3(gx0.y,gy0.y,gz0.y);vec3 g010=vec3(gx0.z,gy0.z,gz0.z);vec3 g110=vec3(gx0.w,gy0.w,gz0.w);vec3 g001=vec3(gx1.x,gy1.x,gz1.x);vec3 g101=vec3(gx1.y,gy1.y,gz1.y);vec3 g011=vec3(gx1.z,gy1.z,gz1.z);vec3 g111=vec3(gx1.w,gy1.w,gz1.w);vec4 norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;vec4 norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;float n000=dot(g000,Pf0);float n100=dot(g100,vec3(Pf1.x,Pf0.yz));float n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));float n110=dot(g110,vec3(Pf1.xy,Pf0.z));float n001=dot(g001,vec3(Pf0.xy,Pf1.z));float n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));float n011=dot(g011,vec3(Pf0.x,Pf1.yz));float n111=dot(g111,Pf1);vec3 fade_xyz=fade(Pf0);vec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);vec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);float n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return 2.2*n_xyz;}
70
+ /* END FUNCTION */
71
+ float turbulence( vec3 p ) {float w=100.0;float t=-.5;for (float f=1.0 ; f<=10.0 ; f++ ){float power=pow( 2.0,f );t+=abs( pnoise( vec3( power*p ),vec3( 10.0,10.0,10.0 ) )/power );}
72
+ return t;}
73
+ #define CUSTOM_VERTEX_DEFINITIONS
74
+ void main(void) {
75
+ #define CUSTOM_VERTEX_MAIN_BEGIN
76
+ #ifdef VERTEXCOLOR
77
+ vec4 colorUpdated=color;
78
+ #endif
79
+ #include<instancesVertex>
80
+ #include<bonesVertex>
81
+ #include<bakedVertexAnimation>
82
+ #ifdef NORMAL
83
+ noise=10.0* -.10*turbulence( .5*normal+time*1.15 );float b=lowFrequencySpeed*5.0*pnoise( 0.05*position +vec3(time*1.025),vec3( 100.0 ) );float displacement=- 1.5*noise+b;vec3 newPosition=position+normal*displacement;gl_Position=viewProjection*finalWorld*vec4( newPosition,1.0 );vec4 worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));
84
+ #endif
85
+ #ifndef UV1
86
+ vec2 uv=vec2(0.,0.);
87
+ #endif
88
+ #ifndef UV2
89
+ vec2 uv2=vec2(0.,0.);
90
+ #endif
91
+ #ifdef DIFFUSE
92
+ if (vDiffuseInfos.x==0.)
93
+ {vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}
94
+ else
95
+ {vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}
96
+ #endif
97
+ #include<clipPlaneVertex>
98
+ #include<fogVertex>
99
+ #include<shadowsVertex>[0..maxSimultaneousLights]
100
+ #include<vertexColorMixing>
101
+ #include<logDepthVertex>
102
+ #if defined(POINTSIZE) && !defined(WEBGPU)
103
+ gl_PointSize=pointSize;
104
+ #endif
105
+ #define CUSTOM_VERTEX_MAIN_END
106
+ }`;
107
+ // Sideeffect
108
+ if (!ShaderStore.ShadersStore[name]) {
109
+ ShaderStore.ShadersStore[name] = shader;
110
+ }
111
+ /** @internal */
112
+ export const lavaVertexShader = { name, shader };
113
+ //# sourceMappingURL=lava.vertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lava.vertex.js","sourceRoot":"","sources":["../../../../dev/materials/src/lava/lava.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,oEAAsD;AACtD,mFAAqE;AACrE,wEAA0D;AAC1D,8EAAgE;AAChE,uEAAyD;AACzD,wEAA0D;AAC1D,4EAA8D;AAC9D,uEAAyD;AACzD,mEAAqD;AACrD,+DAAiD;AACjD,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAC/C,iEAAmD;AACnD,qEAAuD;AACvD,kEAAoD;AAEpD,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFb,CAAC;AACH,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;IAClC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"core/Engines/shaderStore\";\nimport \"core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/logDepthDeclaration\";\nimport \"core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/instancesVertex\";\nimport \"core/Shaders/ShadersInclude/bonesVertex\";\nimport \"core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"core/Shaders/ShadersInclude/fogVertex\";\nimport \"core/Shaders/ShadersInclude/shadowsVertex\";\nimport \"core/Shaders/ShadersInclude/vertexColorMixing\";\nimport \"core/Shaders/ShadersInclude/logDepthVertex\";\n\nconst name = \"lavaVertexShader\";\nconst shader = `precision highp float;uniform float time;uniform float lowFrequencySpeed;varying float noise;attribute vec3 position;\n#ifdef NORMAL\nattribute vec3 normal;\n#endif\n#ifdef UV1\nattribute vec2 uv;\n#endif\n#ifdef UV2\nattribute vec2 uv2;\n#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\n#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;uniform mat4 viewProjection;\n#ifdef DIFFUSE\nvarying vec2 vDiffuseUV;uniform mat4 diffuseMatrix;uniform vec2 vDiffuseInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#ifdef VERTEXCOLOR\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<logDepthDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n/* NOISE FUNCTIONS */\nvec3 mod289(vec3 x)\n{return x-floor(x*(1.0/289.0))*289.0;}\nvec4 mod289(vec4 x)\n{return x-floor(x*(1.0/289.0))*289.0;}\nvec4 permute(vec4 x)\n{return mod289(((x*34.0)+1.0)*x);}\nvec4 taylorInvSqrt(vec4 r)\n{return 1.79284291400159-0.85373472095314*r;}\nvec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}\nfloat pnoise(vec3 P,vec3 rep)\n{vec3 Pi0=mod(floor(P),rep); \nvec3 Pi1=mod(Pi0+vec3(1.0),rep); \nPi0=mod289(Pi0);Pi1=mod289(Pi1);vec3 Pf0=fract(P); \nvec3 Pf1=Pf0-vec3(1.0); \nvec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);vec4 iy=vec4(Pi0.yy,Pi1.yy);vec4 iz0=Pi0.zzzz;vec4 iz1=Pi1.zzzz;vec4 ixy=permute(permute(ix)+iy);vec4 ixy0=permute(ixy+iz0);vec4 ixy1=permute(ixy+iz1);vec4 gx0=ixy0*(1.0/7.0);vec4 gy0=fract(floor(gx0)*(1.0/7.0))-0.5;gx0=fract(gx0);vec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);vec4 sz0=step(gz0,vec4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);vec4 gx1=ixy1*(1.0/7.0);vec4 gy1=fract(floor(gx1)*(1.0/7.0))-0.5;gx1=fract(gx1);vec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);vec4 sz1=step(gz1,vec4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);vec3 g000=vec3(gx0.x,gy0.x,gz0.x);vec3 g100=vec3(gx0.y,gy0.y,gz0.y);vec3 g010=vec3(gx0.z,gy0.z,gz0.z);vec3 g110=vec3(gx0.w,gy0.w,gz0.w);vec3 g001=vec3(gx1.x,gy1.x,gz1.x);vec3 g101=vec3(gx1.y,gy1.y,gz1.y);vec3 g011=vec3(gx1.z,gy1.z,gz1.z);vec3 g111=vec3(gx1.w,gy1.w,gz1.w);vec4 norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;vec4 norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;float n000=dot(g000,Pf0);float n100=dot(g100,vec3(Pf1.x,Pf0.yz));float n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));float n110=dot(g110,vec3(Pf1.xy,Pf0.z));float n001=dot(g001,vec3(Pf0.xy,Pf1.z));float n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));float n011=dot(g011,vec3(Pf0.x,Pf1.yz));float n111=dot(g111,Pf1);vec3 fade_xyz=fade(Pf0);vec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);vec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);float n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return 2.2*n_xyz;}\n/* END FUNCTION */\nfloat turbulence( vec3 p ) {float w=100.0;float t=-.5;for (float f=1.0 ; f<=10.0 ; f++ ){float power=pow( 2.0,f );t+=abs( pnoise( vec3( power*p ),vec3( 10.0,10.0,10.0 ) )/power );}\nreturn t;}\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#ifdef VERTEXCOLOR\nvec4 colorUpdated=color;\n#endif\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\n#ifdef NORMAL\nnoise=10.0* -.10*turbulence( .5*normal+time*1.15 );float b=lowFrequencySpeed*5.0*pnoise( 0.05*position +vec3(time*1.025),vec3( 100.0 ) );float displacement=- 1.5*noise+b;vec3 newPosition=position+normal*displacement;gl_Position=viewProjection*finalWorld*vec4( newPosition,1.0 );vec4 worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef DIFFUSE\nif (vDiffuseInfos.x==0.)\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\nelse\n{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#include<vertexColorMixing>\n#include<logDepthVertex>\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\n#define CUSTOM_VERTEX_MAIN_END\n}`;\n// Sideeffect\nif (!ShaderStore.ShadersStore[name]) {\n ShaderStore.ShadersStore[name] = shader;\n}\n/** @internal */\nexport const lavaVertexShader = { name, shader };\n"]}
@@ -0,0 +1,45 @@
1
+ import type { Nullable } from "@babylonjs/core/types.js";
2
+ import type { Matrix } from "@babylonjs/core/Maths/math.vector.js";
3
+ import { Color3 } from "@babylonjs/core/Maths/math.color.js";
4
+ import type { IAnimatable } from "@babylonjs/core/Animations/animatable.interface.js";
5
+ import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
6
+ import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
7
+ import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
8
+ import type { SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
9
+ import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
10
+ import { Scene } from "@babylonjs/core/scene.js";
11
+ import "./lava.fragment.js";
12
+ import "./lava.vertex.js";
13
+ export declare class LavaMaterial extends PushMaterial {
14
+ private _diffuseTexture;
15
+ diffuseTexture: BaseTexture;
16
+ noiseTexture: BaseTexture;
17
+ fogColor: Color3;
18
+ speed: number;
19
+ movingSpeed: number;
20
+ lowFrequencySpeed: number;
21
+ fogDensity: number;
22
+ private _lastTime;
23
+ diffuseColor: Color3;
24
+ private _disableLighting;
25
+ disableLighting: boolean;
26
+ private _unlit;
27
+ unlit: boolean;
28
+ private _maxSimultaneousLights;
29
+ maxSimultaneousLights: number;
30
+ private _scaledDiffuse;
31
+ constructor(name: string, scene?: Scene);
32
+ needAlphaBlending(): boolean;
33
+ needAlphaTesting(): boolean;
34
+ getAlphaTestTexture(): Nullable<BaseTexture>;
35
+ isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
36
+ bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
37
+ getAnimatables(): IAnimatable[];
38
+ getActiveTextures(): BaseTexture[];
39
+ hasTexture(texture: BaseTexture): boolean;
40
+ dispose(forceDisposeEffect?: boolean): void;
41
+ clone(name: string): LavaMaterial;
42
+ serialize(): any;
43
+ getClassName(): string;
44
+ static Parse(source: any, scene: Scene, rootUrl: string): LavaMaterial;
45
+ }