본문 바로가기

프로그래밍/Shader

Adaptation

Adaptation
 : 눈이 밝기에 적응하는 것처럼 만들어주는 것

HDR은 카메라의 움직임이나 씬의 변화에 의해 이미지의 내용이 바뀌므로 평균 휘도 값이 매우 불안정하다
이 불안정성에 의해 LDR 이미지의 밝기가 변함에 따라 Tone Mapping 범위가 두드러지게 출렁거린다

현재 프레임의 평균 휘도를 저장하는 대신, 직전 프레임의 평균 휘도를 Adaptation에 필요한 정도만큼 점진적으로 변화시킨다.

눈의 적응 시간은 상대적으로 기므로 Adaptation 값을 매우 적은 값으로 정하는 것은 적절하지 않다
일반적으로 1 ~ 5초 범위 내에서 설정하는 것이 좋다.


Δt : 마지막으로 렌더링된 프레임에서부터 흐른 시간
% Per Second : 직전 평균 휘도에 현재 평균 휘도가 섞이는 초당 비율
% 값이 0에 가까울수록 불안정하다. 상대적으로 낮은 % 값을 위해서는 Adaptation 값을 1로 설정해야 한다

첫 프레임처럼 직전 프레임이 없는 경우에는 어떤 값을 선택해서 초기 값으로 사용해야 한다. 
두 프레임 정도는 잘못된 값과 현재 휘도 사이에서 보간을 해야한다.

카메라 텔레포트 상황도 비슷한 경우이다. 직전 프레임에서 저장된 평균 휘도 값은 전혀 다른 위치에서 계산됐기 때문에 현재 위치의 휘도와는 매우 동떨어진 값을 갖는다.

이 두 경우 대처하는 방법은 Adaptation 값을 1로 설정해 이전 프레임의 값을 사용하지 않게 하는 것이다.

'프로그래밍 > Shader' 카테고리의 다른 글

기하 셰이더 (Geometry Shader)  (0) 2019.03.29
Tessellation  (0) 2019.03.20
Bloom 이론  (0) 2019.03.13
HDR 이론  (0) 2019.03.06
Compute Shader_3  (0) 2019.02.10