three打造三维宇宙星空月球绕地球旋转效果代码
代码语言:html
所属分类:三维
代码描述:three打造三维宇宙星空月球绕地球旋转效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
body {
margin: 0;
overflow: hidden;
position: relative;
width: 100vw;
height: 100vh;
background-image: url("//repo.bfw.wiki/bfwrepo/image/5eec59613702c.png");
background-size: cover;
}
canvas {
display: block;
}
#canvas_container {
width: 100%;
height: 100vh;
}
button {
position: absolute;
bottom: 5%;
left: 50%;
transform: translateX(-50%);
border: 1px solid white;
border-radius: 5px;
font-size: 0.9rem;
padding: 0.5rem 0.9em;
background: #000000;
color: white;
-webkit-font-smoothing: antialiased;
font-weight: bold;
cursor: pointer;
transition: all .5s;
}
button:hover {
background: #ffffff;
color: #000000;
}
</style>
</head>
<body translate="no" >
<div id="canvas_container"></div>
<button id="fullscr">Go Fullscreen</button>
<script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/r120/three.min.js'></script>
<script>
let renderer,
camera,
planet,
moon,
sphereBg,
terrainGeometry,
container = document.getElementById("canvas_container"),
timeout_Debounce,
frame = 0,
cameraDx = 0.05,
count = 0,
t = 0;
/* Lines values */
let lineTotal = 1000;
let linesGeometry = new THREE.BufferGeometry();
linesGeometry.setAttribute("position", new THREE.BufferAttribute(new Float32Array(6 * lineTotal), 3));
linesGeometry.setAttribute("velocity", new THREE.BufferAttribute(new Float32Array(2 * lineTotal), 1));
let l_positionAttr = linesGeometry.getAttribute("position");
let l_vertex_Array = linesGeometry.getAttribute("position").array;
let l_velocity_Array = linesGeometry.getAttribute("velocity").array;
init();
animate();
function init() {
scene = new THREE.Scene();
scene.background = new THREE.Color("#000000");
scene.fog = new THREE.Fog("#3c1e02", 0.5, 50);
camera = new THREE.PerspectiveCamera(55, window.innerWidth / window.innerHeight, 0.01, 1000);
camera.position.set(0, 1, 32);
pointLight1 = new THREE.PointLight("#ffffff", 1, 0);
pointLight1.position.set(0, 30, 30);
scene.add(pointLight1);
renderer = new THREE.WebGLRenderer({
antialias: true,
alpha: true });
renderer.setSize(container.clientWidth, container.clientHeight);
renderer.setPixelRatio(window.devicePixelRatio);
container.appendChild(renderer.domElement);
const loader = new THREE.TextureLoader();
// Planet
const texturePlanet = loader.load('//repo.bfw.wiki/bfwrepo/image/5e7e82aa76449.png');
texturePlanet.anisotropy = 16;
const planetGeometry = new THREE.SphereBufferGeometry(10, 50, 50);
.........完整代码请登录后点击上方下载按钮下载查看
网友评论0