본문 바로가기
유니티/기초

유니티 카메라 ( Camera )

by 노튜 2020. 11. 5.
728x90

1. 스크린 공간 (Screen space

스크린 공간은 디스플레이 장치의 화면으로, 사용자로부터 터치 입력의 발생은 스크린 공간에서 이루어진다. 스크린 공간은 월드 공간이 아니다. 월드 공간은 씬뷰에 보이는 공간을 나타낸다. 스크린 공간의 위치는 픽셀 단위로 정의된다.

 

2. Orthographic( 직교투영),  Perspective(원근)

카메라 투영(Projection)방식에는 직교 투영법과 원근법이 있다. 

직교 투영은 평행하게 물체를 투영하여, 이미지를 스크린상에 보여준다. 직교 투영은 주로 원근감을 거의 필요로 하지 않는 2D 프로젝트에 사용하며, X축과 Y축을 사용하는 Vector2(x, y) 좌표체계를 사용한다.    

원근법은 우리의 눈으로 사물을 보듯, 가까이 있는 물체는 크게 보이며, 멀리 있는 있는 물체는 작게 스크린상에 보여준다. 원근법은 3D 프로젝트에 주로 사용한다. 카메라를 기준으로 가까이 있는 사물은 크게 보인다.  

 

 

Orthograph, Perspective (출처 아래링크)

 

 

유니티 프로젝트를 생성할 때, 2D 프로젝트를 생성하면, 카메라 투영 방식은 직교 투영법이 기본 설정된다. 또한, 3D 프로젝트를 선택하면 원근법을 기본으로 카메라가 설정된다. 2D 프로젝트를 선택해도 카메라 투영을 바꾸어 주기만 하면 3D 프로젝트와 같다.

위치는 아래와 같다.

Camera → Projection   변경  

 

카메라 설정을 변경하고, Scene View 상단에, 2D 모드의 선택을 해제하면, Scene view를 3D 모드로 볼 수 있다. 2D 프로젝트와 3D 프로젝트는 패키지들이 다르다. 3D에 필요한 몇 가지의 패키지에 대한 추가적인 다운로드가 요구된다. 

※ 3D   2D 변경도 마찬가지 방식

 

2D 3D 전환 아이콘

 

3. Camera

카메라는 화면을 구성하는 장치이다. 카메라로부터 투영된 이미지를 플레이어에게 보여준다. 

씬에 카메라는 반드시 1개는 존재해야 한다. 하지만 여러 개의 카메라가 존재할 수 있다. 특정 지점만을 보여주는 카메라를 설치할 수 있으며, 레이어로 설정된 게임 오브젝트 그룹을 나타내는 카메라를 생성할 수 있다.    

 

3.1 Projection

직교 투영법과 원근법을 선택할 수 있다. 직교 투영을 선택하면 추가적으로 뷰포트(Viewport)의 크기를 설정할 수 있다.

FOV Axis, Filed of View, Physical Camera 옵션은 원근법 선택 시 나타나는 추가적인 설정 옵션이다. 

 

 

Camera

3.2 Clipping Planes

 

Near : 카메라가 보여줄 수 있는 최소 거리이다.  카메라로부터 0.3 이상 떨어진 거리부터 보여준다. 

Far : 카메라가 보여줄 수 있는 최대 거리이다. 1000이 기본 설정이다. 특별한 이유가 없다면 기본 설정을 추천한다. 카메라가 보여줄 수 있는 거리에는 한계가 있기 때문이다. 

 

3.3 Culling Mask

 

카메라가 보여주는 레이어 목록이다. 동일한 공간 위치에 존재해도, 카메라의 Culling Mask에 등록되어 있지 않다면, 

카메라는 해당 레이어에 속한 게임 오브젝트를 스크린에 표시하지 않는다.  

 

Culling Mask

위 사진의 빨간색 부분은 Scene View에 두 개의 큐브가 존재한다. 하지만 아래 플레이 영역에는 두 개의 큐브가 없다.

두 개의 큐브는 NonVisible 레이어로 설정된 상태이다.  그리고 Camera 설정 CullingMask에서 선택을 해제하였다. 

실제 월드에는 존재하나 CullingMask 레이어를 지정해, 오브젝트를 보여주거나, 보이지 않도록 설정할 수 있다. 이 외에도 CullingMask를 이용해 다양한 효과들을 줄 수 있다. 

 

3.4 Field of View 

카메라의 뷰의 각도를 나타낸다. 

0도~ 180도 사이의 값을 가진다. 기본 설정 값은 60이다. 값이 커질수록 더 넓은 범위를 렌더링 한다.   

FOV Axis는 Field of View의 기준 축을 나타낸다. FOV axis는 Y축을 기준으로 종횡비를 나타낸다.  

 

3.5 Physical Camera

피지컬 카메라는 실사 움직임을 구현하는 데 사용되며, 영화 같은 느낌을 플레이어에게 줄 수 있다.  

피지컬 카메라를 선택하면 카메라에 대한 속성이 활성화된다. 피지컬 카메라 속성은 Focal Length, Sersor Type and Size, Lens Shift, Gate Fit이 있다. 속성 값을 사용하여 Field of View를 계산한다.  

 

  • Focal Length는 카메라 센서와 카메라 렌즈 간의 거리(단위: mm)를 설정한다. 값이 낮을수록 Field of View는 넓어진다.
    Sensor type은 카메라를 시뮬레이션하는 카메라 포맷을 지정합니다.  
  • Lens Shift는 렌즈를 중앙에서 수평 또는 수직으로 이동시킵니다. 이를 통해 초점의 중심을 변경하고 렌더링 된 프레임 내 피사체의 위치를 (거의) 왜곡 없이 변경할 수 있습니다.
  • Gate Fit은 게임 뷰와 물리 카메라가 비추는 뷰가 다를 때 기준을 설정합니다. 

 

3.6 뷰포트 렉트(Viewport Rect) 

카메라가 렌더링 하는 뷰의 화면의 위치를 나타냅니다.  

Viewport의 XY은 0~1 사이의 값을 갖습니다. XY는 뷰포트의 시작점을 의미합니다.

화면의 왼쪽 아래(bottom-left)는 (0,0)이며, 오른쪽 상단(top-right)은 (1,1)입니다. 

W는 Width, H는 Height를 나타냅니다. 

 

 

참조

 

docs.unity3d.com/kr/530/ScriptReference/Camera.html

 

Unity - 스크립팅 API: Camera

스크린 공간(screen space)의 위치는 픽셀단위로 정의됩니다. 화면의 왼쪽아래(bottom-left)는 (0,0)입니다; 오른쪽위는 (pixelWidth,pixelHeight)입니다. is (pixelWidth,pixelHeight). The z position is in world units from the ca

docs.unity3d.com

 

사진 출처

 

www.researchgate.net/figure/Projection-modes-a-orthographic-projection-and-b-perspective-projection_fig2_265693452

 

Fig. 2. Projection modes: (a) orthographic projection and (b)...

Download scientific diagram | Projection modes: (a) orthographic projection and (b) perspective projection.   from publication: Fast and effective occlusion culling for 3D holographic displays by inverse orthographic projection with low angular sampling |

www.researchgate.net

 

728x90

'유니티 > 기초' 카테고리의 다른 글

유니티 안개(Fog)  (0) 2020.11.06
유니티 스카이박스 ( Skybox )  (0) 2020.11.06
유니티 레이어와 태그 (Layers and Tags)  (1) 2020.11.05
유니티 물리 충돌 ( Physics )  (0) 2020.11.05
유니티 Update 함수  (0) 2020.11.05