검색결과 리스트
글
1. 이중버퍼링
애니메이션이 깜빡대는 현상을 방지하기 위해 이중 버퍼를 사용한다.
하나는 화면 밖에서 그리고 바꿔치기 하는 것이다.
전면 버퍼와 후면버퍼를 교환해서 화면에 표시하는 것을 제시(Presenting)이라고 한다.
버퍼들을 바꾸는 것은 내용을 바꾸는 것이 아니라 포인터만 맞바꾸는 것이기 때문에 효율적이다.
* 후면 버퍼는 텍스처이므로 그 원소를 텍셀이라고 불러야 하지만, 여기선 그냥 픽셀이라고 한다.
2. 깊이 버퍼링
깊이 버퍼는 이미지 자료를 담지 않은 텍스처이다.
깊이 버퍼는 후면버퍼의 픽셀들과 일대일로 대응한다. 깊이는 0.0 ~1.0 커질수록 멀다.
한 물체의 픽셀들이 다른 물체보다 앞에 있는지 판정하기 위해, 깊이 버퍼링, z-버퍼링 이라는 기법을 사용한다.
깊이 버퍼링에서 물체를 그리는 순서는 중요하지 않다.
깊이 버퍼링 알고리즘
* 렌더링 되는 각 픽셀의 깊이 값을 계산해서 깊이 판정을 수행하고 깊이 값을 비교했을때 관찰자에 가장 가까운 픽셀이 승리하여 후면 버퍼에 기록된다.
깊이 버퍼도 텍스처이므로 특정한 자료형 형식을 지정해서 생성해야 한다.
ⓐ DXGI_FORMAT_D32_FLOAT_S8X24_UNIT : 각 텍셀은 32비트 부동소수점 깊이 값과 [0, 255] 구간으로 사상되는 8비트 부호 없는 정수 스텐실 값(스텐실 버퍼에 쓰임), 그리고 다른 용도 없이 채움(Padding)용으로만 쓰이는 24비트로 구성된다.
ⓑ DXGI_FORMAT_D32_FLOAT : 각 텍셀은 하나의 32비트 부동소수점 깊이 값이다.
ⓒ DXGI_FORMAT_D24_UNORM_S8_UNIT : 각 텍셀은 [0, 1] 구간으로 사상되는 부호 없는 24비트 깊이 값 하나와 [0, 255] 구간으로 사상되는 8비트 부호 없는 정수 스텐실 값으로 구성된다.
ⓓ DXGI_FORMAT_D16_UNORM : 각 텍셀은 [0, 1] 구간으로 사상되는 부호 없는 16비트 깊이 값이다.
(스텐실 버퍼를 반드시 사용하는 것은 아니지만 만일 사용해야 한다면 스텐실 버퍼를 깊이 버퍼에 부착해야 한다.)
'DirectX11 > Direct3D 초기화' 카테고리의 다른 글
텍스처 관련 (0) | 2016.07.03 |
---|---|
Direct3D 기본 (0) | 2016.07.02 |
RECENT COMMENT