What’s on our mind?

Collection of articles, design, site, and resources made by designers and publisher @Menu View

* index18
//화면 생성
const scene = new THREE.Scene();

//카메라 설정
const camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000);
camera.position.set(1, 6, 5);
camera.lookAt(new THREE.Vector3(0,0,0));

//렌더링 설정
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio(window.devicePixelRatio);
document.body.appendChild(renderer.domElement);

//조명 설정
let sphere = new THREE.SphereGeometry(0.1, 20, 10);

light1 = new THREE.PointLight(0x139AFF, 5, 100, 1);
light1.add(new THREE.Mesh( sphere, new THREE.MeshBasicMaterial({color: 0x139AFF})));
light1.position.set(1.5, 0, 0);
scene.add(light1);

light2 = new THREE.PointLight(0xFF7D33, 5, 100, 1);
light2.add(new THREE.Mesh( sphere, new THREE.MeshBasicMaterial({color: 0xFF7D33})));
light2.position.set(-1.5, 0, 0);
scene.add(light2);

let innerDomeGeometry = new THREE.IcosahedronGeometry(1, 2);
let innerDomeMaterial = new THREE.MeshPhongMaterial({shading: THREE.FlatShading});
innerDome = new THREE.Mesh(innerDomeGeometry, innerDomeMaterial);
scene.add(innerDome);


//애니메이션 설정
let clock = new THREE.Clock()
function animate() {
    requestAnimationFrame(animate);

    time = Date.now() * 0.0005;
    elapsedTime = clock.getElapsedTime() * 2;

    light1.position.x = -2.1 * Math.cos(-elapsedTime);
    light1.position.y = -2.1 * Math.sin(-elapsedTime);

    light2.position.x = 2.1 * Math.cos(-elapsedTime);
    light2.position.y = 2.1 * Math.sin(-elapsedTime);

    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);