2018년 10월 1일 월요일

[2011. 5. 7.] CG에서의 조명(Lighting)에 대한 고찰...

(본 글은 어떤 질문에 대한 글이어서 앞부분은 그에 대한 답글이 조금 있고, 뒷부분에 CG조명에 대한 글이 이어집니다...)

우선은 Fill 라이트에 대해서는요...
물론 GI 렌더링을 쓰면서도, 이 3point lighting을 쓰기도 하고,또 원래가 영화나 사진 촬영같은 실세계(실세계는 복사 등으로 인해 GI/FG/AO 등이 기본적으로 일어나는 환경이죠)에서 쓰던 것이니까요...
그러니깐, Fill 라이트가 GI대체를 위한 것이라고 말할 수는 없지만, 일종의 그러한 효과를 보기 위한 것이긴 합니다. (이어진 글을 보시면, 이해하실 수 있지 않을까 싶습니다.)

사실 3point lighting은 기본적으로 인물이나 물체를 조명하는데에 주로 쓰입니다... 말씀하신 것은 실내조명을 주기 위한 것이네요...
3point lighting 은 위키피디아 같은데서 검색해도 나오긴 하는군요... 사진과 동영상도 있으니 한 번 볼만 하네요^^

3point light에 연연하지 말라는 부분은 3point lighting, 그 자체가 중요한 것은 아니기 때문 이겠죠. 
다들 그렇게 생각하시고 또한 알고 계시겠지만, 3point lighting을 하면 좋은 조명이고, 아니면 나쁜 조명인 것이 아니고, 3point lighting 자체가 조명원리에 맟춰서, 필요에 의해서 나온 것이니까요...
따라서, 제 생각엔 3point lighting 이니, 4point lighting니... 등등 보다는, 오히려 원론적으로 lighting에 대한 기본적인 원리를 이해하시면, 조명을 어떻게 해야할지 방향이 나올 수는 있을 것 같습니다...

CG에 있어서의 조명은, 즉 빛에 있어서, 빛의 여러 성질들을 CG렌더러가 시뮬레이트 하게 되는데요... 그중에서 기본적인 걸 살펴보면, specular / diffuse / ambience... 이것은 동그란 구를 조명한 그림으로 설명한 것을 많이 보셨을 것입니다... 그리고 그림자, 반사, 굴절, 복사 등등...
90년대의 CG기술에 있어서, 물론 이 때가 아주 초창기는 아니지만 현재의 상용기술에 비해, 비교적 초기의 CG렌더러라고 생각해 볼 수 있는 측면에서, 예를 들어, 퐁쉐이더(Phong shader)같은 것이 바로 specular/diffuse/ambience 를 위한 것이고요(물론 phong shader는 이미 오래전에 나온 것입니다만). 반사,굴절은 주로 raytracing을 통해서 행해지고, 당시에도 radiocity 라는 것으로 지금의 GI/FG/AO 라고 할 수 있는 복사도 시뮬레이션 했습니다... 너무 느려서 주로 건축물 시뮬레이션 같은데서만 제한적으로 쓰이긴 했지만요...
이렇게 이미 기술적으로는 필요한 빛의 시뮬레이션은 이미 준비가 되어있었다고 볼 수 있겠습니다... 다만 컴퓨터 속도라거나 데이터용량 등 다른 요인들에 의해서 활용하지 못했던 기능들이 다수 있었습니다만...

여기서 우선 좋은 조명이 무엇인지 생각해 볼 필요가 있겠습니다...
우선은 사실주의적인 관점으로서 실제에 가까운 - 사실은 사진적인 실제이죠 - 즉, 보통 이야기 하는 포토리얼리즘에 가까운 조명을 일반적으로는, 좋은 조명으로 여길 것입니다...
다음은 여기에다가, 어떤 보는 사람으로 하여금 느낌이 있는 조명, 즉 어떤 의미로 감성적인 조명이 좋은 조명이겠고요...
이것은 어떤 차원에서는 미학에서 말하는 고전 사실주의 => 모더니즘(인상주의) 으로 볼 수도 있을 것입니다...
이러한 차원에서 우선은 사실주의 즉, 실제에 가까운 느낌의 조명을 만들어 내는 것이 과제였습니다.
그런 의미로 다른 부분보다도 Global illumination 즉 실세계에서의 조명은 대기효과와 복사로 인해서 조명이 광원에 의해서만 비추어 지는것이 아니라 전체적으로 조명이 되는 것처럼 CG에서도 이를 표현하여야 하는 것이 과제였습니다...
다른 부분 즉, 쉐이더(재질)를 얼마나 실제처럼 만들어 내는가, 그림자 (그림자도 따지고 보면 여러 기술적인 발전이 있었습니다, 특히 빛의 성질로 인해서 어떤 물체의 그림자는 그 물체 가까이는 진하고, 멀어질 수록 흐릿하게 퍼지는 것까지 시뮬레이트 하는 멘탈레이의 Area light같은...) , 반사 및 굴절 등도 물론 중요하지만, CGI 내에서의 작업이란 측면에서 보면, 쉐이더부분은 재질과 텍스쳐 부분의 작업이고, 반사 및 굴절 등은 렌더러에서의 설정에 주로 관련되어 있고요, 물론 Light와도 관련은 있지만, 그림자와 복사 부분이 Lighting작업에 많이 속해있다고 할 수 있습니다.

