교차 인식 자산 배치: 계산 기하학 및 ML 활용
Source: Dev.to
v_{rot} = v \cos \theta + (k \times v) \sin \theta + k (k \cdot v) (1 - \cos \theta)
대부분의 기존 엔진 및 DCC 툴은 현대 PCG 워크플로우에서도 여전히 견고한 교차 인식 자산 배치를 지원하지 못합니다. 기하학적 변형을 수동으로 적용하는 방식은 시간 소모가 크고 비효율적입니다. 이를 해결하기 위해 계산 기하학과 파이프라인 엔지니어링 기법을 결합한 시스템을 도입하여 대규모 자산 처리를 지원합니다.
Intersection Analysis and Packing
우리 접근 방식은 UV 기반 및 일반적인 패킹 전략을 포함하며, 여기에는 포아송 디스크 샘플링과 스케일 인식 분류가 포함됩니다. 이는 기존의 알고리즘적 휴리스틱이 아닌 계산 기하학을 사용해 표현됩니다.
포아송 디스크 샘플링 제약식:
[ d(x_i, x_j) \ge r, \quad \forall i \neq j ]
여기서 (r)은 샘플 간 최소 거리입니다.
스케일 인식 분류는 바운딩 박스 크기에 따라 자산을 bin에 할당합니다:
[ \text{bin}(i) = \left\lfloor \frac{\text{size}_i}{\Delta} \right\rfloor ]
여기서 (\Delta)는 스케일 구간입니다.
Direction‑Aware Placement
의미론적 방향 인식을 지원하기 위해 Rodrigues 회전 공식을 사용해 객체의 주요 방향 벡터 (\mathbf{v})를 목표 법선 (\mathbf{n})에 맞춥니다:
[ \mathbf{v}_{\text{rot}} = \mathbf{v} \cos \theta + (\mathbf{k} \times \mathbf{v}) \sin \theta + \mathbf{k} (\mathbf{k} \cdot \mathbf{v}) (1 - \cos \theta) ]
여기서 (\mathbf{k})는 단위 회전 축이며 (\theta)는 (\mathbf{v})와 (\mathbf{n}) 사이의 각도입니다.
또는 회전을 쿼터니언으로 표현할 수도 있습니다:
[ \mathbf{v}’ = \mathbf{q} \mathbf{v} \mathbf{q}^{-1}, \quad \mathbf{q} = w + xi + yj + zk ]
행렬 변환은 행렬 역전을 사용해 적용됩니다:
[ \mathbf{T}^{-1} = (\mathbf{R} \mathbf{S})^{-1} = \mathbf{S}^{-1} \mathbf{R}^{-1} ]
여기서 (\mathbf{R})은 회전 구성 요소이고 (\mathbf{S})는 스케일링입니다.
ML‑Based Pipeline Automation
우리는 MCP라는 ML 기반 API를 통합하여 스케일링 및 방향 인식 초기화를 자동화하고 AI 지원 기하학 파이프라인을 구축했습니다. 이는 데이터셋 생성 시 수동 개입을 줄이고 대규모 자산 전반에 걸쳐 일관된 배치를 보장합니다.
User Abstraction Layer
고수준 추상화 레이어는 다음을 가능하게 합니다:
- 배치 import/export
- 구조화된 디렉터리 출력
- 자동 PBR 호환 텍스처 할당
- HLSL 셰이더 블렌딩
- 일관되지 않은 네이밍 규칙 처리
- ARM/AO 텍스처 연결
이러한 기능은 현재 엔진이나 DCC 플러그인에서는 제공되지 않습니다.
Automated Asset Retrieval
우리는 FAB API를 사용한 자동 시스템을 구현했습니다:
- UID 또는 키워드 기반 토큰 기반 대량 다운로드 지원
- 명령줄을 통해 지정된 디렉터리에 자산 저장
- 3D 기하학 연구를 위한 효율적인 데이터셋 생성 촉진
참고: FAB는 최근 초기 사용자에 대한 API 접근을 제한했지만, 인증된 워크플로는 여전히 정상 작동합니다.
Future Work
이 작업의 예비 버전은 연구 논문으로 개발 중입니다. 향후 섹션에는 다음이 포함될 예정입니다:
- 다중 DCC 엔진 통합
- 성능 조회 테이블
- 경계 사례 행동 분석
이는 교차 인식 자산 배치를 위한 일반화 가능하고 체계적인 방법론을 확립하는 것을 목표로 합니다.