Technical/Shader 11

Rendering Pipeline

메쉬를 화면의 이미지로 만들기 위해 그래픽 카드(GPU)가 처리하는 일련의 과정 1. Vertex Shader 현재 처리하는 메쉬의 Vertex를 화면 어디에 그려야하는지 계산함. 2. 형태 조립 앞에서 처리한 Vertex들을 선으로 연결하는 단계 화면에 Edge를 배치하는 단계 3. 래스터화 이 단계에선 GPU가 앞에서 처리한 메쉬가 화면에서 차지할 가능성이 있는 픽셀을 계산함. 픽셀 후보 하나하나에 대해 프래그먼트를 만듦. 프래그먼트(Fragment)는 화면에 픽셀을 그리기위해 필요한 모든 정보를 담은 데이터 구조를 말함. 모든 프래그먼트가 화면위의 픽셀이 되는 것은 아님. 4. Fragment Shader 앞 단계에서 만든 선들이 만든 빈칸에 색을 칠해 줌. 5. Fragment 처리 Fragmen..

Technical/Shader 2021.03.01

Color

대부분의 프로그래밍에서의 색상은 빨간색, 녹색, 파란색 세 개의 값으로 나타낸다. 이 값들을 컬러 채널(Color Channel)이라고 부름. 각 채널의 값은 정수(색이 없다는 의미인 0부터 255까지), 실수 또는 16진법 코드로 나타낼 수 있음. Shader 프로그래밍에서는 주로 실수로 색상을 표시함. RGB이외에 Alpha 채널 값도 사용하는데, 이는 색상의 불투명도를 나타냄. (1 이면 완전 불투명, 0이면 완전 투명)

Technical/Shader 2021.03.01

Vector

Vector는 크기(Magnitude)와 방향(Direction)을 가지는 양(Quantity)이다. Vector에는 위치정보가 없음. Vector는 '나르다(Carry)'라는 뜻을 갖고 있는 라틴어(vehere)에서 왔음. 즉, 무언가를 어느 지점에서 다른 지점으로 나르는 것으로 이해해도 무방 함. Vector 차원에는 제약이 없지만 일반적으로 4차원 Vector까지 사용한다. (X,Y,Z,W) 단위 벡터(Unit Vector)는 길이가 1인 Vector로, 어떤 수를 곱하면 그 곱한 숫자만큼의 길이를 지닌 Vector를 만들 수 있음. 방향을 유지하면서 원하는 길이를 쉽게 나타낼 수 있다는 점에서 중요함. 단위 벡터가 아닌 벡터를 단위 벡터로 만드는 과정을 정규화(Normalization)이라고 함...

Technical/Shader 2021.03.01

Mesh

컴퓨터가 이해 할수 있는 형식으로 대상의 형태를 정의하는 방법 중 하나. 메쉬는 형태를 정의하기 위해 Vertex, Edges, Faces라는 세 가지 정보를 저장한다. Vertex는 3D 공간에 있는 점을 의미함. Edges는 Vertex를 연결한 선을 가리킴. Faces는 세개 또는 그 이상의 Edge로 구성 된 3D 형태를 말함. 어떤 2D 형태로도 Faces를 구성 할 수 있지만, 처리 속도와 간결함을 위해, 많은 게임 엔진은 삼각형 형태의 Face로 구성된 메쉬를 요구 함. 메쉬가 컴퓨터 그래픽에서 널리 사용되는 이유중 하나는 코드에서 쉽게 정의 할 수 있음. 메쉬는 오직 Vertex만을 메모리에 저장함. Edge와 Face는 Vertex 순서(Vertex Ordering)를 간접적으로 정의함...

Technical/Shader 2021.03.01