Lewy Blue преди 6 години
родител
ревизия
70b4b591a5
променени са 2 файла, в които са добавени 143 реда и са изтрити 0 реда
  1. 68 0
      examples/jsm/misc/Ocean.d.ts
  2. 75 0
      examples/jsm/shaders/OceanShaders.d.ts

+ 68 - 0
examples/jsm/misc/Ocean.d.ts

@@ -0,0 +1,68 @@
+import {
+  OrthographicCamera,
+  Mesh,
+  Scene,
+  ShaderMaterial,
+  Vector3,
+  WebGLRenderer,
+  WebGLRenderTarget,
+} from '../../../src/Three';
+
+export class Ocean {
+  constructor( renderer: WebGLRenderer, camera?: OrthographicCamera, scene?: Scene, options?: object );
+
+	changed: boolean;
+	initial: boolean;
+
+	oceanCamera: OrthographicCamera
+	renderer: WebGLRenderer;
+  scene: Scene;
+
+  clearColor: number[];
+	geometryOrigin: number[];
+	sunDirectionX: number;
+	sunDirectionY: number;
+	sunDirectionZ: number;
+	oceanColor: Vector3;
+	skyColor: Vector3;
+	exposure: number;
+	geometryResolution: number;
+	geometrySize: number;
+	resolution: number;
+	floatSize: number;
+	windX: number;
+	windY: number;
+	size: number;
+  choppiness: number;
+
+  initialSpectrumFramebuffer: WebGLRenderTarget;
+	spectrumFramebuffer: WebGLRenderTarget;
+	pingPhaseFramebuffer: WebGLRenderTarget;
+	pongPhaseFramebuffer: WebGLRenderTarget;
+	pingTransformFramebuffer: WebGLRenderTarget;
+	pongTransformFramebuffer: WebGLRenderTarget;
+	displacementMapFramebuffer: WebGLRenderTarget;
+	normalMapFramebuffer: WebGLRenderTarget;
+
+  matrixNeedsUpdate: boolean;
+
+  materialOceanHorizontal: ShaderMaterial;
+  materialOceanVertical: ShaderMaterial;
+  materialInitialSpectrum: ShaderMaterial;
+  materialPhase: ShaderMaterial;
+  materialSpectrum: ShaderMaterial;
+  materialNormal: ShaderMaterial;
+  materialOcean: ShaderMaterial;
+
+  screenQuad: Mesh;
+
+  generateSeedPhaseTexture(): void;
+	generateMesh(): void;
+  render(): void;
+  renderInitialSpectrum(): void;
+  renderWavePhase(): void;
+  renderSpectrum(): void;
+  renderSpectrumFFT(): void;
+  renderNormalMap(): void;
+
+}

+ 75 - 0
examples/jsm/shaders/OceanShaders.d.ts

@@ -0,0 +1,75 @@
+import {
+  Texture,
+  Uniform,
+  Vector2,
+} from '../../../src/Three';
+
+export interface OceanShaders {
+
+  ocean_sim_vertex: {
+    vertexShader: string;
+  }
+  ocean_subtransform: {
+    uniforms: {
+      u_input: Uniform,
+      u_transformSize: Uniform,
+      u_subtransformSize: Uniform,
+    },
+    fragmentShader: string;
+  }
+  ocean_initial_spectrum: {
+    uniforms: {
+      u_wind: Uniform,
+      u_resolution: Uniform,
+      u_size: Uniform,
+    },
+    vertexShader: string;
+    fragmentShader: string;
+  }
+  ocean_phase: {
+    uniforms: {
+      u_phases: Uniform,
+      u_deltaTime: Uniform,
+      u_resolution: Uniform,
+      u_size: Uniform,
+    },
+    vertexShader: string;
+    fragmentShader: string;
+  }
+  ocean_spectrum: {
+    uniforms: {
+      u_size: Uniform,
+      u_resolution: Uniform,
+      u_choppiness: Uniform,
+      u_phases: Uniform,
+      u_initialSpectrum: Uniform,
+    },
+    fragmentShader: string;
+  }
+  ocean_normals: {
+    uniforms: {
+      u_displacementMap: Uniform,
+      u_resolution: Uniform,
+      u_size: Uniform,
+    },
+    fragmentShader: string;
+  }
+  ocean_main: {
+    uniforms: {
+      u_displacementMap: Uniform,
+      u_normalMap: Uniform,
+      u_geometrySize: Uniform,
+      u_size: Uniform,
+      u_projectionMatrix: Uniform,
+      u_viewMatrix: Uniform,
+      u_cameraPosition: Uniform,
+      u_skyColor: Uniform,
+      u_oceanColor: Uniform,
+      u_sunDirection: Uniform,
+      u_exposure: Uniform,
+    },
+    vertexShader: string;
+    fragmentShader: string;
+  }
+
+}