DirectX 11

221004

슬뷔 2022. 10. 11. 14:52

sampler는 샘플러 레지스터에 고정으로 항상 셋팅을 해둘 것이다. (s0, s1)

샘플러 종류 2개 -> Anisotropic(이방성, 두종류의 방향으로 향하는 성질), Point

 

1. Anisotropic (s0)

AddressU -> address_mode::texture_address_wrap

AddressV -> address_mode::texture_address_wrap

AddressW(게임에선 3차원 텍스쳐는 잘 사용안해서 없다고 생각하면됨)

 

필터링 방식 -> 이방성필터링 옵션 filter_anisotropic

 

2. Point (s1)

필터링 방식 -> filter_min_mag_mip_point

 

샘플러는 버텍스쉐이더에만 필요한게 아니라 전 쉐이더에 다 필요하다.

 

두 샘플러의 차이 ?

이방성 -> 참조하는 위치에 따라서 평균색상을 계산을 한다.

본인이 참조하는 위치가 같은 위치로 샘플링 되더라도, uv값이 조금씩 다르다.

미세하게 조금이라도 증가한 위치를 기반으로 원본 이미지에서 샘플링한 색상을 그대로 가져오는 것이 아니라,

뿌옇게 어느 정도 색상이 보간, 보정작업이 일어나서 결과가 들어가게된다.

 

뿌옇게 되는 이유?

원본 해상도가 낮은 것을 확대했을 때 사이사이 생긴 빈틈을 채워나가다 보니 뿌옇게 번지는 느낌이 난다.

 

포인트 -> 보정작업이 일어나는게 아니라 픽셀 각진형태를 그대로 가져와 확대한다.

각 픽셀 별로 원래 이미지를 샘플링한 색상값을 변형없이 그대로 가져오는 것이다.

 

3. 재질

어떤 쉐이더를 사용할 것인지 정하고, 재질을 통하면 쉐이더 파이프라인이 동작하기 전에

원하는 값을 전달하는 것까지 가능하다

재질의 값을 조정해서 물체의 형태 같은 것을 바꿀 수 있다.

재질이 쉐이더를 참조한다. -> class CGraphicsShader;

 

어떤 재질을 사용하냐에 따라서 사용할 쉐이더도 결정이 된다.

 

* enum class 적으면 이름을 적어주어야 한다. 명확하게 해주어야 한다. 자동 캐스팅이 안된다.

* enum 을 너무 많이 쓰면 이름 중복문제가 생긴다.

 

 

 

'DirectX 11' 카테고리의 다른 글

221006  (0) 2022.10.17
221005  (0) 2022.10.17
220930  (0) 2022.10.11
220929  (0) 2022.10.10
220928  (0) 2022.10.09