*
//화면 생성
let scene = new THREE.Scene();
scene.fog = new THREE.FogExp2('#222', 0.001);
//카메라 설정
let camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000)
camera.position.z = 500;
//렌더링 설정
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setClearColor('#000', .1);
document.body.appendChild(renderer.domElement);
//파티클 설정
let material = new THREE.PointsMaterial({
color: 0xffffff,
size: 3,
transparent: true,
blending: THREE.AdditiveBlending
});
let particleCount = 15000;
let particles = new THREE.Geometry();
for (var i = 0; i < particleCount; i++) {
var px = Math.random() * 2000 - 1000;
var py = Math.random() * 2000 - 1000;
var pz = Math.random() * 2000 - 1000;
particle = new THREE.Vector3(px, py, pz);
particle.velocity = new THREE.Vector3(0, Math.random(), 0);
particles.vertices.push(particle);
}
let points = new THREE.Points(particles, material);
points.sortParticles = true;
scene.add(points);
//애니메이션 설정
function animate() {
requestAnimationFrame(animate);
//배경
scene.rotation.y += 0.0005;
//별
var i = particleCount;
while(i--){
var particle = particles.vertices[i];
if(particle.y > 1000){
particle.y = -1000;
particle.velocity.y = Math.random();
}
particle.velocity.y += Math.random() * 0.001;
particle.add(particle.velocity);
}
points.geometry.verticesNeedUpdate = true;
camera.lookAt(scene.position);
renderer.render(scene, camera);
}
animate();
//화면 사이즈 설정
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
}
window.addEventListener('resize', onWindowResize);
What’s on our mind?
Collection of articles, design, site, and resources made by designers and publisher
@Menu View
ad