태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Tips & Techs/Mapping2007/01/26 12:39

그동안 JS_Normalmapper 플러그인으로 노멀맵을 적용했었습니다.

인터넷에 돌고 있는 노멀맵 쉐이더를 다운받아 쓰려고도 해봤으나 무척 복잡한 쉐이더 구조를 갖고 있더군요..

어떻게든 간단한게 있을거라는 일념으로 며칠동안 노멀맵 연구에만 매달리기도 OTL


할머니 작업을 하면서 다 까묵은 헤어 공부를 하다가 머리좀 식힐겸 노멀맵 정보를 다시 찾아 해매봤습니다.

(그게 머리식히는거냐.. ;;) 에.. 그러다가 예전에 문득 지나친 영문 튜토를 다시 보게 되었는데요..

여기에 그토록 찾아 해매던 쉐이더 노드가 있더군요.. OTL 그땐 왜 지나쳤을까요.. 퍽퍽

머 이것보다 간단한 방법이 있다면 GG 지만 현재로서 제가 알고있는 방법으로는 가장 간단한 방법이라고

생각합니다.


아무튼 플러그인 없이 기본 쉐이더 노드로만 충분히 가능한 노멀맵 쉐이더를 그 난해한 영문 튜토없이

한글로 적어드리겠습니다 -ㅅ-;; 우리카페가 최초일거야 ㅠ.ㅠ

맨날 정보 찾으면서 느끼는건데 알짜배기 정보일수록 그냥은 가르쳐 주는법이 없더군요 ㅋㅋㅋ

'간단한 쉐이더 적용방법이 있습니다' 머 보통 이렇게 얘기하고 끝내는경우가 태반이고

가끔 친절한분들은 외국 링크 딱 해놓고 '여기에 있습니다' 이정도. -ㅅ-;;

심술쟁이들 쳇쳇.


정말 영어공부가 절실하다는 OTL


항상 마야는 노멀맵에 대해 많은 분들이 궁금해 하시는것 같지만 쉽게 접근하기가 어렵다는 점이 있는것 같은데요..

초보자들도 뚝딱 만들수 있도록 잘 설명해 보겠습니다.. 두서없이 쓰면 큰일인데 ㅠ.ㅠ




일단 제가 애용하는 머드박스를 기준으로 맵을 먼저 뽑겠습니다.

기존에 제가 사용하던 노멀맵이 아니라 전혀 다른 노멀맵입니다. 노멀맵 이론에 빠삭하지 않은지라

그 차이에 대해서는 설명이 힘들거 같습니다 -ㅅ-;; 배째라 식인것 같습니다 바주세요.. ㅎㅎ




사용자 삽입 이미지



보시는 바와같이 제가 JS플러그인으로 노멀맵을 사용했을때가 왼쪽의 맵이고

쉐이더로만 노멀맵을 적용하려면 오른쪽의 맵형식으로 뽑아야 합니다.

머드박스에서 텍스쳐 베이커로 맵을 뽑을때 어드밴시드 셋팅 첫줄 Normal Map Space 항목이

Tangent 냐 World 냐의 차이에 따라서 저렇게 뽑히는데요 (참고:World 로 조정하면 맨 아래 Preset 세부조정항목이 전부 꺼집니다)


왼쪽의 맵을 JS플러그인으로 적용시켰을때는 Flip G 항목을 꺼야 제대로 표현이 되는 요상한 -ㅅ- 현상이 있더군요.

노멀맵이 제가 알기로는 RGB 채널로 어쩌구 저쩌구 하는걸로 알고 있는데 뭔가 반쪽짜리 노멀맵 같다는 느낌이었죠.

반면 오른쪽이 확실히 좀더 그럴싸한데 저건 플러그인에 잘 안맞더군요 ㅠ.ㅠ


하지만 이번에 찾아낸 쉐이더 노드는 저 오른쪽 노멀맵이 확실하게 맞게 들어가는 방식입니다.

게다가 미묘한 빛의 계산 오류도 없습니다. 일단 그건 이후에 스샷으로 비교해 드리겠습니다.