지금은 GI/FG/AO 을 그냥 쓰면, 시뮬레이트 되지만, 과거의 느린 컴퓨터로는 사실상 구현하기 힘든 부분이었습니다...
그래서 어찌보면 수동적인 Lighting으로 그것을 표현해 주어야 하는데, 여기서 일단 복사란 것의 의미를 살펴보면요...
보통의 3D CG 렌더러가 렌더링 할 때는(마야 s/w렌더러 처럼), 마치 아무것도 없는 진공상태의 우주공간에서(실제는 아무것도 없는 것이 아니라는 에너지 균형상태일 뿐으로, 입자와 반입자에 의한 쌍생성, 쌍소멸이 끊임없이 일어나는 상태라는 물리학 이론은 일단 뒤로하고요^^ㅎㅎㅎ) 태양이 지구를 비추게되면, 일어나는 것과 비슷하게 렌더링 됩니다... 물론 그나마도 또 똑같지는 않고 좀 달라서 CG로 우주를 구현하려면, 그것도 나름대로 쉽지가 않죠 ^^;
하지만 여기서 말하는 의미는 빛이 광원에서 일방적으로 한방향으로 와서 물체를 비추는 것만을 렌더러가 시뮬레이트 한다는 것입니다...
대기와 여러 물체들 속에 있는 실내와 같은 경우는 빛이 광원에서 그렇게 일방적이지 않고, 대기중에 흩어진 빛, 반사된 빛 및 다른 물체가 내는 복사 등 다양한 빛으로 인해서 일반적으로 전체적으로 조명이 이루어집니다... 그래서 Global illumination 이란 이름도 주어진 것이고요... 또 final gather 와 Ambient occlusion 도 복사등을 구현하려고 생긴 기능들이고요...
이런것을 Lighting만 가지고 구현하려고 하면, 당연히 한 방향 light만 가지고는 불가능하겠죠... 따라서 많은 수의 Light가 필요해지는 것입니다...
그런 의미로 보통, ambient light는 사실 3point lighting에서의 back light와는 좀 다른 의미인 것입니다... 이렇게 대기중에서, 전체적으로 조명이 되는 환경에서는, 특히나 ambient영역이, 진공의 우주공간과는 다르게 아주 어두운 것이 아닙니다... 이 부분의 light가 정말 잘 주어져야 Global illuminate의 느낌이 살아날 수 있는 것이겠죠.
그럼 GI/FG/AO를 쓰면 이부분이 자동으로 해결되니 아주 간단한 문제라고 생각할 수도 있습니다만...
뭐, 완전히 틀린 이야기는 아닌 것 같습니다...
그러기에 요즘 좋은 상당수의 작품들이 이들 기능을 사용하고 있는 것이겠고요... 다만, 또 얼마나 이 기능들을 잘 쓰는가, 얼마나 정확한 수치를 주어야 필요한 느낌으로 시뮬레이션되느냐의 문제가 있겠습니다만... ^^
대략 이런 정도가 사실주의 입장에서의 lighting이고요...

여기에 더해서, 느낌있는 장면연출을 위해서는, 더 신경을 써 주어야만 하겠죠...
한 예로 몬스터 주식회사의 밤장면 같은 경우를 떠올려 보면, 창문을 통해서 달빛이라고 할 수 있는 빛이 새어들어오면서 스탠드 조명과는 대조를 이루고 있습니다... 스탠드조명은 노란색에 가깝고, 달빛은 푸르스름한 색이며, 그림자,ambient영역등은 진한 검푸른 색으로 연출되고 있습니다...
색온도라고 하는데, 영화 사진등에서는 중요한 조명원리입니다만... 빛의 파장에 따라서 색온도라는 것이 달라집니다... 그로 인해 낮,밤의 느낌도 다른 것이고요...

이런 원리들을 필요에 따라 정확히 연출해서 구현하는 것이 바로, Lighting 이겠죠.
다시 대략적으로 정리해보면, 빛이 광원에서 나와서 (물론 광원은 하나 이상일 수 있습니다) 어떻게 퍼져나가고, 반사되고, 복사되는가 등을 해당씬에서 잘 분석하고, 거기에 적절한 분위기와 색온도 등을 분석해서 그에 맞도록 모든 기능을 동원하여 표현 하는것이 Lighting일 것입니다.


댓글 없음:

댓글 쓰기