PBR 재질 자동 생성을 위한 AI 프롬프트 가이드와 텍스처 채널 최적화

AI로 PBR 재질을 자동 생성할 때 필요한 프롬프트 구조, Base Color·Normal·Roughness 채널 검수 기준, ORM 패킹과 해상도 최적화 방법을 실무 흐름으로 정리한다.

✓ 복사 완료!
챕터머티리얼 & 텍스처
난이도중급
상태● 검토 완료
대상 엔진
Engine Agnostic
최종 업데이트
PBR 재질 자동 생성을 위한 AI 프롬프트 가이드와 텍스처 채널 최적화

핵심 요약

AI로 PBR 재질을 만들 때는 이미지를 한 번에 생성하는 방식보다 재질 유형·스케일·표면 상태·조명 제거 조건을 고정한 프롬프트 가이드를 먼저 만드는 편이 안정적이다. 생성 결과는 Base Color, Normal, Roughness, Ambient Occlusion을 각각 검수하고 런타임에서는 Roughness·Metallic·AO를 ORM 텍스처의 RGB 채널에 패킹해 텍스처 샘플 수를 줄인다. 메모리 절감 여부는 대상 플랫폼의 텍스처 포맷과 압축 설정에 따라 달라진다.

AI PBR 재질 자동 생성에서 무엇을 표준화해야 할까?

AI 텍스처 생성에서 중요한 과제 중 하나는 재현성이다. 같은 재질을 여러 번 생성했을 때 조명 방향, 명암, 재질 스케일, 마모 표현이 달라지면 채널 분리와 셰이더 적용 단계에서 추가 작업이 필요할 수 있다.

프롬프트 가이드는 재질별 묘사 문구를 모아 둔 목록이 아니라 결과를 PBR 파이프라인에 넣기 위한 입력 규격이다. 다음 항목은 타일형 PBR 텍스처 프롬프트에 공통으로 지정할 수 있다.

항목프롬프트에 지정할 내용누락 시 문제
재질 정체성painted steel, weathered oak, limestone 등재질 특성이 혼합됨
실제 스케일1 m x 1 m, small scratches, 5 mm grout lines 등타일링 시 크기가 부자연스러움
표면 상태dry, matte, oxidized, clean, chipped edges 등Roughness 해석이 불안정함
조명 제거flat albedo, no directional lighting, no cast shadowBase Color에 명암이 남음
반복 가능성seamless, tileable, edge-to-edge continuity반복 경계가 드러남
금지 요소no text, no logo, no objects, no perspective불필요한 형태가 섞임

AI 생성 PBR 재질에서 조명 성분과 표면 정보가 분리된 예시

재사용 가능한 AI 텍스처 프롬프트 템플릿

아래 템플릿은 이미지 모델에 맞춰 일부 표현을 조정할 수 있지만 정보의 순서는 유지하는 것이 좋다.

Seamless tileable PBR base color texture of [MATERIAL].
Real-world scale: [SIZE]. Surface condition: [CONDITION].
Uniform top-down orthographic surface, edge-to-edge continuity.
Flat diffuse albedo only, physically plausible color variation.
No directional lighting, no shadows, no highlights, no ambient occlusion.
No text, logos, objects, perspective, borders.

예를 들어 오래된 콘크리트 벽면이라면 다음처럼 작성한다.

Seamless tileable PBR base color texture of aged cast concrete.
Real-world scale: 2 m x 2 m. Surface condition: dry, matte,
subtle pores, faint formwork seams, sparse hairline cracks.
Uniform top-down orthographic surface, edge-to-edge continuity.
Flat diffuse albedo only, no directional lighting, no shadows,
no highlights, no ambient occlusion. No text, logos, objects,
perspective, borders.

AI가 생성한 이미지는 조명 없는 알베도라는 지시를 완벽히 따르지 않을 수 있다. 따라서 이 프롬프트는 품질 보증 수단이 아니라 후처리와 검수를 줄이는 입력 제약으로 다뤄야 한다.

PBR 텍스처 채널은 왜 분리해서 검수해야 하는가?

