1. 셰이더
1.1. 셰이더 기초
- 렌더링 모드 :
- Opaque : 기본값으로, 불투명한 텍스처를 표현하는 옵션
- Cutout : 불투명한 부분과 투명한 부분을 동시에 표현하는 옵션. 주로 풀이나 그물망 등을 표현할 때 적합하다.
- Transparent : 투명한 플라스틱 또는 유리와 같은 재질을 표현하는 옵션
- Fade : 투명 속성값을 가진 객체를 fade out시키는 옵션. 불투명한 객체를 부분적으로 fade out시킬 수 있어 홀로그램 효과를 구현할 수 있다
- 용어 정리
- Albedo : 기본 색상
- Normal Map : 입체적인 표현을 설정
- Height Map : 표면의 고도를 설정
- Metalic : 금속스러움에 대한 설정
- Occlusion : 빛을 난반사하는 정도를 설정
- Emission : 표면에 방출되는 빛의 색상과 강도 표현
1.2. LOD(Level of Detail)
- LOD(Level Of Detail) : 화면을 렌더링하는 카메라로부터 멀리 떨어질수록 낮은 폴리곤으로 변경해 렌더링 부하를 줄여주는 기법
- LOD Group : 기본적으로 3단계의 LOD 구간과 Culled 구간으로 설정되어 있음
- 마지막 Culled는 카메라와의 거리가 아주 멀리 떨어져 화면에서 렌더링하지 않는 구간을 의미한다.
2. 렌더링 방식
- 포스트 프로세싱(Post Processing) :
- 게임 화면이 최종 출력되기 전에 카메라의 이미지 버퍼에 삽입하는 추가처리
- 포스트 프로세싱 연산은 렌더링 파이프라인의 주요 과정에서 적용되지 않고 마지막 부분에 적용됨.
- 포워드 렌더링(Forward Rendering) :
- 각각의 오브젝트를 그릴 때마다 해당 오브젝트에 영향을 주는 모든 라이팅도 함께 계산하는 전통적인 방식
- 한 오브젝트에 대해 4개까지의 광원만 제대로 표현 가능
- 메모리 사용량이 적고 저사양에서도 비교적 잘 동작하지만 연산속도가 느림
- 디퍼드 셰이딩(Deffered Shading) :
- 첫 번째 패스에서는 오브젝트의 메시를 그리되 라이팅을 계산하거나 채우지 않음
- 두 번째 패스에서 첫 번째 패스의 정보를 활용해 라이팅을 계산하고 최종 컬러 결정
- 모든 광원을 표현할 수 있음
- MSAA 같은 일부 안티앨리어싱 설정을 지원하지는 않음
3. 스카이박스
- 6 sided : 여섯 개의 개별 텍스처(앞, 뒤, 왼쪽, 오른쪽, 위, 아래)를 사용하여 큐브 형태의 하늘을 생성하며 각 텍스처는 큐브의 한 면에 해당하고 이를 통해 360도 전방위 배경을 표현함
- Cubemap : 큐브맵 텍스처를 사용하여 하늘을 표현하며 큐브맵은 여섯 개의 텍스처가 하나로 결합된 형태로, 모든 방향에서의 배경을 단일 텍스처로 관리한다. 한 장의 텍스처에
여섯 방면의 이미즐 합칠 때는 다음과 같은 세 가지 방식으로 작업해야 한다.
- 6 Frame Layout : 여섯 방면의 이미지를 평면으로 배치
- Latitude-Longitude : 파노라마 이미지로, 실린더 형태의 이미지
- Mirrored Ball : 구체(Sphere) 이미지
- Panoramic : 단일 파노라마 텍스처를 사용하여 하늘을 표현하며 360도 파노라마 이미지를 사용하여 구형으로 하늘을 렌더링함
- Procedural : 텍스처를 적용하지 않고 하늘의 색상, 대기 농도, 노출, 태양의 위치와 크기 등으로 스카이박스 설정할 수 있으며, 속성은 아래와 같다.
- Sun : None(태양 이미지를 표현하지 않음), Simple(태양 주변에 헤일로 처리를 하지 않음), High Quality(태양 주변에 헤일로 처리)
- Sun Size : 태양 이미지 크기 조절
- Sun Size Convergence : 태양 주변의 퍼지는 빛의 범위를 조절
- Atmosphere Thickness : 대기 농도(청명하거나 탁한 정도) 조절
- Sky Tint : 하늘 색상 조절
- Ground : 대지 색상 조절
- Exposure : 노출 조절