D3D

Normal Mapping

햄시나 2024. 10. 28. 19:12

하나의 물체를 자세히 그려내기 위한 방법으로는 많은 버텍스를 사용하는게 있다. ( = HighPolygon )

그러면 물론 쉐이더의 실행횟수가 늘어난다...

 

근데 꼼수가 있다.

텍스처에다가 HighPolygon의 노말만 따로 저장해서 픽셀쉐이더에서 샘플링해갖고 픽셀의 노말로 사용해버리는 것이다...!

법선벡터를 노말 (= blue), 탄젠트(= red), 바이탄젠트(=green)로 부여해서  RGB값(0 ~ 1)으로 텍스처에 저장한다.

샘플링을 해서 사용할때는 RGB값에 2.0을 곱하고 -1.0을 하는 변환을 거쳐서 -1 ~ 1 범위가 된다.