Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Three(Two) Tone Shading
- Rim Light
- 개인 바이트
- Private Bytes
- Virtual Byte
- 가상 바이트
- 3d
- 작업 집합
- OculusMotionVectorPass
- Windows Build
- 벡터
- 프로그래밍 기초
- URP로 변경
- Specular
- working set
- C언어
- Cell Shader
- Toon Shader
- AppSW
- ASW(Application SpaceWarp)
- ColorGradingLutPass
- Cell Look
- 메모리 누수
- VR
- Cartoon Rendering
- URP
- 게임 수학
Archives
- Today
- Total
WinCNT
Gamma Correction 본문
원리는 어렵지만 구현은 코드 2줄(...)이다
영화 산업에서는 이미 오래 전(!!)부터 Gamma Corretion은 사용되고 있었다
0 ~ 255의 중간은? 아쉽게도 127이 아니다!!
모든 광학 기기들(모니터, 스마트폰 등등)은 선형으로 보간하지 않는다
Gamma Cureve란 무엇인가?
모든 Display는 Gamma Decode를 하고 있다
따라서 Gamma Decode의 역함수인 "Gamma Encode"를 해줘야 한다
하드 디스크에 저장하는 이미지는 내부적으로
Gamma Encoding을 시킨 이미지가 저장된다!!
왜 Gamma Encode를 하는가?
Gamma 비선형 함수
애플 모니터의 경우에는 2.0을 사용한다
그래서 뭐가 문제인가?
연산을 다른 공간에서 하고 있으니 평범하게 조명 연산을 하면 제대로 나오지 않는다!!
따라서 조명 연산을 제대로 하기 위해서는 같은 공간에서 연산하도록 해야 한다
예시 코드
비교 샷
Gamma Correction은 어디에 적용하나?
아트가 수동으로 작성하는 리소스(Diffuse)는 보통 Gamma Correction을 적용하고
알고리즘에 의해 작성되는 리소스(Normal Map)에는 일반적으로 적용하지 않는다
(Mask는 수동, Occlusion는 자동이지만 적용 여부는 선택할 수 있음)
sRGB
데이터를 Gamma Correction을 적용하지 않고 선형으로 적용한 특별한 텍스처
이러한 텍스처는 오히려 Gamma Correction를 적용하면 반대로 깨진다
SSS
'게임 프로그래밍(학습 내용 정리) > 게임 수학' 카테고리의 다른 글
VRAM과 PCI express (0) | 2022.06.07 |
---|---|
Tonemaping (0) | 2022.05.10 |
Matcap Texture (0) | 2022.04.05 |
법선 매핑(Normal Mapping) (0) | 2022.03.22 |
셰이더 (0) | 2022.03.08 |