AI로 생성한 3D 모델을 단순히 바라보기만 한다면, 외관이 좋으면 충분합니다. 하지만 게임 엔진 (Game Engine), Web 뷰어 (Web Viewer), AR, DCC 툴 등 후속 공정으로 넘기는 경우에는 텍스처 주변의 확인이 중요해집니다.
이 기사에서는 생성된 3D 모델을 받은 후에, 텍스처와 마테리얼 (Material)을 어떻게 확인하는지 정리합니다.
확인하고 싶은 것
Hi3D와 같은 이미지 입력형 3D 모델 생성 AI에서는, 형상뿐만 아니라 텍스처가 포함된 모델을 출력할 수 있는 경우가 있습니다. 편리한 한편, 후속 공정에서는 다음 사항을 살펴볼 필요가 있습니다.
| 관점 | 확인하는 이유 | 문제 예시 |
|---|
| 텍스처 해상도 (Texture Resolution) | 근거리 표시를 견딜 수 있는지 확인하기 위해 | 확대하면 거칠어짐 |
| ... | | |
GLB의 내용을 대략적으로 확인하기
GLB는 모델과 텍스처를 하나의 파일로 묶기 쉽기 때문에, 전달하기에 편리합니다. 우선 Python으로 불러와서, 메쉬 (Mesh) 수나 마테리얼 (Material) 수를 확인합니다.
import trimesh
scene = trimesh.load("generated_model.glb", force="scene")
print("geometry count:", len(scene.geometry))
...
텍스처 이미지를 추출해서 보기
모델 뷰어 (Model Viewer) 상에서는 자연스럽게 보여도, 텍스처 이미지 단독으로 보면 그림자 베이킹 (Shadow Baking), 경계의 이음새, 늘어남 등을 발견할 때가 있습니다. GLB 내의 텍스처를 확인할 수 있는 경우에는 목록화해 두면 편리합니다.
import trimesh
from pathlib import Path
scene = trimesh.load("generated_model.glb", force="scene")
...
그림자가 베이킹되어 있지 않은지
이미지에서 생성한 모델에서는, 원본 이미지의 빛이나 그림자가 텍스처에 남는 경우가 있습니다. 뷰어 상에서는 그럴싸해 보여도, 다른 라이팅 (Lighting) 환경에 두면 그림자가 이중으로 보일 수 있습니다.
후속 공정에서 자유롭게 라이팅 (Lighting) 하고 싶다면, 생성 시의 그림자가 강하게 남아 있지 않은지 확인합니다. 필요하다면 텍스처를 보정하거나, 디라이트 (de-light) 처리를 사용하거나, 또는 마테리얼 (Material)을 나누어 조정하는 방침을 세웁니다.
Web 표시로 보는 경우
Web에서 GLB를 표시한다면, model-viewer를 사용한 간단한 확인 페이지를 준비해 두면 편리합니다. 브라우저 상에서 불러와서, 회전, 라이팅 (Lighting)의 위화감을 확인합니다.
<!doctype html>
<html lang="ja">
<head>
...
요약
AI 생성 3D 모델은 외관이 좋다고 해서 반드시 후속 공정에서 다루기 쉽다고 할 수는 없습니다. 텍스처 해상도 (Texture Resolution), UV의 늘어남, 그림자 베이킹 (Shadow Baking), PBR 맵 (PBR Map), 파일 참조를 확인해 두면, 나중의 수정 비용을 낮출 수 있습니다.
생성 도구를 선택할 때도 모델의 외관뿐만 아니라, 출력 형식이나 텍스처의 다루기 쉬움까지 고려하면 제작 플로우 (Production Flow)에 넣기 쉬워집니다.
Discussion