티스토리 뷰


OrbitControls


- orbitcontrols 같은경우에는 사용할때 import를 해서 사용해야한다.

- 인자는 2개가 들어간다. 첫번째로는 camera가 들어와야하며 두번째로는 renderer의 domElement가 들어와야한다.

 

 

여러가지의 mesh를 가지고 싶다면 어떻게해야할까?

 

틀은 하나를 가지고 공유를 한다고 하면

	const geometry = new THREE.BoxGeometry(1, 1, 1);
    let mesh;
    let material;
    for (let i = 0; i < 20; i++) { 
        material = new THREE.MeshStandardMaterial({
            color: `rgb(
				${ 50 + Math.floor(Math.random() * 205) },
				${ 50 + Math.floor(Math.random() * 205) },
				${ 50 + Math.floor(Math.random() * 205) }
			)`
		});
		mesh = new THREE.Mesh(geometry, material);
		mesh.position.x = (Math.random() - 0.5) * 5;
		mesh.position.y = (Math.random() - 0.5) * 5;
        mesh.position.z = (Math.random() - 0.5) * 5;
        scene.add(mesh);
    }

우선 geometry 뼈대 박스 하나를 만들어준다.

바깥에 입혀줄 materail같은경우는 색상을 랜덤으로 만들어줄것이기때문에

for문안에서 돌려준다. 또한 mesh를 20개를 만들어서 scene에 모두 붙여줄것이므로 나머지도 for문 안에서 작성한다.

 

rgb값은 255까지가 최대이므로,0-1의 랜덤한값에 205를 곱한것. 0-205 + 50 => 50부터 255사이의 컬러값을가진다.

검정색일경우는 안보이기때문에 이렇게 처리해준다.

 


enableDamping 컨트롤을 부드럽게해주는 메소드


 controls.enableDamping = true;

 

이렇게 하고나서 끝이아니고 

 

draw function 안에서 계속해서 업.데.이.트!! 시켜줘야지 부드럽게 실행이된다.

 

controls.update();

위의 코드도 함께 실행해준다.

 


maxDistance / minDistance


contorls.maxDistance = 10;

controls.minDistance = 10;

 

휠을 돌려서 가까워지고 멀어지고의 맥시멈 미니멈값을 정할 수 있다.

 


minPolarAngle


위와비슷하게 돌리는 각도에도 제한을 줄수있다.

controls.minPolarAngle = Math.PI / 4 ; 

controls.minPolarAngle = THREE.MathUtils.degToRad(45);

 


target.set


회전의 중심점에 target을 xyz로 잡아주는것

 

controls.target.set(2,2,2);

autoRotate


말 그대로 자동으로 돌아가게 해주는 값

 

controls.autoRotate = true;
controls.autoRotateSpeed = 50;

 


TrackBallControls


OrbintControls와 다른점

 

1. 수직방향으로도 지원한다.

2. controls.update(); 를 하지않으면 움직이지않는다.

3. 기본적으로 enableDamping으로 부드러운 효과를 지원한다.

 

 

사용옵션은 비슷하므로, 사용하고싶은것을 사용하면된다.

'Three.js' 카테고리의 다른 글

[Light] gui, 애니메이션  (0) 2022.11.10
[Material] MeshBasicMaterial  (0) 2022.11.09
[geometry]  (1) 2022.09.21
기초 틀 예시  (0) 2022.09.21
transform 변환- 크기 조정 / 회전  (0) 2022.09.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함