노말맵 사용시 미러링 현상 해결 by 김윤정

노말맵은 하이 폴리곤의 버텍스 위치를 벡터화 시켜 로우 폴리곤의 벡터에 적용하는 픽셀단계의 벡터 속임 기법입니다.

덕분에 노말맵의 절대적 단점이 생기게 되는데, 그것은 '미러링을 할 수 없다' 라는 것입니다.

즉 symmetry 기능을 써서 좌우대칭으로 모델링을 했을때, 다른 텍스쳐들은 좌우대칭을 해도 별 문제가 없지만 노말맵만은 좌우대칭을 하면 X 축 (U값. 맞나?) 이 좌우로 뒤바뀌게 되어
볼록 튀어 나와야 할 무릎이 반대쪽은 오목하게 들어가는 현상등이 일어나게 되는 것입니다.

즉 이렇게 하나의 텍스쳐에 양쪽 다리를 Unwrap을 하면
아래처럼 노말맵의 X 축 (Red값) 도 좌우대칭이 되어 버립니다.
(크게보면 좀 더 잘보이지만 비공개 프로젝트라 짤라서 일부만...)

위 그림은 노말맵의 X축 (Red) 값만 보이도록 처리한 것입니다. (normalmap.rrr)
저렇게 노말맵이 좌우대칭이 되면서, 한 쪽에서 빛을 받으면 계산이 이상하게 됩니다. 튀어나와야 하는 부분이 오목하게 보인다던가 하게 말이죠.

이렇게 말입니다. 프로그래머들은 뭐가 이상한지 못찾던데 OTL 아니 딱봐도 이상하잖아요. 아참 나도 프로그래머지.
그래픽스 하시는 프로그래머분들은 알아볼 수 있으실듯. 왼쪽 무릎이 튀어나온게 아니라 들어가 버렸습니다.


그래서 뭐 어렵지 않은 처리로 ...

힌트는 UV를 이렇게 배열하는 것.

비대칭으로 한 장 더 그리는게 아니라, 타일링된 UV 배열만 옆으로 이동시키면 U 값이 1을 넘어간 것을 인식하여,
그 부분에서만 노말맵의 R 값을 뒤집어 주게 만들었습니다.

짜잔. 노말맵이 좌우대칭이 아닙니다. 제대로 되었습니다.

결과물도 다음과 같이 해피해피

텍스쳐 추가도 필요 없고 그냥 UV 좌표만 이동시켜 주는 것으로 해결 완료.
이제 그래픽팀은 마음놓고 Symmetry를 쓰시오 ~~~

덧글

  • storm 2010/11/04 20:49 #

    와 '보통지도'다!
  • 왕풍뎅이 2010/11/05 05:44 #

    와'정상지도'다!
  • 김윤정 2010/11/05 07:41 #

    .... 이사람들이.
※ 로그인 사용자만 덧글을 남길 수 있습니다.


MyADD

<script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>