Blog

ENGINEERING NOTE

[ Rendering ] 11. Physically Based Rendering (PBR)

Physically Based Rendering (PBR)

rendering
해당 포스팅은 이상윤님께서 공유해주신 2025 TA Campus 수업 문서 링크를 바탕으로 작성했습니다.

11. Physically Based Rendering (PBR)

화면을 보고서, 우리는 어떤 이유로 “리얼하다”고 느끼게 될까?

그럴듯함은 단순히 텍스처 해상도나 모델링 디테일에서 오는 것이 아니다. 빛의 세기, 색, 감쇠, 반사, 노출과 같은 물리 기반 요소들이 일관성 있게 맞물릴 때 비로소 현실감을 느끼게 된다.

Physically Based Light는 이러한 “리얼함”을 감각이 아닌 측정 가능한 물리량 기반으로 구성하는 접근 방식이다.


11-1. 빛과 셰이더/머티리얼 파라미터의 분리

PBR(Physically Based Rendering)은 단순히 “현실적으로 보이게 만드는 렌더링 기법”이 아니다. 빛과 재질의 역할을 명확하게 분리하는 철학에 가깝다.

핵심 구조는 다음과 같다.

  • 빛은 빛으로 존재한다.
  • 픽셀의 셰이더/머티리얼은 표면의 파라미터만 가진다.
  • 셰이더는 들어온 빛에 대해 “어떻게 반응할 것인가”만 결정한다.

즉, 빛과 재질의 책임이 분리되어 있다는 점이 본질이다.

핵심은 빛이 변하더라도 셰이더 / 머티리얼 / 텍스쳐를 수정할 일이 없도록 하는 것이다.
  • 기본색(Base Color)
  • 거칠기(Roughness)
  • 금속성(Metallic)
  • 반사율(Specular)

이 값들은 물체 고유의 속성이다. 환경이 바뀌어도 변하지 않는다.

이 구조 덕분에

  • 낮 → 밤
  • 실내 → 실외
  • HDR 톤맵 변경

과 같은 변화가 있어도 재질은 그대로 유지된다. 빛과 파라미터가 분리되어 있기 때문에, 어떤 환경에서도 그에 어울리는 룩이 자연스럽게 나타난다.

11-2. 요즘은 카툰 캐릭터도 PBR이다

카툰 캐릭터라고 해서 물리 기반을 버리는 것이 아니다. 툰 셰이딩이라 하더라도, 빛과 표면 특성을 분리해두면 어떤 조명이 들어오더라도 그럴듯한 결과를 유지할 수 있다.

PBR은 물리 기반으로 빛을 계산한다. 그러나 우리가 보는 화면은 물리 세계가 아니라 디스플레이에 출력된 결과물이다.

이때 HDR 범위의 빛을 LDR 화면에 맞게 압축해주는 과정이 필요하다. 그 역할을 하는 것이 톤매퍼이다.

최근에는 툰 셰이딩도 프로젝트에서 다양한 톤맵핑 스타일을 지원해야 하는 요구사항도 존재한다.

참고자료 :

SIGGRAPH 2025 Course: Physically Based Shading in Theory and Practice

11-3. Physically Based Light (PBL)

Physically Based Light는 리얼 월드의 빛 값을 엔진에서 사용하는 접근이다.

  • 조명의 Lumen 값을 그대로 입력할 수 있다.
  • 태양의 Lux 값을 사용할 수 있다.
  • 색온도(Kelvin) 역시 현실 기준으로 설정할 수 있다.

우리가 접하는 조명은 실제 세계의 조명이다. 따라서 가능하다면 실제 값을 우선적으로 고려하는 것이 합리적이다.

값 입력 시에는 보통 다음 단위를 사용한다.

  • Lumens
  • Lux

이러한 물리 단위를 유지하면 장면 전체의 스케일이 무너지지 않는다.

11-4. Lighting Optimization

물론 비용적인 문제나 하드웨어의 한계 등 다양한 문제로 리얼타임 렌더링에서 빛이 완전히 현실처럼 동작하는 것은 어렵다.

따라서 실제 게임에서는

  • 물리 기반 개념
  • 근사 계산
  • 다양한 최적화 기법

등을 결합하여 처리한다.

라이팅에서 자주 발생하는 문제는 “보이지 않는 빛”이다. 예를 들어 밤 장면을 생각해보자.

  • 태양과 하늘이 어둡다.
  • 상대적으로 인공광이 매우 밝게 느껴진다.
  • 길고 강한 라이트가 강조된다.

이때 화톳불에 추가한 Point Light의 Radius가 낮 장면 기준으로 설정되어 있다면 어떤 일이 발생할까?

  • 화면에는 거의 보이지 않는다.
  • 그러나 실제로는 넓은 영역에 대해 조명 계산을 수행한다.
  • 그림자와 라이팅 비용이 그대로 발생한다.

즉, 보이지 않지만 계산되는 빛이 존재하게 된다.

이는 시각적으로는 문제가 없어 보이지만,성능 측면에서는 치명적일 수 있다.