실시간 베이크 라이팅 vs 동적 라이팅: 메모리 비용을 제대로 비교하는 법

베이크와 동적 라이팅의 메모리 사용량은 단순히 “텍스처 대 연산”으로 비교하기 어렵다. 라이트맵, 그림자 맵, 프로브, 메시 데이터, 해상도와 플랫폼을 기준으로 실제 예산을 세우는 방법을 정리한다.

✓ 복사 완료!
챕터라이팅 & 그림자
난이도중급
상태● 검토 완료
대상 엔진
Engine Agnostic
최종 업데이트
실시간 베이크 라이팅 vs 동적 라이팅: 메모리 비용을 제대로 비교하는 법

실시간 라이팅과 베이크 라이팅을 비교할 때 가장 흔한 오해는 하나가 메모리를 쓰고 다른 하나는 GPU 연산만 쓴다는 생각이다. 실제로는 둘 다 메모리를 사용한다. 다만 베이크 방식은 조명 결과를 텍스처와 프로브에 저장하고 동적 방식은 매 프레임 필요한 그림자와 조명 데이터를 만들기 위해 렌더 타깃과 버퍼를 더 많이 사용한다.

중요한 질문은 어느 방식이 항상 가볍냐가 아니다. 목표 플랫폼의 메모리 예산 안에서 어떤 장면 변화까지 허용할 것인지가 먼저다.

메모리를 쓰는 위치가 다르다

베이크 라이팅은 미리 계산한 간접광과 그림자 정보를 주로 라이트맵에 저장한다. 정적인 벽, 바닥, 소품이 많고 시간대 변화가 없다면 런타임 조명 계산을 크게 줄일 수 있다. 대신 장면 면적이 넓거나 라이트맵 밀도가 높으면 패키지 크기와 GPU 텍스처 메모리가 빠르게 증가한다.

동적 라이팅은 라이트맵 의존도를 낮출 수 있지만 그림자 맵, 조명 목록, 클러스터 또는 타일 데이터, 볼류메트릭 효과용 버퍼 같은 런타임 리소스를 사용한다. 특히 그림자를 만드는 방향광과 여러 개의 그림자 투사 조명은 해상도와 캐스케이드 수에 따라 메모리와 대역폭을 함께 늘린다.

flowchart LR
    A[장면의 정적 표면] --> B[베이크 과정]
    B --> C[라이트맵·라이트 프로브]
    C --> D[텍스처 스트리밍과 샘플링]
    E[움직이는 조명·오브젝트] --> F[매 프레임 조명 계산]
    F --> G[그림자 맵·조명 버퍼]
    G --> H[실시간 렌더링]

이 차이는 메모리 분석 도구에서도 드러난다. 베이크 중심 장면은 텍스처 항목에서 라이트맵 비중이 높게 나타나는 경우가 많고 동적 그림자 중심 장면은 렌더 타깃과 일시적 GPU 메모리가 커질 수 있다.

라이트맵 텍스처와 동적 그림자 맵의 메모리 사용 위치를 비교한 게임 장면

라이트맵 메모리 계산하기

압축 전 라이트맵의 대략적인 메모리는 텍스처 크기와 픽셀당 바이트 수로 계산할 수 있다.

메모리 (bytes)=가로 픽셀×세로 픽셀×픽셀당 바이트메모리\,(bytes)=가로\,픽셀\times세로\,픽셀\times픽셀당\,바이트

예를 들어 2048×2048 텍스처 한 장이 RGBA 8비트 형식이라면 밉맵을 제외한 원본 크기는 약 16MiB다. 밉맵 체인을 포함하면 일반적으로 약 33%가 추가된다.

밉맵 포함 메모리≈원본 메모리×43밉맵\,포함\,메모리\approx원본\,메모리\times\frac{4}{3}

실제 배포 크기와 런타임 메모리는 다를 수 있다. 플랫폼별 텍스처 압축 포맷, HDR 라이트맵 여부, 방향성 라이트맵의 추가 텍스처, 스트리밍 정책이 결과를 바꾼다. 따라서 에디터에서 보이는 파일 크기만으로 GPU 메모리를 판단하면 안 된다.

라이트맵이 급격히 커지는 조건

  • 넓은 월드에 높은 라이트맵 텍셀 밀도를 동일하게 적용한 경우
  • 실내와 실외에 같은 해상도 기준을 적용한 경우
  • 그림자 품질을 위해 작은 소품까지 과도하게 UV 공간을 확보한 경우
  • 방향성 또는 HDR 데이터를 추가로 저장하는 경우
  • 한 번에 로드되는 청크가 너무 큰 경우

가령 플레이어가 가까이 가지 않는 원거리 건물에 높은 텍셀 밀도를 부여하면 시각적 이득은 작지만 라이트맵 페이지 수는 늘어난다. 정적 환경이라도 거리와 중요도에 따라 품질을 나누는 편이 낫다.

