babylonjs.materials.module.d.ts 100 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397
  1. declare module "babylonjs-materials/cell/cell.fragment" {
  2. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  3. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  4. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  5. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  6. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  7. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  8. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  9. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  10. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  11. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  12. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  13. /** @hidden */
  14. export var cellPixelShader: {
  15. name: string;
  16. shader: string;
  17. };
  18. }
  19. declare module "babylonjs-materials/cell/cell.vertex" {
  20. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  21. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  22. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  23. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  24. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  25. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  26. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  27. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  28. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  29. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  30. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  31. /** @hidden */
  32. export var cellVertexShader: {
  33. name: string;
  34. shader: string;
  35. };
  36. }
  37. declare module "babylonjs-materials/cell/cellMaterial" {
  38. import { Nullable } from "babylonjs/types";
  39. import { Color3, Matrix } from "babylonjs/Maths/math";
  40. import { IAnimatable } from "babylonjs/Misc/tools";
  41. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  42. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  43. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  44. import { SubMesh } from "babylonjs/Meshes/subMesh";
  45. import { Mesh } from "babylonjs/Meshes/mesh";
  46. import { Scene } from "babylonjs/scene";
  47. import "babylonjs-materials/cell/cell.fragment";
  48. import "babylonjs-materials/cell/cell.vertex";
  49. export class CellMaterial extends PushMaterial {
  50. private _diffuseTexture;
  51. diffuseTexture: BaseTexture;
  52. diffuseColor: Color3;
  53. _computeHighLevel: boolean;
  54. computeHighLevel: boolean;
  55. private _disableLighting;
  56. disableLighting: boolean;
  57. private _maxSimultaneousLights;
  58. maxSimultaneousLights: number;
  59. private _renderId;
  60. constructor(name: string, scene: Scene);
  61. needAlphaBlending(): boolean;
  62. needAlphaTesting(): boolean;
  63. getAlphaTestTexture(): Nullable<BaseTexture>;
  64. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  65. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  66. getAnimatables(): IAnimatable[];
  67. getActiveTextures(): BaseTexture[];
  68. hasTexture(texture: BaseTexture): boolean;
  69. dispose(forceDisposeEffect?: boolean): void;
  70. getClassName(): string;
  71. clone(name: string): CellMaterial;
  72. serialize(): any;
  73. static Parse(source: any, scene: Scene, rootUrl: string): CellMaterial;
  74. }
  75. }
  76. declare module "babylonjs-materials/cell/index" {
  77. export * from "babylonjs-materials/cell/cellMaterial";
  78. }
  79. declare module "babylonjs-materials/custom/customMaterial" {
  80. import { Texture } from "babylonjs/Materials/Textures/texture";
  81. import { Effect } from "babylonjs/Materials/effect";
  82. import { StandardMaterialDefines } from "babylonjs/Materials/standardMaterial";
  83. import { StandardMaterial } from "babylonjs/Materials/standardMaterial";
  84. import { Mesh } from "babylonjs/Meshes/mesh";
  85. import { Scene } from "babylonjs/scene";
  86. export class CustomShaderStructure {
  87. FragmentStore: string;
  88. VertexStore: string;
  89. constructor();
  90. }
  91. export class ShaderSpecialParts {
  92. constructor();
  93. Fragment_Begin: string;
  94. Fragment_Definitions: string;
  95. Fragment_MainBegin: string;
  96. Fragment_Custom_Diffuse: string;
  97. Fragment_Custom_Alpha: string;
  98. Fragment_Before_FragColor: string;
  99. Vertex_Begin: string;
  100. Vertex_Definitions: string;
  101. Vertex_MainBegin: string;
  102. Vertex_Before_PositionUpdated: string;
  103. Vertex_Before_NormalUpdated: string;
  104. }
  105. export class CustomMaterial extends StandardMaterial {
  106. static ShaderIndexer: number;
  107. CustomParts: ShaderSpecialParts;
  108. _isCreatedShader: boolean;
  109. _createdShaderName: string;
  110. _customUniform: string[];
  111. _newUniforms: string[];
  112. _newUniformInstances: any[];
  113. _newSamplerInstances: Texture[];
  114. FragmentShader: string;
  115. VertexShader: string;
  116. AttachAfterBind(mesh: Mesh, effect: Effect): void;
  117. ReviewUniform(name: string, arr: string[]): string[];
  118. Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: StandardMaterialDefines): string;
  119. constructor(name: string, scene: Scene);
  120. AddUniform(name: string, kind: string, param: any): CustomMaterial;
  121. Fragment_Begin(shaderPart: string): CustomMaterial;
  122. Fragment_Definitions(shaderPart: string): CustomMaterial;
  123. Fragment_MainBegin(shaderPart: string): CustomMaterial;
  124. Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial;
  125. Fragment_Custom_Alpha(shaderPart: string): CustomMaterial;
  126. Fragment_Before_FragColor(shaderPart: string): CustomMaterial;
  127. Vertex_Begin(shaderPart: string): CustomMaterial;
  128. Vertex_Definitions(shaderPart: string): CustomMaterial;
  129. Vertex_MainBegin(shaderPart: string): CustomMaterial;
  130. Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial;
  131. Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial;
  132. }
  133. }
  134. declare module "babylonjs-materials/custom/index" {
  135. export * from "babylonjs-materials/custom/customMaterial";
  136. }
  137. declare module "babylonjs-materials/fire/fire.fragment" {
  138. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  139. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  140. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  141. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  142. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  143. /** @hidden */
  144. export var firePixelShader: {
  145. name: string;
  146. shader: string;
  147. };
  148. }
  149. declare module "babylonjs-materials/fire/fire.vertex" {
  150. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  151. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  152. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  153. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  154. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  155. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  156. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  157. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  158. /** @hidden */
  159. export var fireVertexShader: {
  160. name: string;
  161. shader: string;
  162. };
  163. }
  164. declare module "babylonjs-materials/fire/fireMaterial" {
  165. import { Nullable } from "babylonjs/types";
  166. import { Color3, Matrix } from "babylonjs/Maths/math";
  167. import { IAnimatable } from "babylonjs/Misc/tools";
  168. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  169. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  170. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  171. import { SubMesh } from "babylonjs/Meshes/subMesh";
  172. import { Mesh } from "babylonjs/Meshes/mesh";
  173. import { Scene } from "babylonjs/scene";
  174. import "babylonjs-materials/fire/fire.fragment";
  175. import "babylonjs-materials/fire/fire.vertex";
  176. export class FireMaterial extends PushMaterial {
  177. private _diffuseTexture;
  178. diffuseTexture: Nullable<BaseTexture>;
  179. private _distortionTexture;
  180. distortionTexture: Nullable<BaseTexture>;
  181. private _opacityTexture;
  182. opacityTexture: Nullable<BaseTexture>;
  183. diffuseColor: Color3;
  184. speed: number;
  185. private _scaledDiffuse;
  186. private _renderId;
  187. private _lastTime;
  188. constructor(name: string, scene: Scene);
  189. needAlphaBlending(): boolean;
  190. needAlphaTesting(): boolean;
  191. getAlphaTestTexture(): Nullable<BaseTexture>;
  192. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  193. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  194. getAnimatables(): IAnimatable[];
  195. getActiveTextures(): BaseTexture[];
  196. hasTexture(texture: BaseTexture): boolean;
  197. getClassName(): string;
  198. dispose(forceDisposeEffect?: boolean): void;
  199. clone(name: string): FireMaterial;
  200. serialize(): any;
  201. static Parse(source: any, scene: Scene, rootUrl: string): FireMaterial;
  202. }
  203. }
  204. declare module "babylonjs-materials/fire/index" {
  205. export * from "babylonjs-materials/fire/fireMaterial";
  206. }
  207. declare module "babylonjs-materials/fur/fur.fragment" {
  208. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  209. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  210. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  211. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  212. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  213. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  214. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  215. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  216. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  217. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  218. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  219. /** @hidden */
  220. export var furPixelShader: {
  221. name: string;
  222. shader: string;
  223. };
  224. }
  225. declare module "babylonjs-materials/fur/fur.vertex" {
  226. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  227. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  228. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  229. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  230. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  231. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  232. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  233. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  234. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  235. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  236. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  237. /** @hidden */
  238. export var furVertexShader: {
  239. name: string;
  240. shader: string;
  241. };
  242. }
  243. declare module "babylonjs-materials/fur/furMaterial" {
  244. import { Nullable } from "babylonjs/types";
  245. import { Vector3, Color3, Matrix } from "babylonjs/Maths/math";
  246. import { IAnimatable } from "babylonjs/Misc/tools";
  247. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  248. import { DynamicTexture } from "babylonjs/Materials/Textures/dynamicTexture";
  249. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  250. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  251. import { SubMesh } from "babylonjs/Meshes/subMesh";
  252. import { Mesh } from "babylonjs/Meshes/mesh";
  253. import { Scene } from "babylonjs/scene";
  254. import "babylonjs-materials/fur/fur.fragment";
  255. import "babylonjs-materials/fur/fur.vertex";
  256. export class FurMaterial extends PushMaterial {
  257. private _diffuseTexture;
  258. diffuseTexture: BaseTexture;
  259. private _heightTexture;
  260. heightTexture: BaseTexture;
  261. diffuseColor: Color3;
  262. furLength: number;
  263. furAngle: number;
  264. furColor: Color3;
  265. furOffset: number;
  266. furSpacing: number;
  267. furGravity: Vector3;
  268. furSpeed: number;
  269. furDensity: number;
  270. furOcclusion: number;
  271. furTexture: DynamicTexture;
  272. private _disableLighting;
  273. disableLighting: boolean;
  274. private _maxSimultaneousLights;
  275. maxSimultaneousLights: number;
  276. highLevelFur: boolean;
  277. _meshes: AbstractMesh[];
  278. private _renderId;
  279. private _furTime;
  280. constructor(name: string, scene: Scene);
  281. furTime: number;
  282. needAlphaBlending(): boolean;
  283. needAlphaTesting(): boolean;
  284. getAlphaTestTexture(): Nullable<BaseTexture>;
  285. updateFur(): void;
  286. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  287. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  288. getAnimatables(): IAnimatable[];
  289. getActiveTextures(): BaseTexture[];
  290. hasTexture(texture: BaseTexture): boolean;
  291. dispose(forceDisposeEffect?: boolean): void;
  292. clone(name: string): FurMaterial;
  293. serialize(): any;
  294. getClassName(): string;
  295. static Parse(source: any, scene: Scene, rootUrl: string): FurMaterial;
  296. static GenerateTexture(name: string, scene: Scene): DynamicTexture;
  297. static FurifyMesh(sourceMesh: Mesh, quality: number): Mesh[];
  298. }
  299. }
  300. declare module "babylonjs-materials/fur/index" {
  301. export * from "babylonjs-materials/fur/furMaterial";
  302. }
  303. declare module "babylonjs-materials/gradient/gradient.fragment" {
  304. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  305. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  306. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  307. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  308. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  309. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  310. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  311. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  312. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  313. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  314. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  315. /** @hidden */
  316. export var gradientPixelShader: {
  317. name: string;
  318. shader: string;
  319. };
  320. }
  321. declare module "babylonjs-materials/gradient/gradient.vertex" {
  322. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  323. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  324. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  325. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  326. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  327. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  328. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  329. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  330. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  331. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  332. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  333. /** @hidden */
  334. export var gradientVertexShader: {
  335. name: string;
  336. shader: string;
  337. };
  338. }
  339. declare module "babylonjs-materials/gradient/gradientMaterial" {
  340. import { Nullable } from "babylonjs/types";
  341. import { Color3, Matrix } from "babylonjs/Maths/math";
  342. import { IAnimatable } from "babylonjs/Misc/tools";
  343. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  344. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  345. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  346. import { SubMesh } from "babylonjs/Meshes/subMesh";
  347. import { Mesh } from "babylonjs/Meshes/mesh";
  348. import { Scene } from "babylonjs/scene";
  349. import "babylonjs-materials/gradient/gradient.fragment";
  350. import "babylonjs-materials/gradient/gradient.vertex";
  351. export class GradientMaterial extends PushMaterial {
  352. private _maxSimultaneousLights;
  353. maxSimultaneousLights: number;
  354. topColor: Color3;
  355. topColorAlpha: number;
  356. bottomColor: Color3;
  357. bottomColorAlpha: number;
  358. offset: number;
  359. scale: number;
  360. smoothness: number;
  361. private _disableLighting;
  362. disableLighting: boolean;
  363. private _renderId;
  364. constructor(name: string, scene: Scene);
  365. needAlphaBlending(): boolean;
  366. needAlphaTesting(): boolean;
  367. getAlphaTestTexture(): Nullable<BaseTexture>;
  368. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  369. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  370. getAnimatables(): IAnimatable[];
  371. dispose(forceDisposeEffect?: boolean): void;
  372. clone(name: string): GradientMaterial;
  373. serialize(): any;
  374. getClassName(): string;
  375. static Parse(source: any, scene: Scene, rootUrl: string): GradientMaterial;
  376. }
  377. }
  378. declare module "babylonjs-materials/gradient/index" {
  379. export * from "babylonjs-materials/gradient/gradientMaterial";
  380. }
  381. declare module "babylonjs-materials/grid/grid.fragment" {
  382. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  383. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  384. /** @hidden */
  385. export var gridPixelShader: {
  386. name: string;
  387. shader: string;
  388. };
  389. }
  390. declare module "babylonjs-materials/grid/grid.vertex" {
  391. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  392. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  393. /** @hidden */
  394. export var gridVertexShader: {
  395. name: string;
  396. shader: string;
  397. };
  398. }
  399. declare module "babylonjs-materials/grid/gridMaterial" {
  400. import { Color3, Vector3, Matrix } from "babylonjs/Maths/math";
  401. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  402. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  403. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  404. import { SubMesh } from "babylonjs/Meshes/subMesh";
  405. import { Mesh } from "babylonjs/Meshes/mesh";
  406. import { Scene } from "babylonjs/scene";
  407. import "babylonjs-materials/grid/grid.fragment";
  408. import "babylonjs-materials/grid/grid.vertex";
  409. /**
  410. * The grid materials allows you to wrap any shape with a grid.
  411. * Colors are customizable.
  412. */
  413. export class GridMaterial extends PushMaterial {
  414. /**
  415. * Main color of the grid (e.g. between lines)
  416. */
  417. mainColor: Color3;
  418. /**
  419. * Color of the grid lines.
  420. */
  421. lineColor: Color3;
  422. /**
  423. * The scale of the grid compared to unit.
  424. */
  425. gridRatio: number;
  426. /**
  427. * Allows setting an offset for the grid lines.
  428. */
  429. gridOffset: Vector3;
  430. /**
  431. * The frequency of thicker lines.
  432. */
  433. majorUnitFrequency: number;
  434. /**
  435. * The visibility of minor units in the grid.
  436. */
  437. minorUnitVisibility: number;
  438. /**
  439. * The grid opacity outside of the lines.
  440. */
  441. opacity: number;
  442. /**
  443. * Determine RBG output is premultiplied by alpha value.
  444. */
  445. preMultiplyAlpha: boolean;
  446. private _opacityTexture;
  447. opacityTexture: BaseTexture;
  448. private _gridControl;
  449. private _renderId;
  450. /**
  451. * constructor
  452. * @param name The name given to the material in order to identify it afterwards.
  453. * @param scene The scene the material is used in.
  454. */
  455. constructor(name: string, scene: Scene);
  456. /**
  457. * Returns wehter or not the grid requires alpha blending.
  458. */
  459. needAlphaBlending(): boolean;
  460. needAlphaBlendingForMesh(mesh: AbstractMesh): boolean;
  461. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  462. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  463. /**
  464. * Dispose the material and its associated resources.
  465. * @param forceDisposeEffect will also dispose the used effect when true
  466. */
  467. dispose(forceDisposeEffect?: boolean): void;
  468. clone(name: string): GridMaterial;
  469. serialize(): any;
  470. getClassName(): string;
  471. static Parse(source: any, scene: Scene, rootUrl: string): GridMaterial;
  472. }
  473. }
  474. declare module "babylonjs-materials/grid/index" {
  475. export * from "babylonjs-materials/grid/gridMaterial";
  476. }
  477. declare module "babylonjs-materials/lava/lava.fragment" {
  478. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  479. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  480. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  481. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  482. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  483. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  484. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  485. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  486. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  487. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  488. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  489. /** @hidden */
  490. export var lavaPixelShader: {
  491. name: string;
  492. shader: string;
  493. };
  494. }
  495. declare module "babylonjs-materials/lava/lava.vertex" {
  496. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  497. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  498. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  499. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  500. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  501. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  502. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  503. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  504. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  505. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  506. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  507. /** @hidden */
  508. export var lavaVertexShader: {
  509. name: string;
  510. shader: string;
  511. };
  512. }
  513. declare module "babylonjs-materials/lava/lavaMaterial" {
  514. import { Nullable } from "babylonjs/types";
  515. import { Color3, Matrix } from "babylonjs/Maths/math";
  516. import { IAnimatable } from "babylonjs/Misc/tools";
  517. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  518. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  519. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  520. import { SubMesh } from "babylonjs/Meshes/subMesh";
  521. import { Mesh } from "babylonjs/Meshes/mesh";
  522. import { Scene } from "babylonjs/scene";
  523. import "babylonjs-materials/lava/lava.fragment";
  524. import "babylonjs-materials/lava/lava.vertex";
  525. export class LavaMaterial extends PushMaterial {
  526. private _diffuseTexture;
  527. diffuseTexture: BaseTexture;
  528. noiseTexture: BaseTexture;
  529. fogColor: Color3;
  530. speed: number;
  531. movingSpeed: number;
  532. lowFrequencySpeed: number;
  533. fogDensity: number;
  534. private _lastTime;
  535. diffuseColor: Color3;
  536. private _disableLighting;
  537. disableLighting: boolean;
  538. private _unlit;
  539. unlit: boolean;
  540. private _maxSimultaneousLights;
  541. maxSimultaneousLights: number;
  542. private _scaledDiffuse;
  543. private _renderId;
  544. constructor(name: string, scene: Scene);
  545. needAlphaBlending(): boolean;
  546. needAlphaTesting(): boolean;
  547. getAlphaTestTexture(): Nullable<BaseTexture>;
  548. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  549. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  550. getAnimatables(): IAnimatable[];
  551. getActiveTextures(): BaseTexture[];
  552. hasTexture(texture: BaseTexture): boolean;
  553. dispose(forceDisposeEffect?: boolean): void;
  554. clone(name: string): LavaMaterial;
  555. serialize(): any;
  556. getClassName(): string;
  557. static Parse(source: any, scene: Scene, rootUrl: string): LavaMaterial;
  558. }
  559. }
  560. declare module "babylonjs-materials/lava/index" {
  561. export * from "babylonjs-materials/lava/lavaMaterial";
  562. }
  563. declare module "babylonjs-materials/mix/mix.fragment" {
  564. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  565. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  566. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  567. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  568. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  569. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  570. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  571. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  572. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  573. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  574. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  575. /** @hidden */
  576. export var mixPixelShader: {
  577. name: string;
  578. shader: string;
  579. };
  580. }
  581. declare module "babylonjs-materials/mix/mix.vertex" {
  582. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  583. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  584. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  585. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  586. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  587. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  588. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  589. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  590. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  591. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  592. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  593. /** @hidden */
  594. export var mixVertexShader: {
  595. name: string;
  596. shader: string;
  597. };
  598. }
  599. declare module "babylonjs-materials/mix/mixMaterial" {
  600. import { Nullable } from "babylonjs/types";
  601. import { Color3, Matrix } from "babylonjs/Maths/math";
  602. import { IAnimatable } from "babylonjs/Misc/tools";
  603. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  604. import { Texture } from "babylonjs/Materials/Textures/texture";
  605. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  606. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  607. import { SubMesh } from "babylonjs/Meshes/subMesh";
  608. import { Mesh } from "babylonjs/Meshes/mesh";
  609. import { Scene } from "babylonjs/scene";
  610. import "babylonjs-materials/mix/mix.fragment";
  611. import "babylonjs-materials/mix/mix.vertex";
  612. export class MixMaterial extends PushMaterial {
  613. /**
  614. * Mix textures
  615. */
  616. private _mixTexture1;
  617. mixTexture1: BaseTexture;
  618. private _mixTexture2;
  619. mixTexture2: BaseTexture;
  620. /**
  621. * Diffuse textures
  622. */
  623. private _diffuseTexture1;
  624. diffuseTexture1: Texture;
  625. private _diffuseTexture2;
  626. diffuseTexture2: Texture;
  627. private _diffuseTexture3;
  628. diffuseTexture3: Texture;
  629. private _diffuseTexture4;
  630. diffuseTexture4: Texture;
  631. private _diffuseTexture5;
  632. diffuseTexture5: Texture;
  633. private _diffuseTexture6;
  634. diffuseTexture6: Texture;
  635. private _diffuseTexture7;
  636. diffuseTexture7: Texture;
  637. private _diffuseTexture8;
  638. diffuseTexture8: Texture;
  639. /**
  640. * Uniforms
  641. */
  642. diffuseColor: Color3;
  643. specularColor: Color3;
  644. specularPower: number;
  645. private _disableLighting;
  646. disableLighting: boolean;
  647. private _maxSimultaneousLights;
  648. maxSimultaneousLights: number;
  649. private _renderId;
  650. constructor(name: string, scene: Scene);
  651. needAlphaBlending(): boolean;
  652. needAlphaTesting(): boolean;
  653. getAlphaTestTexture(): Nullable<BaseTexture>;
  654. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  655. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  656. getAnimatables(): IAnimatable[];
  657. getActiveTextures(): BaseTexture[];
  658. hasTexture(texture: BaseTexture): boolean;
  659. dispose(forceDisposeEffect?: boolean): void;
  660. clone(name: string): MixMaterial;
  661. serialize(): any;
  662. getClassName(): string;
  663. static Parse(source: any, scene: Scene, rootUrl: string): MixMaterial;
  664. }
  665. }
  666. declare module "babylonjs-materials/mix/index" {
  667. export * from "babylonjs-materials/mix/mixMaterial";
  668. }
  669. declare module "babylonjs-materials/normal/normal.fragment" {
  670. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  671. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  672. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  673. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  674. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  675. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  676. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  677. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  678. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  679. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  680. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  681. /** @hidden */
  682. export var normalPixelShader: {
  683. name: string;
  684. shader: string;
  685. };
  686. }
  687. declare module "babylonjs-materials/normal/normal.vertex" {
  688. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  689. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  690. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  691. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  692. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  693. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  694. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  695. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  696. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  697. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  698. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  699. /** @hidden */
  700. export var normalVertexShader: {
  701. name: string;
  702. shader: string;
  703. };
  704. }
  705. declare module "babylonjs-materials/normal/normalMaterial" {
  706. import { Nullable } from "babylonjs/types";
  707. import { Color3, Matrix } from "babylonjs/Maths/math";
  708. import { IAnimatable } from "babylonjs/Misc/tools";
  709. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  710. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  711. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  712. import { SubMesh } from "babylonjs/Meshes/subMesh";
  713. import { Mesh } from "babylonjs/Meshes/mesh";
  714. import { Scene } from "babylonjs/scene";
  715. import "babylonjs-materials/normal/normal.fragment";
  716. import "babylonjs-materials/normal/normal.vertex";
  717. export class NormalMaterial extends PushMaterial {
  718. private _diffuseTexture;
  719. diffuseTexture: BaseTexture;
  720. diffuseColor: Color3;
  721. private _disableLighting;
  722. disableLighting: boolean;
  723. private _maxSimultaneousLights;
  724. maxSimultaneousLights: number;
  725. private _renderId;
  726. constructor(name: string, scene: Scene);
  727. needAlphaBlending(): boolean;
  728. needAlphaBlendingForMesh(mesh: AbstractMesh): boolean;
  729. needAlphaTesting(): boolean;
  730. getAlphaTestTexture(): Nullable<BaseTexture>;
  731. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  732. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  733. getAnimatables(): IAnimatable[];
  734. getActiveTextures(): BaseTexture[];
  735. hasTexture(texture: BaseTexture): boolean;
  736. dispose(forceDisposeEffect?: boolean): void;
  737. clone(name: string): NormalMaterial;
  738. serialize(): any;
  739. getClassName(): string;
  740. static Parse(source: any, scene: Scene, rootUrl: string): NormalMaterial;
  741. }
  742. }
  743. declare module "babylonjs-materials/normal/index" {
  744. export * from "babylonjs-materials/normal/normalMaterial";
  745. }
  746. declare module "babylonjs-materials/shadowOnly/shadowOnly.fragment" {
  747. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  748. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  749. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  750. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  751. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  752. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  753. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  754. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  755. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  756. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  757. /** @hidden */
  758. export var shadowOnlyPixelShader: {
  759. name: string;
  760. shader: string;
  761. };
  762. }
  763. declare module "babylonjs-materials/shadowOnly/shadowOnly.vertex" {
  764. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  765. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  766. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  767. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  768. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  769. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  770. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  771. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  772. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  773. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  774. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  775. /** @hidden */
  776. export var shadowOnlyVertexShader: {
  777. name: string;
  778. shader: string;
  779. };
  780. }
  781. declare module "babylonjs-materials/shadowOnly/shadowOnlyMaterial" {
  782. import { Nullable } from "babylonjs/types";
  783. import { Color3, Matrix } from "babylonjs/Maths/math";
  784. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  785. import { IShadowLight } from "babylonjs/Lights/shadowLight";
  786. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  787. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  788. import { SubMesh } from "babylonjs/Meshes/subMesh";
  789. import { Mesh } from "babylonjs/Meshes/mesh";
  790. import { Scene } from "babylonjs/scene";
  791. import "babylonjs-materials/shadowOnly/shadowOnly.fragment";
  792. import "babylonjs-materials/shadowOnly/shadowOnly.vertex";
  793. export class ShadowOnlyMaterial extends PushMaterial {
  794. private _renderId;
  795. private _activeLight;
  796. constructor(name: string, scene: Scene);
  797. shadowColor: Color3;
  798. needAlphaBlending(): boolean;
  799. needAlphaTesting(): boolean;
  800. getAlphaTestTexture(): Nullable<BaseTexture>;
  801. activeLight: IShadowLight;
  802. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  803. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  804. clone(name: string): ShadowOnlyMaterial;
  805. serialize(): any;
  806. getClassName(): string;
  807. static Parse(source: any, scene: Scene, rootUrl: string): ShadowOnlyMaterial;
  808. }
  809. }
  810. declare module "babylonjs-materials/shadowOnly/index" {
  811. export * from "babylonjs-materials/shadowOnly/shadowOnlyMaterial";
  812. }
  813. declare module "babylonjs-materials/simple/simple.fragment" {
  814. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  815. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  816. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  817. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  818. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  819. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  820. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  821. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  822. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  823. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  824. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  825. /** @hidden */
  826. export var simplePixelShader: {
  827. name: string;
  828. shader: string;
  829. };
  830. }
  831. declare module "babylonjs-materials/simple/simple.vertex" {
  832. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  833. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  834. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  835. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  836. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  837. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  838. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  839. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  840. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  841. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  842. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  843. /** @hidden */
  844. export var simpleVertexShader: {
  845. name: string;
  846. shader: string;
  847. };
  848. }
  849. declare module "babylonjs-materials/simple/simpleMaterial" {
  850. import { Nullable } from "babylonjs/types";
  851. import { Color3, Matrix } from "babylonjs/Maths/math";
  852. import { IAnimatable } from "babylonjs/Misc/tools";
  853. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  854. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  855. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  856. import { SubMesh } from "babylonjs/Meshes/subMesh";
  857. import { Mesh } from "babylonjs/Meshes/mesh";
  858. import { Scene } from "babylonjs/scene";
  859. import "babylonjs-materials/simple/simple.fragment";
  860. import "babylonjs-materials/simple/simple.vertex";
  861. export class SimpleMaterial extends PushMaterial {
  862. private _diffuseTexture;
  863. diffuseTexture: BaseTexture;
  864. diffuseColor: Color3;
  865. private _disableLighting;
  866. disableLighting: boolean;
  867. private _maxSimultaneousLights;
  868. maxSimultaneousLights: number;
  869. private _renderId;
  870. constructor(name: string, scene: Scene);
  871. needAlphaBlending(): boolean;
  872. needAlphaTesting(): boolean;
  873. getAlphaTestTexture(): Nullable<BaseTexture>;
  874. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  875. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  876. getAnimatables(): IAnimatable[];
  877. getActiveTextures(): BaseTexture[];
  878. hasTexture(texture: BaseTexture): boolean;
  879. dispose(forceDisposeEffect?: boolean): void;
  880. clone(name: string): SimpleMaterial;
  881. serialize(): any;
  882. getClassName(): string;
  883. static Parse(source: any, scene: Scene, rootUrl: string): SimpleMaterial;
  884. }
  885. }
  886. declare module "babylonjs-materials/simple/index" {
  887. export * from "babylonjs-materials/simple/simpleMaterial";
  888. }
  889. declare module "babylonjs-materials/sky/sky.fragment" {
  890. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  891. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  892. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  893. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  894. /** @hidden */
  895. export var skyPixelShader: {
  896. name: string;
  897. shader: string;
  898. };
  899. }
  900. declare module "babylonjs-materials/sky/sky.vertex" {
  901. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  902. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  903. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  904. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  905. /** @hidden */
  906. export var skyVertexShader: {
  907. name: string;
  908. shader: string;
  909. };
  910. }
  911. declare module "babylonjs-materials/sky/skyMaterial" {
  912. import { Nullable } from "babylonjs/types";
  913. import { Vector3, Matrix } from "babylonjs/Maths/math";
  914. import { IAnimatable } from "babylonjs/Misc/tools";
  915. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  916. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  917. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  918. import { SubMesh } from "babylonjs/Meshes/subMesh";
  919. import { Mesh } from "babylonjs/Meshes/mesh";
  920. import { Scene } from "babylonjs/scene";
  921. import "babylonjs-materials/sky/sky.fragment";
  922. import "babylonjs-materials/sky/sky.vertex";
  923. /**
  924. * This is the sky material which allows to create dynamic and texture free effects for skyboxes.
  925. * @see https://doc.babylonjs.com/extensions/sky
  926. */
  927. export class SkyMaterial extends PushMaterial {
  928. /**
  929. * Defines the overall luminance of sky in interval ]0, 1[.
  930. */
  931. luminance: number;
  932. /**
  933. * Defines the amount (scattering) of haze as opposed to molecules in atmosphere.
  934. */
  935. turbidity: number;
  936. /**
  937. * Defines the sky appearance (light intensity).
  938. */
  939. rayleigh: number;
  940. /**
  941. * Defines the mieCoefficient in interval [0, 0.1] which affects the property .mieDirectionalG.
  942. */
  943. mieCoefficient: number;
  944. /**
  945. * Defines the amount of haze particles following the Mie scattering theory.
  946. */
  947. mieDirectionalG: number;
  948. /**
  949. * Defines the distance of the sun according to the active scene camera.
  950. */
  951. distance: number;
  952. /**
  953. * Defines the sun inclination, in interval [-0.5, 0.5]. When the inclination is not 0, the sun is said
  954. * "inclined".
  955. */
  956. inclination: number;
  957. /**
  958. * Defines the solar azimuth in interval [0, 1]. The azimuth is the angle in the horizontal plan between
  959. * an object direction and a reference direction.
  960. */
  961. azimuth: number;
  962. /**
  963. * Defines the sun position in the sky on (x,y,z). If the property .useSunPosition is set to false, then
  964. * the property is overriden by the inclination and the azimuth and can be read at any moment.
  965. */
  966. sunPosition: Vector3;
  967. /**
  968. * Defines if the sun position should be computed (inclination and azimuth) according to the given
  969. * .sunPosition property.
  970. */
  971. useSunPosition: boolean;
  972. /**
  973. * Defines an offset vector used to get a horizon offset.
  974. * @example skyMaterial.cameraOffset.y = camera.globalPosition.y // Set horizon relative to 0 on the Y axis
  975. */
  976. cameraOffset: Vector3;
  977. private _cameraPosition;
  978. private _renderId;
  979. /**
  980. * Instantiates a new sky material.
  981. * This material allows to create dynamic and texture free
  982. * effects for skyboxes by taking care of the atmosphere state.
  983. * @see https://doc.babylonjs.com/extensions/sky
  984. * @param name Define the name of the material in the scene
  985. * @param scene Define the scene the material belong to
  986. */
  987. constructor(name: string, scene: Scene);
  988. /**
  989. * Specifies if the material will require alpha blending
  990. * @returns a boolean specifying if alpha blending is needed
  991. */
  992. needAlphaBlending(): boolean;
  993. /**
  994. * Specifies if this material should be rendered in alpha test mode
  995. * @returns false as the sky material doesn't need alpha testing.
  996. */
  997. needAlphaTesting(): boolean;
  998. /**
  999. * Get the texture used for alpha test purpose.
  1000. * @returns null as the sky material has no texture.
  1001. */
  1002. getAlphaTestTexture(): Nullable<BaseTexture>;
  1003. /**
  1004. * Get if the submesh is ready to be used and all its information available.
  1005. * Child classes can use it to update shaders
  1006. * @param mesh defines the mesh to check
  1007. * @param subMesh defines which submesh to check
  1008. * @param useInstances specifies that instances should be used
  1009. * @returns a boolean indicating that the submesh is ready or not
  1010. */
  1011. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  1012. /**
  1013. * Binds the submesh to this material by preparing the effect and shader to draw
  1014. * @param world defines the world transformation matrix
  1015. * @param mesh defines the mesh containing the submesh
  1016. * @param subMesh defines the submesh to bind the material to
  1017. */
  1018. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  1019. /**
  1020. * Get the list of animatables in the material.
  1021. * @returns the list of animatables object used in the material
  1022. */
  1023. getAnimatables(): IAnimatable[];
  1024. /**
  1025. * Disposes the material
  1026. * @param forceDisposeEffect specifies if effects should be forcefully disposed
  1027. */
  1028. dispose(forceDisposeEffect?: boolean): void;
  1029. /**
  1030. * Makes a duplicate of the material, and gives it a new name
  1031. * @param name defines the new name for the duplicated material
  1032. * @returns the cloned material
  1033. */
  1034. clone(name: string): SkyMaterial;
  1035. /**
  1036. * Serializes this material in a JSON representation
  1037. * @returns the serialized material object
  1038. */
  1039. serialize(): any;
  1040. /**
  1041. * Gets the current class name of the material e.g. "SkyMaterial"
  1042. * Mainly use in serialization.
  1043. * @returns the class name
  1044. */
  1045. getClassName(): string;
  1046. /**
  1047. * Creates a sky material from parsed material data
  1048. * @param source defines the JSON representation of the material
  1049. * @param scene defines the hosting scene
  1050. * @param rootUrl defines the root URL to use to load textures and relative dependencies
  1051. * @returns a new sky material
  1052. */
  1053. static Parse(source: any, scene: Scene, rootUrl: string): SkyMaterial;
  1054. }
  1055. }
  1056. declare module "babylonjs-materials/sky/index" {
  1057. export * from "babylonjs-materials/sky/skyMaterial";
  1058. }
  1059. declare module "babylonjs-materials/terrain/terrain.fragment" {
  1060. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  1061. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  1062. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  1063. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  1064. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  1065. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  1066. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  1067. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  1068. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  1069. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  1070. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  1071. /** @hidden */
  1072. export var terrainPixelShader: {
  1073. name: string;
  1074. shader: string;
  1075. };
  1076. }
  1077. declare module "babylonjs-materials/terrain/terrain.vertex" {
  1078. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  1079. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  1080. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  1081. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  1082. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  1083. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  1084. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  1085. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  1086. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  1087. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  1088. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  1089. /** @hidden */
  1090. export var terrainVertexShader: {
  1091. name: string;
  1092. shader: string;
  1093. };
  1094. }
  1095. declare module "babylonjs-materials/terrain/terrainMaterial" {
  1096. import { Nullable } from "babylonjs/types";
  1097. import { Color3, Matrix } from "babylonjs/Maths/math";
  1098. import { IAnimatable } from "babylonjs/Misc/tools";
  1099. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  1100. import { Texture } from "babylonjs/Materials/Textures/texture";
  1101. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  1102. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  1103. import { SubMesh } from "babylonjs/Meshes/subMesh";
  1104. import { Mesh } from "babylonjs/Meshes/mesh";
  1105. import { Scene } from "babylonjs/scene";
  1106. import "babylonjs-materials/terrain/terrain.fragment";
  1107. import "babylonjs-materials/terrain/terrain.vertex";
  1108. export class TerrainMaterial extends PushMaterial {
  1109. private _mixTexture;
  1110. mixTexture: BaseTexture;
  1111. private _diffuseTexture1;
  1112. diffuseTexture1: Texture;
  1113. private _diffuseTexture2;
  1114. diffuseTexture2: Texture;
  1115. private _diffuseTexture3;
  1116. diffuseTexture3: Texture;
  1117. private _bumpTexture1;
  1118. bumpTexture1: Texture;
  1119. private _bumpTexture2;
  1120. bumpTexture2: Texture;
  1121. private _bumpTexture3;
  1122. bumpTexture3: Texture;
  1123. diffuseColor: Color3;
  1124. specularColor: Color3;
  1125. specularPower: number;
  1126. private _disableLighting;
  1127. disableLighting: boolean;
  1128. private _maxSimultaneousLights;
  1129. maxSimultaneousLights: number;
  1130. private _renderId;
  1131. constructor(name: string, scene: Scene);
  1132. needAlphaBlending(): boolean;
  1133. needAlphaTesting(): boolean;
  1134. getAlphaTestTexture(): Nullable<BaseTexture>;
  1135. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  1136. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  1137. getAnimatables(): IAnimatable[];
  1138. getActiveTextures(): BaseTexture[];
  1139. hasTexture(texture: BaseTexture): boolean;
  1140. dispose(forceDisposeEffect?: boolean): void;
  1141. clone(name: string): TerrainMaterial;
  1142. serialize(): any;
  1143. getClassName(): string;
  1144. static Parse(source: any, scene: Scene, rootUrl: string): TerrainMaterial;
  1145. }
  1146. }
  1147. declare module "babylonjs-materials/terrain/index" {
  1148. export * from "babylonjs-materials/terrain/terrainMaterial";
  1149. }
  1150. declare module "babylonjs-materials/triPlanar/triplanar.fragment" {
  1151. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  1152. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  1153. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  1154. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  1155. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  1156. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  1157. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  1158. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  1159. import "babylonjs/Shaders/ShadersInclude/depthPrePass";
  1160. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  1161. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  1162. /** @hidden */
  1163. export var triplanarPixelShader: {
  1164. name: string;
  1165. shader: string;
  1166. };
  1167. }
  1168. declare module "babylonjs-materials/triPlanar/triplanar.vertex" {
  1169. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  1170. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  1171. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  1172. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  1173. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  1174. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  1175. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  1176. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  1177. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  1178. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  1179. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  1180. /** @hidden */
  1181. export var triplanarVertexShader: {
  1182. name: string;
  1183. shader: string;
  1184. };
  1185. }
  1186. declare module "babylonjs-materials/triPlanar/triPlanarMaterial" {
  1187. import { Nullable } from "babylonjs/types";
  1188. import { Color3, Matrix } from "babylonjs/Maths/math";
  1189. import { IAnimatable } from "babylonjs/Misc/tools";
  1190. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  1191. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  1192. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  1193. import { SubMesh } from "babylonjs/Meshes/subMesh";
  1194. import { Mesh } from "babylonjs/Meshes/mesh";
  1195. import { Scene } from "babylonjs/scene";
  1196. import "babylonjs-materials/triPlanar/triplanar.fragment";
  1197. import "babylonjs-materials/triPlanar/triplanar.vertex";
  1198. export class TriPlanarMaterial extends PushMaterial {
  1199. mixTexture: BaseTexture;
  1200. private _diffuseTextureX;
  1201. diffuseTextureX: BaseTexture;
  1202. private _diffuseTextureY;
  1203. diffuseTextureY: BaseTexture;
  1204. private _diffuseTextureZ;
  1205. diffuseTextureZ: BaseTexture;
  1206. private _normalTextureX;
  1207. normalTextureX: BaseTexture;
  1208. private _normalTextureY;
  1209. normalTextureY: BaseTexture;
  1210. private _normalTextureZ;
  1211. normalTextureZ: BaseTexture;
  1212. tileSize: number;
  1213. diffuseColor: Color3;
  1214. specularColor: Color3;
  1215. specularPower: number;
  1216. private _disableLighting;
  1217. disableLighting: boolean;
  1218. private _maxSimultaneousLights;
  1219. maxSimultaneousLights: number;
  1220. private _renderId;
  1221. constructor(name: string, scene: Scene);
  1222. needAlphaBlending(): boolean;
  1223. needAlphaTesting(): boolean;
  1224. getAlphaTestTexture(): Nullable<BaseTexture>;
  1225. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  1226. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  1227. getAnimatables(): IAnimatable[];
  1228. getActiveTextures(): BaseTexture[];
  1229. hasTexture(texture: BaseTexture): boolean;
  1230. dispose(forceDisposeEffect?: boolean): void;
  1231. clone(name: string): TriPlanarMaterial;
  1232. serialize(): any;
  1233. getClassName(): string;
  1234. static Parse(source: any, scene: Scene, rootUrl: string): TriPlanarMaterial;
  1235. }
  1236. }
  1237. declare module "babylonjs-materials/triPlanar/index" {
  1238. export * from "babylonjs-materials/triPlanar/triPlanarMaterial";
  1239. }
  1240. declare module "babylonjs-materials/water/water.fragment" {
  1241. import "babylonjs/Shaders/ShadersInclude/helperFunctions";
  1242. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  1243. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  1244. import "babylonjs/Shaders/ShadersInclude/lightsFragmentFunctions";
  1245. import "babylonjs/Shaders/ShadersInclude/shadowsFragmentFunctions";
  1246. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragmentDeclaration";
  1247. import "babylonjs/Shaders/ShadersInclude/logDepthDeclaration";
  1248. import "babylonjs/Shaders/ShadersInclude/fogFragmentDeclaration";
  1249. import "babylonjs/Shaders/ShadersInclude/clipPlaneFragment";
  1250. import "babylonjs/Shaders/ShadersInclude/lightFragment";
  1251. import "babylonjs/Shaders/ShadersInclude/logDepthFragment";
  1252. import "babylonjs/Shaders/ShadersInclude/fogFragment";
  1253. /** @hidden */
  1254. export var waterPixelShader: {
  1255. name: string;
  1256. shader: string;
  1257. };
  1258. }
  1259. declare module "babylonjs-materials/water/water.vertex" {
  1260. import "babylonjs/Shaders/ShadersInclude/bonesDeclaration";
  1261. import "babylonjs/Shaders/ShadersInclude/instancesDeclaration";
  1262. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertexDeclaration";
  1263. import "babylonjs/Shaders/ShadersInclude/fogVertexDeclaration";
  1264. import "babylonjs/Shaders/ShadersInclude/lightFragmentDeclaration";
  1265. import "babylonjs/Shaders/ShadersInclude/lightUboDeclaration";
  1266. import "babylonjs/Shaders/ShadersInclude/logDepthDeclaration";
  1267. import "babylonjs/Shaders/ShadersInclude/instancesVertex";
  1268. import "babylonjs/Shaders/ShadersInclude/bonesVertex";
  1269. import "babylonjs/Shaders/ShadersInclude/clipPlaneVertex";
  1270. import "babylonjs/Shaders/ShadersInclude/fogVertex";
  1271. import "babylonjs/Shaders/ShadersInclude/shadowsVertex";
  1272. import "babylonjs/Shaders/ShadersInclude/logDepthVertex";
  1273. /** @hidden */
  1274. export var waterVertexShader: {
  1275. name: string;
  1276. shader: string;
  1277. };
  1278. }
  1279. declare module "babylonjs-materials/water/waterMaterial" {
  1280. import { Nullable } from "babylonjs/types";
  1281. import { Vector2, Color3, Matrix } from "babylonjs/Maths/math";
  1282. import { IAnimatable } from "babylonjs/Misc/tools";
  1283. import { SmartArray } from "babylonjs/Misc/smartArray";
  1284. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  1285. import { RenderTargetTexture } from "babylonjs/Materials/Textures/renderTargetTexture";
  1286. import { PushMaterial } from "babylonjs/Materials/pushMaterial";
  1287. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  1288. import { SubMesh } from "babylonjs/Meshes/subMesh";
  1289. import { Mesh } from "babylonjs/Meshes/mesh";
  1290. import { Scene } from "babylonjs/scene";
  1291. import "babylonjs-materials/water/water.fragment";
  1292. import "babylonjs-materials/water/water.vertex";
  1293. export class WaterMaterial extends PushMaterial {
  1294. renderTargetSize: Vector2;
  1295. private _bumpTexture;
  1296. bumpTexture: BaseTexture;
  1297. diffuseColor: Color3;
  1298. specularColor: Color3;
  1299. specularPower: number;
  1300. private _disableLighting;
  1301. disableLighting: boolean;
  1302. private _maxSimultaneousLights;
  1303. maxSimultaneousLights: number;
  1304. /**
  1305. * @param {number}: Represents the wind force
  1306. */
  1307. windForce: number;
  1308. /**
  1309. * @param {Vector2}: The direction of the wind in the plane (X, Z)
  1310. */
  1311. windDirection: Vector2;
  1312. /**
  1313. * @param {number}: Wave height, represents the height of the waves
  1314. */
  1315. waveHeight: number;
  1316. /**
  1317. * @param {number}: Bump height, represents the bump height related to the bump map
  1318. */
  1319. bumpHeight: number;
  1320. /**
  1321. * @param {boolean}: Add a smaller moving bump to less steady waves.
  1322. */
  1323. private _bumpSuperimpose;
  1324. bumpSuperimpose: boolean;
  1325. /**
  1326. * @param {boolean}: Color refraction and reflection differently with .waterColor2 and .colorBlendFactor2. Non-linear (physically correct) fresnel.
  1327. */
  1328. private _fresnelSeparate;
  1329. fresnelSeparate: boolean;
  1330. /**
  1331. * @param {boolean}: bump Waves modify the reflection.
  1332. */
  1333. private _bumpAffectsReflection;
  1334. bumpAffectsReflection: boolean;
  1335. /**
  1336. * @param {number}: The water color blended with the refraction (near)
  1337. */
  1338. waterColor: Color3;
  1339. /**
  1340. * @param {number}: The blend factor related to the water color
  1341. */
  1342. colorBlendFactor: number;
  1343. /**
  1344. * @param {number}: The water color blended with the reflection (far)
  1345. */
  1346. waterColor2: Color3;
  1347. /**
  1348. * @param {number}: The blend factor related to the water color (reflection, far)
  1349. */
  1350. colorBlendFactor2: number;
  1351. /**
  1352. * @param {number}: Represents the maximum length of a wave
  1353. */
  1354. waveLength: number;
  1355. /**
  1356. * @param {number}: Defines the waves speed
  1357. */
  1358. waveSpeed: number;
  1359. protected _renderTargets: SmartArray<RenderTargetTexture>;
  1360. private _mesh;
  1361. private _refractionRTT;
  1362. private _reflectionRTT;
  1363. private _reflectionTransform;
  1364. private _lastTime;
  1365. private _lastDeltaTime;
  1366. private _renderId;
  1367. private _useLogarithmicDepth;
  1368. private _waitingRenderList;
  1369. /**
  1370. * Gets a boolean indicating that current material needs to register RTT
  1371. */
  1372. readonly hasRenderTargetTextures: boolean;
  1373. /**
  1374. * Constructor
  1375. */
  1376. constructor(name: string, scene: Scene, renderTargetSize?: Vector2);
  1377. useLogarithmicDepth: boolean;
  1378. readonly refractionTexture: Nullable<RenderTargetTexture>;
  1379. readonly reflectionTexture: Nullable<RenderTargetTexture>;
  1380. addToRenderList(node: any): void;
  1381. enableRenderTargets(enable: boolean): void;
  1382. getRenderList(): Nullable<AbstractMesh[]>;
  1383. readonly renderTargetsEnabled: boolean;
  1384. needAlphaBlending(): boolean;
  1385. needAlphaTesting(): boolean;
  1386. getAlphaTestTexture(): Nullable<BaseTexture>;
  1387. isReadyForSubMesh(mesh: AbstractMesh, subMesh: SubMesh, useInstances?: boolean): boolean;
  1388. bindForSubMesh(world: Matrix, mesh: Mesh, subMesh: SubMesh): void;
  1389. private _createRenderTargets;
  1390. getAnimatables(): IAnimatable[];
  1391. getActiveTextures(): BaseTexture[];
  1392. hasTexture(texture: BaseTexture): boolean;
  1393. dispose(forceDisposeEffect?: boolean): void;
  1394. clone(name: string): WaterMaterial;
  1395. serialize(): any;
  1396. getClassName(): string;
  1397. static Parse(source: any, scene: Scene, rootUrl: string): WaterMaterial;
  1398. static CreateDefaultMesh(name: string, scene: Scene): Mesh;
  1399. }
  1400. }
  1401. declare module "babylonjs-materials/water/index" {
  1402. export * from "babylonjs-materials/water/waterMaterial";
  1403. }
  1404. declare module "babylonjs-materials/index" {
  1405. export * from "babylonjs-materials/cell/index";
  1406. export * from "babylonjs-materials/custom/index";
  1407. export * from "babylonjs-materials/fire/index";
  1408. export * from "babylonjs-materials/fur/index";
  1409. export * from "babylonjs-materials/gradient/index";
  1410. export * from "babylonjs-materials/grid/index";
  1411. export * from "babylonjs-materials/lava/index";
  1412. export * from "babylonjs-materials/mix/index";
  1413. export * from "babylonjs-materials/normal/index";
  1414. export * from "babylonjs-materials/shadowOnly/index";
  1415. export * from "babylonjs-materials/simple/index";
  1416. export * from "babylonjs-materials/sky/index";
  1417. export * from "babylonjs-materials/terrain/index";
  1418. export * from "babylonjs-materials/triPlanar/index";
  1419. export * from "babylonjs-materials/water/index";
  1420. }
  1421. declare module "babylonjs-materials/legacy/legacy-cell" {
  1422. export * from "babylonjs-materials/cell/index";
  1423. }
  1424. declare module "babylonjs-materials/legacy/legacy-custom" {
  1425. export * from "babylonjs-materials/custom/index";
  1426. }
  1427. declare module "babylonjs-materials/legacy/legacy-fire" {
  1428. export * from "babylonjs-materials/fire/index";
  1429. }
  1430. declare module "babylonjs-materials/legacy/legacy-fur" {
  1431. export * from "babylonjs-materials/fur/index";
  1432. }
  1433. declare module "babylonjs-materials/legacy/legacy-gradient" {
  1434. export * from "babylonjs-materials/gradient/index";
  1435. }
  1436. declare module "babylonjs-materials/legacy/legacy-grid" {
  1437. export * from "babylonjs-materials/grid/index";
  1438. }
  1439. declare module "babylonjs-materials/legacy/legacy-lava" {
  1440. export * from "babylonjs-materials/lava/index";
  1441. }
  1442. declare module "babylonjs-materials/legacy/legacy-mix" {
  1443. export * from "babylonjs-materials/mix/index";
  1444. }
  1445. declare module "babylonjs-materials/legacy/legacy-normal" {
  1446. export * from "babylonjs-materials/normal/index";
  1447. }
  1448. declare module "babylonjs-materials/legacy/legacy-shadowOnly" {
  1449. export * from "babylonjs-materials/shadowOnly/index";
  1450. }
  1451. declare module "babylonjs-materials/legacy/legacy-simple" {
  1452. export * from "babylonjs-materials/simple/index";
  1453. }
  1454. declare module "babylonjs-materials/legacy/legacy-sky" {
  1455. export * from "babylonjs-materials/sky/index";
  1456. }
  1457. declare module "babylonjs-materials/legacy/legacy-terrain" {
  1458. export * from "babylonjs-materials/terrain/index";
  1459. }
  1460. declare module "babylonjs-materials/legacy/legacy-triPlanar" {
  1461. export * from "babylonjs-materials/triPlanar/index";
  1462. }
  1463. declare module "babylonjs-materials/legacy/legacy-water" {
  1464. export * from "babylonjs-materials/water/index";
  1465. }
  1466. declare module "babylonjs-materials/legacy/legacy" {
  1467. export * from "babylonjs-materials/index";
  1468. }
  1469. declare module "babylonjs-materials" {
  1470. export * from "babylonjs-materials/legacy/legacy";
  1471. }
  1472. declare module BABYLON {
  1473. /** @hidden */
  1474. export var cellPixelShader: {
  1475. name: string;
  1476. shader: string;
  1477. };
  1478. }
  1479. declare module BABYLON {
  1480. /** @hidden */
  1481. export var cellVertexShader: {
  1482. name: string;
  1483. shader: string;
  1484. };
  1485. }
  1486. declare module BABYLON {
  1487. export class CellMaterial extends BABYLON.PushMaterial {
  1488. private _diffuseTexture;
  1489. diffuseTexture: BABYLON.BaseTexture;
  1490. diffuseColor: BABYLON.Color3;
  1491. _computeHighLevel: boolean;
  1492. computeHighLevel: boolean;
  1493. private _disableLighting;
  1494. disableLighting: boolean;
  1495. private _maxSimultaneousLights;
  1496. maxSimultaneousLights: number;
  1497. private _renderId;
  1498. constructor(name: string, scene: BABYLON.Scene);
  1499. needAlphaBlending(): boolean;
  1500. needAlphaTesting(): boolean;
  1501. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1502. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1503. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1504. getAnimatables(): BABYLON.IAnimatable[];
  1505. getActiveTextures(): BABYLON.BaseTexture[];
  1506. hasTexture(texture: BABYLON.BaseTexture): boolean;
  1507. dispose(forceDisposeEffect?: boolean): void;
  1508. getClassName(): string;
  1509. clone(name: string): CellMaterial;
  1510. serialize(): any;
  1511. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): CellMaterial;
  1512. }
  1513. }
  1514. declare module BABYLON {
  1515. export class CustomShaderStructure {
  1516. FragmentStore: string;
  1517. VertexStore: string;
  1518. constructor();
  1519. }
  1520. export class ShaderSpecialParts {
  1521. constructor();
  1522. Fragment_Begin: string;
  1523. Fragment_Definitions: string;
  1524. Fragment_MainBegin: string;
  1525. Fragment_Custom_Diffuse: string;
  1526. Fragment_Custom_Alpha: string;
  1527. Fragment_Before_FragColor: string;
  1528. Vertex_Begin: string;
  1529. Vertex_Definitions: string;
  1530. Vertex_MainBegin: string;
  1531. Vertex_Before_PositionUpdated: string;
  1532. Vertex_Before_NormalUpdated: string;
  1533. }
  1534. export class CustomMaterial extends BABYLON.StandardMaterial {
  1535. static ShaderIndexer: number;
  1536. CustomParts: ShaderSpecialParts;
  1537. _isCreatedShader: boolean;
  1538. _createdShaderName: string;
  1539. _customUniform: string[];
  1540. _newUniforms: string[];
  1541. _newUniformInstances: any[];
  1542. _newSamplerInstances: BABYLON.Texture[];
  1543. FragmentShader: string;
  1544. VertexShader: string;
  1545. AttachAfterBind(mesh: BABYLON.Mesh, effect: BABYLON.Effect): void;
  1546. ReviewUniform(name: string, arr: string[]): string[];
  1547. Builder(shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: BABYLON.StandardMaterialDefines): string;
  1548. constructor(name: string, scene: BABYLON.Scene);
  1549. AddUniform(name: string, kind: string, param: any): CustomMaterial;
  1550. Fragment_Begin(shaderPart: string): CustomMaterial;
  1551. Fragment_Definitions(shaderPart: string): CustomMaterial;
  1552. Fragment_MainBegin(shaderPart: string): CustomMaterial;
  1553. Fragment_Custom_Diffuse(shaderPart: string): CustomMaterial;
  1554. Fragment_Custom_Alpha(shaderPart: string): CustomMaterial;
  1555. Fragment_Before_FragColor(shaderPart: string): CustomMaterial;
  1556. Vertex_Begin(shaderPart: string): CustomMaterial;
  1557. Vertex_Definitions(shaderPart: string): CustomMaterial;
  1558. Vertex_MainBegin(shaderPart: string): CustomMaterial;
  1559. Vertex_Before_PositionUpdated(shaderPart: string): CustomMaterial;
  1560. Vertex_Before_NormalUpdated(shaderPart: string): CustomMaterial;
  1561. }
  1562. }
  1563. declare module BABYLON {
  1564. /** @hidden */
  1565. export var firePixelShader: {
  1566. name: string;
  1567. shader: string;
  1568. };
  1569. }
  1570. declare module BABYLON {
  1571. /** @hidden */
  1572. export var fireVertexShader: {
  1573. name: string;
  1574. shader: string;
  1575. };
  1576. }
  1577. declare module BABYLON {
  1578. export class FireMaterial extends BABYLON.PushMaterial {
  1579. private _diffuseTexture;
  1580. diffuseTexture: BABYLON.Nullable<BABYLON.BaseTexture>;
  1581. private _distortionTexture;
  1582. distortionTexture: BABYLON.Nullable<BABYLON.BaseTexture>;
  1583. private _opacityTexture;
  1584. opacityTexture: BABYLON.Nullable<BABYLON.BaseTexture>;
  1585. diffuseColor: BABYLON.Color3;
  1586. speed: number;
  1587. private _scaledDiffuse;
  1588. private _renderId;
  1589. private _lastTime;
  1590. constructor(name: string, scene: BABYLON.Scene);
  1591. needAlphaBlending(): boolean;
  1592. needAlphaTesting(): boolean;
  1593. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1594. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1595. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1596. getAnimatables(): BABYLON.IAnimatable[];
  1597. getActiveTextures(): BABYLON.BaseTexture[];
  1598. hasTexture(texture: BABYLON.BaseTexture): boolean;
  1599. getClassName(): string;
  1600. dispose(forceDisposeEffect?: boolean): void;
  1601. clone(name: string): FireMaterial;
  1602. serialize(): any;
  1603. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): FireMaterial;
  1604. }
  1605. }
  1606. declare module BABYLON {
  1607. /** @hidden */
  1608. export var furPixelShader: {
  1609. name: string;
  1610. shader: string;
  1611. };
  1612. }
  1613. declare module BABYLON {
  1614. /** @hidden */
  1615. export var furVertexShader: {
  1616. name: string;
  1617. shader: string;
  1618. };
  1619. }
  1620. declare module BABYLON {
  1621. export class FurMaterial extends BABYLON.PushMaterial {
  1622. private _diffuseTexture;
  1623. diffuseTexture: BABYLON.BaseTexture;
  1624. private _heightTexture;
  1625. heightTexture: BABYLON.BaseTexture;
  1626. diffuseColor: BABYLON.Color3;
  1627. furLength: number;
  1628. furAngle: number;
  1629. furColor: BABYLON.Color3;
  1630. furOffset: number;
  1631. furSpacing: number;
  1632. furGravity: BABYLON.Vector3;
  1633. furSpeed: number;
  1634. furDensity: number;
  1635. furOcclusion: number;
  1636. furTexture: BABYLON.DynamicTexture;
  1637. private _disableLighting;
  1638. disableLighting: boolean;
  1639. private _maxSimultaneousLights;
  1640. maxSimultaneousLights: number;
  1641. highLevelFur: boolean;
  1642. _meshes: BABYLON.AbstractMesh[];
  1643. private _renderId;
  1644. private _furTime;
  1645. constructor(name: string, scene: BABYLON.Scene);
  1646. furTime: number;
  1647. needAlphaBlending(): boolean;
  1648. needAlphaTesting(): boolean;
  1649. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1650. updateFur(): void;
  1651. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1652. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1653. getAnimatables(): BABYLON.IAnimatable[];
  1654. getActiveTextures(): BABYLON.BaseTexture[];
  1655. hasTexture(texture: BABYLON.BaseTexture): boolean;
  1656. dispose(forceDisposeEffect?: boolean): void;
  1657. clone(name: string): FurMaterial;
  1658. serialize(): any;
  1659. getClassName(): string;
  1660. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): FurMaterial;
  1661. static GenerateTexture(name: string, scene: BABYLON.Scene): BABYLON.DynamicTexture;
  1662. static FurifyMesh(sourceMesh: BABYLON.Mesh, quality: number): BABYLON.Mesh[];
  1663. }
  1664. }
  1665. declare module BABYLON {
  1666. /** @hidden */
  1667. export var gradientPixelShader: {
  1668. name: string;
  1669. shader: string;
  1670. };
  1671. }
  1672. declare module BABYLON {
  1673. /** @hidden */
  1674. export var gradientVertexShader: {
  1675. name: string;
  1676. shader: string;
  1677. };
  1678. }
  1679. declare module BABYLON {
  1680. export class GradientMaterial extends BABYLON.PushMaterial {
  1681. private _maxSimultaneousLights;
  1682. maxSimultaneousLights: number;
  1683. topColor: BABYLON.Color3;
  1684. topColorAlpha: number;
  1685. bottomColor: BABYLON.Color3;
  1686. bottomColorAlpha: number;
  1687. offset: number;
  1688. scale: number;
  1689. smoothness: number;
  1690. private _disableLighting;
  1691. disableLighting: boolean;
  1692. private _renderId;
  1693. constructor(name: string, scene: BABYLON.Scene);
  1694. needAlphaBlending(): boolean;
  1695. needAlphaTesting(): boolean;
  1696. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1697. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1698. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1699. getAnimatables(): BABYLON.IAnimatable[];
  1700. dispose(forceDisposeEffect?: boolean): void;
  1701. clone(name: string): GradientMaterial;
  1702. serialize(): any;
  1703. getClassName(): string;
  1704. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): GradientMaterial;
  1705. }
  1706. }
  1707. declare module BABYLON {
  1708. /** @hidden */
  1709. export var gridPixelShader: {
  1710. name: string;
  1711. shader: string;
  1712. };
  1713. }
  1714. declare module BABYLON {
  1715. /** @hidden */
  1716. export var gridVertexShader: {
  1717. name: string;
  1718. shader: string;
  1719. };
  1720. }
  1721. declare module BABYLON {
  1722. /**
  1723. * The grid materials allows you to wrap any shape with a grid.
  1724. * Colors are customizable.
  1725. */
  1726. export class GridMaterial extends BABYLON.PushMaterial {
  1727. /**
  1728. * Main color of the grid (e.g. between lines)
  1729. */
  1730. mainColor: BABYLON.Color3;
  1731. /**
  1732. * Color of the grid lines.
  1733. */
  1734. lineColor: BABYLON.Color3;
  1735. /**
  1736. * The scale of the grid compared to unit.
  1737. */
  1738. gridRatio: number;
  1739. /**
  1740. * Allows setting an offset for the grid lines.
  1741. */
  1742. gridOffset: BABYLON.Vector3;
  1743. /**
  1744. * The frequency of thicker lines.
  1745. */
  1746. majorUnitFrequency: number;
  1747. /**
  1748. * The visibility of minor units in the grid.
  1749. */
  1750. minorUnitVisibility: number;
  1751. /**
  1752. * The grid opacity outside of the lines.
  1753. */
  1754. opacity: number;
  1755. /**
  1756. * Determine RBG output is premultiplied by alpha value.
  1757. */
  1758. preMultiplyAlpha: boolean;
  1759. private _opacityTexture;
  1760. opacityTexture: BABYLON.BaseTexture;
  1761. private _gridControl;
  1762. private _renderId;
  1763. /**
  1764. * constructor
  1765. * @param name The name given to the material in order to identify it afterwards.
  1766. * @param scene The scene the material is used in.
  1767. */
  1768. constructor(name: string, scene: BABYLON.Scene);
  1769. /**
  1770. * Returns wehter or not the grid requires alpha blending.
  1771. */
  1772. needAlphaBlending(): boolean;
  1773. needAlphaBlendingForMesh(mesh: BABYLON.AbstractMesh): boolean;
  1774. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1775. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1776. /**
  1777. * Dispose the material and its associated resources.
  1778. * @param forceDisposeEffect will also dispose the used effect when true
  1779. */
  1780. dispose(forceDisposeEffect?: boolean): void;
  1781. clone(name: string): GridMaterial;
  1782. serialize(): any;
  1783. getClassName(): string;
  1784. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): GridMaterial;
  1785. }
  1786. }
  1787. declare module BABYLON {
  1788. /** @hidden */
  1789. export var lavaPixelShader: {
  1790. name: string;
  1791. shader: string;
  1792. };
  1793. }
  1794. declare module BABYLON {
  1795. /** @hidden */
  1796. export var lavaVertexShader: {
  1797. name: string;
  1798. shader: string;
  1799. };
  1800. }
  1801. declare module BABYLON {
  1802. export class LavaMaterial extends BABYLON.PushMaterial {
  1803. private _diffuseTexture;
  1804. diffuseTexture: BABYLON.BaseTexture;
  1805. noiseTexture: BABYLON.BaseTexture;
  1806. fogColor: BABYLON.Color3;
  1807. speed: number;
  1808. movingSpeed: number;
  1809. lowFrequencySpeed: number;
  1810. fogDensity: number;
  1811. private _lastTime;
  1812. diffuseColor: BABYLON.Color3;
  1813. private _disableLighting;
  1814. disableLighting: boolean;
  1815. private _unlit;
  1816. unlit: boolean;
  1817. private _maxSimultaneousLights;
  1818. maxSimultaneousLights: number;
  1819. private _scaledDiffuse;
  1820. private _renderId;
  1821. constructor(name: string, scene: BABYLON.Scene);
  1822. needAlphaBlending(): boolean;
  1823. needAlphaTesting(): boolean;
  1824. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1825. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1826. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1827. getAnimatables(): BABYLON.IAnimatable[];
  1828. getActiveTextures(): BABYLON.BaseTexture[];
  1829. hasTexture(texture: BABYLON.BaseTexture): boolean;
  1830. dispose(forceDisposeEffect?: boolean): void;
  1831. clone(name: string): LavaMaterial;
  1832. serialize(): any;
  1833. getClassName(): string;
  1834. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): LavaMaterial;
  1835. }
  1836. }
  1837. declare module BABYLON {
  1838. /** @hidden */
  1839. export var mixPixelShader: {
  1840. name: string;
  1841. shader: string;
  1842. };
  1843. }
  1844. declare module BABYLON {
  1845. /** @hidden */
  1846. export var mixVertexShader: {
  1847. name: string;
  1848. shader: string;
  1849. };
  1850. }
  1851. declare module BABYLON {
  1852. export class MixMaterial extends BABYLON.PushMaterial {
  1853. /**
  1854. * Mix textures
  1855. */
  1856. private _mixTexture1;
  1857. mixTexture1: BABYLON.BaseTexture;
  1858. private _mixTexture2;
  1859. mixTexture2: BABYLON.BaseTexture;
  1860. /**
  1861. * Diffuse textures
  1862. */
  1863. private _diffuseTexture1;
  1864. diffuseTexture1: BABYLON.Texture;
  1865. private _diffuseTexture2;
  1866. diffuseTexture2: BABYLON.Texture;
  1867. private _diffuseTexture3;
  1868. diffuseTexture3: BABYLON.Texture;
  1869. private _diffuseTexture4;
  1870. diffuseTexture4: BABYLON.Texture;
  1871. private _diffuseTexture5;
  1872. diffuseTexture5: BABYLON.Texture;
  1873. private _diffuseTexture6;
  1874. diffuseTexture6: BABYLON.Texture;
  1875. private _diffuseTexture7;
  1876. diffuseTexture7: BABYLON.Texture;
  1877. private _diffuseTexture8;
  1878. diffuseTexture8: BABYLON.Texture;
  1879. /**
  1880. * Uniforms
  1881. */
  1882. diffuseColor: BABYLON.Color3;
  1883. specularColor: BABYLON.Color3;
  1884. specularPower: number;
  1885. private _disableLighting;
  1886. disableLighting: boolean;
  1887. private _maxSimultaneousLights;
  1888. maxSimultaneousLights: number;
  1889. private _renderId;
  1890. constructor(name: string, scene: BABYLON.Scene);
  1891. needAlphaBlending(): boolean;
  1892. needAlphaTesting(): boolean;
  1893. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1894. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1895. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1896. getAnimatables(): BABYLON.IAnimatable[];
  1897. getActiveTextures(): BABYLON.BaseTexture[];
  1898. hasTexture(texture: BABYLON.BaseTexture): boolean;
  1899. dispose(forceDisposeEffect?: boolean): void;
  1900. clone(name: string): MixMaterial;
  1901. serialize(): any;
  1902. getClassName(): string;
  1903. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): MixMaterial;
  1904. }
  1905. }
  1906. declare module BABYLON {
  1907. /** @hidden */
  1908. export var normalPixelShader: {
  1909. name: string;
  1910. shader: string;
  1911. };
  1912. }
  1913. declare module BABYLON {
  1914. /** @hidden */
  1915. export var normalVertexShader: {
  1916. name: string;
  1917. shader: string;
  1918. };
  1919. }
  1920. declare module BABYLON {
  1921. export class NormalMaterial extends BABYLON.PushMaterial {
  1922. private _diffuseTexture;
  1923. diffuseTexture: BABYLON.BaseTexture;
  1924. diffuseColor: BABYLON.Color3;
  1925. private _disableLighting;
  1926. disableLighting: boolean;
  1927. private _maxSimultaneousLights;
  1928. maxSimultaneousLights: number;
  1929. private _renderId;
  1930. constructor(name: string, scene: BABYLON.Scene);
  1931. needAlphaBlending(): boolean;
  1932. needAlphaBlendingForMesh(mesh: BABYLON.AbstractMesh): boolean;
  1933. needAlphaTesting(): boolean;
  1934. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1935. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1936. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1937. getAnimatables(): BABYLON.IAnimatable[];
  1938. getActiveTextures(): BABYLON.BaseTexture[];
  1939. hasTexture(texture: BABYLON.BaseTexture): boolean;
  1940. dispose(forceDisposeEffect?: boolean): void;
  1941. clone(name: string): NormalMaterial;
  1942. serialize(): any;
  1943. getClassName(): string;
  1944. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): NormalMaterial;
  1945. }
  1946. }
  1947. declare module BABYLON {
  1948. /** @hidden */
  1949. export var shadowOnlyPixelShader: {
  1950. name: string;
  1951. shader: string;
  1952. };
  1953. }
  1954. declare module BABYLON {
  1955. /** @hidden */
  1956. export var shadowOnlyVertexShader: {
  1957. name: string;
  1958. shader: string;
  1959. };
  1960. }
  1961. declare module BABYLON {
  1962. export class ShadowOnlyMaterial extends BABYLON.PushMaterial {
  1963. private _renderId;
  1964. private _activeLight;
  1965. constructor(name: string, scene: BABYLON.Scene);
  1966. shadowColor: BABYLON.Color3;
  1967. needAlphaBlending(): boolean;
  1968. needAlphaTesting(): boolean;
  1969. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  1970. activeLight: BABYLON.IShadowLight;
  1971. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  1972. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  1973. clone(name: string): ShadowOnlyMaterial;
  1974. serialize(): any;
  1975. getClassName(): string;
  1976. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): ShadowOnlyMaterial;
  1977. }
  1978. }
  1979. declare module BABYLON {
  1980. /** @hidden */
  1981. export var simplePixelShader: {
  1982. name: string;
  1983. shader: string;
  1984. };
  1985. }
  1986. declare module BABYLON {
  1987. /** @hidden */
  1988. export var simpleVertexShader: {
  1989. name: string;
  1990. shader: string;
  1991. };
  1992. }
  1993. declare module BABYLON {
  1994. export class SimpleMaterial extends BABYLON.PushMaterial {
  1995. private _diffuseTexture;
  1996. diffuseTexture: BABYLON.BaseTexture;
  1997. diffuseColor: BABYLON.Color3;
  1998. private _disableLighting;
  1999. disableLighting: boolean;
  2000. private _maxSimultaneousLights;
  2001. maxSimultaneousLights: number;
  2002. private _renderId;
  2003. constructor(name: string, scene: BABYLON.Scene);
  2004. needAlphaBlending(): boolean;
  2005. needAlphaTesting(): boolean;
  2006. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  2007. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  2008. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  2009. getAnimatables(): BABYLON.IAnimatable[];
  2010. getActiveTextures(): BABYLON.BaseTexture[];
  2011. hasTexture(texture: BABYLON.BaseTexture): boolean;
  2012. dispose(forceDisposeEffect?: boolean): void;
  2013. clone(name: string): SimpleMaterial;
  2014. serialize(): any;
  2015. getClassName(): string;
  2016. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): SimpleMaterial;
  2017. }
  2018. }
  2019. declare module BABYLON {
  2020. /** @hidden */
  2021. export var skyPixelShader: {
  2022. name: string;
  2023. shader: string;
  2024. };
  2025. }
  2026. declare module BABYLON {
  2027. /** @hidden */
  2028. export var skyVertexShader: {
  2029. name: string;
  2030. shader: string;
  2031. };
  2032. }
  2033. declare module BABYLON {
  2034. /**
  2035. * This is the sky material which allows to create dynamic and texture free effects for skyboxes.
  2036. * @see https://doc.babylonjs.com/extensions/sky
  2037. */
  2038. export class SkyMaterial extends BABYLON.PushMaterial {
  2039. /**
  2040. * Defines the overall luminance of sky in interval ]0, 1[.
  2041. */
  2042. luminance: number;
  2043. /**
  2044. * Defines the amount (scattering) of haze as opposed to molecules in atmosphere.
  2045. */
  2046. turbidity: number;
  2047. /**
  2048. * Defines the sky appearance (light intensity).
  2049. */
  2050. rayleigh: number;
  2051. /**
  2052. * Defines the mieCoefficient in interval [0, 0.1] which affects the property .mieDirectionalG.
  2053. */
  2054. mieCoefficient: number;
  2055. /**
  2056. * Defines the amount of haze particles following the Mie scattering theory.
  2057. */
  2058. mieDirectionalG: number;
  2059. /**
  2060. * Defines the distance of the sun according to the active scene camera.
  2061. */
  2062. distance: number;
  2063. /**
  2064. * Defines the sun inclination, in interval [-0.5, 0.5]. When the inclination is not 0, the sun is said
  2065. * "inclined".
  2066. */
  2067. inclination: number;
  2068. /**
  2069. * Defines the solar azimuth in interval [0, 1]. The azimuth is the angle in the horizontal plan between
  2070. * an object direction and a reference direction.
  2071. */
  2072. azimuth: number;
  2073. /**
  2074. * Defines the sun position in the sky on (x,y,z). If the property .useSunPosition is set to false, then
  2075. * the property is overriden by the inclination and the azimuth and can be read at any moment.
  2076. */
  2077. sunPosition: BABYLON.Vector3;
  2078. /**
  2079. * Defines if the sun position should be computed (inclination and azimuth) according to the given
  2080. * .sunPosition property.
  2081. */
  2082. useSunPosition: boolean;
  2083. /**
  2084. * Defines an offset vector used to get a horizon offset.
  2085. * @example skyMaterial.cameraOffset.y = camera.globalPosition.y // Set horizon relative to 0 on the Y axis
  2086. */
  2087. cameraOffset: BABYLON.Vector3;
  2088. private _cameraPosition;
  2089. private _renderId;
  2090. /**
  2091. * Instantiates a new sky material.
  2092. * This material allows to create dynamic and texture free
  2093. * effects for skyboxes by taking care of the atmosphere state.
  2094. * @see https://doc.babylonjs.com/extensions/sky
  2095. * @param name Define the name of the material in the scene
  2096. * @param scene Define the scene the material belong to
  2097. */
  2098. constructor(name: string, scene: BABYLON.Scene);
  2099. /**
  2100. * Specifies if the material will require alpha blending
  2101. * @returns a boolean specifying if alpha blending is needed
  2102. */
  2103. needAlphaBlending(): boolean;
  2104. /**
  2105. * Specifies if this material should be rendered in alpha test mode
  2106. * @returns false as the sky material doesn't need alpha testing.
  2107. */
  2108. needAlphaTesting(): boolean;
  2109. /**
  2110. * Get the texture used for alpha test purpose.
  2111. * @returns null as the sky material has no texture.
  2112. */
  2113. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  2114. /**
  2115. * Get if the submesh is ready to be used and all its information available.
  2116. * Child classes can use it to update shaders
  2117. * @param mesh defines the mesh to check
  2118. * @param subMesh defines which submesh to check
  2119. * @param useInstances specifies that instances should be used
  2120. * @returns a boolean indicating that the submesh is ready or not
  2121. */
  2122. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  2123. /**
  2124. * Binds the submesh to this material by preparing the effect and shader to draw
  2125. * @param world defines the world transformation matrix
  2126. * @param mesh defines the mesh containing the submesh
  2127. * @param subMesh defines the submesh to bind the material to
  2128. */
  2129. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  2130. /**
  2131. * Get the list of animatables in the material.
  2132. * @returns the list of animatables object used in the material
  2133. */
  2134. getAnimatables(): BABYLON.IAnimatable[];
  2135. /**
  2136. * Disposes the material
  2137. * @param forceDisposeEffect specifies if effects should be forcefully disposed
  2138. */
  2139. dispose(forceDisposeEffect?: boolean): void;
  2140. /**
  2141. * Makes a duplicate of the material, and gives it a new name
  2142. * @param name defines the new name for the duplicated material
  2143. * @returns the cloned material
  2144. */
  2145. clone(name: string): SkyMaterial;
  2146. /**
  2147. * Serializes this material in a JSON representation
  2148. * @returns the serialized material object
  2149. */
  2150. serialize(): any;
  2151. /**
  2152. * Gets the current class name of the material e.g. "SkyMaterial"
  2153. * Mainly use in serialization.
  2154. * @returns the class name
  2155. */
  2156. getClassName(): string;
  2157. /**
  2158. * Creates a sky material from parsed material data
  2159. * @param source defines the JSON representation of the material
  2160. * @param scene defines the hosting scene
  2161. * @param rootUrl defines the root URL to use to load textures and relative dependencies
  2162. * @returns a new sky material
  2163. */
  2164. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): SkyMaterial;
  2165. }
  2166. }
  2167. declare module BABYLON {
  2168. /** @hidden */
  2169. export var terrainPixelShader: {
  2170. name: string;
  2171. shader: string;
  2172. };
  2173. }
  2174. declare module BABYLON {
  2175. /** @hidden */
  2176. export var terrainVertexShader: {
  2177. name: string;
  2178. shader: string;
  2179. };
  2180. }
  2181. declare module BABYLON {
  2182. export class TerrainMaterial extends BABYLON.PushMaterial {
  2183. private _mixTexture;
  2184. mixTexture: BABYLON.BaseTexture;
  2185. private _diffuseTexture1;
  2186. diffuseTexture1: BABYLON.Texture;
  2187. private _diffuseTexture2;
  2188. diffuseTexture2: BABYLON.Texture;
  2189. private _diffuseTexture3;
  2190. diffuseTexture3: BABYLON.Texture;
  2191. private _bumpTexture1;
  2192. bumpTexture1: BABYLON.Texture;
  2193. private _bumpTexture2;
  2194. bumpTexture2: BABYLON.Texture;
  2195. private _bumpTexture3;
  2196. bumpTexture3: BABYLON.Texture;
  2197. diffuseColor: BABYLON.Color3;
  2198. specularColor: BABYLON.Color3;
  2199. specularPower: number;
  2200. private _disableLighting;
  2201. disableLighting: boolean;
  2202. private _maxSimultaneousLights;
  2203. maxSimultaneousLights: number;
  2204. private _renderId;
  2205. constructor(name: string, scene: BABYLON.Scene);
  2206. needAlphaBlending(): boolean;
  2207. needAlphaTesting(): boolean;
  2208. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  2209. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  2210. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  2211. getAnimatables(): BABYLON.IAnimatable[];
  2212. getActiveTextures(): BABYLON.BaseTexture[];
  2213. hasTexture(texture: BABYLON.BaseTexture): boolean;
  2214. dispose(forceDisposeEffect?: boolean): void;
  2215. clone(name: string): TerrainMaterial;
  2216. serialize(): any;
  2217. getClassName(): string;
  2218. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): TerrainMaterial;
  2219. }
  2220. }
  2221. declare module BABYLON {
  2222. /** @hidden */
  2223. export var triplanarPixelShader: {
  2224. name: string;
  2225. shader: string;
  2226. };
  2227. }
  2228. declare module BABYLON {
  2229. /** @hidden */
  2230. export var triplanarVertexShader: {
  2231. name: string;
  2232. shader: string;
  2233. };
  2234. }
  2235. declare module BABYLON {
  2236. export class TriPlanarMaterial extends BABYLON.PushMaterial {
  2237. mixTexture: BABYLON.BaseTexture;
  2238. private _diffuseTextureX;
  2239. diffuseTextureX: BABYLON.BaseTexture;
  2240. private _diffuseTextureY;
  2241. diffuseTextureY: BABYLON.BaseTexture;
  2242. private _diffuseTextureZ;
  2243. diffuseTextureZ: BABYLON.BaseTexture;
  2244. private _normalTextureX;
  2245. normalTextureX: BABYLON.BaseTexture;
  2246. private _normalTextureY;
  2247. normalTextureY: BABYLON.BaseTexture;
  2248. private _normalTextureZ;
  2249. normalTextureZ: BABYLON.BaseTexture;
  2250. tileSize: number;
  2251. diffuseColor: BABYLON.Color3;
  2252. specularColor: BABYLON.Color3;
  2253. specularPower: number;
  2254. private _disableLighting;
  2255. disableLighting: boolean;
  2256. private _maxSimultaneousLights;
  2257. maxSimultaneousLights: number;
  2258. private _renderId;
  2259. constructor(name: string, scene: BABYLON.Scene);
  2260. needAlphaBlending(): boolean;
  2261. needAlphaTesting(): boolean;
  2262. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  2263. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  2264. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  2265. getAnimatables(): BABYLON.IAnimatable[];
  2266. getActiveTextures(): BABYLON.BaseTexture[];
  2267. hasTexture(texture: BABYLON.BaseTexture): boolean;
  2268. dispose(forceDisposeEffect?: boolean): void;
  2269. clone(name: string): TriPlanarMaterial;
  2270. serialize(): any;
  2271. getClassName(): string;
  2272. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): TriPlanarMaterial;
  2273. }
  2274. }
  2275. declare module BABYLON {
  2276. /** @hidden */
  2277. export var waterPixelShader: {
  2278. name: string;
  2279. shader: string;
  2280. };
  2281. }
  2282. declare module BABYLON {
  2283. /** @hidden */
  2284. export var waterVertexShader: {
  2285. name: string;
  2286. shader: string;
  2287. };
  2288. }
  2289. declare module BABYLON {
  2290. export class WaterMaterial extends BABYLON.PushMaterial {
  2291. renderTargetSize: BABYLON.Vector2;
  2292. private _bumpTexture;
  2293. bumpTexture: BABYLON.BaseTexture;
  2294. diffuseColor: BABYLON.Color3;
  2295. specularColor: BABYLON.Color3;
  2296. specularPower: number;
  2297. private _disableLighting;
  2298. disableLighting: boolean;
  2299. private _maxSimultaneousLights;
  2300. maxSimultaneousLights: number;
  2301. /**
  2302. * @param {number}: Represents the wind force
  2303. */
  2304. windForce: number;
  2305. /**
  2306. * @param {Vector2}: The direction of the wind in the plane (X, Z)
  2307. */
  2308. windDirection: BABYLON.Vector2;
  2309. /**
  2310. * @param {number}: Wave height, represents the height of the waves
  2311. */
  2312. waveHeight: number;
  2313. /**
  2314. * @param {number}: Bump height, represents the bump height related to the bump map
  2315. */
  2316. bumpHeight: number;
  2317. /**
  2318. * @param {boolean}: Add a smaller moving bump to less steady waves.
  2319. */
  2320. private _bumpSuperimpose;
  2321. bumpSuperimpose: boolean;
  2322. /**
  2323. * @param {boolean}: Color refraction and reflection differently with .waterColor2 and .colorBlendFactor2. Non-linear (physically correct) fresnel.
  2324. */
  2325. private _fresnelSeparate;
  2326. fresnelSeparate: boolean;
  2327. /**
  2328. * @param {boolean}: bump Waves modify the reflection.
  2329. */
  2330. private _bumpAffectsReflection;
  2331. bumpAffectsReflection: boolean;
  2332. /**
  2333. * @param {number}: The water color blended with the refraction (near)
  2334. */
  2335. waterColor: BABYLON.Color3;
  2336. /**
  2337. * @param {number}: The blend factor related to the water color
  2338. */
  2339. colorBlendFactor: number;
  2340. /**
  2341. * @param {number}: The water color blended with the reflection (far)
  2342. */
  2343. waterColor2: BABYLON.Color3;
  2344. /**
  2345. * @param {number}: The blend factor related to the water color (reflection, far)
  2346. */
  2347. colorBlendFactor2: number;
  2348. /**
  2349. * @param {number}: Represents the maximum length of a wave
  2350. */
  2351. waveLength: number;
  2352. /**
  2353. * @param {number}: Defines the waves speed
  2354. */
  2355. waveSpeed: number;
  2356. protected _renderTargets: BABYLON.SmartArray<BABYLON.RenderTargetTexture>;
  2357. private _mesh;
  2358. private _refractionRTT;
  2359. private _reflectionRTT;
  2360. private _reflectionTransform;
  2361. private _lastTime;
  2362. private _lastDeltaTime;
  2363. private _renderId;
  2364. private _useLogarithmicDepth;
  2365. private _waitingRenderList;
  2366. /**
  2367. * Gets a boolean indicating that current material needs to register RTT
  2368. */
  2369. readonly hasRenderTargetTextures: boolean;
  2370. /**
  2371. * Constructor
  2372. */
  2373. constructor(name: string, scene: BABYLON.Scene, renderTargetSize?: BABYLON.Vector2);
  2374. useLogarithmicDepth: boolean;
  2375. readonly refractionTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
  2376. readonly reflectionTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
  2377. addToRenderList(node: any): void;
  2378. enableRenderTargets(enable: boolean): void;
  2379. getRenderList(): BABYLON.Nullable<BABYLON.AbstractMesh[]>;
  2380. readonly renderTargetsEnabled: boolean;
  2381. needAlphaBlending(): boolean;
  2382. needAlphaTesting(): boolean;
  2383. getAlphaTestTexture(): BABYLON.Nullable<BABYLON.BaseTexture>;
  2384. isReadyForSubMesh(mesh: BABYLON.AbstractMesh, subMesh: BABYLON.SubMesh, useInstances?: boolean): boolean;
  2385. bindForSubMesh(world: BABYLON.Matrix, mesh: BABYLON.Mesh, subMesh: BABYLON.SubMesh): void;
  2386. private _createRenderTargets;
  2387. getAnimatables(): BABYLON.IAnimatable[];
  2388. getActiveTextures(): BABYLON.BaseTexture[];
  2389. hasTexture(texture: BABYLON.BaseTexture): boolean;
  2390. dispose(forceDisposeEffect?: boolean): void;
  2391. clone(name: string): WaterMaterial;
  2392. serialize(): any;
  2393. getClassName(): string;
  2394. static Parse(source: any, scene: BABYLON.Scene, rootUrl: string): WaterMaterial;
  2395. static CreateDefaultMesh(name: string, scene: BABYLON.Scene): BABYLON.Mesh;
  2396. }
  2397. }