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