PART 02 · 강의 2/3

Base Color, Metallic, Roughness

PBR 워크플로우의 3대 핵심 입력을 올바르게 설정하는 방법과 실전 가이드라인을 학습합니다.

01

Base Color

표면의 기본 색상 (Albedo)

Base Color는 조명이나 그림자 정보 없이 표면 자체의 고유 색상을 정의합니다. sRGB 색공간의 텍스처를 사용하며, 셰이더 내부에서 Linear 공간으로 변환됩니다.

올바른 Base Color 값 범위

재질 유형 sRGB 밝기 범위 주의사항
비금속 (Dielectric) 50~240 (sRGB) 너무 어두우면 비현실적 (숯조차 50 이상)
금속 (Metal) 180~255 (sRGB) 금속의 Base Color는 반사 색상으로 사용
Base Color에 라이팅 정보를 넣지 마세요

Base Color 텍스처에 그림자나 하이라이트가 베이크되어 있으면 PBR 라이팅과 충돌합니다. 조명이 변하면 어색하게 보입니다. 순수한 Albedo 정보만 포함해야 합니다. AO(Ambient Occlusion)도 별도 채널로 분리하세요.

대표 재질의 Base Color 참고값

재질 Linear RGB (근사) sRGB
신선한 콘크리트0.51, 0.51, 0.51186, 186, 186
적벽돌0.23, 0.07, 0.04130, 74, 56
신선한 나무0.28, 0.18, 0.09141, 114, 81
흙/모래0.36, 0.26, 0.15159, 134, 105
금 (Metal)1.00, 0.71, 0.29255, 218, 143
은 (Metal)0.95, 0.93, 0.88248, 245, 240
구리 (Metal)0.95, 0.64, 0.54248, 205, 190
sRGB 설정 확인

Base Color 텍스처는 반드시 sRGB = true로 임포트해야 합니다. UE5는 텍스처 유형에 따라 자동 설정하지만, 수동으로 임포트한 텍스처는 확인이 필요합니다.

02

Metallic

금속 / 비금속 구분

Metallic은 표면이 금속인지 비금속인지를 결정하는 바이너리 스위치입니다. 내부적으로 Metallic 값에 따라 디퓨즈/스페큘러의 비율이 변합니다.

HLSL (Internal Logic) // UE5 내부: Metallic에 따른 분리 float3 DiffuseColor = BaseColor * (1.0 - Metallic); float3 SpecularColor = lerp( 0.08 * Specular, // 비금속: F0 = 0~8% BaseColor, // 금속: F0 = Base Color Metallic ); // Metallic = 0 → Diffuse = BaseColor, F0 = 0.04 // Metallic = 1 → Diffuse = 0, F0 = BaseColor

Metallic 텍스처 가이드라인

순수 재질

Metallic 맵은 순수 흑백(0 또는 1)이어야 합니다. 회색 값은 물리적으로 존재하지 않습니다.

혼합 표면

녹슨 금속처럼 금속/비금속이 공존하면 마스크로 영역을 분리합니다. 경계에서만 미세한 블렌딩 허용.

텍스처 설정

sRGB = false(Linear). 단일 채널(그레이스케일)이면 충분하므로 다른 맵과 채널 패킹 가능.

03

Roughness

표면 거칠기와 반사 품질 제어

Roughness는 마이크로팩싯의 방향 분산을 제어합니다. 0이면 완벽한 거울, 1이면 완전히 거친 표면입니다.

Roughness 시각적 차이

Roughness 시각적 효과 예시 재질
0.0완벽한 거울 반사. 선명한 환경 반사크롬, 거울, 맑은 수면
0.1~0.2약간 흐린 반사. 광택 강함자동차 도장, 광택 플라스틱
0.3~0.5부드러운 하이라이트. 중간 광택나무 가구, 타일, 가죽
0.6~0.8넓게 퍼진 하이라이트. 약한 광택콘크리트, 풍화된 돌, 천
0.9~1.0거의 반사 없음. 완전 매트분필, 고무, 풍화된 나무
Roughness 작성 팁

실무에서 0.0이나 1.0 극단값은 거의 사용하지 않습니다. 가장 매끈한 재질도 0.05~0.1, 가장 거친 재질도 0.8~0.9 정도가 자연스럽습니다. Roughness 맵에 미세한 변화(스크래치, 지문 등)를 추가하면 리얼리즘이 크게 향상됩니다.

텍스처 설정

Roughness 텍스처는 sRGB = false(Linear)로 설정합니다. 그레이스케일 단일 채널이므로 Metallic, AO 등과 함께 채널 패킹하여 텍스처 수를 줄일 수 있습니다 (예: ORM 텍스처 = R:AO, G:Roughness, B:Metallic).

04

채널 패킹(Channel Packing)

텍스처 효율을 극대화하는 기법

Metallic, Roughness, AO는 모두 단일 채널(그레이스케일) 데이터입니다. 이들을 하나의 텍스처에 합치면 텍스처 수와 메모리를 줄일 수 있습니다.

Channel Packing Convention // 일반적인 채널 패킹 규약 ORM 텍스처 (가장 보편적): R = Ambient Occlusion G = Roughness B = Metallic // sRGB = false, Compression = Masks ARM 텍스처 (Substance 기본): R = Ambient Occlusion G = Roughness B = Metallic // UE5 머티리얼 에디터에서의 연결: TextureSample (ORM 텍스처) ├─ R → Ambient Occlusion ├─ G → Roughness └─ B → Metallic
텍스처 임포트 주의

채널 패킹 텍스처를 임포트할 때는 반드시 다음을 확인하세요: sRGB = false (이 데이터는 색상이 아니라 수치입니다), Compression = Masks (손실 압축이 채널 간 간섭을 일으키지 않도록). Normal Map은 별도 텍스처로 유지하세요.

SUMMARY

핵심 요약

  • Base Color는 순수 Albedo 색상만 포함하며 비금속은 sRGB 50~240, 금속은 180~255 범위입니다. sRGB = true로 설정합니다.
  • Metallic은 순수 재질에서 0 또는 1의 바이너리 값이며, 내부적으로 디퓨즈/스페큘러 비율을 결정합니다. sRGB = false.
  • Roughness는 마이크로팩싯 분포를 제어하며 0(거울)~1(매트) 범위입니다. 극단값보다 미세한 변화가 리얼리즘을 높입니다.
  • 채널 패킹(ORM)으로 AO, Roughness, Metallic을 하나의 텍스처에 합쳐 효율을 높입니다.
  • 채널 패킹 텍스처는 sRGB = false, Compression = Masks로 설정합니다.
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 머티리얼 파라미터 매트릭스

Metallic(0, 0.5, 1) x Roughness(0, 0.25, 0.5, 0.75, 1)의 조합으로 15개 머티리얼 인스턴스를 생성하고, Sphere에 적용하여 3x5 그리드로 배치한 파라미터 비교 씬을 만드세요.

실습 2: 텍스처 기반 PBR 셋업

Quixel Bridge에서 다운로드한 PBR 텍스처 세트(Base Color, Normal, Roughness, AO)를 머티리얼에 연결하고, 각 텍스처가 최종 결과에 미치는 영향을 하나씩 비활성화하며 확인하세요.

심화 과제: 다중 표면 머티리얼

하나의 머티리얼에서 Vertex Color 또는 Mask 텍스처를 사용하여 금속 부분(Metallic=1)과 페인트 부분(Metallic=0)이 공존하는 표면을 만드세요. Roughness도 영역별로 다르게 설정하세요.