응애맘마조
노멀 매핑, 탄젠트 스페이스 본문
주의 : 해당 게시물에서 작성될 내용은 과제를 해결하기 위해 출처의 내용을 그대로 작성한 부분이 많으며 일절 광고나 수익 창출 목적으로 쓰인 것이 아님을 밝힙니다.
노멀 매핑
폴리곤의 법선 벡터의 값을 사용하여 로우 폴리곤의 그래픽 환경에서 하이 폴리곤의 입체감 및 질감을 구현하는 방법입니다. 물론 물체의 질감을 있는 그대로 표현하게 되면 삼각형의 양이 상당히 많아지고 연산량도 증가하게 되지만 노멀 매핑을 사용하면 반대로 폴리곤을 적게 사용하고도 비슷하게 효과를 낼 수 있는 기술입니다.
원리로는 실제 사람이 눈으로 볼 때는 물체의 표면에 굴곡이 있을 때 그 굴곡 때문에 표면의 방향성이 바뀌고 그 방향에 따라 빛이 다르게 반사되기 때문에 보는 사람이 그 굴곡을 느낄 수 있습니다. 하지만 DirectX에서는 표면 질감이 진짜 굴곡이 아니고 반사각이기 때문에 3D그래픽으로 물체를 표현할 때 표면을 실제로 굴곡이 있는 형태로 만들지 않고 평면으로 만들어 그 위에 어떠한 각도로 보일지 그리게 되면 하나의 폴리곤으로 굴곡이 있는 표면을 표현할 수 있습니다. 이 원리로 폴리곤 수를 줄이고 노멀 매핑으로 표면을 표현하게 되면 실제 많은 수의 폴리곤을 사용했을 때보다 훨씬 적은 리소스로 같은 시각적 효과를 얻을 수 있기 때문에 같은 연산으로 더 높은 품질의 그래픽을 얻을 수 있습니다.
탄젠트 스페이스
한 점의 법선 벡터와 접선 벡터, 법선과 접선을 외적한 바이노멀 벡터를 축으로 하는 공간입니다. 평면을 옆에서 봤을 때 밑면과 이루는 탄젠트 값이 평면의 기울기를 결정하고 폴리곤의 평면에서 수직인 법선으로 폴리곤의 기울기 값을 만들고, 접선의 나머지 두 축으로 어느 방향으로 기울었는지를 나타내서 이 세 개의 축을 가지고 만든 좌표계를 접선 좌표계라고 부르고 이 좌표계가 존재하는 공간입니다. 이 세 개의 벡터를 알고 있으면 평면이 어떤 식으로 기울어져 있는지 알 수 있습니다.