동적 라이팅에서 먼저 확인할 항목

동적 라이팅의 메모리 비용은 조명 개수보다 그림자 설정에 더 크게 흔들리는 경우가 많다. 그림자 맵은 깊이 텍스처이므로 해상도가 두 배가 되면 필요한 픽셀 수는 네 배가 된다.

그림자 맵 픽셀 수=해상도2×캐스케이드 또는 슬라이스 수그림자\,맵\,픽셀\,수=해상도^2\times캐스케이드\,또는\,슬라이스\,수

예를 들어 방향광 캐스케이드를 늘리면 카메라 가까이의 그림자는 안정적이지만 각 캐스케이드에 필요한 그림자 맵 공간도 고려해야 한다. 스폿 라이트와 포인트 라이트의 그림자도 같은 원리다. 포인트 라이트는 여러 방향을 커버해야 하므로 특히 신중하게 써야 한다.

동적 방식에서는 다음 항목을 프레임 캡처와 GPU 메모리 도구로 확인한다.

  • 그림자 맵의 해상도와 동시 활성 개수
  • 방향광 캐스케이드 수와 거리
  • HDR 렌더 타깃과 후처리 버퍼 해상도
  • 디퍼드 렌더링의 G-buffer 구성
  • 조명 컬링용 버퍼와 볼류메트릭 포그 버퍼
  • 프레임 간 재사용되는 히스토리 텍스처

이 항목들은 모두 장면 상태에 따라 변한다. 따라서 로비에서만 측정한 결과로 전투, 야간, 비, 다수의 이펙트가 겹치는 상황을 대표해서는 안 된다.

하이브리드가 실무에서 자주 선택되는 이유

많은 게임은 둘 중 하나만 고집하지 않는다. 건물과 지형의 간접광은 베이크하고 캐릭터와 문, 시간 변화가 필요한 광원은 동적으로 처리한다. 정적 배경의 비용을 예측 가능하게 만들면서 게임플레이에 필요한 변화도 남길 수 있기 때문이다.

정적 환경의 라이트맵과 캐릭터의 동적 조명을 함께 적용한 하이브리드 라이팅 장면

다만 하이브리드는 자동으로 메모리를 절약하지 않는다. 라이트맵과 그림자 맵을 동시에 보유하므로 두 예산을 합쳐야 한다. 캐릭터가 정적 배경과 자연스럽게 섞이도록 라이트 프로브나 볼륨 기반 조명 데이터를 추가하면 그 메모리도 포함해야 한다.

권장 예산표

프로젝트 초기에 아래처럼 항목을 분리해 기록하면 방식 선택이 쉬워진다.

항목베이크 중심동적 중심확인 방법
정적 간접광라이트맵과 프로브에 저장근사 또는 실시간 계산텍스처 메모리
동적 그림자제한적으로 사용핵심 비용이 되기 쉬움그림자 렌더 타깃
패키지 용량증가할 수 있음상대적으로 낮을 수 있음빌드 분석
프레임 변동성낮추기 쉬움조명 상태에 따라 커질 수 있음최악 상황 캡처
스트리밍 설계라이트맵 청크가 중요그림자 품질 단계가 중요실제 기기 프로파일링

비교는 같은 조건에서 해야 한다

두 방식을 공정하게 비교하려면 같은 카메라 위치, 같은 해상도, 같은 품질 목표에서 측정해야 한다. 베이크 버전은 라이트맵 스트리밍이 완료된 상태와 직후 상태를 나눠 보고 동적 버전은 그림자 투사 조명이 가장 많이 켜지는 순간을 포함한다.

권장 절차는 간단하다.

  1. 목표 기기의 사용 가능한 GPU 메모리 예산을 정한다.
  2. 최악의 플레이 장면을 세 개 이상 고른다.
  3. 라이트맵, 프로브, 그림자 맵, 렌더 타깃을 별도 항목으로 기록한다.
  4. 평균 프레임뿐 아니라 순간 최대 메모리와 스트리밍 순간의 끊김을 확인한다.
  5. 시각적 차이가 작은 항목부터 해상도와 거리 설정을 낮춘다.

결론

정적인 환경이 넓고 조명 변화가 제한적이라면 베이크 라이팅은 런타임 비용을 안정시키는 강력한 선택이다. 반대로 시간 변화, 파괴 가능한 환경, 이동하는 광원이 게임 경험의 핵심이라면 동적 라이팅의 비용을 감수할 이유가 있다.

메모리 관점에서의 정답은 하나가 아니다. 라이트맵 텍스처, 그림자 맵, 렌더 타깃, 프로브를 한 예산표에 올려놓고 목표 기기에서 가장 무거운 장면을 측정하는 것. 그 과정이 있어야 베이크와 동적 라이팅을 취향이 아니라 근거로 선택할 수 있다.