2-2. 텍스처 및 자료 자원 형식

박재수 ㅣ 2023. 9. 18. 16:00

2차원 텍스처는 사실상 자료 원소들의 행렬이다.

2차원 텍스처의 한 가지 용도는 2차원 이미지 자료를 저장하는 것으로, 그런 경우 텍스처의 각 원소는 한 픽셀의 색상을 담는다. 그러나 그것이 2차원 텍스처의 유일한 용도는 아니다. 예를 들어 법선 매핑이라고 하는 고급 기법에서는 텍스처의 각 원소가 아니라 3차원 벡터를 담는다.

따라서, 텍스처라고 하면 흔히 이미지 자료의 저장을 떠올리지만, 실제로는 그보다 훨씬 범용적이다.

다음은 텍스처를 담을 수 있는 자료 형식들의 예이다.
  1. DXGI_FORMAT_R32G32B32_FLOAT: 각 원소는 32비트 부동소수점 성분 세 개로 이루어진다.
  2. DXGI_FORMAT_R16G16B16A16_UNORM: 각 원소는 [0, 1] 구간으로 사상되는 16비트 성분 네 개로 이루어진다.
  3. DXGI_FORMAT_R32G32_UINT: 각 원소는 32비트 부호 없는 정수 성분 두 개로 이루어진다.
  4. DXGI_FORMAT_R8G8B8A8_UNORM: 각 원소는 [0, 1] 구간으로 사상되는 8비트 부호 없는 성분 네 개로 이루어진다.
  5. DXGI_FORMAT_R8G8B8A8_SNORM: 각 원소는 [-1, 1] 구간으로 사상되는 8비트 부호 있는 성분 네 개로 이루어진다.
  6. DXGI_FORMAT_R8G8B8A8_SINT: 각 원소는 [-128, 127] 구간으로 사상되는 8비트 부호 있는 정수 성분 네 개로 이루어진다.
  7. DXGI_FORMAT_R8G8B8A8_UINT: 각 원소는 [0, 255] 구간으로 사상되는 8비트 부호없는 정수 성분 네 개로 이루어진다.

여기서 R, G, B, A는 각가 적색(red), 녹색(green), 청색(blue), 투명도(alpha) 성분을 뜻한다. 그래픽에서 하나의 색상은 3차원인 적색, 녹색, 청색의 조합으로 만들어진다. 컴퓨터 그래픽에서 알파 채널 또는 알파 성분은 일반적으로 투명도를 제어하는 데 쓰인다. 그러나 앞에서 이야기했듯이 텍스처에 반드시 색상을 담아야 하는 것은 아니다. 예를들어

    DXGI_FORMAT_R32G32B32_FLOAT

이라는 텍스처 원소 형식은 세 개의 부동소수점 성분으로 구성되며, 따라서 부동소수점 좌표 성분들로 이루어진 하나의 3차원 벡터를 담을 수 있다.

무형식(typeless)의 텍스처 형식도 존재하는데, 이 경우에는 그냥 메모리만 확보해 두고 자료의 구체적인 해석 방식은 나중에 텍스처를 파이프라인에 묶을 때 지정한다.

    DXGI_FORMAT_R8G8B8A8_TYPELESS

'DirectX' 카테고리의 다른 글

2-3. 교환 사슬과 페이지 전환 (SwapChain)  (0) 2023.09.18
2-1. DirectX 11 장치 초기화 (COM)  (0) 2023.08.20
1. Rendering Pipeline  (1) 2023.07.01