인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

fave.kr님의 프로필 이미지
fave.kr

작성한 질문수

Three.js로 시작하는 3D 인터랙티브 웹

그룹 만들기(Scene Graph)

box3 scale 질문

작성

·

253

0

box3은 box2를 클론 한 것인데
box3.scale.set(1,1,1)을 해보니까 box1과 같은 크기의 메쉬가 생기네요. 왜 box1을 기준으로 두는건가요??box2.scale.set(0.3,0.3,0.3); 과 같은 크기의 box3이 만들어 질 것이라 생각했는데 그게 아니네요.

심지어 box3.position.x 는 box2를 기준으로 둬서 더 헷갈려요.(box3.position.x = 0;를 해 본 결과 box2와 겹쳐짐)

 

답변 1

1

1분코딩님의 프로필 이미지
1분코딩
지식공유자

1) 크기 관련: scale 조정한 것은 인위적으로 transform이 변형된 것이지 원래 크기가 변한게 아니기 때문입니다. 0.3을 적용하면 "30% 크기로 줄어든 상태"가 유지되는 거고, 1을 적용하면 다시 원래의 크기(100%)로 돌아간다고 생각하시면 되겠습니다.

2) position은 해당 메쉬가 속한 그룹의 위치를 기준으로 하기 때문에 그렇습니다. 그룹핑을 꼭 해줄 필요는 없고, 필요한 경우에 사용하시면 됩니다. 예를들어 자동차를 만드는데, 자동차 덩어리(그룹)만 움직이면 전체가 움직이면 편하겠죠? 이런 경우 그룹을 안만들면 차의 각 구성요소(차체, 네 바퀴 등)의 위치를 모두 일일이 움직여줘야 하기 때문에 굉장히 번거롭겠지요. 회전할 경우에는 위치 계산이 더욱 어려워지고요. 바로 이런 경우를 위해 그룹을 만드는 거고, 그런 경우가 아니라면 그룹을 만들 필요는 없는 거랍니다.

fave.kr님의 프로필 이미지
fave.kr

작성한 질문수

질문하기