즉 결론은 일단 맵을 뽑을때 Normal Map Space 를 World 로 맞춰놓고 저런 무지개 빛깔의 노멀맵을 준비해야 한다는 것이죠 -ㅅ-

아 서론이 길다.. OTL






그럼 이젠 쉐이더를 만들어 봅니다. -ㅅ- 간단간단 그림으로 팍팍 진행할께요


준비물은 vector Product 2개. perspShape 한개. setRange 한개 입니다. 요놈들을 아무 질감에 연결하는거죠.

저는 램버트에 연결해 봅니다.


그리고 setRange의 설정에 들어가 Value값에 노멀맵을 연결시키는 겁니다. 대략 이런 모습으로 되죠.




사용자 삽입 이미지
 
 
 
 
화살표 방향들이 어떤 노드로 연결되있는지도 알아야겠죠?
Output , Input 을 구별 잘 하시기 바랍니다.
 
 
 
 
사용자 삽입 이미지
 
 
 
자 연결은 이게 끝입니다 -ㅅ- / 무진장 간단하죠?
하지만 마지막으로 각각 간단한 설정을 해주어야 합니다.
setRange 와 vectorProduct만 어튜리뷰트에 들어가 살짝 손봐주면 됩니다. 이렇게요.
 
 
setRange 는 요렇게 Min, Max, Old Max 수치를 각각 기입해주시구요
 
사용자 삽입 이미지
 
 
 
 
vectorProduct 는 2개다 모두 Operation 만 요렇게 바꿔주심 됩니다. -ㅅ- /





사용자 삽입 이미지

 
 
 
 
 
 
 
자 끝 -ㅅ-
 
 
이제 테스트 렌더링에 들어가 보겠습니다.
 
 
 

사용자 삽입 이미지
 
 
 
원본이야 그렇다 치지만 도무지 플러그인과 노멀맵과의 차이가 안보이실 겁니다.
하지만 미세하게 있습니다 +ㅁ+
 
 

사용자 삽입 이미지


보시는 바와같이 주름을 타고 들어가는 빛의 흐름이 플러그인을 사용한 왼쪽은 중간에 반대로 표현되고 있습니다.

그림자가 져야할 부분이 밝아지고 밝아야할 부분에 그림자가 생기는것이죠.

(왜그런지는 묻지마삼.. OTL)


쉐이더를 이용한 노멀맵은 아무 문제없이 흐름이 정상적으로 나오고 있는것을 볼수 있습니다.


추가로 범프를 집어넣는 방법을 우석횽님이 알려주셔서 덧붙입니다 ^^

어려운거 없구요 범프를 먼저 넣고 그 범프에 노멀맵 노드를 붙이면 되더군요 ^^

같이 고민해서 해결해주신 우석횽님께 감샤~~~~~~~ >ㅁ< b

(난 왜 굳이 셋레인지에 연결해보려고 했을까. 이럴때보면 확실히 나 돌대가리인거 같단말야 OTL)


사용자 삽입 이미지

 

후아 이제 끝난건가 -ㅁ-;;;

아무튼 마야 사용자분들 항상 맥스에 비해 노멀맵 사용이 어렵다 어렵다 하시는거 같기도 한데

알고보면 쉬운방법이 분명 있을겁니다 -ㅅ- /


마야 8.5까지 나와있는 이시점에서도 쉐이더 한개만으로 노멀맵 표현되는 그런 기능들 없으니까.. OTL

다들 나름의 방법을 쓰시겠지만, 플러그인 사용자 분들은 항상 플러그인으로 노멀맵 쓰기도 좀 그렇잖습니까? -ㅅ-a 나만 그런가;;

모쪼록 제가 알고 있는 범위 내에선 이방법이 가장 기본기능만으로도 구현하기 쉽고 간단한 방법 같아서

나름 정리해서 카페에 올려봅니다 ㅇㅅㅇ


참고로 멘탈레이나 다른 플러그인 쉐이더와 연동같은건 아직 안해봤습니다;; 좀다가 함 해볼라구요 -ㅅ-;;


다들 오늘도 열공이요~ ^^

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by icon

티스토리 툴바