babylon.pbrMaterial.d.ts 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  2. declare module BABYLON {
  3. class PBRMaterial extends BABYLON.Material {
  4. directIntensity: number;
  5. emissiveIntensity: number;
  6. environmentIntensity: number;
  7. specularIntensity: number;
  8. private _lightingInfos;
  9. overloadedShadowIntensity: number;
  10. overloadedShadeIntensity: number;
  11. private _overloadedShadowInfos;
  12. cameraExposure: number;
  13. cameraContrast: number;
  14. private _cameraInfos;
  15. overloadedAmbientIntensity: number;
  16. overloadedAlbedoIntensity: number;
  17. overloadedReflectivityIntensity: number;
  18. overloadedEmissiveIntensity: number;
  19. private _overloadedIntensity;
  20. overloadedAmbient: Color3;
  21. overloadedAlbedo: Color3;
  22. overloadedReflectivity: Color3;
  23. overloadedEmissive: Color3;
  24. overloadedReflection: Color3;
  25. overloadedMicroSurface: number;
  26. overloadedMicroSurfaceIntensity: number;
  27. overloadedReflectionIntensity: number;
  28. private _overloadedMicroSurface;
  29. disableBumpMap: boolean;
  30. albedoTexture: BaseTexture;
  31. ambientTexture: BaseTexture;
  32. opacityTexture: BaseTexture;
  33. reflectionTexture: BaseTexture;
  34. emissiveTexture: BaseTexture;
  35. reflectivityTexture: BaseTexture;
  36. bumpTexture: BaseTexture;
  37. lightmapTexture: BaseTexture;
  38. ambientColor: Color3;
  39. albedoColor: Color3;
  40. reflectivityColor: Color3;
  41. reflectionColor: Color3;
  42. microSurface: number;
  43. emissiveColor: Color3;
  44. useAlphaFromAlbedoTexture: boolean;
  45. useEmissiveAsIllumination: boolean;
  46. linkEmissiveWithAlbedo: boolean;
  47. useSpecularOverAlpha: boolean;
  48. disableLighting: boolean;
  49. useLightmapAsShadowmap: boolean;
  50. opacityFresnelParameters: FresnelParameters;
  51. emissiveFresnelParameters: FresnelParameters;
  52. useMicroSurfaceFromReflectivityMapAlpha: boolean;
  53. private _renderTargets;
  54. private _worldViewProjectionMatrix;
  55. private _globalAmbientColor;
  56. private _tempColor;
  57. private _renderId;
  58. private _defines;
  59. private _cachedDefines;
  60. private _useLogarithmicDepth;
  61. constructor(name: string, scene: Scene);
  62. useLogarithmicDepth: boolean;
  63. needAlphaBlending(): boolean;
  64. needAlphaTesting(): boolean;
  65. private _shouldUseAlphaFromAlbedoTexture();
  66. getAlphaTestTexture(): BaseTexture;
  67. private _checkCache(scene, mesh?, useInstances?);
  68. static PrepareDefinesForLights(scene: Scene, mesh: AbstractMesh, defines: MaterialDefines): boolean;
  69. private static _scaledAlbedo;
  70. private static _scaledReflectivity;
  71. private static _scaledEmissive;
  72. private static _scaledReflection;
  73. static BindLights(scene: Scene, mesh: AbstractMesh, effect: Effect, defines: MaterialDefines): void;
  74. isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean;
  75. unbind(): void;
  76. bindOnlyWorldMatrix(world: Matrix): void;
  77. private _myScene;
  78. private _myShadowGenerator;
  79. bind(world: Matrix, mesh?: Mesh): void;
  80. getAnimatables(): IAnimatable[];
  81. dispose(forceDisposeEffect?: boolean): void;
  82. clone(name: string): PBRMaterial;
  83. serialize(): any;
  84. static Parse(source: any, scene: Scene, rootUrl: string): PBRMaterial;
  85. }
  86. }
  87. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  88. declare module BABYLON {
  89. class SphericalHarmonics {
  90. L00: Vector3;
  91. L1_1: Vector3;
  92. L10: Vector3;
  93. L11: Vector3;
  94. L2_2: Vector3;
  95. L2_1: Vector3;
  96. L20: Vector3;
  97. L21: Vector3;
  98. L22: Vector3;
  99. addLight(direction: Vector3, color: Color3, deltaSolidAngle: number): void;
  100. scale(scale: number): void;
  101. }
  102. }
  103. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  104. declare module BABYLON {
  105. class SphericalPolynomial {
  106. x: Vector3;
  107. y: Vector3;
  108. z: Vector3;
  109. xx: Vector3;
  110. yy: Vector3;
  111. zz: Vector3;
  112. xy: Vector3;
  113. yz: Vector3;
  114. zx: Vector3;
  115. addAmbient(color: Color3): void;
  116. static getSphericalPolynomialFromHarmonics(harmonics: SphericalHarmonics): SphericalPolynomial;
  117. }
  118. }
  119. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  120. declare module BABYLON.Internals {
  121. interface CubeMapInfo {
  122. front: Float32Array;
  123. back: Float32Array;
  124. left: Float32Array;
  125. right: Float32Array;
  126. up: Float32Array;
  127. down: Float32Array;
  128. size: number;
  129. }
  130. class PanoramaToCubeMapTools {
  131. private static FACE_FRONT;
  132. private static FACE_BACK;
  133. private static FACE_LEFT;
  134. private static FACE_RIGHT;
  135. private static FACE_UP;
  136. private static FACE_DOWN;
  137. static ConvertPanoramaToCubemap(float32Array: Float32Array, inputWidth: number, inputHeight: number, size: number): CubeMapInfo;
  138. private static CreateCubemapTexture(texSize, faceData, float32Array, inputWidth, inputHeight);
  139. private static CalcProjectionSpherical(vDir, float32Array, inputWidth, inputHeight);
  140. }
  141. }
  142. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  143. declare module BABYLON.Internals {
  144. class CubeMapToSphericalPolynomialTools {
  145. private static FileFaces;
  146. static ConvertCubeMapToSphericalPolynomial(cubeInfo: CubeMapInfo): SphericalPolynomial;
  147. }
  148. }
  149. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  150. declare module BABYLON.Internals {
  151. interface HDRInfo {
  152. height: number;
  153. width: number;
  154. dataPosition: number;
  155. }
  156. class HDRTools {
  157. private static Ldexp(mantissa, exponent);
  158. private static Rgbe2float(float32array, red, green, blue, exponent, index);
  159. private static readStringLine(uint8array, startIndex);
  160. static RGBE_ReadHeader(uint8array: Uint8Array): HDRInfo;
  161. static GetCubeMapTextureData(buffer: ArrayBuffer, size: number): CubeMapInfo;
  162. static RGBE_ReadPixels(uint8array: Uint8Array, hdrInfo: HDRInfo): Float32Array;
  163. private static RGBE_ReadPixels_RLE(uint8array, hdrInfo);
  164. }
  165. }
  166. /// <reference path="../../../dist/preview release/babylon.d.ts" />
  167. declare module BABYLON {
  168. class HDRCubeTexture extends BaseTexture {
  169. url: string;
  170. coordinatesMode: number;
  171. private _noMipmap;
  172. private _extensions;
  173. private _textureMatrix;
  174. private _size;
  175. sphericalPolynomial: SphericalPolynomial;
  176. constructor(url: string, scene: Scene, size: number, noMipmap?: boolean);
  177. private loadTexture();
  178. clone(): HDRCubeTexture;
  179. delayLoad(): void;
  180. getReflectionTextureMatrix(): Matrix;
  181. static Parse(parsedTexture: any, scene: Scene, rootUrl: string): HDRCubeTexture;
  182. serialize(): any;
  183. }
  184. }