--------------------
노말맵이란?
--------------------
노말맵(normal map)이란 다른 말로 노말범프맵(normal bump map)이라고도 하며, 메쉬
표면의 노말벡터를 텍스쳐 파일에 저장해 놓은 것을 뜻합니다. 노말맵에는 오브젝트
공간 노말맵(object space normal map)과 탄젠트 공간 노말맵(tangent space normal
map)이 있습니다. 오브젝트 공간 노말맵은 말그대로 오브젝트의 좌표계 상에서의
노말을 담는 것이고, 탄젠트 공간 노말맵은 노말 벡터를 텍스쳐 좌표계에 대하여 구한
다음 저장한 것입니다. 따라서, 탄젠트 공간 노말맵은 다른 말로 텍스쳐 공간
노말맵(texture space normal map)이라고도 부릅니다.
--------------------
오브젝트 공간 노말맵과 탄젠트 공간 노말맵의 차이점
--------------------
앞서 말했듯이 오브젝트 공간 노말맵과 탄젠트 공간 노말맵은 서로 노말벡터의 기준
좌표계가 다른 것입니다. 오브젝트 공간 노말맵의 장점은 구현하기가 쉽고, 로우
폴리곤의 경우에도 라이팅의 선형성이 거의 나타나지 않아 외곽 실루엣을 제외하면
하이 폴리곤과 동일한 효과를 나타낼 수 있다는 장점이 있습니다. 하지만, 모든 노말
벡터가 오브젝트 공간을 기준으로 되어 있기 때문에 캐릭터에 적용시 스키닝이
간단하지 않은 단점이 있습니다. 이에 반해 탄젠트 공간 노말맵은 각 폴리곤의
텍스쳐 좌표계를 기준으로 노말벡터가 계산되어 있기 때문에 스키닝이 되어도 그대로
적용할 수 있다는 장점이 있습니다. 따라서, 너무 로우 폴리곤이어서 라이팅의
선형성이 눈에 많이 띄는 경우가 아니라면, 탄젠트 공간 노말맵을 사용하는 것이 더
편할 것입니다(저의 추측임)
--------------------
노말맵 작업시 유의 사항
--------------------
1. 인접한 삼각형의 텍스쳐 공간 노말 벡터의 방향이 반대인 경우.
: 이 경우는 디자이너가 메시를 언랩할 때, 삼각형 구성 방향이 반대로 되지 않도록
적절히 작업해주면 해결되지만, 디자이너가 신경쓰지 않도록 하려면, 노말 벡터를
구할 때 인접 폴리곤의 텍스쳐 공간 법선 방향이 반대인 경우에는 제외시키는
방식으로 별도 처리해 주셔야 할 겁니다.
2. 서로 다른 폴리곤의 텍스쳐 좌표 공유
: 노말맵의 큰 단점으로 서로 다른 폴리곤(서로 다른 노말을 가진)들이 동일한
텍스쳐 좌표를 사용할 경우, 한 쪽 폴리곤에 대해 반대 방향으로 노말맵이 적용되는
경우가 발생합니다. 예를 들면, 오른쪽 다리와 왼쪽 다리에 대해 노말맵 텍스쳐를
공유할 수 없다는 거죠. 디퓨즈 텍스쳐 좌표와 노말맵 텍스쳐 좌표를 동일하게 쓰는
일반적인 경우라면, 캐릭터의 좌우 텍스쳐를 공유하지 못하고 전부 텍스쳐에
표현해야 한다는 단점이 있습니다. 물론, 얼굴 텍스쳐도 마찬가지지요.
3. 폴리곤이 너무 큰 경우
: 폴리곤이 너무 적거나 다른 폴리곤들에 비해 너무 큰 경우에는 라이팅 자체가
선형적으로 드러날 수 있기 때문에, 노말맵을 적용한 효과가 아주 미비할 수
있습니다. 이 경우에는 폴리곤을 적당한 수준으로 쪼개 주거나 이라디언스맵등을
활용하는 방법을 생각해 볼 수 있겠습니다.
출처는.zho.pe.kr (이분은 게임관련 프로그래밍하시는분같네요.)프로그램에 관련된문서나
기술적인용어에관련되 링크를 아주잘걸어놨네요.
노말맵이란?
--------------------
노말맵(normal map)이란 다른 말로 노말범프맵(normal bump map)이라고도 하며, 메쉬
표면의 노말벡터를 텍스쳐 파일에 저장해 놓은 것을 뜻합니다. 노말맵에는 오브젝트
공간 노말맵(object space normal map)과 탄젠트 공간 노말맵(tangent space normal
map)이 있습니다. 오브젝트 공간 노말맵은 말그대로 오브젝트의 좌표계 상에서의
노말을 담는 것이고, 탄젠트 공간 노말맵은 노말 벡터를 텍스쳐 좌표계에 대하여 구한
다음 저장한 것입니다. 따라서, 탄젠트 공간 노말맵은 다른 말로 텍스쳐 공간
노말맵(texture space normal map)이라고도 부릅니다.
--------------------
오브젝트 공간 노말맵과 탄젠트 공간 노말맵의 차이점
--------------------
앞서 말했듯이 오브젝트 공간 노말맵과 탄젠트 공간 노말맵은 서로 노말벡터의 기준
좌표계가 다른 것입니다. 오브젝트 공간 노말맵의 장점은 구현하기가 쉽고, 로우
폴리곤의 경우에도 라이팅의 선형성이 거의 나타나지 않아 외곽 실루엣을 제외하면
하이 폴리곤과 동일한 효과를 나타낼 수 있다는 장점이 있습니다. 하지만, 모든 노말
벡터가 오브젝트 공간을 기준으로 되어 있기 때문에 캐릭터에 적용시 스키닝이
간단하지 않은 단점이 있습니다. 이에 반해 탄젠트 공간 노말맵은 각 폴리곤의
텍스쳐 좌표계를 기준으로 노말벡터가 계산되어 있기 때문에 스키닝이 되어도 그대로
적용할 수 있다는 장점이 있습니다. 따라서, 너무 로우 폴리곤이어서 라이팅의
선형성이 눈에 많이 띄는 경우가 아니라면, 탄젠트 공간 노말맵을 사용하는 것이 더
편할 것입니다(저의 추측임)
--------------------
노말맵 작업시 유의 사항
--------------------
1. 인접한 삼각형의 텍스쳐 공간 노말 벡터의 방향이 반대인 경우.
: 이 경우는 디자이너가 메시를 언랩할 때, 삼각형 구성 방향이 반대로 되지 않도록
적절히 작업해주면 해결되지만, 디자이너가 신경쓰지 않도록 하려면, 노말 벡터를
구할 때 인접 폴리곤의 텍스쳐 공간 법선 방향이 반대인 경우에는 제외시키는
방식으로 별도 처리해 주셔야 할 겁니다.
2. 서로 다른 폴리곤의 텍스쳐 좌표 공유
: 노말맵의 큰 단점으로 서로 다른 폴리곤(서로 다른 노말을 가진)들이 동일한
텍스쳐 좌표를 사용할 경우, 한 쪽 폴리곤에 대해 반대 방향으로 노말맵이 적용되는
경우가 발생합니다. 예를 들면, 오른쪽 다리와 왼쪽 다리에 대해 노말맵 텍스쳐를
공유할 수 없다는 거죠. 디퓨즈 텍스쳐 좌표와 노말맵 텍스쳐 좌표를 동일하게 쓰는
일반적인 경우라면, 캐릭터의 좌우 텍스쳐를 공유하지 못하고 전부 텍스쳐에
표현해야 한다는 단점이 있습니다. 물론, 얼굴 텍스쳐도 마찬가지지요.
3. 폴리곤이 너무 큰 경우
: 폴리곤이 너무 적거나 다른 폴리곤들에 비해 너무 큰 경우에는 라이팅 자체가
선형적으로 드러날 수 있기 때문에, 노말맵을 적용한 효과가 아주 미비할 수
있습니다. 이 경우에는 폴리곤을 적당한 수준으로 쪼개 주거나 이라디언스맵등을
활용하는 방법을 생각해 볼 수 있겠습니다.
출처는.zho.pe.kr (이분은 게임관련 프로그래밍하시는분같네요.)프로그램에 관련된문서나
기술적인용어에관련되 링크를 아주잘걸어놨네요.