일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 그래프
- MYSQL
- Trie
- Hash
- SQL
- union find
- binary search
- two pointer
- 스토어드 프로시저
- Dijkstra
- 다익스트라
- Two Points
- 이진탐색
- Brute Force
- String
- Stored Procedure
- DP
- Today
- Total
codingfarm
기본지식 - 텍스처 및 자료 자원 형식 본문
2차원 텍스처는 자료 원소들의 행렬(2차원 배열)이다. 2차원 텍스처의 용도 중 하나는 2차원 이미지 자료를 저장하는 것인데, 이때 텍스처의 각 원소는 픽셀 하나의 색상을 담는다.
하지만 텍스처가 꼭 이미지 자료의 저장만을 위해 사용되는 것은 아니며 훨씬 범용적으로 사용된다. 예를 들면 법선 매핑 같은 경우 텍스처에 각 원소의 색상이 아닌 3차원 벡터를 담는다.
텍스처에는 아무 자료나 담을 수 있는 것은 아니다. 텍스처에는 특정 형식(format)의 자료 원소들만 담을 수 있는데, 구체적인 형식은 DXGI_FORMAT이라는 열거형으로 지정한다. 자료 원소 형식들을 나열하면 다음과 같다.
docs.microsoft.com/en-us/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format
DXGI_FORMAT (dxgiformat.h) - Win32 apps
Resource data formats, including fully-typed and typeless formats. A list of modifiers at the bottom of the page more fully describes each format type.
docs.microsoft.com
위 형식들이 뜻하는 것을 확인하는 방법은 아래와 같다.
_FLOAT | 실수, 32비트, 16비트 |
_SINT | 2의 보수, 부호화 정수 |
_UINT | 부호화 되지 않은 정수 |
_SNORM | 부호화 정수, 정규화(Normalized) [-1.0, +1.0] |
_SRGB | 표준 RGB |
_TYPELESS | 무형식 리소스 |
_UNORM | 부호화 되지 않은 정수, 정규화 [0.0, 1.0] |
R: Red, G: Green, B: Blue, A: Alpha, D: Depth, S: Stencil, X: Don't Care, BC: Block Compression
가령
DXGI_FORMAT_R8G8B8A8_UNORM
_R8G8B8A8
- 4개 요소(Component) : RGBA
- 각 요소는 8bit
- 하나의 픽셀은 32bit
_UNORM
- 각 요소는 부호화 되지 않은 정수
- 각 요소는 정규화됨$(0, \dfrac{1}{255}, \dfrac{2}{255}, \cdots, 1.0)$
- $000000000 \rightarrow 0$, $000000001 \rightarrow \dfrac{1}{255}$, $111111111 \rightarrow 1$
무형식(typeless)의 텍스처 형식도 존재하는데, 일단 메모리만 확보해두고 자료의 구체적인 해석 방식은 나중에 텍스처를 파이프라인에 묶을 때 지정하는 용도로 쓰인다.(void* 형식의 메모리를 가져와 reinterpret_cast 하여 원하는 자료형으로 형변환 하는것과 비슷하다)
'computer graphics > DirectX11' 카테고리의 다른 글
기본지식 - 자원과 서술자(Direct3D 12) (0) | 2020.11.28 |
---|---|
기본 지식 - 깊이 버퍼링(Depth Buffering) (0) | 2020.11.27 |
기본지식 - 교환사슬(Swap Chain)과 더블 버퍼링(Double Buffering) (0) | 2020.11.27 |
기본지식 - COM(Component Object Model) (0) | 2020.11.27 |
기본지식 - Direct3D의 개요 (0) | 2020.11.27 |