감마 공간과 감마 보정 차이

lenore·2026년 3월 3일


핵심 개념 분리

"감마 공간(sRGB)"과 "감마 보정"은 다른 이야기예요.

sRGB = 감마 공간 = 밝게 저장됨

모니터는 전기신호를 받으면 자동으로 어둡게 출력하는 특성이 있어요 (CRT 시절부터 이어진 물리적 특성, 감마 2.2).

그래서 사진/텍스처를 저장할 때 미리 반대로 밝게 저장해둬요 → 이게 sRGB(감마 공간).

모니터가 어둡게 출력할 거니까, 미리 밝게 저장해서 최종 결과가 정상으로 보이게


감마 보정(Gamma Correction) = 그 "밝음"을 제거하는 과정

렌더링 연산(조명, 블렌딩 등)은 선형 공간에서 해야 정확해요.

그래서 sRGB 텍스처를 GPU에 올릴 때 감마 보정(디코딩) 을 해서 선형 값으로 되돌려요.

sRGB(밝음) → 감마 보정 → Linear(어두워짐) → 연산 → 다시 sRGB 인코딩 → 모니터


2번 이미지로 설명하면

  • 위 그라데이션(sRGB 저장 상태) → 밝게 저장된 원본
  • 아래 그라데이션(선형 디코딩 후) → 감마 보정으로 어두워진 실제 물리값

1번 이미지 다이어그램 해석

감마 파이프라인선형 파이프라인
ADD 연산 시점sRGB 상태(이미 밝음)에서 더함Linear 상태(어두움)에서 더함
결과밝은 값 + 밝은 값 = 과하게 밝아짐정확한 물리값끼리 더해서 올바른 밝기

한 줄 요약:

  • sRGB = 밝게 저장 (모니터 보정 대비)
  • 감마 보정 = 그 밝음을 선형으로 되돌림 (어두워지는 것처럼 보임)
  • 렌더링은 선형에서 해야 ADD 같은 연산이 물리적으로 정확함

감마 & 리니어 색공간 정리


1. 왜 두 가지 공간이 존재하는가

모니터는 전기신호를 받으면 물리적으로 어둡게 출력하는 특성이 있어요 (감마 2.2).

그래서 이미지를 저장할 때 미리 밝게 보정해서 저장해두는데, 이게 sRGB(감마 공간) 이에요.

저장할 때 밝게 → 모니터가 어둡게 출력 → 눈에는 정상으로 보임


2. 감마 vs 리니어 공간 차이

sRGB (감마 공간)Linear (선형 공간)
저장 방식밝게 보정해서 저장빛의 물리량 그대로 저장
눈에 보이기엔밝고 자연스러움어둡고 단조로워 보임
어두운 영역세밀하게 표현됨정보가 적어 뭉개짐
연산 정확도조명/블렌딩 계산이 틀림물리적으로 정확

3. 감마 디코딩 (두 번째 사진)

위쪽 그라데이션 = sRGB 저장 상태 (밝게 보정됨)

감마 디코딩 적용 Linear = sRGB ^ 2.2

아래쪽 그라데이션 = Linear 변환 후 (물리적 실제값, 어두워짐)

예시: sRGB 0.5 → 0.5 ^ 2.2 ≈ 0.217 로 확 어두워짐


4. ADD 연산할 때 왜 문제가 생기는가 (첫 번째 사진)

감마 파이프라인 (잘못된 방식)

  • sRGB 상태(이미 밝게 보정된 값)끼리 더함
  • 밝은 값 + 밝은 값 = 과하게 밝아짐 (하이라이트 날아감)

선형 파이프라인 (올바른 방식)

  • 먼저 Linear로 디코딩 → 어두운 물리값끼리 더함 → 다시 sRGB 인코딩
  • 물리적으로 정확한 밝기로 합성됨

5. Unity 적용

텍스처의 sRGB 체크박스를 켜두면 GPU가 자동으로 디코딩 처리

텍스처(sRGB 저장)
    → GPU가 자동 디코딩 → Linear값으로 셰이더에 전달
    → 조명/블렌딩 연산 (정확)
    → 다시 sRGB 인코딩 → 모니터 출력

sRGB 체크박스를 끄면 GPU가 디코딩을 안 해서 감마 공간 상태로 연산하게 되고, 조명 계산이 틀어짐

profile
VFX Artist in Korea

0개의 댓글