@babylonjs/materials 5.0.0-beta.9 → 5.0.0-rc.10

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 (230) hide show
  1. package/cell/cell.fragment.d.ts +17 -17
  2. package/cell/cell.fragment.js +20 -18
  3. package/cell/cell.fragment.js.map +1 -1
  4. package/cell/cell.vertex.d.ts +18 -18
  5. package/cell/cell.vertex.js +21 -19
  6. package/cell/cell.vertex.js.map +1 -1
  7. package/cell/cellMaterial.d.ts +37 -37
  8. package/cell/cellMaterial.js +304 -290
  9. package/cell/cellMaterial.js.map +1 -1
  10. package/cell/index.d.ts +1 -1
  11. package/cell/index.js +1 -1
  12. package/cell/index.js.map +1 -1
  13. package/custom/customMaterial.d.ts +69 -69
  14. package/custom/customMaterial.js +216 -218
  15. package/custom/customMaterial.js.map +1 -1
  16. package/custom/index.d.ts +2 -2
  17. package/custom/index.js +2 -2
  18. package/custom/index.js.map +1 -1
  19. package/custom/pbrCustomMaterial.d.ts +71 -71
  20. package/custom/pbrCustomMaterial.js +241 -243
  21. package/custom/pbrCustomMaterial.js.map +1 -1
  22. package/fire/fire.fragment.d.ts +11 -11
  23. package/fire/fire.fragment.js +14 -12
  24. package/fire/fire.fragment.js.map +1 -1
  25. package/fire/fire.vertex.d.ts +15 -15
  26. package/fire/fire.vertex.js +18 -16
  27. package/fire/fire.vertex.js.map +1 -1
  28. package/fire/fireMaterial.d.ts +38 -38
  29. package/fire/fireMaterial.js +342 -327
  30. package/fire/fireMaterial.js.map +1 -1
  31. package/fire/index.d.ts +1 -1
  32. package/fire/index.js +1 -1
  33. package/fire/index.js.map +1 -1
  34. package/fur/fur.fragment.d.ts +17 -17
  35. package/fur/fur.fragment.js +20 -18
  36. package/fur/fur.fragment.js.map +1 -1
  37. package/fur/fur.vertex.d.ts +18 -18
  38. package/fur/fur.vertex.js +21 -19
  39. package/fur/fur.vertex.js.map +1 -1
  40. package/fur/furMaterial.d.ts +57 -56
  41. package/fur/furMaterial.js +500 -480
  42. package/fur/furMaterial.js.map +1 -1
  43. package/fur/index.d.ts +1 -1
  44. package/fur/index.js +1 -1
  45. package/fur/index.js.map +1 -1
  46. package/gradient/gradient.fragment.d.ts +17 -17
  47. package/gradient/gradient.fragment.js +20 -18
  48. package/gradient/gradient.fragment.js.map +1 -1
  49. package/gradient/gradient.vertex.d.ts +18 -18
  50. package/gradient/gradient.vertex.js +21 -19
  51. package/gradient/gradient.vertex.js.map +1 -1
  52. package/gradient/gradientMaterial.d.ts +37 -37
  53. package/gradient/gradientMaterial.js +275 -259
  54. package/gradient/gradientMaterial.js.map +1 -1
  55. package/gradient/index.d.ts +1 -1
  56. package/gradient/index.js +1 -1
  57. package/gradient/index.js.map +1 -1
  58. package/grid/grid.fragment.d.ts +8 -8
  59. package/grid/grid.fragment.js +11 -9
  60. package/grid/grid.fragment.js.map +1 -1
  61. package/grid/grid.vertex.d.ts +9 -9
  62. package/grid/grid.vertex.js +12 -10
  63. package/grid/grid.vertex.js.map +1 -1
  64. package/grid/gridMaterial.d.ts +78 -77
  65. package/grid/gridMaterial.js +276 -261
  66. package/grid/gridMaterial.js.map +1 -1
  67. package/grid/index.d.ts +1 -1
  68. package/grid/index.js +1 -1
  69. package/grid/index.js.map +1 -1
  70. package/index.d.ts +15 -15
  71. package/index.js +16 -15
  72. package/index.js.map +1 -1
  73. package/lava/index.d.ts +1 -1
  74. package/lava/index.js +1 -1
  75. package/lava/index.js.map +1 -1
  76. package/lava/lava.fragment.d.ts +17 -17
  77. package/lava/lava.fragment.js +20 -18
  78. package/lava/lava.fragment.js.map +1 -1
  79. package/lava/lava.vertex.d.ts +18 -18
  80. package/lava/lava.vertex.js +21 -19
  81. package/lava/lava.vertex.js.map +1 -1
  82. package/lava/lavaMaterial.d.ts +45 -45
  83. package/lava/lavaMaterial.js +394 -378
  84. package/lava/lavaMaterial.js.map +1 -1
  85. package/legacy/legacy-cell.d.ts +1 -1
  86. package/legacy/legacy-cell.js +13 -12
  87. package/legacy/legacy-cell.js.map +1 -1
  88. package/legacy/legacy-custom.d.ts +1 -1
  89. package/legacy/legacy-custom.js +13 -12
  90. package/legacy/legacy-custom.js.map +1 -1
  91. package/legacy/legacy-fire.d.ts +1 -1
  92. package/legacy/legacy-fire.js +13 -12
  93. package/legacy/legacy-fire.js.map +1 -1
  94. package/legacy/legacy-fur.d.ts +1 -1
  95. package/legacy/legacy-fur.js +13 -12
  96. package/legacy/legacy-fur.js.map +1 -1
  97. package/legacy/legacy-gradient.d.ts +1 -1
  98. package/legacy/legacy-gradient.js +13 -12
  99. package/legacy/legacy-gradient.js.map +1 -1
  100. package/legacy/legacy-grid.d.ts +1 -1
  101. package/legacy/legacy-grid.js +13 -12
  102. package/legacy/legacy-grid.js.map +1 -1
  103. package/legacy/legacy-lava.d.ts +1 -1
  104. package/legacy/legacy-lava.js +13 -12
  105. package/legacy/legacy-lava.js.map +1 -1
  106. package/legacy/legacy-mix.d.ts +1 -1
  107. package/legacy/legacy-mix.js +13 -12
  108. package/legacy/legacy-mix.js.map +1 -1
  109. package/legacy/legacy-normal.d.ts +1 -1
  110. package/legacy/legacy-normal.js +13 -12
  111. package/legacy/legacy-normal.js.map +1 -1
  112. package/legacy/legacy-shadowOnly.d.ts +1 -1
  113. package/legacy/legacy-shadowOnly.js +13 -12
  114. package/legacy/legacy-shadowOnly.js.map +1 -1
  115. package/legacy/legacy-simple.d.ts +1 -1
  116. package/legacy/legacy-simple.js +13 -12
  117. package/legacy/legacy-simple.js.map +1 -1
  118. package/legacy/legacy-sky.d.ts +1 -1
  119. package/legacy/legacy-sky.js +13 -12
  120. package/legacy/legacy-sky.js.map +1 -1
  121. package/legacy/legacy-terrain.d.ts +1 -1
  122. package/legacy/legacy-terrain.js +13 -12
  123. package/legacy/legacy-terrain.js.map +1 -1
  124. package/legacy/legacy-triPlanar.d.ts +1 -1
  125. package/legacy/legacy-triPlanar.js +13 -12
  126. package/legacy/legacy-triPlanar.js.map +1 -1
  127. package/legacy/legacy-water.d.ts +1 -1
  128. package/legacy/legacy-water.js +13 -12
  129. package/legacy/legacy-water.js.map +1 -1
  130. package/legacy/legacy.d.ts +1 -1
  131. package/legacy/legacy.js +16 -15
  132. package/legacy/legacy.js.map +1 -1
  133. package/mix/index.d.ts +1 -1
  134. package/mix/index.js +1 -1
  135. package/mix/index.js.map +1 -1
  136. package/mix/mix.fragment.d.ts +17 -17
  137. package/mix/mix.fragment.js +20 -18
  138. package/mix/mix.fragment.js.map +1 -1
  139. package/mix/mix.vertex.d.ts +18 -18
  140. package/mix/mix.vertex.js +21 -19
  141. package/mix/mix.vertex.js.map +1 -1
  142. package/mix/mixMaterial.d.ts +65 -65
  143. package/mix/mixMaterial.js +510 -483
  144. package/mix/mixMaterial.js.map +1 -1
  145. package/normal/index.d.ts +1 -1
  146. package/normal/index.js +1 -1
  147. package/normal/index.js.map +1 -1
  148. package/normal/normal.fragment.d.ts +17 -17
  149. package/normal/normal.fragment.js +20 -18
  150. package/normal/normal.fragment.js.map +1 -1
  151. package/normal/normal.vertex.d.ts +18 -18
  152. package/normal/normal.vertex.js +21 -19
  153. package/normal/normal.vertex.js.map +1 -1
  154. package/normal/normalMaterial.d.ts +36 -36
  155. package/normal/normalMaterial.js +336 -322
  156. package/normal/normalMaterial.js.map +1 -1
  157. package/package.json +22 -254
  158. package/readme.md +2 -2
  159. package/shadowOnly/index.d.ts +1 -1
  160. package/shadowOnly/index.js +1 -1
  161. package/shadowOnly/index.js.map +1 -1
  162. package/shadowOnly/shadowOnly.fragment.d.ts +16 -16
  163. package/shadowOnly/shadowOnly.fragment.js +19 -17
  164. package/shadowOnly/shadowOnly.fragment.js.map +1 -1
  165. package/shadowOnly/shadowOnly.vertex.d.ts +18 -18
  166. package/shadowOnly/shadowOnly.vertex.js +21 -19
  167. package/shadowOnly/shadowOnly.vertex.js.map +1 -1
  168. package/shadowOnly/shadowOnlyMaterial.d.ts +30 -30
  169. package/shadowOnly/shadowOnlyMaterial.js +254 -240
  170. package/shadowOnly/shadowOnlyMaterial.js.map +1 -1
  171. package/simple/index.d.ts +1 -1
  172. package/simple/index.js +1 -1
  173. package/simple/index.js.map +1 -1
  174. package/simple/simple.fragment.d.ts +17 -17
  175. package/simple/simple.fragment.js +20 -18
  176. package/simple/simple.fragment.js.map +1 -1
  177. package/simple/simple.vertex.d.ts +18 -18
  178. package/simple/simple.vertex.js +21 -19
  179. package/simple/simple.vertex.js.map +1 -1
  180. package/simple/simpleMaterial.d.ts +35 -35
  181. package/simple/simpleMaterial.js +295 -281
  182. package/simple/simpleMaterial.js.map +1 -1
  183. package/sky/index.d.ts +1 -1
  184. package/sky/index.js +1 -1
  185. package/sky/index.js.map +1 -1
  186. package/sky/sky.fragment.d.ts +10 -10
  187. package/sky/sky.fragment.js +13 -11
  188. package/sky/sky.fragment.js.map +1 -1
  189. package/sky/sky.vertex.d.ts +9 -9
  190. package/sky/sky.vertex.js +12 -10
  191. package/sky/sky.vertex.js.map +1 -1
  192. package/sky/skyMaterial.d.ts +147 -147
  193. package/sky/skyMaterial.js +359 -340
  194. package/sky/skyMaterial.js.map +1 -1
  195. package/terrain/index.d.ts +1 -1
  196. package/terrain/index.js +1 -1
  197. package/terrain/index.js.map +1 -1
  198. package/terrain/terrain.fragment.d.ts +17 -17
  199. package/terrain/terrain.fragment.js +20 -18
  200. package/terrain/terrain.fragment.js.map +1 -1
  201. package/terrain/terrain.vertex.d.ts +18 -18
  202. package/terrain/terrain.vertex.js +21 -19
  203. package/terrain/terrain.vertex.js.map +1 -1
  204. package/terrain/terrainMaterial.d.ts +50 -50
  205. package/terrain/terrainMaterial.js +426 -411
  206. package/terrain/terrainMaterial.js.map +1 -1
  207. package/triPlanar/index.d.ts +1 -1
  208. package/triPlanar/index.js +1 -1
  209. package/triPlanar/index.js.map +1 -1
  210. package/triPlanar/triPlanarMaterial.d.ts +49 -49
  211. package/triPlanar/triPlanarMaterial.js +403 -391
  212. package/triPlanar/triPlanarMaterial.js.map +1 -1
  213. package/triPlanar/triplanar.fragment.d.ts +17 -17
  214. package/triPlanar/triplanar.fragment.js +20 -18
  215. package/triPlanar/triplanar.fragment.js.map +1 -1
  216. package/triPlanar/triplanar.vertex.d.ts +18 -18
  217. package/triPlanar/triplanar.vertex.js +21 -19
  218. package/triPlanar/triplanar.vertex.js.map +1 -1
  219. package/water/index.d.ts +1 -1
  220. package/water/index.js +1 -1
  221. package/water/index.js.map +1 -1
  222. package/water/water.fragment.d.ts +19 -19
  223. package/water/water.fragment.js +22 -20
  224. package/water/water.fragment.js.map +1 -1
  225. package/water/water.vertex.d.ts +20 -20
  226. package/water/water.vertex.js +23 -21
  227. package/water/water.vertex.js.map +1 -1
  228. package/water/waterMaterial.d.ts +135 -132
  229. package/water/waterMaterial.js +736 -705
  230. package/water/waterMaterial.js.map +1 -1
