각 프레임 동안 게임 엔진의 시각적 출력은 기본적으로 상세한 이미지를 형성하는 색상 픽셀들의 큰 배열이다. 픽셀이라는 용어는 picture element의 줄임말로, 이미지의 가장 작은 개별적으로 주소를 지정할 수 있는 구성 요소를 의미하며, 이미지의 차원은 보통 이미지의 전체 너비와 높이를 구성하는 픽셀 수로 특정지어진다.

해상도라는 용어는 종종 이미지의 차원을 의미하지만, 센티미터당 픽셀 수나 인치당 픽셀 수와 같은 단위 거리로도 사용될 수 있다. 컴퓨터 모니터와 텔레비전의 전체 디스플레이 크기에 해당하는 많은 표준들이 있으며, 이 중 가장 흔하게 하용하는 것들의 표 5.1에 나열되어 있다. 시간이 지남에 따라 디스플레이 해상도는 자연스럽게 크기가 증가했으며, 너비 대 높이 비율인 표준 종횡비는 일반적으로 16:9로 수렴하였다.

일반적인 디스플레이의 수백만 픽셀 각각은 화면에서 다양한 비율로 방출되는 빨간색, 녹색, 그리고 파란색 빛의 혼합에 의해 결정되는 독립적인 색상을 가진다. 픽셀의 밝기는 세가지 생강의 빛의 전체 강도에 해당하며, 이 사이의 비율에 따라 달라진다. 색상 이미지를 생성하는 이 시스템을 RGB색상이라고하며 이는 게임 엔진이 색상 정보를 계산하는 표준 방식이다. 그리고 이것은 GPU를 통해 사용자에게 표시한다.

이미지의 RGB 색상 데이터는 프레임 버퍼라고 불리는 메모리 블록에 저장된다. 포맷에 따라 각 픽셀은 프레임 버퍼 안에서 최대 128비트의 공간을 차지할 수 있지만, 일반적으로 디스플레이용 이미지는 픽셀당 32비트 또는 64비트를 사용한다. 각 픽셀의 저장공간은 통상적으로 네 개의 채널로 나뉘며, 32비트 픽셀의 경우 8비트 부호 없는 정수로, 64비트 픽셀의 경우 16비트 부동 소수점 값으로 해석된다. 세 개의 채널은 빨간색, 녹색, 그리고 파란색 색상 성분의 강도를 담고 있다. 네번째 채널은 알파 채널로 불리며, 추가적인 픽셀 단위 정보를 포함할 수 있어 어플리케이션에 유용할 수 있다. 알파 채널은 표시되지 않으며, 컴퓨터가 세 배수보다는 네 배수로 작업하는 것이 훨씬 쉬운 이유로 존재한다. RGBA 색상이라는 용어는 빨강색, 녹색, 파란색, 알파성분을 포함하는 4채널 색상을 의미한다.

8비트 부호 없는 정수 채널을 가진 32비트 RGBA 픽셀 포맷은 그림 5.1에 보여진다. 여기에서 각 채널의 값은 0~255사이, 또는 16진수로는 0x00~0xFF 사이의 256가지 값을 가질 수 있다. 이 숫자는 0.0에서 1.0 사이의 범위, 즉 가능한 최소 및 최대 강도 값을 나타내는 분수 강도 값으로 인코딩된다. 그래픽 하드웨어가 8비트 채널을 읽을 때, 그것을 255로 나눠 해당 강도 값을 얻는다.

원문
Foundations of Game Engine Development
Volume 2: Rendering

profile
Critical thinking, logical thinking, creative thinking.

0개의 댓글

관련 채용 정보