SetSamplerState
이미지를 렌더링할 때 카메라가 너무 가까이 있으면 이미지의 픽셀이 깨져보인다던지,
너무 멀리 있으면 이미지가 자글자글하게 보이는 경우가 있다.
SetSamplerState를 통해 샘플링 상태를 설정해서 이 상태를 어느 정도 해결할 수 있다.
설정 가능한 필터는 MAGFILTER, MINFILTER, MIPFILTER가 있다.
MAGFILTER을 LINEAR로 설정하면 이미지가 확대되었을 때 색을 선형보간해서 부드럽게 보여주고
MINFILTER을 LINEAR로 설정하면 이미지가 축소되었을 때 색을 선형보간해서 부드럽게 보여준다.
POINT로 설정하면 반대로 선형보간하지 않고 그대로 출력한다.
MIPFILTER는 밑에 밉맵에서 설명하겠다.

또 텍스쳐의 ADDRESSING MODE를 설정할 수 있다.
텍스쳐의 uv 좌표를 표현하는 방식인데
WRAP - uv좌표가 1을 넘어갔을 때 0으로 다시 돌아옴(가장 보편적)
CLAMP - uv좌표가 1을 넘어갔을 때 1일 때의 색이 쭉 이어짐
MIRROR - uv좌표가 1을 넘어갔을 때 대칭 형태로 보여짐.
MIPMAP(밉맵)
MIPFILTER는 밉맵(MIPMAP)을 설정한다.
DirectX는 텍스쳐를 만들 때 한개만 생성하는 것이 아니라 2의 n승 크기 별로 여러개를 만든다. (1x1, 2x2 .. 256x256)
텍스쳐가 축소되면 작은 사이즈의 텍스쳐를 가져와서 그리고 텍스쳐가 확대되면 큰 사이즈의 텍스쳐를 가져와서 그린다.
MIPFILTER을 LINEAR로 설정하면 자글자글하게 보이는 현상이 사라진다.
멀리 있는 텍스쳐일 수록 크기가 작고 그만큼 색을 덜 사용하기 때문이다.
높이 맵

높이 맵은 지형의 높이를 표현할 때 사용하는 텍스쳐로 검은색~흰색의 무채색으로 이루어져 있다.
이 색들의 특징은 R, G, B 값이 모두 동일하다는 것이다. 그래서 세 값 중 하나를 비교해서 그 값과 높이가 비례한다.
RGB의 값이 클 수록 흰색에 가까워지므로 검은색은 낮은 지형, 흰 색은 높은 지형에 해당한다.
보통 RGB값 중 B로 비교하는데 RGB 데이터가 A,R,G,B순으로 있어 B는 가장 오른쪽에 있기 때문에
시프트 연산 필요없이 가장 작은 수로 표현할 수 있기 때문이다.
'Today I Learned' 카테고리의 다른 글
| 23.06.09 - Picking (0) | 2023.06.09 |
|---|---|
| 23.06.08 - 빌보드, 평면의 방정식을 이용한 지형 타기 (0) | 2023.06.08 |
| 23.05.30 - 직교 투영 행렬 만들기 (0) | 2023.05.30 |
| 23. 05. 26 - 알파 블렌딩 vs 알파 테스트 (0) | 2023.05.26 |
| 23. 05. 25 - 정점 그리기 (0) | 2023.05.25 |