Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

가장 보통의 존재

Marmoset Toolbag으로 완벽한 Mesh Maps 뽑기 (3) 본문

개인 연구

Marmoset Toolbag으로 완벽한 Mesh Maps 뽑기 (3)

Northstar_ 2022. 12. 5. 23:21

베이킹할 시간입니다! 그 전에, 저번 편에 서술하지 못했던 Bake Project의 최상단에 있는 5가지 버튼에 대해서 간단히 설명하고 넘어가겠습니다.

 

Bake 버튼 : 텍스쳐를 베이킹합니다. 지정한 경로 내에 텍스쳐를 뽑아내거나 대체합니다.

폴더 버튼 : 새로운 Bake Group을 생성합니다. 빠진 오브젝트가 있을 경우 Bake Group을 생성하고 메쉬를 Import하여 사용 할 수도 있습니다.

H 버튼 : Viewport에서 하이 폴리 모델링을 보여줍니다. 토글 방식입니다.

L 버튼 : Viewport에서 로우 폴리 모델링을 보여줍니다. 토글 방식입니다.

P 버튼 : 가장 중요한, 실시간 베이킹을 할 수 있도록 Preview를 보여주는 버튼입니다. Preview를 통해 화면에 보여지는 텍스쳐는 폴더 내에 생성되지 않으며, 오직 Bake Project 내에서만 존재합니다.

 

2편에서 서술한 세팅들이 제대로 적용되어 있다면 Preview 버튼을 눌렀을 때 노멀 맵이 적용되는 모습을 볼 수 있습니다. AO도 Preview가 가능하나, 경험상 조금 까다로운 부분이 있었기에 처음엔 Maps 패널에서 노멀 맵만 활성화하고 테스트 하는 것을 추천드립니다.

 

이제 실시간 베이킹을 하며 눈에 보이는 오류들을 수정해줄 차례입니다. 오류가 생긴 오브젝트를 선택하고, Cage를 조절 해 줘야 하는데, 그런 옵션이 전혀 존재하지 않습니다...

 

그 이유는, Outliner의 Bake Group에서 Low를 선택해 줘야 하기 때문입니다. 이전에 선택한 것은 Mesh였고, Bake Group이 아니었죠. 제대로 선택해 주면 Cage Offset이 보이는 것을 확인 할 수 있습니다.

Low Poly만 Visible / High Poly도 Visible

오류가 생기던 이유는 하이 폴리 모델링을 보이게 하니 명확해졌습니다. 하이 폴리 모델링이 Cage 이상으로 튀어나와 있는 것이죠.

 

Offset을 조절 할 때, Cage가 High Poly를 다 덮을때까지 조절하던지, High Poly가 보이지 않는 상태에서 오류가 없어질 때까지 조절하던지, 방식은 개인의 취향입니다.

 

이제 Cage의 Max Offset을 적당한 수치만큼 올려주면 됩니다. 0.5에서 1.2로 값을 올리니 모든 오류가 사라진 모습을 실시간 베이킹을 통해 확인할 수 있습니다. 값을 너무 올려버리면 또 어떠한 오류가 생길 지 모르니, 적당한 값을 찾아주는 것이 중요합니다.

이렇게 실시간 베이킹을 통해 모든 노멀 맵이 오류 없이 잘 뽑힐 때 까지 작업을 반복해 주면 됩니다. Cage Offset 설정은 너무나 간단해서 더 설명할 부분이 없습니다.

 

그 다음, Marmoset Toolbag에서 제공하는 중요한 기능이 하나 더 있습니다. 마모셋으로 베이킹을 하는 이유 중에 하나이죠. Paint Skew 기능입니다.

 

베이킹의 원리. 출처: https://marmoset.co/posts/toolbag-baking-tutorial/
Skew(왜곡)된 normal의 예시. 출처:https://marmoset.co/posts/toolbag-baking-tutorial/

먼저, Skew가 무엇인지, 어떤 상황에서 발생하는 일인지에 대하여 간단히 짚고 넘어가야 합니다.

 

그리고 그 전에 Normal Vector에 대해서도 약간 알아두면 좋을 것 같네요. 모든 폴리는 면의 방향, 즉 Normal Vector를 가지고 있습니다. 이 Normal Vector는 각 Vertex마다 할당되고, 그 사이 면의 노멀 벡터는 Vertex의 노멀 벡터를 보간하여 지정됩니다.

Normal Vector가 할당되는 방식. / Hard Edge로 Cage가 끊어질 경우. (저퀄리티 죄송합니다.)

이 노멀 벡터는 이전에 Cage를 설정할 때도 사용되었습니다. Cage는 각 Vertex를 노멀의 방향대로 밀고, 그 사이를 면으로 메꿔 만들어진 것이죠. 그리고 이 노멀의 방향대로 Ray를 쏴 로우 폴리와 하이 폴리의 차이를 연산하는 것이 베이킹입니다.

 

부드러운 노멀 벡터는 좋은 베이킹에 필수적입니다. Hard Edge로 끊어진 면이 있다면 노멀 벡터가 면에 수직이 되도록 형성되어 어느정도 Skew 없는 베이킹을 할 수 있으나, 오른쪽 이미지에서 알 수 있듯이 Cage에 빈 틈이 생겨 오류가 나타나죠. 하지만 부드러운 노멀 벡터가 왜곡된 결과를 불러올 때가 있습니다. 이 상황에서 발생하는 오류를 Skew라고 합니다. 하이 폴리의 튀어나온 부분이 면의 수직에 가까울 수록 이 현상이 잘 발생합니다.

High / Low Poly

Gryffin의 무기 중 하나입니다. 막대기에 박힌 못이 수직으로 깔끔하게 베이킹되었으면 하는데, 결과는 전혀 그렇지 못하죠.

Show Skew 옵션 활성화.

이유는 Show Skew 옵션을 활성화하여 Normal Vector를 확인하면 파악하기 쉬워집니다. 노멀 벡터들이 전부 Smoothing되어있기 때문에, Raytracing 과정에서 선이 이상한 각도로 투영되며 발생한 왜곡인 것입니다.

 

Bake Group의 인스펙터에 있는 Paint Skew 기능을 활성화하고, 브러시로 그리듯이 면을 칠해주면 됩니다. 칠해진 부분의 Normal Vector가 빨간 색으로 변하고, 면의 방향대로 수정된 것을 볼 수 있죠. 마모셋의 실시간 베이킹 덕분에 Paint Skew도 실시간으로 확인 할 수 있습니다.

 

이렇게 마모셋 툴백 Bake Project의 핵심적인 기능들인 Cage Offset, Painte Skew들을 학습했습니다. 이제 실시간 베이킹이 아닌, 제대로 베이킹하여 텍스쳐를 뽑을 차례입니다. Bake Project의 Bake 버튼을 눌러 텍스쳐를 뽑아줍니다. 경로에 제대로 뽑혀 있는지도 확인 해 주고요.

AO를 베이킹하고 나면 기존에 확인하지 못한 오류들이 눈에 띌 수 있습니다. 적당히 수정해주고, Bake 한 다음, Preview 버튼을 클릭하여 마모셋 내에서 확인 해 줍니다.

 

그러나... 노멀 베이킹에선 예상하지 못했던 문제가 길을 막고 있습니다. UV 공간을 절약하기 위하여 옷의 UV가 Mirror되어있기 떄문에, AO를 베이킹 하였을 때 이와 같은 문제가 발생하는 것이죠.

 

이러한 잡다한 오류들을 수정하고, 완벽한 Mesh Map들을 뽑아내는 법은 4편에 이어서 작성하도록 하겠습니다.