Tuesday, September 9, 2008

VRay 랜더링시 화이트도트를 처리하는 방법


| Eyecg.com tutor


본 게시글은 eyecg.com 에 2008/09/09 21:18:15  에 게시한 글입니다.
무단전제 및 재배포 금지입니다.




예전부터 자주 보는 질문 중의 하나는

Vray를 사용하는 경우에 아래 그림과 같이 하얀색 점박이(이하 화이트도트라고 하겠습니다)가 생기는데

이걸 어떻게 없앨 수 있느냐는 질문입니다. (그림1)


(그림1)


주로 Vraysun을 사용하는 경우에 자주 발생하며 반사가 많이되는 재질에 특히 자주 발생하게 됩니다.
위의 주전자는 reflect 값이 232,232,232이며 glossiness가 0.88인 금속성 재질입니다.
Vraysun과 Vraysky를 사용하였고, 피지컬카메라를 사용하였습니다.


이제 편의를 위해 Enable built-in Frame Buffer를 체크하고 랜더링을 해 보겠습니다. (그림2)


(그림2)

이제 하얀점이 나타나는 지점을 마우스 우클릭을 하여 픽셀 정보가 보이게 합니다.

프레임버퍼창 하단의 i 형태의 아이콘을 누르면 정보창이 항상 켜집니다.


흰점의 색상값이 8비트로 보면 단순히 255,255,255로 나타나지만 32비트 float 로 보면 57.028, 46.147, 34.458 로 나타납니다.

일반적으로 255,255,255의 float값은 1.0, 1,0, 1,0으로 나타나야 하지만 지금 우리가 클릭한 밝은 부분은 이보다 훨씬 밝은

색입니다. 그로 인해 검정색테두리 같은 모양이 나왔습니다. (경계면이 날카롭게 표현되는 Catmull-Rom 필터를 사용했기 때문에

검정색 경계면이 뚜렷하게 나타났습니다.)



아래와 같이 프레임버퍼창의 첫번째 아이콘을 눌러 correction control 창을 열어봅니다.(그림3)

0 과 1 사이의 히스토그램이 왼쪽구석에 몰려있네요. 이는 57.028에 이르는 밝은 부분까지 히스토그램에 나타내려고 하다보니

대부분의 색영역이 있는 0~1.0구간이 한쪽으로 몰릴 수 밖에 없습니다.


(그림3)



자 이제 이를 해결하기 위한 가장 손쉬운 방법은 안티알리아싱 필터를 바꿔주는 것입니다.

아래 그림4에서는 필터를 건축CG에서 자주 사용하는 Catmull-Rom에서 기본세팅인 Area 1.5로 바꿔서 랜더링 해보았습니다.


(그림4)

괜찮게 나왔네요. 혹은 quadratic이나 아니면 아예 필터를 사용하지 않고 랜더링 해도 괜찮습니다.

하지만 우리나라사람들은 Catmull-Rom 필터를 선호하는 것 같습니다. 이미지 경계면이 뚜렷하게 보이기 때문이겠지요.

심지어 최종랜더링된 이미지에 포토샵 등에서 샤픈필터를 주는 경우도 많습니다.

또 필터변경만으로 해결이 되지 않을 수도 있습니다.



그럼 필터를 바꾸지 않고 해결할 수 있는 방법을 찾아봐야겠습니다.

VRay 랜더설정 창에서 Color mapping 롤아웃으로 갑니다.

우측의 sub-pixel mapping과 clamp output을 모두 체크합니다.


(그림5)


랜더링을 해 보았습니다. (그림5)

물론 필터는 기존의 Catmull-rom 필터입니다.

화이트도트가 사라졌습니다.

와~ 만세!!!



문제가 모두 해결되었을까요?


아래 correction 컨트롤 창을 다시 열어봅니다.(그림6)


(그림6)

히스토그램이 좀전과는 달리 0에서 1 사이에 모두 다 들어가 있습니다.

네. 아무리 밝은 부분을 클릭해서 픽셀정보를 살펴보아도 Float 값이 1.0을 넘어서지 않습니다.

맞습니다. 여러분이 clamp output을 체크했을 때 바로 옆에 clamp level 이란게 있다는 것을 눈치채셨을 겁니다.

분명 거기에 1.0이라고 적혀 있었고, 여러분은 그 값을 건드리지 않았을 것입니다.


이제 명확해 졌습니다. 여러분이 clamp level 을 1.0으로 놓고 clamp output을 체크했다면 이는

모든 색상의 최대값을 1.0으로 제한하고 그 보다 밝은 값을 갖는 픽셀은 잘라내어서 1.0으로 맞추겠다는 얘기가 됩니다.


