픽셀

디지털 이미지를 구성하는 최소 단위

화소는 빛의 3원색인 RGB 값으로 더 작은 단위인 채널*을 구성해, 3가지 채널을 혼합해 원하는 색을 만들고, 각 채널을 통과하는 빛의 양으로 계조(Grayscale)를 표현한다.

여기에 불투명도를 나타내기 위한 알파 채널까지 포함해서 색상을 표현한다.

*색상이 0~255인 것은 8비트 모니터 기준으로 표현한 것이고, 10비트 모니터는 0~1023으로 표현할 수 있다.

 

렌더 파이프라인

그래픽 파이프라인

 

버텍스 로더 (Vertex Loader)

버텍스 ( Vertex ) : 물체를 구성하는 점

버텍스는 렌더링을 위한 여러가지 속성(인덱스 번호, 위치, 노멀, 색, UV 등)이 저장되어 있다.

삼각형을 그려 물체의 기본적인 형태를 만든다.

*삼각형이 기본인 이유

삼각형만이 유일하게 한 면 만을 표현할 수 있고, 모든 도형은 삼각형으로 표현할 수 있기 때문

 

버텍스 쉐이더 (Vertex Shader)

버텍스 쉐이더는 버텍스와 관련된 각종 연산을 한다.

1) 월드 변환 (World Transform)

로컬 스페이스에서 월드 스페이스로 변환

 

2) 뷰 변환 (View Transform)

카메라가 화면에 담아야 비로서 출력이 된다.

카메라로부터 상대적으로 얼마나 떨어져 있는지 고려되어야 한다.

뷰 변환에서는 원근감은 고려되지 않는다. (직교투영 : Orthographic Projection)

 

3)  원근 투영 (Perspective Projection)

원근감을 살리기 위해 원근 투영을 한다.

카메라가 직교투영 모드인 경우 이 단계는 생략된다.

 

레스터라이즈 (Rasterize)

물체를 화면에 출력할 픽셀과 대웅시키는 과정.

레스터라이즈는 레스터라이저(Resterizer)가 해준다.

 

픽셀 쉐이더 (Pixel Shader) / 프래그먼트 쉐이더 (Fragment Shader)

각종 조명, 텍스처, 그림자 , 특수효과 등을 연산해 최종적인 색을 결정한다.

 

 

 

Unity의 렌더 파이프라인

Unity의 렌더 파이프라인은 빌트인 렌더 파이프라인 (Built-in Render Pipleline)과 스크립터블 (Scriptable Pipeline)이 있다.

 

Built-in (빌트인 렌더 파이프라인)

유니티 기본 렌더 파이프라인.

범용적으로 사용할 수 있으나, 무겁

 

URP (유니버셜 렌더 파이프라인)

광범위한 플랫폼에서 최적화된 그래픽스를 구현하도록 지원하는 SRP

이전 경량 렌더 파이프라인 (LWRP / Lightweight Render Pipleline)을 대체함 

 

HDRP (고해상도 렌더 파이프라인)

 

 

Custom (커스텀 렌더 파이프라인)

 

* 물리 기반 쉐이더 (Physically Based Shader)

정반사, 난반사

금속, 비금속

 

금속 : 스펙큘러 컬러 = 금속 색상

비금속 : 스펙큘러 컬러 = 흰색 

 

빌트인 렌더 파이프라인이 PBR방식이라 무겁대요.

 

NPR (Non Photo Realistic) : 카툰렌더링 같은...비 실사

 

 

 

유니티에서 쉐이더를 하고 싶으면 ~ 에셋을 사세요 (농담)

DirectX랑 OpenGL을 공부해야한다.

HLSL 공부해야함

유니티 쉐이더 스타트업 책 보면 기초는 알 수 있을지도...

 

 

 

유니티 쉐이더 살펴보기

유니티 쉐이더를 사용하려면 두 가지 방법이 있다.

 

1) 쉐이더랩 : 코드로 작성

2) 쉐이더 그래프 : 시각적으로 다루는 툴

...

 

머지?

 

 

 

 

 

 

728x90

+ Recent posts