★DX11 대응
DX11 대응 그래픽 장치는 반드시 D3D11 능력 집합 전체를 지원합니다.
( DX9에서는 하드웨어의 기능점검이 필요했지만 DX11에서는 기능정검이 불필요)
★COM 객체 (Component Object Model)
- MSDN 에서 제공하는 ABI(Application Binary Interface) 입니다.
특성
1. 언어독립성 (언어에 국한X)
2. Binary Standard ( VC++ 소스 필요없음 )
3. Version Control 하위 및 상위 호환성 제공
4. 자기만의 고유한 메모리 관리 ( delete 가 아닌 Realse로 호출로 자원해제 )
-> DX11 에서는 보통 대문자 I 로 시작
★텍스처 및 자료 자원 형식
2차원 텍스처는 사실상 2차원 배열 or 행렬
용도
1. 2차원 이미지 자료를 저장 ( 각 원소는 픽셀의 색상을 담음)
2. 색상이 아닌 3차원 벡터를 담는용도 등등
형식
DXGI_FORMAT 열거형으로 지정
DXGI_FORMAT_성분_방식
성분 - R32G32B32 , R16G16B16A16 등.
방식 - FLOAT,UNROM,UINT 등
★교환사슬과 페이지 전환
presenting(제시) : 후면 버퍼와 전면 버퍼의 포인터 변경 ( 더블버퍼링 시스템 )
교환사슬(SwapChain) : 버퍼를 제시(presenting)하기 위한 변경시스템
★깊이 버퍼 ( Depth Buffer or Z-Buffer )
텍스처의 이미지 자료를 담지 않는 형식중 하나 , 0(가까움) ~ 1.0(멈) 까지의 값
픽셀의 깊이 정보를 담는 하나의 텍스쳐
작동원리
1.백버퍼 지우기
2.물체그리기
3.충돌된 픽셀의 depth 조사
4.결과값에 의한 픽셀 갱신
★스텐실 버퍼 ( Stencil Buffer )
일정부분 렌더링을 막기위해 사용 ( Masking 효과 )
깊이-스텐실버퍼 사용 ( 스텐실 버퍼를 사용한다면 반드시 깊이버퍼에 부착해야함으로 )
※ 깊이-스텐실 이라고 많이 부른다고 합니다....
★텍스처 자원 뷰
렌더링 파이프라인에는 묶을(Bind) 수 있는 단계(Stage)들이 존재
흔한 용도
1. 텍스처를 렌더 대상으로 묶는 것 ( D3D가 텍스처에 렌더링 하는 경우 )
2. 셰이더 자원으로 묶는 것 ( 셰이더 안에서 텍스처를 추출하는 경우 )
이 두가지 용도로 사용할 텍스쳐를 생성 할 때 파이프 라인 단계를 지정한 결속플래그 (Bind Flag)를 사용
직접 바인딩 되는 것이 아닌
자원 뷰(Resource View)라는 것을 생성해야 하고 이 자원 뷰가 바인딩 됨
Flag값을 지정해야 이 값에 따른 특정 자원 뷰를 생성or불가능 해짐
★앨리어싱 ( Aliasing , 계단현상 )
화면의 계단현상을 제거(앨리어싱제거AntiAliasing) 기법
SSAA(SuperSamlingAntiAliasing,초과표본화) : 후면버퍼+깊이-스텐실버퍼 4배 후 하향표본화(DownSampling)하는 기법
- 픽셸처리량과 메모리소비량의 비용이 큼
MSAA(MultiSamlingAntiAliasing,다중표본화) : 도형과 겹치는 픽셀칸에서 가운데 한점 + 주변에서 정보를 수집하여 처리하는 기법
- 가장보편적인 AA기법 , 디퍼드와 같이 쓰기에 무겁다고 함 , CPU기반
- 이미징 대해 상관없이 그냥 여러 번 샘플링
그 외 기법들 ( 자세한 설명은 생략하겠습니다...)
FXAA(Fast Approximate AA)
QAA (Quincunx AA)
EQAA (Enhanced Quality AA)
MLAA (Morphological AA)
DLAA (Directionally Localized Anti-Aliasing
TXAA (Temporal Approximate(?) AA)
SMAA(Enhanced Subpixel Morphological AA)
SPUAA(The Saboteur Anti-Aliasing)
SRAA(Subpixel Reconstruction Antialiasing)
DEAA(Distance-to-Edge AA)
GBAA(Geometry Buffer AA)
CSAA(Coverage Sampling AA)
HRAA(High Resolution AA)
SMAA(Enhanced Subpixel Morphological Antialiasing)
MSAA(Multi Frame AA)
FXAA (Fast Approximate AA)
★기능 수준 (Feature Level)
DirectX11 은 버전을 어느 수준까지 지원하는지 파악하고 순서대로 점검후 사용 가능
( DirectX11 이 지원이 안된다면 DirectX9 으로 Feature Level 을 줄일 수 있음 )