본문 바로가기

전체 글330

20. Quaternion - 짐벌락 현상과 복소수에 대한 개념 오일러 방식의 문제? - x축을 90도로 놓고 y축을 회전시키면 z축이 돌아간다. 왜지? 축이 손실된 것 - 이 현상을 짐벌락 현상이라고 한다. 짐벌락 현상이란? - 각 축의 회전이 결합할 때 세 축 중 하나의 축이 먹통이 되는 현상 - 유니티는 회전을 적용하는 순서가 z - x - y 순으로 적용되는데, 항상 2번째 축에서 문제가 발생한다. - z축을 회전시키면 x축은 그 영향을 받아 원래 궤도가 아닌 다른 궤도로 움직인다. 이를 해결하기 위해서는? - 앞으로 배울 쿼터니언의 개념을 도입해야 한다! 복소수 개념 정리 복소수란? - a + bi 꼴의 수를 말하며 a는 실수부, bi는 허수부라고 칭한다. 이 수를 벡터와 같이 2차원 평면에 표현할 수 있는데 이 평면을 복소평면이라고 한다. 1) 복소수의 덧.. 2023. 1. 30.
19. Frustum Culling - 절두체컬링이라고 불리며 최적화기법 중 하나이다. - 위 사진처럼 카메라가 찍는 범위 안의 물체들만 그려주고, 나머지는 스킵하는 기법 - 레스터라이저 단계에서 시계방향, 반시계방향인지에 따라 한쪽 면을 그려주지 않는 것 이 기법은 어떤 점이 평면을 기준으로 안인지, 밖인지를 검사하는 수식을 통해 구현할 수 있다. - ax + by + cz + d = 0 이 식은 어떤 평면을 이루는 점을 나타낸다. - 이 수식을 만족하면 그 점은 그 평면 안에 있다는 뜻 - 이 수식에서 n(a, b, c)는 노멀벡터(평면과 수직인 벡터)이고, d는 원점에서 평면까지의 거리이다. 왜 n(a, b, c)가 노멀벡터인가? - 임의의 두 점 A(X, Y, Z), B(X', Y', Z')으로 이루어진 벡터 AB가 있다면, - A.. 2023. 1. 28.
18. SkyBox - 월드에서 하늘을 담당하는 큰 박스 - 위 사진처럼 6면에 큰 그림을 붙여서 큐브형태로 조립해서 사용하는게 일반적 - 이번 예제에서는 큐브형태는 아니고 구 모양으로 만듦 스카이 박스의 좌표 변환 - 로컬 좌표에서 스카이박스의 중심점은 (0, 0)이다(당연한 얘기) - 그런데 스카이박스는 말 그대로 배경의 역할을 하기 때문에 움직이거나 할 필요가 없음 - 그렇다고 가만히있어서 플레이어가 스카이박스의 끝에 닿는 일이 생기면 안되니까 - 뷰 좌표 (0, 0) 위치에 고정시키는 것은 어떨까 하는 아이디어 - 말 그대로 카메라를 따라다니는 것이다 - 그냥 (0, 0)에 있으면 되니까 World를 거쳐도, View에서 다시 (0, 0)이다. - 그럼 굳이 World를 거칠 필요가 있을까? 그냥 View 좌표계로 .. 2023. 1. 27.
17. Normal Mapping 노멀 매핑 적용 전의 텍스쳐 - 한 면에 적용되는 네 점의 노멀 벡터를 모두 같게 세팅해줬는데, 그러다보니 - 그 면에 보여지는 무늬가 심심해진다 노멀 벡터란? - 한 점에 접하는 평면과 수직인 벡터 - 정점을 더 세밀하게 나누면 좀 더 선명한 표현이 가능하지만 속도가 현저히 느려짐 노멀 매핑이란? - 이 노멀 벡터들로 이루어진 노멀 맵을 만들어서 노멀값을 저장하겠다는 의미 - 그리고 이 노멀 맵을 텍스쳐에 매핑하는게 노멀 매핑임 - 노멀 텍스쳐는 대부분 이렇게 청색 빛을 띠는데 왜 청색빛일까? - 텍스쳐 자체가 이미지 파일이고 RGB로 이루어진 데이터이기 때문에 - XYZ에서 Z가 RGB의 BLUE와 대응되는 것 탄젠트 스페이스란? - 노멀 맵은 오브젝트기준의 좌표계 (로컬)을 사용하지 않음 - 왜 별.. 2023. 1. 27.