@@ -1,20 +1,20 @@
1
- import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration";
2
- import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration";
3
- import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration";
4
- import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
5
- import "@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration";
6
- import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration";
7
- import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration";
8
- import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration";
9
- import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex";
10
- import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex";
11
- import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation";
12
- import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex";
13
- import "@babylonjs/core/Shaders/ShadersInclude/fogVertex";
14
- import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex";
15
- import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex";
16
- /** @hidden */
17
- export declare var waterVertexShader: {
18
- name: string;
19
- shader: string;
20
- };
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/fogVertexDeclaration.js";
6
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
7
+ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
8
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.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/logDepthVertex.js";
16
+ /** @hidden */
17
+ export declare const waterVertexShader: {
18
+ name: string;
19
+ shader: string;
20
+ };
@@ -1,22 +1,24 @@
1
- import { ShaderStore } from "@babylonjs/core/Engines/shaderStore.js";
2
- import "@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.js";
3
- import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js";
4
- import "@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.js";
5
- import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.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/logDepthDeclaration.js";
10
- import "@babylonjs/core/Shaders/ShadersInclude/instancesVertex.js";
11
- import "@babylonjs/core/Shaders/ShadersInclude/bonesVertex.js";
12
- import "@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.js";
13
- import "@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.js";
14
- import "@babylonjs/core/Shaders/ShadersInclude/fogVertex.js";
15
- import "@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.js";
16
- import "@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.js";
17
- var name = 'waterVertexShader';
18
- var shader = "precision highp float;\n\nattribute 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\n#include<instancesDeclaration>\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform mat4 normalMatrix;\nuniform vec2 vNormalInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\n\nuniform mat4 worldReflectionViewProjection;\nuniform vec2 windDirection;\nuniform float waveLength;\nuniform float time;\nuniform float windForce;\nuniform float waveHeight;\nuniform float waveSpeed;\nuniform float waveCount;\n\nvarying vec3 vPosition;\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef BUMP\nif (vNormalInfos.x == 0.)\n{\nvNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\n#endif\n}\nelse\n{\nvNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));\n#endif\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\n\n#include<shadowsVertex>[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#elif INSTANCESCOLOR\nvColor=instanceColor;\n#endif\n\n#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif\nfloat finalWaveCount=1.0/(waveCount*0.5);\nvec3 p=position;\nfloat newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\n+(cos(((p.z/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.y*5.0);\np.y+=abs(newY);\ngl_Position=viewProjection*finalWorld*vec4(p,1.0);\n#ifdef REFLECTION\nworldPos=viewProjection*finalWorld*vec4(p,1.0);\n\nvPosition=position;\nvRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvRefractionMapTexCoord.z=worldPos.w;\nworldPos=worldReflectionViewProjection*vec4(position,1.0);\nvReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvReflectionMapTexCoord.z=worldPos.w;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n";
19
- ShaderStore.ShadersStore[name] = shader;
20
- /** @hidden */
21
- export var waterVertexShader = { name: name, shader: shader };
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/fogVertexDeclaration.js";
8
+ import "@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.js";
9
+ import "@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.js";
10
+ import "@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.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/logDepthVertex.js";
18
+ var name = "waterVertexShader";
19
+ var shader = "precision highp float;\nattribute 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;\nuniform mat4 viewProjection;\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform mat4 normalMatrix;\nuniform vec2 vNormalInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\nuniform mat4 worldReflectionViewProjection;\nuniform vec2 windDirection;\nuniform float waveLength;\nuniform float time;\nuniform float windForce;\nuniform float waveHeight;\nuniform float waveSpeed;\nuniform float waveCount;\nvarying vec3 vPosition;\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=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 BUMP\nif (vNormalInfos.x==0.)\n{\nvNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\n#endif\n}\nelse\n{\nvNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));\n#endif\n}\n#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#ifdef VERTEXCOLOR\nvColor=color;\n#elif INSTANCESCOLOR\nvColor=instanceColor;\n#endif\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\n#endif\nfloat finalWaveCount=1.0/(waveCount*0.5);\nvec3 p=position;\nfloat newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\n+ (cos(((p.z/finalWaveCount)+ time*waveSpeed))*waveHeight*windDirection.y*5.0);\np.y+=abs(newY);\ngl_Position=viewProjection*finalWorld*vec4(p,1.0);\n#ifdef REFLECTION\nworldPos=viewProjection*finalWorld*vec4(p,1.0);\nvPosition=position;\nvRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvRefractionMapTexCoord.z=worldPos.w;\nworldPos=worldReflectionViewProjection*vec4(position,1.0);\nvReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvReflectionMapTexCoord.z=worldPos.w;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n";
20
+ // Sideeffect
21
+ ShaderStore.ShadersStore[name] = shader;
22
+ /** @hidden */
23
+ export var waterVertexShader = { name: name, shader: shader };
22
24
  //# sourceMappingURL=water.vertex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"water.vertex.js","sourceRoot":"","sources":["../../../sourceES6/materialsLibrary/src/water/water.vertex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,yDAAyD,CAAC;AACjE,OAAO,wEAAwE,CAAC;AAChF,OAAO,6DAA6D,CAAC;AACrE,OAAO,mEAAmE,CAAC;AAC3E,OAAO,6DAA6D,CAAC;AACrE,OAAO,iEAAiE,CAAC;AACzE,OAAO,4DAA4D,CAAC;AACpE,OAAO,4DAA4D,CAAC;AACpE,OAAO,wDAAwD,CAAC;AAChE,OAAO,oDAAoD,CAAC;AAC5D,OAAO,6DAA6D,CAAC;AACrE,OAAO,wDAAwD,CAAC;AAChE,OAAO,kDAAkD,CAAC;AAC1D,OAAO,sDAAsD,CAAC;AAC9D,OAAO,uDAAuD,CAAC;AAE/D,IAAI,IAAI,GAAG,mBAAmB,CAAC;AAC/B,IAAI,MAAM,GAAG,+qGAgIZ,CAAC;AAEF,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAI,iBAAiB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC","sourcesContent":["import { ShaderStore } from \"@babylonjs/core/Engines/shaderStore\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/instancesVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bonesVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/fogVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/shadowsVertex\";\nimport \"@babylonjs/core/Shaders/ShadersInclude/logDepthVertex\";\n\nlet name = 'waterVertexShader';\nlet shader = `precision highp float;\n\nattribute 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\n#include<instancesDeclaration>\nuniform mat4 view;\nuniform mat4 viewProjection;\n#ifdef BUMP\nvarying vec2 vNormalUV;\n#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\n#endif\nuniform mat4 normalMatrix;\nuniform vec2 vNormalInfos;\n#endif\n#ifdef POINTSIZE\nuniform float pointSize;\n#endif\n\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\n\nuniform mat4 worldReflectionViewProjection;\nuniform vec2 windDirection;\nuniform float waveLength;\nuniform float time;\nuniform float windForce;\nuniform float waveHeight;\nuniform float waveSpeed;\nuniform float waveCount;\n\nvarying vec3 vPosition;\nvarying vec3 vRefractionMapTexCoord;\nvarying vec3 vReflectionMapTexCoord;\n#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\nvPositionW=vec3(worldPos);\n#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\n#endif\n\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\n#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\n#endif\n#ifdef BUMP\nif (vNormalInfos.x == 0.)\n{\nvNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\n#endif\n}\nelse\n{\nvNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));\n#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));\n#endif\n}\n#endif\n\n#include<clipPlaneVertex>\n\n#include<fogVertex>\n\n#include<shadowsVertex>[0..maxSimultaneousLights]\n\n#ifdef VERTEXCOLOR\nvColor=color;\n#elif INSTANCESCOLOR\nvColor=instanceColor;\n#endif\n\n#ifdef POINTSIZE\ngl_PointSize=pointSize;\n#endif\nfloat finalWaveCount=1.0/(waveCount*0.5);\nvec3 p=position;\nfloat newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\n+(cos(((p.z/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.y*5.0);\np.y+=abs(newY);\ngl_Position=viewProjection*finalWorld*vec4(p,1.0);\n#ifdef REFLECTION\nworldPos=viewProjection*finalWorld*vec4(p,1.0);\n\nvPosition=position;\nvRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvRefractionMapTexCoord.z=worldPos.w;\nworldPos=worldReflectionViewProjection*vec4(position,1.0);\nvReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\nvReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\nvReflectionMapTexCoord.z=worldPos.w;\n#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\n`;\n\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport var waterVertexShader = { name, shader };\n"]}
