three实现三维三角形碎片拼筹的小球旋转代码
代码语言:html
所属分类:三维
代码描述:three实现三维三角形碎片拼筹的小球旋转代码,可通过gui来调整参数。
代码标签: three 三维 三角形 碎片 拼筹 小球 旋转 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style>
body {
margin: 0;
overflow: hidden;
user-select: none;
background: #000000;
}
canvas {
display: block;
}
.title {
position: absolute;
font-family: Arial;
color: #fff;
font-size: .8rem;
mix-blend-mode:normal;
}
.title._1 { top: 20px; left: 30px; }
.title._2 { bottom: 20px; left: 30px; }
.title._3 { bottom: 20px; right: 30px; cursor: pointer; }
</style>
</head>
<body>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/gsap.3.12.2.js"></script>
<script type="importmap">
{
"imports": {
"three": "//repo.bfw.wiki/bfwrepo/js/module/three/build/164/three.module.js",
"three/addons/": "//repo.bfw.wiki/bfwrepo/js/module/three/examples/164/jsm/"
}
}
</script>
<script type="module">
import * as THREE from 'three';
import { OrbitControls } from 'three/addons/controls/OrbitControls.js';
import { UnrealBloomPass } from 'three/addons/postprocessing/UnrealBloomPass.js';
import { EffectComposer } from 'three/addons/postprocessing/EffectComposer.js';
import { RenderPass } from 'three/addons/postprocessing/RenderPass.js';
import { ShaderPass } from 'three/addons/postprocessing/ShaderPass.js';
import { GUI } from '//repo.bfw.wiki/bfwrepo/js/module/dat.gui.js';
let scene, camera, renderer, composer, bloomPass, noisePass, noiseShader, controls, sphere, particleSystem, lineMesh, group;
let guiParams = {
deformAmount: 0.1,
particleSize: .01,
transparency: 0.5,
iridescenceIntensity: 1.0,
activateNoise:false,
noiseStrength: 0.2,
color1: [0, 0, 0],
color2: [255, 255, 255]
};
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 30;
renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setPixelRatio(window.devicePixelRatio * 1.5);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
controls = new OrbitControls(camera, renderer.domElement);
const ambientLight = new THREE.AmbientLight(0x404040);
const directionalLight = new THREE.DirectionalLight(0xffffff, 1);
directionalLight.position.set(5, 5, 5);
scene.add(ambientLight, directionalLight);
group = new THREE.Group();
scene.add(group);
createSphere();
// Noise Shader
noiseShader = {
uniforms: {
"tDiffuse": { value: null },
"uTime": { value: 0.0 },
"uNoiseStrength": { value: 0.5 },
"uColor1": { value: new THREE.Color(0x000000) },
"uColor2": { value: new THREE.Color(0xffffff) }
},
vertexShader: `
varying vec2 vUv;
void main() {
vUv = uv;
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}
`,
fragmentShader: `
varying vec2 vUv;
uniform sampler2D tDiffuse;
uniform float uTime;
uniform float uNoiseStrength;
uniform vec3 uColor1.........完整代码请登录后点击上方下载按钮下载查看
网友评论0