PBR 셰이더는 각 채널이 다른 물리 정보를 가진다는 전제에서 동작한다. Base Color에 그림자가 남아 있거나 Roughness에 광원 반사가 섞이면 엔진의 동적 라이팅과 중복되어 표면이 탁하거나 과도하게 번들거린다.

채널저장 정보검수 기준
Base Color조명 제거된 고유 색상그림자, 하이라이트, AO가 없어야 함
Normal미세 표면 방향초록 채널 방향과 압축 후 계단 현상 확인
Roughness미세 표면의 거칠기검정색에 가까울수록 매끈하고 흰색에 가까울수록 거침
Metallic금속성 마스크대부분의 일반 재질은 0, 금속 영역은 대체로 1
Ambient Occlusion미세 틈의 차폐넓은 그림자가 아니라 접촉부 위주여야 함

금속성과 거칠기는 조명 결과에 직접 영향을 준다. 금속 재질은 금속성 값이 1에 가까울수록 반사광의 색이 Base Color를 따른다. 비금속 재질은 일반적으로 Metallic을 0으로 둔다.

물리 기반 렌더링에서 거칠기는 미세 표면 분포를 제어한다. 셰이더 구현에 따라 perceptual roughness를 사용하는 경우가 많으며 GGX 분포의 alpha 값은 다음처럼 변환할 수 있다.

α=r2\alpha = r^2

여기서 rr은 0부터 1 사이의 perceptual roughness다. 이 관계 때문에 Roughness 맵의 중간톤을 무심코 보정하면 반사 하이라이트가 기대보다 크게 달라질 수 있다.

AI 생성 결과를 PBR 채널로 만드는 3단계

1. Base Color에서 조명 성분을 제거한다

먼저 생성 이미지에서 강한 명암, 방향성 그림자, 반사 하이라이트를 제거한다. AI 이미지의 어두운 부분을 AO로 재활용하면 안 된다. 이는 광원의 방향과 표면 색상을 함께 포함하기 때문이다.

Base Color는 sRGB로 저장하고 엔진에서 색상 텍스처로 가져온다. Unreal Engine 5에서는 Base Color용 텍스처의 sRGB를 켜고, Normal·Roughness·Metallic·AO 같은 데이터 텍스처는 sRGB를 끈다.

2. Normal과 Roughness를 독립적으로 생성·보정한다

Normal 맵은 높낮이 정보에서 파생되므로 생성 이미지의 큰 명암을 그대로 사용하면 가짜 굴곡이 생긴다. 벽돌 줄눈, 나뭇결, 콘크리트 기공처럼 실제로 빛의 방향을 바꿔야 하는 정보만 남긴다.

Roughness는 색상 대비를 그대로 변환하지 말고 재질 의미를 기준으로 작성한다. 예를 들어 페인트가 벗겨진 금속은 노출된 금속만 매끈하다고 단정할 수 없다. 산화나 먼지의 정도에 따라 거칠기가 더 높을 수 있다.

3. 엔진에서 중립 조명으로 검수한다

재질 미리보기는 HDRI 하나만으로 판단하지 않는다. 중립 회색 환경, 회전하는 방향광, 낮은 각도의 점광원을 번갈아 사용해 채널 오류를 찾는다. 특히 다음 현상은 채널별 오류를 빠르게 가리킨다.

  • 카메라를 움직여도 어두운 얼룩이 고정되면 Base Color 또는 AO가 과함
  • 광원 이동에 따라 표면 요철이 반대로 보이면 Normal의 Y 방향이 반전됨
  • 하이라이트가 지나치게 선명하고 좁아 플라스틱처럼 보이면 Roughness 값이 낮거나 sRGB 설정이 잘못되었을 수 있음
  • 비금속 표면에 색 반사가 강하게 나타나면 Metallic 마스크가 오염됨
flowchart LR
    A[AI Base Color 생성] --> B[조명·그림자 제거]
    B --> C[Normal·Roughness 분리 생성]
    C --> D[채널 범위 검수]
    D --> E[ORM 패킹]
    E --> F[엔진 중립 조명 검수]