1
+ {"version":3,"file":"water.vertex.js","sourceRoot":"","sources":["../../../../../lts/materials/generated/water/water.vertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,+CAAiC;AACvD,oEAAsD;AACtD,mFAAqE;AACrE,wEAA0D;AAC1D,8EAAgE;AAChE,wEAA0D;AAC1D,4EAA8D;AAC9D,uEAAyD;AACzD,uEAAyD;AACzD,mEAAqD;AACrD,+DAAiD;AACjD,wEAA0D;AAC1D,mEAAqD;AACrD,6DAA+C;AAC/C,iEAAmD;AACnD,kEAAoD;AAEpD,IAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,IAAM,MAAM,GAAG,irGAoHd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC,cAAc;AACd,MAAM,CAAC,IAAM,iBAAiB,GAAG,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,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/fogVertexDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightFragmentDeclaration\";\nimport \"core/Shaders/ShadersInclude/lightUboDeclaration\";\nimport \"core/Shaders/ShadersInclude/logDepthDeclaration\";\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/logDepthVertex\";\n\nconst name = \"waterVertexShader\";\nconst shader = `precision highp float;\rattribute vec3 position;\r#ifdef NORMAL\nattribute vec3 normal;\r#endif\n#ifdef UV1\nattribute vec2 uv;\r#endif\n#ifdef UV2\nattribute vec2 uv2;\r#endif\n#ifdef VERTEXCOLOR\nattribute vec4 color;\r#endif\n#include<bonesDeclaration>\n#include<bakedVertexAnimationDeclaration>\n#include<instancesDeclaration>\nuniform mat4 view;\runiform mat4 viewProjection;\r#ifdef BUMP\nvarying vec2 vNormalUV;\r#ifdef BUMPSUPERIMPOSE\nvarying vec2 vNormalUV2;\r#endif\nuniform mat4 normalMatrix;\runiform vec2 vNormalInfos;\r#endif\n#ifdef POINTSIZE\nuniform float pointSize;\r#endif\nvarying vec3 vPositionW;\r#ifdef NORMAL\nvarying vec3 vNormalW;\r#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR)\nvarying vec4 vColor;\r#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<logDepthDeclaration>\nuniform mat4 worldReflectionViewProjection;\runiform vec2 windDirection;\runiform float waveLength;\runiform float time;\runiform float windForce;\runiform float waveHeight;\runiform float waveSpeed;\runiform float waveCount;\rvarying vec3 vPosition;\rvarying vec3 vRefractionMapTexCoord;\rvarying vec3 vReflectionMapTexCoord;\r#define CUSTOM_VERTEX_DEFINITIONS\nvoid main(void) {\r#define CUSTOM_VERTEX_MAIN_BEGIN\n#include<instancesVertex>\n#include<bonesVertex>\n#include<bakedVertexAnimation>\nvec4 worldPos=finalWorld*vec4(position,1.0);\rvPositionW=vec3(worldPos);\r#ifdef NORMAL\nvNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\r#endif\n#ifndef UV1\nvec2 uv=vec2(0.,0.);\r#endif\n#ifndef UV2\nvec2 uv2=vec2(0.,0.);\r#endif\n#ifdef BUMP\nif (vNormalInfos.x==0.)\r{\rvNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\r#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\r#endif\n}\relse\r{\rvNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection ,1.0,0.0));\r#ifdef BUMPSUPERIMPOSE\nvNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection ,1.0,0.0));\r#endif\n}\r#endif\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<shadowsVertex>[0..maxSimultaneousLights]\n#ifdef VERTEXCOLOR\nvColor=color;\r#elif INSTANCESCOLOR\nvColor=instanceColor;\r#endif\n#if defined(POINTSIZE) && !defined(WEBGPU)\ngl_PointSize=pointSize;\r#endif\nfloat finalWaveCount=1.0/(waveCount*0.5);\rvec3 p=position;\rfloat newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\r+ (cos(((p.z/finalWaveCount)+ time*waveSpeed))*waveHeight*windDirection.y*5.0);\rp.y+=abs(newY);\rgl_Position=viewProjection*finalWorld*vec4(p,1.0);\r#ifdef REFLECTION\nworldPos=viewProjection*finalWorld*vec4(p,1.0);\rvPosition=position;\rvRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\rvRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\rvRefractionMapTexCoord.z=worldPos.w;\rworldPos=worldReflectionViewProjection*vec4(position,1.0);\rvReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\rvReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\rvReflectionMapTexCoord.z=worldPos.w;\r#endif\n#include<logDepthVertex>\n#define CUSTOM_VERTEX_MAIN_END\n}\r`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @hidden */\nexport const waterVertexShader = { name, shader };\n"]}
@@ -1,132 +1,135 @@
1
- import { Nullable } from "@babylonjs/core/types";
2
- import { Matrix, Vector2 } from "@babylonjs/core/Maths/math.vector";
3
- import { Color3 } from "@babylonjs/core/Maths/math.color";
4
- import { IAnimatable } from '@babylonjs/core/Animations/animatable.interface';
5
- import { SmartArray } from "@babylonjs/core/Misc/smartArray";
6
- import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
7
- import { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture";
8
- import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial";
9
- import { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh";
10
- import { SubMesh } from "@babylonjs/core/Meshes/subMesh";
11
- import { Mesh } from "@babylonjs/core/Meshes/mesh";
12
- import { Scene } from "@babylonjs/core/scene";
13
- import "./water.fragment";
14
- import "./water.vertex";
15
- export declare class WaterMaterial extends PushMaterial {
16
- renderTargetSize: Vector2;
17
- private _bumpTexture;
18
- bumpTexture: BaseTexture;
19
- diffuseColor: Color3;
20
- specularColor: Color3;
21
- specularPower: number;
22
- private _disableLighting;
23
- disableLighting: boolean;
24
- private _maxSimultaneousLights;
25
- maxSimultaneousLights: number;
26
- /**
27
- * Defines the wind force.
28
- */
29
- windForce: number;
30
- /**
31
- * Defines the direction of the wind in the plane (X, Z).
32
- */
33
- windDirection: Vector2;
34
- /**
35
- * Defines the height of the waves.
36
- */
37
- waveHeight: number;
38
- /**
39
- * Defines the bump height related to the bump map.
40
- */
41
- bumpHeight: number;
42
- /**
43
- * Defines wether or not: to add a smaller moving bump to less steady waves.
44
- */
45
- private _bumpSuperimpose;
46
- bumpSuperimpose: boolean;
47
- /**
48
- * Defines wether or not color refraction and reflection differently with .waterColor2 and .colorBlendFactor2. Non-linear (physically correct) fresnel.
49
- */
50
- private _fresnelSeparate;
51
- fresnelSeparate: boolean;
52
- /**
53
- * Defines wether or not bump Wwves modify the reflection.
54
- */
55
- private _bumpAffectsReflection;
56
- bumpAffectsReflection: boolean;
57
- /**
58
- * Defines the water color blended with the refraction (near).
59
- */
60
- waterColor: Color3;
61
- /**
62
- * Defines the blend factor related to the water color.
63
- */
64
- colorBlendFactor: number;
65
- /**
66
- * Defines the water color blended with the reflection (far).
67
- */
68
- waterColor2: Color3;
69
- /**
70
- * Defines the blend factor related to the water color (reflection, far).
71
- */
72
- colorBlendFactor2: number;
73
- /**
74
- * Defines the maximum length of a wave.
75
- */
76
- waveLength: number;
77
- /**
78
- * Defines the waves speed.
79
- */
80
- waveSpeed: number;
81
- /**
82
- * Defines the number of times waves are repeated. This is typically used to adjust waves count according to the ground's size where the material is applied on.
83
- */
84
- waveCount: number;
85
- /**
86
- * Sets or gets whether or not automatic clipping should be enabled or not. Setting to true will save performances and
87
- * will avoid calculating useless pixels in the pixel shader of the water material.
88
- */
89
- disableClipPlane: boolean;
90
- protected _renderTargets: SmartArray<RenderTargetTexture>;
91
- private _mesh;
92
- private _refractionRTT;
93
- private _reflectionRTT;
94
- private _reflectionTransform;
95
- private _lastTime;
96
- private _lastDeltaTime;
97
- private _useLogarithmicDepth;
98
- private _waitingRenderList;
99
- private _imageProcessingConfiguration;
100
- private _imageProcessingObserver;
101
- /**
102
- * Gets a boolean indicating that current material needs to register RTT
103
- */
104
- get hasRenderTargetTextures(): boolean;
105
- /**
106
- * Constructor
107
- */
108
- constructor(name: string, scene?: Scene, renderTargetSize?: Vector2);
109
- get useLogarithmicDepth(): boolean;
110
- set useLogarithmicDepth(value: boolean);
111
- get refractionTexture(): Nullable<RenderTargetTexture>;
112
- get reflectionTexture(): Nullable<RenderTargetTexture>;
113
- addToRenderList(node: any): void;
114
- enableRenderTargets(enable: boolean): void;
115
- getRenderList(): Nullable<AbstractMesh[]>;
116
- get renderTargetsEnabled(): boolean;
117
- needAlphaBlending(): boolean;
118
- needAlphaTesting(): boolean;
119
- getAlphaTestTexture(): Nullable<BaseTexture>;
120
- isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
121
- bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
122
- private _createRenderTargets;
123
- getAnimatables(): IAnimatable[];
124
- getActiveTextures(): BaseTexture[];
125
- hasTexture(texture: BaseTexture): boolean;
126
- dispose(forceDisposeEffect?: boolean): void;
127
- clone(name: string): WaterMaterial;
128
- serialize(): any;
129
- getClassName(): string;
130
- static Parse(source: any, scene: Scene, rootUrl: string): WaterMaterial;
131
- static CreateDefaultMesh(name: string, scene: Scene): Mesh;
132
- }
1
+ import type { Nullable } from "@babylonjs/core/types.js";
2
+ import { Matrix, Vector2 } 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 { SmartArray } from "@babylonjs/core/Misc/smartArray.js";
6
+ import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture.js";
7
+ import { RenderTargetTexture } from "@babylonjs/core/Materials/Textures/renderTargetTexture.js";
8
+ import { PushMaterial } from "@babylonjs/core/Materials/pushMaterial.js";
9
+ import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh.js";
10
+ import type { SubMesh } from "@babylonjs/core/Meshes/subMesh.js";
11
+ import type { Mesh } from "@babylonjs/core/Meshes/mesh.js";
12
+ import { Scene } from "@babylonjs/core/scene.js";
13
+ import "./water.fragment";
14
+ import "./water.vertex";
15
+ export declare class WaterMaterial extends PushMaterial {
16
+ renderTargetSize: Vector2;
17
+ private _bumpTexture;
18
+ bumpTexture: BaseTexture;
19
+ diffuseColor: Color3;
20
+ specularColor: Color3;
21
+ specularPower: number;
22
+ private _disableLighting;
23
+ disableLighting: boolean;
24
+ private _maxSimultaneousLights;
25
+ maxSimultaneousLights: number;
26
+ /**
27
+ * Defines the wind force.
28
+ */
29
+ windForce: number;
30
+ /**
31
+ * Defines the direction of the wind in the plane (X, Z).
32
+ */
33
+ windDirection: Vector2;
34
+ /**
35
+ * Defines the height of the waves.
36
+ */
37
+ waveHeight: number;
38
+ /**
39
+ * Defines the bump height related to the bump map.
40
+ */
41
+ bumpHeight: number;
42
+ /**
43
+ * Defines wether or not: to add a smaller moving bump to less steady waves.
44
+ */
45
+ private _bumpSuperimpose;
46
+ bumpSuperimpose: boolean;
47
+ /**
48
+ * Defines wether or not color refraction and reflection differently with .waterColor2 and .colorBlendFactor2. Non-linear (physically correct) fresnel.
49
+ */
50
+ private _fresnelSeparate;
51
+ fresnelSeparate: boolean;
52
+ /**
53
+ * Defines wether or not bump Wwves modify the reflection.
54
+ */
55
+ private _bumpAffectsReflection;
56
+ bumpAffectsReflection: boolean;
57
+ /**
58
+ * Defines the water color blended with the refraction (near).
59
+ */
60
+ waterColor: Color3;
61
+ /**
62
+ * Defines the blend factor related to the water color.
63
+ */
64
+ colorBlendFactor: number;
65
+ /**
66
+ * Defines the water color blended with the reflection (far).
67
+ */
68
+ waterColor2: Color3;
69
+ /**
70
+ * Defines the blend factor related to the water color (reflection, far).
71
+ */
72
+ colorBlendFactor2: number;
73
+ /**
74
+ * Defines the maximum length of a wave.
75
+ */
76
+ waveLength: number;
77
+ /**
78
+ * Defines the waves speed.
79
+ */
80
+ waveSpeed: number;
81
+ /**
82
+ * Defines the number of times waves are repeated. This is typically used to adjust waves count according to the ground's size where the material is applied on.
83
+ */
84
+ waveCount: number;
85
+ /**
86
+ * Sets or gets whether or not automatic clipping should be enabled or not. Setting to true will save performances and
87
+ * will avoid calculating useless pixels in the pixel shader of the water material.
88
+ */
89
+ disableClipPlane: boolean;
90
+ protected _renderTargets: SmartArray<RenderTargetTexture>;
91
+ private _mesh;
92
+ private _refractionRTT;
93
+ private _reflectionRTT;
94
+ private _reflectionTransform;
95
+ private _lastTime;
96
+ private _lastDeltaTime;
97
+ private _useLogarithmicDepth;
98
+ private _waitingRenderList;
99
+ private _imageProcessingConfiguration;
100
+ private _imageProcessingObserver;
101
+ /**
102
+ * Gets a boolean indicating that current material needs to register RTT
103
+ */
104
+ get hasRenderTargetTextures(): boolean;
105
+ /**
106
+ * Constructor
107
+ * @param name
108
+ * @param scene
109
+ * @param renderTargetSize
110
+ */
111
+ constructor(name: string, scene?: Scene, renderTargetSize?: Vector2);
112
+ get useLogarithmicDepth(): boolean;
113
+ set useLogarithmicDepth(value: boolean);
114
+ get refractionTexture(): Nullable<RenderTargetTexture>;
115
+ get reflectionTexture(): Nullable<RenderTargetTexture>;
116
+ addToRenderList(node: any): void;
117
+ enableRenderTargets(enable: boolean): void;
118
+ getRenderList(): Nullable<AbstractMesh[]>;
119
+ get renderTargetsEnabled(): boolean;
120
+ needAlphaBlending(): boolean;
121
+ needAlphaTesting(): boolean;
122
+ getAlphaTestTexture(): Nullable<BaseTexture>;
123
+ isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
124
+ bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
125
+ private _createRenderTargets;
126
+ getAnimatables(): IAnimatable[];
127
+ getActiveTextures(): BaseTexture[];
128
+ hasTexture(texture: BaseTexture): boolean;
129
+ dispose(forceDisposeEffect?: boolean): void;
130
+ clone(name: string): WaterMaterial;
131
+ serialize(): any;
132
+ getClassName(): string;
133
+ static Parse(source: any, scene: Scene, rootUrl: string): WaterMaterial;
134
+ static CreateDefaultMesh(name: string, scene: Scene): Mesh;
135
+ }