안녕하세요. 김재승입니다. 이번 시간에는 3D 모델링 후 Zbrush를 통해 폴리곤을 전체적으로 균등하게 재분배하는 리토폴로지 방법을 알아보고, 모델링을 출력해 보고자 합니다. 바로, 시작해 볼까요?
1. Zbrush에서의 리토폴리지(Retopology)
먼저 Zbrush를 실행합니다. 그런 다음 Open File을 클릭하여 Reality Capture에서 출력한 3D 모델링 Mesh 데이터를 불러와 주세요. 불러오기가 완료되면 화면에서 마우스로 클릭한 후 드래그하여 표시합니다. 그리고 상단의 EDIT를 클릭하고, 화면 중앙 부분에 드래그 하여 Mesh 데이터를 위치 시킵니다. Mesh데이터를 마우스로 드래그 해여 이리저리 돌려서 상태를 확인 하고 불필요한 Mesh 부분은 키보드의 Shift 키를 누른 채 마우스 왼쪽을 클릭 드래그 하여 지워줍니다. 이제, 화면 우측에 Rotate, Zoom3D, Move, Frame 도구들을 이용하여 Mesh 데이터를 화면중앙에 위치 시켜주세요.
그런 다음, 상단 메뉴의 Texture를 선택하고 Import를 클릭하여 Reality Capture에서 만든 텍스처를 불러옵니다. 불러온 텍스쳐 데이터를 선택하고 FlipV를 눌러주세요 . 우측 Tool 패널의 Texture Map 메뉴를 클릭하고 좀전에 불러온 텍스처를 클릭하면, Mesh 데이터에 텍스쳐가 나타나는데요. 텍스쳐 확인 후 Texture Map 메뉴에서 Texture On을 클릭하면 텍스쳐가 감춰집니다. 자, 이렇게 Subtool에서 Duplicate Subtool 버튼을 클릭하여 mesh 데이터를 복제합니다.
이제 복제된 Mesh 데이터를 선택하고 원본 Mesh 데이터는 눈 모양 아이콘을 클릭하여 감춰 주세요. 그리고 나서 거친 표면을 부드럽게 하기 위해, Geometry 메뉴에서 DynaMesh의 Resolution 값을 1024로 조절 후 DynaMesh 메뉴를 클릭하여 적용합니다. 이때 상단의 ActivePoints의 값을 확인하면서, Resolution 값을 적절하게 적용해 주세요.
이번에는 폴리곤 수치를 줄이기 위해 Zremesher를 적용해 보겠습니다. 하단의 Zremesher에서 Target Polygons Count의 값을 적절하게 조절하고 Zremesher 버튼을 클릭하여 적용합니다. 시간이 조금 소요되는데요. 적용 후 상단의 ActivePoints의 값이 감소 한 것을 확인 할 수 있습니다.
거친 표면을 부드럽게 하려면, Dynamic Subdiv 에서 Dynamic 버튼을 클릭한 다음 Apply 버튼을 누른 후, Divide 버튼을 클릭하여 적용합니다. 그러면 Mesh 데이터의 표면은 매끄럽게 변화 된 것이 바로 확인되죠? 하지만 이때 폴리곤의 수치는 늘어 날 수 있다는 것, 참고로 알아두세요.
이제, Subtool을 클릭 후 감춰진 원본 Mesh 데이터의 눈 아이콘을 클릭합니다.
그러면 복제 Mesh 데이터와 겹쳐서 보여지죠? 이렇게 마우스를 올려서 폴리곤 수치를 비교해 보세요.
그리고 나서 Project의 Project All을 클릭하여 두개의 Mesh 데이터 레이어를 병합 합니다.
두개의 레이어를 병합하는 이유는 Zremesher 기능으로 표면의 형태가 사라질 경우 원본 Mesh 데이터의 표면을 섞어서 표면의 윤각을 살려 줄 수 있기 때문입니다.
한편, Mesh 데이터를 확대해서 살펴보다가 구멍이 생겼을 경우에는 Modify Toplogy의 Close Holes 버튼을 클릭하여 메꿔줍니다. 만약, 두개의 Mesh 데이터의 병합으로 표면이 부드럽지 않을 경우에는 그럼 어떻게 해야 할까요? Smooth 브러쉬를 이용하여 매끄럽게 만들어 주면 되죠. 이렇게 디테일한 작업이 필요한 경우 사용해 주면 되는데요. Smooth 툴을 사용 할 때는 키보드의 Shift 키를 누른 상태에서 마우스 왼쪽을 클릭 드래그하여 부드럽게 해줍니다. 부드러운 정도는 상단의 Z Intensity 값을 조절하면 됩니다. Mesh 데이터의 표면이 부드럽게 처리가 완료되면 Tool 에서 Export를 클릭하여 Mesh 데이터를 내보내기 합니다. 파일이름은 기존 Mesh 데이터와 다르게 입력해 주는게 좋습니다. 그래서 저는 기존 이름에 _zb라고 붙힌 다음, 이렇게 Mesh 데이터를 내보냈습니다.
2. Reality Capture에서 모델링 불러오기 및 최종 3D 데이터 내보내기
이제부터는 Zbrush에서 만들어진 모델링 Mesh 데이터를 Import Model 메뉴로 불러오겠습니다. 좌측의 1Ds 패널에서 Componet 0의 Model 1을 클릭해 해당 파일을 선택하여, 눈 모양 아이콘을 클릭한 다음 모델링 데이터를 확인 합니다. 그리고 Zbrush에서 수정된 Mesh 데이터를 상단의 Import Model 버튼을 클릭하여 불러와 주세요.
만약 이때, Model Info File Not Found 메시지 창이 나타나면 무시하고 Import 버튼을 클릭하여 불러옵니다. 자, 이렇게 Zbrush에서 수정된 Mesh 데이터가 보이죠?
그리고 좌측의 1Ds 패널에 Model1 Model2 두개의 Mesh 데이터가 보일 텐데요.
상단의 RECONSTRUCTION 탭의 Texture 메뉴를 클릭하여 텍스쳐를 입혀줍니다. 그럼 Texturing Model 프로그래스바가 나타나며 진행 시간 및 완료 예정 시간이 표시됩니다. 진행이 완료되면 텍스쳐 매핑 상태를 마우스로 드래그 하여 확인 해 주세요. 잘 되었다면, 상단의 Mesh 메뉴를 클릭하여 최종 3D 모델링 데이터를 Export합니다. Mesh를 클릭하여 Your Creation Statistics 창이 나타나면 Allow 버튼을 클릭하고 저장할 위치와 파일이름을 적어준 다음, 저장 버튼을 눌러 주세요. 이때 Export Model 화면에서 Format Versio은 Wavefornt obj(*.obj)로, Export textures는 Trune로, Texture file forma은 tif, Tile type은 UDIM 값으로 설정하고 OK 버튼을 클릭합니다.
3. Sketchfab 업로드 및 3D 설정
웹브라우저에서 Sketchfab.com 접속 후 로그인하여 화면과 같이 업로드 하기를 클릭한 후 최종 3D 모델링 데이터를 업로드 합니다. 업로드 할 때 mtl, obj, tif(텍스쳐) 데이터를 모두 드래그 하여 업로드해 주세요. 업로드가 완료 되면 CONTINUE 버튼을 클릭합니다.
그리고 나서 Uploading 프로그래스바가 표시되면서 Model name 입력란에 모델이름을 변경하고 Description 입력란에 모델에 대한 설명을 적어 줍니다. 그리고 CONTINUE이 활성화 되면 클릭하고 Processing Model 창에서 대기합니다.
Go To Uploads 버튼이 활성화 되면 클릭하여 업로드 현황 페이지로 이동 합니다. 업로드 현황 페이지에서 제목을 클릭하면 현재의 진행 상태를 확인 할 수 있습니다. 업로딩 변환 처리가 완료 될 때까지 대기해 주세요. 이제 변환 처리가 완료되면 Sketchfab 계정의 메일로 알림 메일이 전송 됩니다. 업로드가 완료되면 3D 설정을 해주어야 하는데, 3D Settings를 클릭하면 Currently Editing 페이지가 나타납니다. 좌측 General 메뉴에서 Straighten model 메뉴 중 Show advanced rotation 체크 박스를 클릭하여 x, y, z 축 조절 가이드 선을 활성화 시켜 모델링 데이터를 바르게 세워 줍니다. 그런 다음 상단의 MATERIALS 탭 메뉴를 클릭 후 Base Color의 TEXTURE를 클릭 하고 텍스쳐를 선택 합니다.
이후 LIGHTS에서 밝기 조절과 빛의 각도를 적절하게 조절합니다. 선택이 완료되면, SAVE VIEW를 클릭하여 저장하고 SAVE SETTINGS를 클릭하여 최종 저장합니다.
EXIT 버튼을 클릭하면 3D 설정이 완료된 모델링 데이터를 확인 할 수 있습니다.
01. 이 강좌에 대해서
3D 모델링 후 Zbrush 프로그램을 통해 리토폴로지를 적용하여 이를 다시 Reality Capture에서 불러와 최종 3D 데이터를 내보내는 방법을 알아본다.
02. 강사 소개
김재승 (㈜대승 대표)
03. 강사 이력
- 한국방송통신전파진흥원 대구스마트미디어센터(K-ICT) VR 영상 제작 강의 - 안동대 멀티미디어학과 영상제작 VR 강의 - 시흥여성인력개발센터 VR 전문가 양성 과정 강의