babylon.perlinNoiseProceduralTexture.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /// <reference path="../../../dist/preview release/babylon.d.ts"/>
  2. module BABYLON {
  3. export class PerlinNoiseProceduralTexture extends ProceduralTexture {
  4. public time: number = 0.0;
  5. public speed: number = 1.0;
  6. public translationSpeed: number = 1.0;
  7. private _currentTranslation: number = 0;
  8. constructor(name: string, size: number, scene: Scene, fallbackTexture?: Texture, generateMipMaps?: boolean) {
  9. super(name, size, "perlinNoiseProceduralTexture", scene, fallbackTexture, generateMipMaps);
  10. this.updateShaderUniforms();
  11. }
  12. public updateShaderUniforms() {
  13. this.setFloat("size", this.getRenderSize());
  14. var deltaTime = this.getScene().getEngine().getDeltaTime();
  15. this.time += deltaTime;
  16. this.setFloat("time", this.time * this.speed / 1000);
  17. this._currentTranslation += deltaTime * this.translationSpeed / 1000.0;
  18. this.setFloat("translationSpeed", this._currentTranslation);
  19. }
  20. public render(useCameraPostProcess?: boolean) {
  21. this.updateShaderUniforms();
  22. super.render(useCameraPostProcess);
  23. }
  24. public resize(size: any, generateMipMaps: any): void {
  25. super.resize(size, generateMipMaps);
  26. }
  27. }
  28. }