D3D
Normal Mapping
햄시나
2024. 10. 28. 19:12
하나의 물체를 자세히 그려내기 위한 방법으로는 많은 버텍스를 사용하는게 있다. ( = HighPolygon )
그러면 물론 쉐이더의 실행횟수가 늘어난다...
근데 꼼수가 있다.
텍스처에다가 HighPolygon의 노말만 따로 저장해서 픽셀쉐이더에서 샘플링해갖고 픽셀의 노말로 사용해버리는 것이다...!
법선벡터를 노말 (= blue), 탄젠트(= red), 바이탄젠트(=green)로 부여해서 RGB값(0 ~ 1)으로 텍스처에 저장한다.
샘플링을 해서 사용할때는 RGB값에 2.0을 곱하고 -1.0을 하는 변환을 거쳐서 -1 ~ 1 범위가 된다.