From c5e72e7948e319196e8bf62d01aab52c388e6c12 Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Thu, 22 Aug 2024 20:25:47 -0400 Subject: [PATCH] Addons: Rename SkyGPU and WaterGPU. (#1166) * Addons: Rename SkyGPU and WaterGPU. * Add examples * Update patch and delete examples * Update three.js * Add examples * Update patch and delete examples --- examples-testing/changes.patch | 41 ++++--------------- three.js | 2 +- types/three/examples/jsm/Addons.d.ts | 5 +++ .../jsm/objects/{SkyGPU.d.ts => SkyMesh.d.ts} | 4 +- types/three/examples/jsm/objects/Water2.d.ts | 4 +- .../objects/{WaterGPU.d.ts => WaterMesh.d.ts} | 8 ++-- 6 files changed, 21 insertions(+), 43 deletions(-) rename types/three/examples/jsm/objects/{SkyGPU.d.ts => SkyMesh.d.ts} (86%) rename types/three/examples/jsm/objects/{WaterGPU.d.ts => WaterMesh.d.ts} (79%) diff --git a/examples-testing/changes.patch b/examples-testing/changes.patch index 0a6635c15..2a2ffa447 100644 --- a/examples-testing/changes.patch +++ b/examples-testing/changes.patch @@ -14432,7 +14432,7 @@ index 2405b8ad..bd503c49 100644 pixelBufferTexture.image.data = pixelBuffer; pixelBufferTexture.needsUpdate = true; diff --git a/examples-testing/examples/webgpu_ocean.ts b/examples-testing/examples/webgpu_ocean.ts -index f27ed18c..ea15cbee 100644 +index 9eb9922d..b75024ec 100644 --- a/examples-testing/examples/webgpu_ocean.ts +++ b/examples-testing/examples/webgpu_ocean.ts @@ -1,4 +1,4 @@ @@ -14442,15 +14442,15 @@ index f27ed18c..ea15cbee 100644 import Stats from 'three/addons/libs/stats.module.js'; @@ -7,14 +7,14 @@ import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; - import { Water } from 'three/addons/objects/WaterGPU.js'; - import { Sky } from 'three/addons/objects/SkyGPU.js'; + import { WaterMesh } from 'three/addons/objects/WaterMesh.js'; + import { SkyMesh } from 'three/addons/objects/SkyMesh.js'; -let container, stats; -let camera, scene, renderer; -let controls, water, sun, mesh; +let container: HTMLElement, stats: Stats; +let camera: THREE.PerspectiveCamera, scene: THREE.Scene, renderer: THREE.WebGPURenderer; -+let controls: OrbitControls, water: Water, sun: THREE.Vector3, mesh: THREE.Mesh; ++let controls: OrbitControls, water: WaterMesh, sun: THREE.Vector3, mesh: THREE.Mesh; init(); @@ -15147,7 +15147,7 @@ index bf36d911..0e77df7c 100644 init(); diff --git a/examples-testing/examples/webgpu_sky.ts b/examples-testing/examples/webgpu_sky.ts -index 60af1c2d..1b7a8906 100644 +index 097d06af..3836e7ee 100644 --- a/examples-testing/examples/webgpu_sky.ts +++ b/examples-testing/examples/webgpu_sky.ts @@ -1,12 +1,12 @@ @@ -15156,13 +15156,13 @@ index 60af1c2d..1b7a8906 100644 import { GUI } from 'three/addons/libs/lil-gui.module.min.js'; import { OrbitControls } from 'three/addons/controls/OrbitControls.js'; - import { Sky } from 'three/addons/objects/SkyGPU.js'; + import { SkyMesh } from 'three/addons/objects/SkyMesh.js'; -let camera, scene, renderer; +let camera: THREE.PerspectiveCamera, scene: THREE.Scene, renderer: THREE.WebGPURenderer; -let sky, sun; -+let sky: Sky, sun: THREE.Vector3; ++let sky: SkyMesh, sun: THREE.Vector3; init(); @@ -15825,30 +15825,3 @@ index 2cd50ba4..b97f3eee 100644 isDepthSupplied = false; }); -diff --git a/types/three/examples/jsm/objects/Water2Mesh.d.ts b/types/three/examples/jsm/objects/Water2Mesh.d.ts -index b6a4cbfe..fb9935d4 100644 ---- a/types/three/examples/jsm/objects/Water2Mesh.d.ts -+++ b/types/three/examples/jsm/objects/Water2Mesh.d.ts -@@ -1,5 +1,5 @@ - import { TempNode, TextureNode, UniformNode, Vector2, Vector3 } from "three/tsl"; --import { BufferGeometry, Color, ColorRepresentation, Mesh, Texture } from "three/webgpu"; -+import { BufferGeometry, Color, ColorRepresentation, Mesh, NodeMaterial, Texture } from "three/webgpu"; - - export interface WaterMeshOptions { - normalMap0: Texture; -@@ -13,7 +13,7 @@ export interface WaterMeshOptions { - scale?: number | undefined; - } - --declare class WaterMesh extends Mesh { -+declare class WaterMesh extends Mesh { - readonly isWater: true; - - constructor(geometry: BufferGeometry, options: WaterMeshOptions); -@@ -38,4 +38,5 @@ declare class WaterNode extends TempNode { - updateFlow(delta: number): void; - } - --export { WaterNode }; -+export { WaterMesh }; -+export type { WaterNode }; diff --git a/three.js b/three.js index b331d8e6b..076fdf2d3 160000 --- a/three.js +++ b/three.js @@ -1 +1 @@ -Subproject commit b331d8e6be9de067cdafe7c3b1f2a7631f0b9fef +Subproject commit 076fdf2d3fb6f1200e88fc6a5c639c63b4c642b1 diff --git a/types/three/examples/jsm/Addons.d.ts b/types/three/examples/jsm/Addons.d.ts index 2f40fb251..76a0f3108 100644 --- a/types/three/examples/jsm/Addons.d.ts +++ b/types/three/examples/jsm/Addons.d.ts @@ -170,8 +170,13 @@ export * from "./objects/ReflectorForSSRPass.js"; export * from "./objects/Refractor.js"; export * from "./objects/ShadowMesh.js"; export * from "./objects/Sky.js"; +export * from "./objects/SkyMesh.js"; export * from "./objects/Water.js"; export { Water as Water2 } from "./objects/Water2.js"; +export type { WaterOptions as Water2Options } from "./objects/Water2.js"; +export { WaterMesh as Water2Mesh } from "./objects/Water2Mesh.js"; +export type { WaterMeshOptions as Water2MeshOptions } from "./objects/Water2Mesh.js"; +export * from "./objects/WaterMesh.js"; export * from "./physics/AmmoPhysics.js"; export * from "./physics/RapierPhysics.js"; diff --git a/types/three/examples/jsm/objects/SkyGPU.d.ts b/types/three/examples/jsm/objects/SkyMesh.d.ts similarity index 86% rename from types/three/examples/jsm/objects/SkyGPU.d.ts rename to types/three/examples/jsm/objects/SkyMesh.d.ts index 79cf7dab8..a6b5fe1f2 100644 --- a/types/three/examples/jsm/objects/SkyGPU.d.ts +++ b/types/three/examples/jsm/objects/SkyMesh.d.ts @@ -1,7 +1,7 @@ import { ShaderNodeObject, UniformNode } from "three/tsl"; import { BoxGeometry, Mesh, NodeMaterial, Vector3 } from "three/webgpu"; -declare class Sky extends Mesh { +declare class SkyMesh extends Mesh { turbidity: ShaderNodeObject>; rayleigh: ShaderNodeObject>; mieCoefficient: ShaderNodeObject>; @@ -14,4 +14,4 @@ declare class Sky extends Mesh { constructor(); } -export { Sky }; +export { SkyMesh }; diff --git a/types/three/examples/jsm/objects/Water2.d.ts b/types/three/examples/jsm/objects/Water2.d.ts index de6b9fce2..e09d314dd 100644 --- a/types/three/examples/jsm/objects/Water2.d.ts +++ b/types/three/examples/jsm/objects/Water2.d.ts @@ -1,6 +1,6 @@ import { BufferGeometry, ColorRepresentation, Mesh, ShaderMaterial, Texture, Vector2 } from "three"; -export interface Water2Options { +export interface WaterOptions { color?: ColorRepresentation | undefined; textureWidth?: number | undefined; textureHeight?: number | undefined; @@ -17,5 +17,5 @@ export interface Water2Options { export class Water extends Mesh { material: ShaderMaterial; - constructor(geometry: BufferGeometry, options: Water2Options); + constructor(geometry: BufferGeometry, options: WaterOptions); } diff --git a/types/three/examples/jsm/objects/WaterGPU.d.ts b/types/three/examples/jsm/objects/WaterMesh.d.ts similarity index 79% rename from types/three/examples/jsm/objects/WaterGPU.d.ts rename to types/three/examples/jsm/objects/WaterMesh.d.ts index 040dc9731..cc7987f37 100644 --- a/types/three/examples/jsm/objects/WaterGPU.d.ts +++ b/types/three/examples/jsm/objects/WaterMesh.d.ts @@ -1,7 +1,7 @@ import { TextureNode, UniformNode } from "three/tsl"; import { BufferGeometry, Color, ColorRepresentation, Mesh, NodeMaterial, Texture, Vector3 } from "three/webgpu"; -export interface WaterOptions { +export interface WaterMeshOptions { resolution?: number | undefined; waterNormals: Texture; alpha?: number | undefined; @@ -12,7 +12,7 @@ export interface WaterOptions { distortionScale?: number | undefined; } -declare class Water extends Mesh { +declare class WaterMesh extends Mesh { readonly isWater: true; resolution: number; @@ -25,7 +25,7 @@ declare class Water extends Mesh { waterColor: UniformNode; distortionScale: UniformNode; - constructor(geometry: BufferGeometry, options: WaterOptions); + constructor(geometry: BufferGeometry, options: WaterMeshOptions); } -export { Water }; +export { WaterMesh };