babylon.grassProceduralTexture.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. }
  18. public updateShaderUniforms() {
  19. this.setColor3("herb1Color", this._grassColors[0]);
  20. this.setColor3("herb2Color", this._grassColors[1]);
  21. this.setColor3("herb3Color", this._grassColors[2]);
  22. this.setColor3("groundColor", this._groundColor);
  23. }
  24. public get grassColors(): Color3[] {
  25. return this._grassColors;
  26. }
  27. public set grassColors(value: Color3[]) {
  28. this._grassColors = value;
  29. this.updateShaderUniforms();
  30. }
  31. public get groundColor(): Color3 {
  32. return this._groundColor;
  33. }
  34. public set groundColor(value: Color3) {
  35. this.groundColor = value;
  36. this.updateShaderUniforms();
  37. }
  38. }
  39. }