Chromatic Aberration 1 (색수차)

반응형

색수차란 무었인가?

렌즈를 사용하는 광학계에서 유리의 굴절률이 빛의 파장에 따라 다르기 때문에

생기는 수차로 생성원인에 때라 종색수차와 횡색수차로 분류된다.


렌즈를 구성하는 광학재료의 굴절률은 빛의 파장에 따라 달라진다.


종색수차(Longitudinal/ Axial Chromatic Aberration, 줄여서 Longitudinal CA 또는 Axial CA) 는 

상점의 위치가 파장에 따라 어긋나 색이 번져서 흐린상이 형성.


횡색수차(Lateral/ Yanal Chromatic Aberration)는 파장에 따라 초점거리, 

즉 상의 배율이 변하기 때문에 상점의 위치가 상면위의 주변으로 치우쳐 어긋나고 

색의 테두리가 생긴다.


이들 현상이 색수차이다.


색수차는 굴절률과 그 파장 의존성이 다른 여러 종의 광학재료를

조합시킨 복합렌즈를 만들어 보정한다.


빛의 파장에 따라 다른 초점거리를 가지기 때문에 단일렌즈에서 색수차가 발생

빨강에 가까운 긴 파장의 빛일수록 초점이 렌즈에서 먼 곳에,

보라에 가까운 짧은 파장의 빛일수록 렌즈와 가까운 곳에 초점이 맺히므로

상이 아롱져 덜 설명하게 보인다.


회절 광학 소자(DOE)가 빛을 분산하는 특성을 가진 유리를 보완하여

색수차를 보정하는데 사용되어진다.


archromatic doublet로 가시 파장길이는

대략 동일한 초점길이를 가진다.

archromatic doublet( 색수차를 없애기 위해 볼록렌즈와 오목렌즈를 

적절히 조합한 렌즈)


 

심각한 보라색 광선주름(purple fringing)이

말의 앞머리, 갈기, 그리고 귀에 나타난다.

 

심각한 색수차가 발생한다


이 사진은 좁은 DOF와 강한 축 색수차에서 조리개를 활짝열고 찍은 결과 사진이다.

확대해서 보면 이 팬던트 사진은 포커스가 벗어난 안쪽에선 보라색 광선주름이, 바깥쪽에선 녹색 광선주름이 나타난다. 

 

안경알의 모서리를 통해 색상 전이




이 기술은 실제 게임에서도 사용이 되고 있다.



이 효과는 그 유명한 The Witcher 3에서도 사용되었는데 이에대한 nvidia 기술문서를 보면 된다.

비교스샷이 있긴 한데 내 눈으로는 도저히 판별 불가....약하게 했나? 왜 안보이지...ㄷㄷ..


무튼 이 효과를 쓰는 이유는 대략적으로 카메라 렌즈의 결점을 구현하기 위해, 또는

아날로그 카메라 느낌을 내서 아주 오래된 시각적 결점을 표현하기 위해 사용한다.

사실 이 효과는 사진을 찍을때 어떻게든 피하기 위한 효과이다.

하지만 게임에서는 일부러 넣는 효과이기도 하다.


구현

색수차의 구현방법은 간단하다.

r, g, b의 값을 다른 uv로 가져오면 끝.

vec3 colorOffset = vec3(-0.01,0.01,0.03);

vec3 rVal = texture(iChannel0, uv - colorOffset.r).rgb;

vec3 gVal = texture(iChannel0, uv - colorOffset.g).rgb;

vec3 bVal = texture(iChannel0, uv - colorOffset.b).rgb;


문제는 이렇게 하면 모서리에 오차값이 픽셀 밀림현상이 생긴다.

그래서 예전에 smoothstep을 테스트 만들면 테스트 했던 화면과 조합.


아래와 같은 화면을 만들 수 있다.


색수차의 범위는 적당히 원형이든 나처럼 사각형의 형태든 조절하면 된다.

아래는 예시로 원형으로 범위 조절.




참고 

- 사각형 shader 

- 원형 shader

- 사각형 색수차 테스트

- 원형 색수차 테스트



'Study > Graphics ' 카테고리의 다른 글

Chromatic Aberration 3 (색수차)  (0) 2020.12.29
Chromatic Aberration 2 (색수차)  (0) 2020.12.28
밉맵 텍스쳐링  (0) 2020.01.05
Specular Showdown in the Wild West  (0) 2019.08.16
Clipmaps  (0) 2019.06.15
TAGS.

Comments