three实现三维宇宙可调参数星辰星空宇宙粒子效果代码
代码语言:html
所属分类:三维
代码描述:three实现三维宇宙可调参数星辰星空宇宙粒子效果代码
代码标签: three 三维 宇宙 调 参数 星辰 星空 宇宙 粒子
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
height: 100vh;
width: 100vw;
}
canvas {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<!-- partial:index.partial.html -->
<script type="x-shader/x-vertex" id="vertex">
uniform float u_time;
attribute float a_random;
varying float v_random;
varying vec2 vUv;
varying vec3 v_normal;
void main() {
vUv = uv;
vec3 newPos = position.xyz;
float wave = sin(newPos.x / 8.0 - u_time) * 1.;
wave += sin(newPos.y / 13.0 - u_time) * 1.;
newPos.z += wave;
gl_Position = projectionMatrix * modelViewMatrix * vec4(newPos, 1.0);
v_random = wave;
}
</script>
<script type="x-shader/x-fragment" id="fragment">
varying float v_random;
varying vec2 vUv;
varying vec3 v_normal;
void main() {
gl_FragColor = vec4(0.886, clamp(v_random, 0.70, 0.78), 0.984, 1.0);
}
</script>
<!-- partial -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.125.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/OrbitControls.125.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/gsap.3.9.1.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/dat.gui-min.js"></script>
<script >
class THREEScene {
constructor(container = document.body) {
this.container = container;
this.init();
}
init() {
this.setup();
this.camera();
this.lights();
this.addToScene();
this.eventListeners();
this.render();
}
setup() {
this.gui = new dat.GUI();
this.group = new THREE.Group();
this.textureLoader = new THREE.TextureLoader();
this.clock = new THREE.Clock();
this.scene = new THREE.Scene();
this.renderer = new THREE.WebGLRenderer({ antialias: true });
this.renderer.setSize(this.viewport.width, this.viewport.height);
this.renderer.setPixelRatio = window.devicePixelRatio;
this.renderer.setClearColor(0x151617);
this.container.appendChild(this.renderer.domElement);
}
camera() {
const fov = 75;
const near = 0.1;
con.........完整代码请登录后点击上方下载按钮下载查看
网友评论0