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