33 lines
883 B
JavaScript
33 lines
883 B
JavaScript
import * as THREE from 'three';
|
|
import { Water } from 'three/examples/jsm/objects/Water.js';
|
|
|
|
const waterGeometry = new THREE.PlaneGeometry(50, 50);
|
|
|
|
const ocean = new Water(
|
|
waterGeometry,
|
|
{
|
|
textureWidth: 512,
|
|
textureHeight: 512,
|
|
waterNormals: new THREE.TextureLoader().load(`https://z2586300277.github.io/3d-file-server/images/texture/waternormals.jpg`, function (texture) {
|
|
texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
|
|
}),
|
|
sunDirection: new THREE.Vector3(0, 1, 0), // 设置太阳方向为垂直向下
|
|
sunColor: 0xffffff,
|
|
waterColor: 'rgb(0,211,255)',
|
|
distortionScale: 1.7,
|
|
fog: false, // 关闭雾效果
|
|
alpha: 1.0, // 设置透明度
|
|
}
|
|
);
|
|
|
|
ocean.rotation.x = -Math.PI / 2;
|
|
|
|
function animate() {
|
|
ocean.material.uniforms['time'].value += 1.0 / 60.0;
|
|
requestAnimationFrame(animate);
|
|
}
|
|
|
|
animate();
|
|
|
|
export { ocean };
|