오늘 주제는 공간, 위치, 방향 등등 입니다.
머리가 딱딱해져서 잘 안돌아가네요.
좌표계란?
아래 이미지는 3D 툴을 이용한 적이 있다면 자주 본적 있는 모습입니다.
씬 내에, 어느 공간에 오브젝트를 배치하기 위해서는 공간 정보가 필요하고, 공간 정보의 기준을 잡아주는 것이 좌표계입니다. 3차원 공간의 정보를 나타낼 때는 x, y, z 3개의 축을 사용해 공간 상의 위치 정보를 가져옵니다.
위치도 RGB색상처럼 float3(0,0,0)의 숫자 정보.
좌표 공간의 종류는
로컬 스페이스> 월드 스페이스> 뷰 스페이스> 클립 스페이스> 씬 스페이스
로 이루어져있습니다.
유니티에 오브젝트를 배치할 시 월드 좌표계를 기준으로 합니다.
새로운 오브젝트를 추가하겠습니다.
공 오브젝트를 박스 오브젝트의 자식으로 상속된다면 해당 오브젝트는 월드 좌표계에서 박스 오브젝트의 로컬 좌표계에 소속하게 됩니다. 이것을 공간 변화라고 부릅니다.(월드->로컬)
공의 좌표 기준이 월드의 (0.0.0)이 아닌 현재 박스의 위치가 된거죠.
이후로 박스의 위치를 변경 했을 때 공의 로컬 좌표 값의 변화는 없습니다. 공의 월드값은 변경됩니다.
포지션에 주목
벡터란??
2차원 혹은 3차원 공간에서의 원점으로부터의 좌표.
스칼라는 양
1차원 개념인가보네요.
방향과 크기를 담고 있는 것을 방향벡터(direction vector)라고 합니다.
주로 화살표 모양으로 나타내는데 유니티나 맥스에서도 흔하게 볼 수 있습니다.
위의 어디서 많이 본 화살표들의 색 조합은 숫자로도 볼 수 있습니다.
R-X float3(1,0,0)
G-Y float3(0,1,0)
B-Z float3(0,0,1)
숫자는 색, 색은 위치이며 동시에 위치일 수도 있고 방향일 수도 있다는 것입니다.
float3(1,0,0) 이라면?
x방향으로 길이가 1인 화살표랑 같다는 거죠
2차원일 경우에는 float2, 3차원일 경우에는 float3로 나타냅니다.
벡터의 덧셈과 뺄셈
A+B
시점이 일치하는 벡터는
A벡터와 B벡터를 변으로 하는 평행사변형을 그리면 생기는 꼭짓점과 시점을 연결하면 A+B값이 나오게 됩니다.
또는 B벡터의 종점에 A벡터의 시점을 이을 경우 마찬가지로 A+B값이 나옵니다.
A-B
벡터의 -는 방향이 역으로 뒤집히게 됩니다. 좌표로 보면 1에서 -1로 이동한 것과 같죠.
벡터에는 위치값이 상관없기 때문에 위와 아래의 값은 같게 됩니다.
단위 벡터란?
길이가 1인 벡터를 뜻합니다.
반지름의 길이가 1인 원을 기준으로 내적을 구하는 등
길이가 1인 벡터는 쉐이더에서 라이팅 연산 등 여기저기에 사용됩니다.
정규화 Normalize
저런 곳에 사용하기 위해서 길이가 1이 아닌 벡터를 강제로 1로 조정하는 것이 정규화 입니다.
'Unity3D > 2021_엔진 심화' 카테고리의 다른 글
[Unity] Z-buffer, Shader Lab (0) | 2021.05.05 |
---|---|
[Unity] 키워드, 색상 연산2 (0) | 2021.04.21 |
[Unity] 색상 연산, 블렌더 (0) | 2021.04.07 |
[Unity] Shader Graph 기초 / UI (0) | 2021.04.01 |