# PBR 텍스처 제작 및 스캔 결과 현실감 높이기
## 소개
- **Wallace Wainhouse**: Epic Games 제품 전문가 (RealityScan Desktop)
- **Elliot Round**: MXR 공동 창립자 및 CTO (측정 PBR 기술 개발)
## PBR 텍스처란?
PBR(Physically Based Rendering)은 빛의 물리적 법칙을 시뮬레이션하여 3D 객체가 현실과 동일하게 빛과 상호작용하도록 만드는 기술입니다.
* **핵심**: 재질이 빛에 올바르게 반응하여 사실적인 렌더링을 가능하게 합니다.
* **이전 방식의 한계**:
* 고가의 장비와 특별한 전문 지식 필요
* 많은 예술적 추측이 필요
* **3D 렌더링에서의 재질**:
* 메시(Mesh)와 셰이더(Shader)를 통해 엔진이 객체를 렌더링하는 방식 이해
* 픽셀 렌더링 시 빛의 투과, 반사, 방출 여부 등 엔진의 정보 필요
* **PBR 적용 전후 비교**:
* **이전**: 납작하고 평면적인 느낌 (찰흙으로 만든 듯)
* **PBR 적용 후**: 빛과 상호작용하여 사실적인 질감, 재질(금속, 가죽 등) 표현, 촉감까지 느껴지는 현실감 부여
## PBR의 작동 방식
* **기본 원리**: 현실 세계의 빛이 3D 객체 표면에 어떻게 상호작용하는지 시뮬레이션
* **에너지 보존**: 객체에 닿는 빛보다 더 많은 빛을 반사하지 않음
* **HDRIs(High Dynamic Range Images)**: 실제 환경의 빛을 담은 이미지로, PBR과 함께 사용 시 가상 환경에 객체가 더욱 자연스럽게 녹아들게 함
## PBR 객체를 구성하는 요소 (Specular Workflow 기준)
1. **기본 메시(Base Mesh)**: 객체의 기본적인 형태 (저폴리곤, 매끄러운 쉐이딩)
2. **노멀 맵(Normal Map)**:
* 정점(Vertex) 사이의 미세한 디테일을 표현
* 고폴리곤 메시 없이 표면의 긁힘, 페인트 벗겨짐 등 디테일 추가
3. **러프니스(Roughness)**:
* 빛이 표면에 닿았을 때 산란되는 정도 또는 매끄럽게 반사되는 정도를 나타냄
* **흰색**: 거친 표면 (빛 산란)
* **검은색**: 매끄러운 표면 (빛 반사)
* 예시: 녹슨 부분(흰색), 페인트 부분(검은색)
4. **스페큘러(Specular)**:
* 객체에 반사되는 빛의 양과 흡수되는 에너지의 비율
* 금속(금, 황동 등)처럼 특정 색상의 스페큘러 반사 존재 가능 (흰색 외 주황색, 노란색 등)
5. **디퓨즈(Diffuse)**:
* 객체의 기본 색상, 주요 외형을 결정
## PBR 스캔의 어려움 및 기존 방식
* **기존 방식의 어려움**:
* **수작업**:
* 디퓨즈 맵을 기반으로 러프니스, 범프 맵 등을 직접 추측하고 제작
* 전문 지식 없이 임의적인 결과 도출 가능성 높음
* **고가의 하드웨어 사용**:
* **크로스-폴라라이제이션(Cross-Polarization)**: 편광 필터를 사용하여 빛 반사(Glare)를 제거하고 글로시니스 맵 생성 후 러프니스 맵으로 변환. 완벽하지 않으며 오류 발생 가능.
* **포토메트릭 스테레오(Photometric Stereo)**: 여러 조명을 사용하여 법선 맵(Normal Map)을 계산. 복잡하고 많은 데이터 처리 필요.
* **자동화된 툴**:
* 디퓨즈 맵으로 재질을 자동으로 생성하지만, 결과가 혼합되고 3D에는 적용되지 않는 경우 발생.
## Marceau & RealityScan을 이용한 PBR 캡처
### 장비 요구사항
* **필수**: 카메라 (RAW 파일 촬영 가능), 플래시 (포인트 라이트 또는 링 플래시)
* **추가 권장**:
* DSLR 카메라 + 포인트 라이트
* 링 플래시
* 스마트폰 + 내장 플래시
### Marceau Measure 특징
* **목표**: PBR 캡처를 더 많은 크리에이터에게 제공
* **간소화된 방식**: 복잡한 하드웨어, 필터, 트리거 불필요. 카메라와 포인트 라이트만 있으면 됨.
* **모든 사용자 대상**: AAA 게임 스튜디오, 인디 스튜디오, 취미 사용자, 학생 등 누구나 동일한 수준의 PBR 속성 캡처 가능
* **표준화된 캡처**: 일관된 결과물로 다양한 소스에서 가져온 애셋을 동일한 장면에서 일관되게 사용 가능
### 캡처 가능한 객체
* 패션 의류 (신발, 핸드백)
* 영화 및 게임용 소품
* 문화유산 (박물관 내에서 유리 진열장만 제거하고 촬영)
* 소형~중형 가구
### Marceau Measure 결과물
* **PBR 속성**: 메탈릭 및 스페큘러 워크플로우 모두 지원
* **출력 맵**: Diffuse, Specular, Albedo, Metallic, Roughness, Gloss, Index of Refraction, Normals
* **해상도**: 512 픽셀 ~ 16K
* **파일 형식**: JPEG, PNG, 32-bit EXR
### 캡처 워크플로우
1. **장면 설정**:
* **카메라**: RAW 파일 촬영 필수 (다이나믹 레인지 최대화)
* **노출**: 약간 **언더 노출** (하이라이트 클리핑 방지). 노출 고정(Manual 모드) 필수.
* **조명**:
* **앰비언트 라이트 영향 최소화**: 포인트 라이트에서만 조명이 오도록 설정.
* 어두운 방에서 촬영하거나, 플래시로 주변 조명을 압도할 만큼 강하게 설정.
* **커버리지(Coverage)**: 객체 주변을 충분히 많이 촬영하여 모든 각도에서 빛의 반사를 포착.
* **스케일(Scale)**: **매우 중요**. Marceau가 빛의 이동 거리를 계산하기 위해 필요.
* **방법**:
* 현실 스캔에서 마커(April Tag 등) 사용 (마커 간 거리 측정)
* 마커가 없을 경우, 객체의 특정 부분 측정
* 자, 마커, 측정 가능한 객체 활용
2. **촬영**:
* **노출 확인**:
* 플래시 없이 촬영 (완전히 검은색이어야 함)
* 플래시 켜고 촬영 (적절히 언더 노출된 이미지 확인)
* **스페큘러 반사 포착**: 객체 전체에 스페큘러 반사가 고르게 분포되도록 촬영.
* **사진 수**: 객체의 광택 정도에 따라 300~700장 이상 필요 (일반 포토그래메트리보다 훨씬 많음)
* 광택이 많을수록: 더 많은 사진 필요 (예: 600-700장)
* 광택이 적을수록 (매트한 질감): 적은 사진으로 가능 (예: 300장)
3. **데이터 처리**:
* **Marceau**: 초기 데이터 처리 (RAW 사진 불러오기, 밝기 조절 - PBR 예측에 영향 없음)
* **RealityScan**: 3D 스캔 및 메시 생성 (정렬, 메시 생성, 스케일링, 단순화, 스무딩, UV 언랩 필수)
* **주의**: 반짝이는 객체는 정렬 및 메시 생성에 어려움 발생 가능
* **해결책**:
* **정렬 도움**: 마커(April Tag 등) 사용, 배경에 텍스처 있는 재질 배치
* **메시 생성 도움**: 스캔 스프레이 사용 (반짝이는 객체를 무광으로 만들어 메시 생성), 마커를 활용하여 원본 이미지와 정렬
* **스케일링**: RealityScan에서 스케일 설정 필수 (Marceau 계산에 필요)
* **UV 언랩**: Marceau 작업에 필수 (단일 텍스처, 8K 권장)
* **Marceau**: PBR 텍스처 예측 (Diffuse, Specular, Albedo, Metallic, Roughness 등)
* **Unreal Engine**: 3D 메시와 PBR 텍스처를 통합하여 최종 렌더링
### RealityScan 고급 기능 (오브젝트 스캔 시)
* **정렬(Alignment) 도움**:
* **마커**: April Tag 사용 권장
* **배경**: 텍스처가 풍부한 재질을 배경에 배치하여 안정적인 정렬 지원
* **메시(Meshing) 도움**:
* **스캔 스프레이**: 무광 스프레이를 사용하여 메시 생성 (반짝이는 표면 문제 해결)
* **스케일링**:
* 마커 간 거리 또는 객체 자체의 측정값을 RealityScan에 입력하여 스케일 설정. Marceau 계산에 필수.
* **단순화 및 스무딩**:
* 메시의 폴리곤 수를 줄여 성능 최적화. Marceau는 부드럽고 적절한 폴리곤 수의 메시에서 좋은 노멀 맵 생성.
* **UV 언랩**:
* Marceau 작업 시 필수. 단일 텍스처, 8K 권장.
* **내보내기**:
* **메시**: UV 언랩 필수
* **마스크 메시(Mask Mesh)**: 객체 외 다른 부분(예: 테이블)을 Marceau가 인식하지 못하도록 차단.
* **ST 맵**: 왜곡 처리를 위한 정보 제공
### Marceau 설정
1. **작업 생성**: 스캔 이름 입력, 원본 사진 폴더 지정.
2. **이미지 보정**:
* Marceau에서 이미지 밝기 조절 가능 (PBR 예측에 영향 없음, RealityScan용 프록시 파일 생성 시 유용).
3. **RealityScan 설정**:
* `photogrammetry application`으로 RealityScan 선택
* 메시 파일 경로 지정
* 마스크 메시 및 ST 맵 폴더 지정 (선택 사항)
4. **출력 해상도 및 모델 버전 선택**: 16K까지 지원.
5. **처리**: 큐에 추가하거나 즉시 처리.
### Unreal Engine 통합
* Marceau에서 생성된 PBR 텍스처와 RealityScan에서 생성된 3D 메시를 Unreal Engine에서 로드하여 재질 설정.
* Sebastian(Quixel)의 도움으로 Substrate 재질 예시 제공.