|
|
@@ -4,7 +4,7 @@
|
|
|
<title>three.js webgpu - ocean</title>
|
|
|
<meta charset="utf-8">
|
|
|
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
|
|
- <link type="text/css" rel="stylesheet" href="main.css">
|
|
|
+ <link type="text/css" rel="stylesheet" href="example.css">
|
|
|
</head>
|
|
|
<body>
|
|
|
|
|
|
@@ -37,14 +37,13 @@
|
|
|
|
|
|
import * as THREE from 'three/webgpu';
|
|
|
|
|
|
- import Stats from 'three/addons/libs/stats.module.js';
|
|
|
+ import { Inspector } from 'three/addons/inspector/Inspector.js';
|
|
|
|
|
|
- import { GUI } from 'three/addons/libs/lil-gui.module.min.js';
|
|
|
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
|
|
|
import { WaterMesh } from 'three/addons/objects/WaterMesh.js';
|
|
|
import { SkyMesh } from 'three/addons/objects/SkyMesh.js';
|
|
|
|
|
|
- let container, stats;
|
|
|
+ let container;
|
|
|
let camera, scene, renderer;
|
|
|
let controls, water, sun, mesh;
|
|
|
|
|
|
@@ -59,9 +58,10 @@
|
|
|
renderer = new THREE.WebGPURenderer();
|
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|
|
|
- renderer.setAnimationLoop( animate );
|
|
|
+ renderer.setAnimationLoop( render );
|
|
|
renderer.toneMapping = THREE.ACESFilmicToneMapping;
|
|
|
renderer.toneMappingExposure = 0.5;
|
|
|
+ renderer.inspector = new Inspector();
|
|
|
container.appendChild( renderer.domElement );
|
|
|
|
|
|
//
|
|
|
@@ -157,25 +157,18 @@
|
|
|
controls.maxDistance = 200.0;
|
|
|
controls.update();
|
|
|
|
|
|
- //
|
|
|
-
|
|
|
- stats = new Stats();
|
|
|
- container.appendChild( stats.dom );
|
|
|
-
|
|
|
// GUI
|
|
|
|
|
|
- const gui = new GUI();
|
|
|
+ const gui = renderer.inspector.createParameters( 'Settings' );
|
|
|
|
|
|
const folderSky = gui.addFolder( 'Sky' );
|
|
|
folderSky.add( parameters, 'elevation', 0, 90, 0.1 ).onChange( updateSun );
|
|
|
folderSky.add( parameters, 'azimuth', - 180, 180, 0.1 ).onChange( updateSun );
|
|
|
- folderSky.open();
|
|
|
|
|
|
|
|
|
const folderWater = gui.addFolder( 'Water' );
|
|
|
folderWater.add( water.distortionScale, 'value', 0, 8, 0.1 ).name( 'distortionScale' );
|
|
|
folderWater.add( water.size, 'value', 0.1, 10, 0.1 ).name( 'size' );
|
|
|
- folderWater.open();
|
|
|
|
|
|
//
|
|
|
|
|
|
@@ -192,13 +185,6 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- function animate() {
|
|
|
-
|
|
|
- render();
|
|
|
- stats.update();
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
function render() {
|
|
|
|
|
|
const time = performance.now() * 0.001;
|