babylon.grassProceduralTexture.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /// <reference path="../../../dist/preview release/babylon.d.ts"/>
  2. module BABYLON {
  3. export class GrassProceduralTexture extends ProceduralTexture {
  4. private _grassColors: Color3[];
  5. private _herb1 = new Color3(0.29, 0.38, 0.02);
  6. private _herb2 = new Color3(0.36, 0.49, 0.09);
  7. private _herb3 = new Color3(0.51, 0.6, 0.28);
  8. private _groundColor = new Color3(1, 1, 1);
  9. constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean) {
  10. super(name, size, "grassProceduralTexture", scene, fallbackTexture, generateMipMaps);
  11. this._grassColors = [
  12. new Color3(0.29, 0.38, 0.02),
  13. new Color3(0.36, 0.49, 0.09),
  14. new Color3(0.51, 0.6, 0.28)
  15. ];
  16. this.updateShaderUniforms();
  17. this.refreshRate = 0;
  18. }
  19. public updateShaderUniforms() {
  20. this.setColor3("herb1Color", this._grassColors[0]);
  21. this.setColor3("herb2Color", this._grassColors[1]);
  22. this.setColor3("herb3Color", this._grassColors[2]);
  23. this.setColor3("groundColor", this._groundColor);
  24. }
  25. public get grassColors(): Color3[] {
  26. return this._grassColors;
  27. }
  28. public set grassColors(value: Color3[]) {
  29. this._grassColors = value;
  30. this.updateShaderUniforms();
  31. }
  32. public get groundColor(): Color3 {
  33. return this._groundColor;
  34. }
  35. public set groundColor(value: Color3) {
  36. this.groundColor = value;
  37. this.updateShaderUniforms();
  38. }
  39. }
  40. }