babylon.marbleProceduralTexture.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /// <reference path="../../../dist/preview release/babylon.d.ts"/>
  2. module BABYLON {
  3. export class MarbleProceduralTexture extends ProceduralTexture {
  4. private _numberOfTilesHeight: number = 3;
  5. private _numberOfTilesWidth: number = 3;
  6. private _amplitude: number = 9.0;
  7. private _marbleColor = new Color3(0.77, 0.47, 0.40);
  8. private _jointColor = new Color3(0.72, 0.72, 0.72);
  9. constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean) {
  10. super(name, size, "marbleProceduralTexture", scene, fallbackTexture, generateMipMaps);
  11. this.updateShaderUniforms();
  12. this.refreshRate = 0;
  13. }
  14. public updateShaderUniforms() {
  15. this.setFloat("numberOfTilesHeight", this._numberOfTilesHeight);
  16. this.setFloat("numberOfTilesWidth", this._numberOfTilesWidth);
  17. this.setFloat("amplitude", this._amplitude);
  18. this.setColor3("marbleColor", this._marbleColor);
  19. this.setColor3("jointColor", this._jointColor);
  20. }
  21. public get numberOfTilesHeight(): number {
  22. return this._numberOfTilesHeight;
  23. }
  24. public set numberOfTilesHeight(value: number) {
  25. this._numberOfTilesHeight = value;
  26. this.updateShaderUniforms();
  27. }
  28. public get numberOfTilesWidth(): number {
  29. return this._numberOfTilesWidth;
  30. }
  31. public set numberOfTilesWidth(value: number) {
  32. this._numberOfTilesWidth = value;
  33. this.updateShaderUniforms();
  34. }
  35. public get jointColor(): Color3 {
  36. return this._jointColor;
  37. }
  38. public set jointColor(value: Color3) {
  39. this._jointColor = value;
  40. this.updateShaderUniforms();
  41. }
  42. public get marbleColor(): Color3 {
  43. return this._marbleColor;
  44. }
  45. public set marbleColor(value: Color3) {
  46. this._marbleColor = value;
  47. this.updateShaderUniforms();
  48. }
  49. }
  50. }