Base Color, Normal, Roughness, ORM 채널을 분리해 검수하는 PBR 텍스처 작업 화면

ORM 패킹으로 텍스처 채널을 어떻게 최적화할까?

ORM은 서로 독립적인 단일 채널 데이터를 하나의 RGB 텍스처에 합치는 방식이다. 아래 배치는 이 글에서 사용할 예시 규약이며, 실제 채널 순서는 엔진·도구·프로젝트 규약에 따라 달라질 수 있다.

ORM 채널포함 데이터Unreal Engine 머티리얼 연결
RAmbient OcclusionAmbient Occlusion
GRoughnessRoughness
BMetallicMetallic
A선택 사항: Height 또는 마스크필요할 때만 사용

ORM 텍스처는 색상 이미지가 아니라 데이터 맵이므로 sRGB를 끈다. Unreal Engine 5에서는 압축 설정을 Masks (no sRGB) 또는 프로젝트의 마스크용 표준 설정으로 두면 된다.

패킹할 때는 출력 텍스처의 공통 해상도와 비트 깊이를 정하고, 필요하면 각 맵을 재표본화한다. Roughness는 8비트 그레이스케일로 시작할 수 있지만 부드러운 그라데이션이 넓은 재질은 압축 후 밴딩을 확인한다. 밴딩이 보이면 노이즈 디더링이나 다른 압축 설정을 시험하고, 화질과 메모리 사용량을 함께 비교한다.

텍스처 해상도와 밉맵은 어떻게 결정할까?

기본 해상도는 원본의 디테일이 아니라 화면에서 차지하는 최대 픽셀 수로 정한다. 4K 원본을 받았다는 이유만으로 모든 소품에 4K 텍스처를 유지할 필요는 없다.

에셋 유형시작 해상도 예시판단 기준
영웅 에셋2048 또는 4096근접 카메라와 반복 노출 여부
일반 소품1024 또는 2048화면 점유율과 재사용 횟수
배경 반복 재질1024 또는 2048타일 밀도와 텍셀 밀도
아주 작은 소품256 또는 512화면에서 식별 가능한 디테일

밉맵은 거리별 샘플링 안정성과 텍스처 스트리밍을 위해 유지하는 것이 일반적이다. 밉 단계 자체에도 메모리가 필요하므로 프로젝트 예산을 확인하고, UI나 의도적으로 픽셀 단위가 유지되어야 하는 텍스처는 별도로 판단한다. PBR 표면 텍스처에서 밉맵을 끄면 원거리 깜빡임과 앨리어싱이 늘어날 수 있다.

자주 묻는 질문 (FAQ)

AI가 만든 컬러 이미지를 그대로 Base Color에 써도 될까?

권장하지 않는다. 방향광 그림자와 반사 하이라이트가 남아 있으면 엔진 라이팅과 중복된다. 조명 성분을 제거하거나 처음부터 flat albedo 조건으로 생성한 뒤 검수해야 한다.

ORM 패킹은 언제 피해야 할까?

채널마다 서로 다른 해상도, 밉맵 정책, 압축 품질이 필요한 경우에는 분리 텍스처가 더 낫다. 예를 들어 높이 맵을 정밀한 패럴랙스 용도로 쓴다면 ORM의 알파 채널에 무조건 넣기보다 품질을 먼저 확인한다.

Normal 맵의 sRGB는 왜 꺼야 할까?

Normal 맵의 RGB 값은 색상이 아니라 방향 벡터 데이터다. sRGB 감마 보정이 적용되면 벡터 값이 왜곡되어 조명 반응이 틀어진다.

정리

AI PBR 재질 자동화의 목표는 생성 횟수를 늘리는 것이 아니라 후속 공정이 예측 가능한 입력을 받게 만드는 것이다. 프롬프트에서 조명 제거와 실제 스케일을 고정하고 채널을 독립적으로 검수한 뒤 ORM 패킹과 적절한 밉맵으로 런타임 비용을 줄이면 생성형 도구를 기존 아트 파이프라인 안에 안정적으로 넣을 수 있다.