카메라 프리뷰 = game 탭에서 보여지는 시야
Clear Flag: 여백을 어떻게 처리할지 결정
-Skybox: 여백을 하늘박스로 처리하겠다. (정육면체로 이뤄져있음)
-Solid color: 여백을 하나의 색으로 처리
-Depth only: 여백을 투명처리 하는 것
-Don't clear: 여백을 투명처리 하는데, 이전에 있던 frame을 지우지 않겠다는 것(잔상이 남게됨) -자원이 절약되고 최적화가 더 잘된다.
Culling Mask
-Everything: 특정 layer만 보여주겠다.
-Nothing: 모든 layer가 안그려지게 됨.
-Water: layer가 water로 설정된 것만 보여짐
Projection : 원근감을 주기 위한 것
-perspective: 원근감이 있음 (3차원 공간에서 보통 사용)
-orthographic: 원근감이 사라짐 (2차원 공간에서 보통 사용)
Field of View: 시야각
시야범위 조절가능
Physical Camera : 실제 카메라 모델을 기반으로 설정된다.
Clipping Plane: 특정 범위에 있는 것을 잘라내는 것.
Near: 최소값
Far: 최대값
최소값보다 작고, 최대값보다 크면 잘라내겠다는 것.
Depth : 카메라의 우선순위. depth값이 같은 경우 hierarchy의 밑으로 갈 수록 우선순위가 높아진다.
ViewPort Rect는 찍고있는 시점을 옮길때 사용한다. 이걸 이용해서 미니맵을 만들 수 있다.
이런식으로 카메라 2개를 생성한 뒤, ViewPort Rect의 값을 조정해주면, 위의 그림과 같이 미니맵을 만들 수 있다.
여기서 두번째 카메라의 Clear Flags를 depth only로 설정해주면,
이런식으로 여백이 사라지고, 그래픽만 남는 것을 확인할 수 있다. (depth only = 게임에서 벽 뒤에 있는 적이 나타나게 하거나 등등으로 활용가능)
다시 여기로 돌아와서
Occlusion Culling : 카메라가 뒤를 돌면, 안보이는 것을 rendering하지 않는 것. (자원절약)
HDR : 조명효과
MSAA : anti aliasing 기법. 계단 현상을 제거
Allow Dyamic Resolution: 동적인 해상도. GPU부담을 줄여준다. 성능에 따라 해상도가 줄어든다.
Target Display: dual 모니터 쓸 때 사용.
[Script를 이용해서 특정 대상을 따라다니는 카메라 구현]
위와 같이 코드를 작성하고, 본 script file을 main camera component에 추가해주면,
이런식으로 작동하는 것을 확인할 수 있다. target object가 움직일 때마다, 카메라가 함께 움직이는 것을 알 수 있다. 그리고 시야와 대상 사이의 그 거리를 유지하면서 따라가고 있음을 확인할 수 있다.
** 주의사항: 카메라의 position이 음수값으로 설정되어있으면, 실행시 카메라가 혼자 움직여버리는 경우가 있으므로 주의. (카메라의 시작 전 position값을 양수값으로 설정하고 시작해야, 원하는 대로 구현 가능함.)
[Camera와 관련된 몇 가지 속성들]
fieldOfView를 직접 수정하는 식으로 구현가능.
ex. thecam. fieldOfView = 50; (thecam은 카메라를 가리키는 변수)
clearFlags를 이용해서 중간에 depth only 등으로 바꿔줄 수 있음.
그러나 카메라의 속성을 변경시켜주는 경우는 많지 않음.
'졸업프로젝트' 카테고리의 다른 글
유니티 기본강좌_8. 애니메이션 (0) | 2021.11.25 |
---|---|
유니티 기본강좌_7. 라이트 (0) | 2021.11.24 |
유니티 기본강좌_5. 메쉬 렌더러 (0) | 2021.11.24 |
유니티 기본강좌_4.컬라이더 (0) | 2021.11.23 |
유니티 기본강좌_3.리지드 바디 (0) | 2021.11.23 |