아래 이미지는 위와 같이 clamp output을 체크하지 않았을 경우에 clamp된 부분을 보여줍니다.(그림7)


(그림7)

흰색으로 보이는 부분은 모두 float 값이 1.0을 넘어서는 부분을 나타냅니다.

여러분이 Vray Frame Buffer(VFB) 창을 열었을 때 하단의 아이콘을 보시면 두번째 아이콘이 기본적으로 클릭이 되어 있는 것을 볼 수 있습니다.

이 버튼의 이름은 Force color clamping 으로서 강제로 화면에 표시할 수 있는 최대밝기는 255,255,255 값으로

clamp시킨 상태의 이미지로 보이게끔 해 주는 역할을 합니다.


clamp level을 1.0으로 제한하고 랜더링 했을 때는 이 버튼을 누르건 안누르건 아무 변화가 없습니다.

하지만 clamp level을 1.0보다 높은 값으로 제한하거나, 혹은 이 옵션을 사용하지 않았을 경우는 아래와 같이 보이게 됩니다.


(그림8)


자 그럼 우리는 Clamp output을 체크함으로써 화이트 도트를 해결하였습니다.

그럼 항상 이 옵션을 켜고 사용하면 될까요?




아래 이미지를 다시 봅니다.(그림9)

큰 주전자 옆의 작은 주전자는 VraylightMtl을 사용한 것으로 자체발광을 하고 있습니다. 연한 푸른색을 지정하였고 세기는 200을 줬습니다.


(그림9)

앞에서 했던대로 Clamp level 을 1.0으로 설정하고(사실 기본값을 그대로 둔다고 봐야겠죠)

Clamp output 을 체크한 상태로 랜더링 했습니다. 히스토그램이 0에서 1까지 범위에 있군요.


이제 VFB의 Exposure correction 아이콘 (하단 우측에서 3번째 조리개모양 아이콘) 을 누른다음 컨트롤 창의 맨 위에

삼각형 슬라이더를 왼쪽으로 옮겨봅니다.   -0.55까지 낮춰보았습니다.(그림10)


(그림10)

노출값을 조절했기 때문에 이미지의 전체적인 밝기가 어두워졌습니다.

근데 발광하는 주전자 역시 빛을 잃어서 탁한 느낌이 나는군요. 빛을 내는 것 같지 않아 보입니다.

노출값을 더 어둡게 하면 더욱 이상해 보입니다.




이번에는 clamp level을 3.0을 지정하고 랜더링 해보겠습니다.(그림11)


(그림11)

1.0으로 clamp했을때와 별 차이 없이 밝은 푸른빛을 내는 주전자가 랜더링 되었습니다.

물론 히스토그램에는 3.0까지의 범위가 나오고 그 이상의 밝기는 3.0까지 clamp 되었습니다.




이제 익스포져 컨트롤을 이용해서 노출값을 조절해 보았습니다. 역시 -0.55 로 낮췄습니다.(그림12)


(그림12)

네. 밝은 푸른빛의 주전자가 여전히 밝게 빛을 내고 있네요. 카메라 노출값이 낮아졌으므로 원래의 밝은 파란색이

더 잘 보이게 되었습니다.




결론입니다.

우리는 화이트도트를 없애기 위해 컬러클램핑을 사용하여 간단히 해결을 했습니다.

하지만 clamp output을 사용하는 경우에는 고유의 색과 밝기를 잃어버리게 됩니다.

물론 랜더링 이미지를 그대로 사용하는 경우에는 아무 상관이 없습니다.

하지만 32bit floating포맷인 EXR이나 HDR로 저장을 한 다음 이를 포토샵이나 에프터이펙트 등의 툴에서 색보정을 하려면

클램핑 된 색상으로 인해 조명과 같은 밝은 물체는 빛을 잃어서 탁한색으로 바뀌어버리게 됩니다.


예전의 Vray버전에는 clamp level을 조절하는 기능이 없었습니다.

하지만 최근의 버전에는 이 값을 조절하는 기능이 있기 때문에 1.0이 아닌 좀 더 높은 값을 사용하여 클램프 시켜서

후보정시에 좀 더 유연성을 줄 수 있게 됩니다.



이상으로 VFB와 color clamping 을 사용한 화이트도트 처리법을 살펴보았습니다.

1 comment:

  1. 그림이 유실되어서 다시 복구했습니다만 자료 자체가 2008년에 만들어진 내용이라 현재 버전의 V-Ray 와는 차이가 많이 있습니다. 저 자료는 1.5버전 기준입니다.

    ReplyDelete

로그인하지 않아도 댓글을 달 수 있습니다.