Unity 3D Rendering PipeLine
유니티 3D 공간 상에서 오브젝트를 그리는 전체 프로세스를 3D Rendering Pipeline이라고 부른다.
렌더링 파이프라인에서 가장 시작이 되는 프로세스는 카메라인데 카메라는 좌표에 따라 Local(model) - Global(World)로 나뉘고 Camera(View)로 시점을 나타낸다.
카메라 관련 프로퍼티
카메라를 사용해 3D 공간을 표현할 때 다음과 같은 중요한 프로퍼티들을 사용하고 있다.
시야 절두체(view frustum) | 시야 밖에 있는 오브젝트는 삭제해서 그림 |
시야각(Field of View) | 시야 절두체를 제외한 시야 범위 |
Clipping planes | 시야 절두체를 벗어나는 부분을 자르고 그릴 범위(Near / Far) |
투영(projection) | 스크린에 보여줄 때 원근으로 할지, 직선으로 보여줄지를 설정 |
View frustum 프로퍼티를 사용해 Camera View에 보이지 않는 오브젝트들을 삭제하고 Field of View 안에만 위치한 오브젝트만 취급함으로서 최적화를 달성할 수 있다.
그리고 Clipping planes는 Near clip planes와 Far clip planes 프로퍼티를 가지고 있다. 렌더링을 시작 및 중지하기 위한 카메라부터의 거리를 나타내는 값인데, 쉽게 말해 내 눈에서 눈썹이 안보이는 것과 같은 기능을 Near 값을 조정해 표현해 줄 수 있다.
2분할 카메라 설정을 통한 2D게임 제작 방법
카메라에 있는 프로퍼티를 이용하면 화면을 2분할한 것과 같은 연출을 구현해 낼 수 있다. 먼저 2d 콘텐츠에 적합하게 기본적인 camera 세팅은 projection의 orthographic을 projection으로 변경하는 것이다. 그리고 씬 뷰를 렌더링하는 Viewport Rect 값을 0~1(percent 단위) 사이로 미세하게 조정해주면 된다. 이를 2분할 카메라 시점으로 응용해보면 씬 뷰에서 카메라를 2개를 생성하고, Viewport Rect 값을 각각 다음과 같이 조정해 주면 2개의 화면이 나오는 스크린을 구현할 수 있다.
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
[Unity] 함수 생명주기 LifeCycle, 터널링 현상과 카메라 떨림 버그 해결 방법(FixedUpdate / LateUpdate) (0) | 2022.10.01 |
---|---|
[Unity] 선형보간 Lerp 함수와 유니티에서의 선형보간 활용 사례(Alpha Blending, iTween) (1) | 2022.09.30 |
[Unity] 이미지와 UV좌표, Light와 그림자 설정을 통한 게임 환경 디자인 (0) | 2022.09.29 |
[Unity] 유니티 라이팅(Lighting) 컴포넌트, 빛 표현과 노멀맵(Normal map) (0) | 2022.09.28 |
[Unity] 유니티 게임 개발 프로젝트 협업 방식과 MVC 패턴 이해 (0) | 2022.09.28 |