수년간 3D 프로덕션을 진행하면서, 잘못된 탄젠트 공간으로 인해 프로젝트가 좌초되는 것을 그 어떤 기술적 문제보다도 많이 보아왔습니다. 탄젠트 공간은 노멀 맵의 조용한 기반이며, 이 부분이 손상되면 솔기, 셰이딩 아티팩트, 그리고 디버깅에 며칠이 걸릴 수 있는 엔진별 문제들이 발생합니다. 이 글은 신뢰할 수 있고 프로덕션에 즉시 사용 가능한 메시를 필요로 하는 아티스트와 테크니컬 디렉터를 위한 것입니다. 이론을 넘어, 탄젠트 공간 문제를 진단하고, 예방하고, 수정하여 베이크 및 실시간 렌더링이 완벽하도록 보장하는 저의 실질적인 워크플로우를 공유하겠습니다.
핵심 요점:
복잡한 수학은 잊으세요. 실제로 탄젠트 공간은 메시의 각 정점에 저장된 로컬 좌표계입니다. 이는 노멀 맵 벡터의 방향을 정의합니다. 시스템이 일관되면 베이크된 디테일이 기본 메시와 완벽하게 혼합됩니다. 일관성이 없으면(쉽게 발생함) 조명 계산이 무너지는 거친 솔기가 보입니다. 저는 이를 추상적인 개념이 아니라 UV처럼 검증되어야 하는 실제적인 메시 속성으로 취급합니다.
탄젠트(T) 및 바이탄젠트(B) 벡터는 UV 레이아웃의 방향에서 직접 계산됩니다. 이것이 가장 중요한 지점입니다: UV가 탄젠트를 결정합니다. UV 솔기가 있으면 본질적으로 탄젠트 공간 솔기가 있습니다. 노멀 맵 데이터는 이 TBN 행렬에 상대적으로 저장됩니다. 따라서 미러링된 UV 아일랜드는 동일한 텍스처 픽셀을 사용하지만 로컬 탄젠트 방향을 반전시켜, 베이커가 올바르게 처리하지 않으면 매핑된 디테일이 반전되거나 "솔기"가 있는 것처럼 보이게 합니다.
주요 오해는 탄젠트가 메시의 정점 노멀에만 관련되어 있다는 것입니다. 관련이 있지만 별개입니다. UV 문제로 인해 완벽하게 스무딩된 정점 노멀을 가질 수 있지만 탄젠트가 완전히 손상될 수 있습니다. 또 다른 오해는 베이킹 소프트웨어가 잘못된 탄젠트를 "고쳐줄" 것이라고 믿는 것입니다. 그렇지 않습니다. 제공된 정보를 기반으로 베이크합니다. 베이커는 메시의 탄젠트 공간이 정확하다고 가정하고, 하이폴리 디테일을 그 프레임워크에 베이크합니다. 쓰레기를 넣으면 쓰레기가 나옵니다.
이것은 노멀 맵 솔기의 가장 큰 원인입니다. UV를 미러링하면 대칭선상의 3D 정점들이 동일한 UV 공간에 매핑됩니다. 그러나 3D에서의 기하학적 방향은 미러링되어 계산된 탄젠트 방향에 불일치를 만듭니다. 결과는 미러 축을 따라 보이는 솔기입니다. 진단하기 위해 저는 항상 미러링된 아일랜드를 분리하고 3D 앱(보통 색상 와이어프레임 오버레이)에서 탄젠트 방향을 미리 봅니다. 솔기에서 색상이 급격히 반전되면 문제를 찾은 것입니다.
스무딩 그룹(또는 하드 에지)은 정점 노멀 생성에 직접적인 영향을 미치며, 이는 다시 탄젠트 계산에 영향을 미칩니다. 하드 에지는 정점 노멀에 불연속성을 만듭니다. 이 하드 에지가 해당 UV 솔기를 가지고 있지 않으면 탄젠트 공간 계산이 모호해져 해당 에지를 따라 셰이딩 아티팩트가 발생할 수 있습니다. 저는 메시의 하드 에지가 UV 솔기 또는 최종 모델에서 진정으로 원하는 날카로운 모서리에 의해 정당화되는지 일관되게 확인합니다.
MikkTSpace 알고리즘은 이제 보편적인 표준(Unity, Unreal, Blender 및 대부분의 베이커에서 사용됨)입니다. 이 알고리즘은 다른 소프트웨어 간에 일관된 탄젠트를 생성하지만 엄격합니다. 메시의 전체 토폴로지와 UV를 고려합니다. 이전의 "레거시" 방법은 삼각형별로 계산할 수 있습니다. 문제는 메시가 한 방법으로 준비 또는 베이크되고 다른 방법을 사용하는 엔진으로 임포트될 때 발생합니다. 임포트 시 탄젠트가 재계산되어 베이크된 맵이 무효화될 수 있습니다. 항상 대상 엔진이 어떤 표준을 사용하는지 알아두세요.
저는 이 체크리스트를 거치지 않고는 절대로 베이크하지 않습니다. 이것은 베이크 후 디버깅 시간을 셀 수 없이 절약해 줍니다.
대부분의 전문 3D 패키지는 탄젠트 및 바이탄젠트 시각화 기능(종종 메시의 RGB 색상 선으로 표시됨)을 가지고 있습니다. 저는 베이크 전에 항상 로우 폴리 메시에서 이 기능을 활성화합니다. 저는 다음을 확인합니다:
깔끔하고 논리적으로 분할된 기본 메시로 시작하는 것이 절반의 성공입니다. 저의 워크플로우에서 기본 메시를 생성하거나 정제할 때 Tripo AI의 분할 기능을 사용하여 논리적인 부분을 미리 분리합니다. 이 지능형 분할은 종종 자연스러운 UV 솔기 경계(예: 캐릭터의 팔을 몸통에서 분리)와 일치합니다. 이러한 세그먼트를 초기에 정의함으로써, 처음부터 별개의 아일랜드로 언랩하여 나중에 탄젠트 오류가 발생하기 쉬운 지저분하고 임의적인 UV 절단을 피할 수 있습니다. 이는 UV 및 탄젠트 워크플로우를 위한 구조적으로 견고한 기반을 제공합니다.
저의 베이킹 소프트웨어 설정은 고정되어 있습니다. 탄젠트 공간 노멀 맵의 경우:
베이크 후에도 작업이 끝나지 않습니다. 엔진 임포트는 매우 중요합니다.
여전히 솔기나 아티팩트가 보인다면:
moving at the speed of creativity, achieving the depths of imagination.
텍스트·이미지를 3D 모델로 변환
매월 무료 크레딧 제공
압도적인 디테일 복원력