본문으로 바로가기
반응형


원문 링크 : https://80.lv/articles/working-on-lighting-for-video-games/





Working on Lighting for Video Games



Lighting in Games


조명셋팅은 주어진 레벨의 분위기를 셋팅하고 다른 모든 아트 파트의 작업물을 보여주는 중요한 역할입니다. 조명이 파이프라인에 적용되는 방법과 시기는 스튜디오별로 접근방식에 차이가 있습니다. hardsuit Labs에서는 일반적으로 회색상자 단계에서 초기 조명 패스를 수행합니다(역자 주 : Dummy Box로 레벨 디자인을 하는 과정을 grey box라고 표현한듯 합니다.)


이 패스에서는 글로벌 라이트(G.I) 및 Skydome(Skybox) 설치 및 초기 합성이 포함됩니다.(역자 주 : 최종 라이팅 결과에 대한 compositing인지 post effect인지 애매하나 최종 아웃풋까지의 결과를 이야기 하는듯). 이 초기 조명 패스는 매우 요용할 수 있습니다.


배경아트와 구성을 만드는데 이 과정은 어떤 레벨에 대해 집중할 것인지, 무드를 어떻게 구성할 것인지를 정의하는데 도움이 됩니다.


조명은 플레이어의 주의를 끌기 위한 중요한 도구이므로 초기에 이 방법을 사용하면 팀 전체에 도움이 됩니다. 나는 넓게 그리고 빠르게 일하려고 노력하지만 이 단계에서는 여전히 많은 것들이 바뀔 수 있습니다.



환경 아트웍과 레벨 디자인이 끝나면 보통 두 번째 라이팅 패스를 시작합니다. 여기서 초점은 이전 과정에서의 러프하게 잡은 작업을 다듬는 것입니다.



메쉬는 이제 라이트 맵 UV에 대해 언랩되어있으므로(역자 주 : Lightmap UV 작업이 되어있으므로. 보통 엔진에서 자동으로 UV 작업을 해주는 옵션을 제공하나 퀄리티를 생각하면 아직까지는 직접/혹은 지원툴을 사용해 max나 maya등 DCC툴에서 작업을 끝내서 엔진에서 작업하는 것을 권장합니다) 라이트 베이크로 진행할 수 있습니다. 나는 공간이 어떻게 보이는지 전달되기 쉽고 흥미로운지 확인하는 데 중점을 둡니다.


게임을 조명 할 때 게임 플레이가 항상 우선이라는 것을 기억하는 것이 중요합니다!


여러번에 걸쳐 대비가 강한 맵이 보이기 좋을거라 생각하고 라이팅을 해보았습니다만, 확인할 수 있는 것은 그림자 영역이 너무 어두워 전투에서 적을 분명히 볼 수 없었습니다. 여기서 중요한 것은 플레이어가 접근 할 때 조명 설정을 지속적으로 테스트하는 것이였습니다.



나는 보통 이 두번째 단계에서 color grade를 만들고 맵에 따라 포스트 프로세싱을 설정하고 끝냅니다. 그 후에, 나는 거의 끝냈어라고 생각하지만! QA나 레벨 디자인의 피드백에 따라 특정 영역을 다듬거나 수정하기 위해 특정 영역을 다시 수정하도록 요청받을 수 있습니다.








Realism


지난 몇 년 동안 실시간 라이팅 분야에서는 인상적인 발전이 있었습니다. PBR 매터리얼과 라이트 파라메터를 기반해 아티스트는 실제세계를 유추한 공통 기반을 구축할 수 있었습니다. 리얼리즘쪽으로 진행되는 게임을 만들때 이러한 표준을 고수하는 것이 중요합니다.


Unreal 및 다른 게임 엔진을 사용하면 캡처 한 HDR 이미지를 사용하여 스카이 박스에 넣어 실제 조명의 세기 정도를 복제 할 수 있습니다. 이것은 당신이 베이크 설정에 있는 Bounce light(빛의 반사)의 총 합을 조합/다듬음으로 UVs에 좋은 라이트맵을 만들수 있습니다.


(역자 주 : 라이트맵 제작에서 환경광이 lightmap에 반영하는 역할은 Scene의 분위기에 매우 큰 영향을 줍니다. HDR 소스를 사용한 환경광의 셋팅은 이러한 Realistic한 환경 구성에서 매우 중요한 역할을 하며, 이를 라이트맵에 반영할때 세부 옵션을 통한 최종 결과를 만들어 내는것은 매우 중요합니다)








추가로 알려진대로 오브젝트 별로 설정을 변경하는것도 보다 사실적인 Scene을 구성하는데 도움이 됩니다.(역자 주 : 상용엔진에서는 Scene 전체에 적용되는 옵션과 오브젝트 별로 적용하는 옵션을 제공하지만 보통 Scene 전체에 대한 일괄적인 Scene Setting을 적용하고 더이상 수정하지 않는 경우가 많습니다. 각 오브젝트별로 셋팅을 세세하게 설정하는 것이 보다 좋은 품질의 결과를 만드는데 도움이 됩니다)


불완전한 렌즈 효과(Vignetting, chromatic aberration-비네팅, 색수차)와 필름의 색보정 효과를 추가하면 기술적으로 사실이 아니더라도 훨씬 더 믿을수 있는 느낌을 줄 수 있습니다.(역자 주 : 포스트 프로세싱의 이러한 효과는 빛이 렌즈를 통해 필름(CCD)에 도달하는 정도가 달라져 발생하는 효과이나 그래픽스에서는 이를 임의로 구현에 이러한 효과를 추가합니다. 각각의 post processing이 어떤 효과/의도를 가지고 적용되는지에 대한 이해가 필요하며, 이는 사진기술과 관련된 내용을 참고하는것이 도움이 됩니다.)




Parameters


조명은 처음에는 너무 많은 매개 변수를 사용하여 조정할 때 압도적으로 느낄 수 있습니다! 나는 프로세스를 단순화하는 데 도움이 되는 방식으로 몇가지를 묶는점이 있습니다.


1. 넓게 시작해서 차차 아래 단계로 진행합니다 : 이것은 많은 아티스트들에게는 뻔한 이야기 일 수 있지만, 디테일을 높이는 작업을 하거나 다듬기(Polishing) 전에 넓은 스트로크에서 시작해 어느 시점에서 기준을 정하는 것이 정말 중요합니다.


주어진 Scene에서 내 전역 조명(Global illumination)과 키 라이트를 설정하는 데 많은 시간을 할애해야하는데, 이는 컴포지션에 가장 중요한 조명 기여가 될 것이고 내 작업의 중추를 형성 할 것이기 때문입니다.


2. 적은것이 좋다 : 나는 라이팅에서는 특히 주저하지 않고 조명을 추가하는것 보다는 가능한 한 적은 수의 조명을 사용하는 것이 중요하다고 생각합니다. 몇개의 조명을 조절하는 것이 주의를 끄는 공간의 흥미를 더하고 조명의 컴포지팅 작업에 집중할수 있습니다.


역자 주 : 많은 수의 조명을 설정해 작업하는 것보다 적은 수의 조명을 효과적으로 사용해 이를 수정하면서 최종 라이팅 아웃풋을 만들어 내는데 보다 효율적입니다.  전체적인 라이팅이 끝난이후에 필요에 따라 조금씩 조명을 추가해 가는 것도 좋은 방법입니다만 처음부터 많은 수의 조명으로 분위기를 잡아내기보다 기준이 되는 라이팅으로 우선 전체적인 그림을 그려나가면서 라이팅을 다듬는 과정이 효율적입니다. 또한 이는 초기에 라이팅에 계산이 필요한 시간을 줄여주는 효과도 있습니다.


특히, AO 관련한 항목들에 영향을 주는 bounce, G.I 등 까지 처음부터 셋팅하는 것은 시간이 많이 걸리는 작업이므로 뒤로 미루어 두는것이 좋습니다. Texture sreaming 방식이 아닌 texture로 bake 하는(대표적으로는 Unity) 방식의 경우 전체 텍스쳐 사이즈 및 해상도를 결정하는 항목에서 시작하는 것이 좋은데 이 과정에서 불필요하게 옵션을 디테일하게 설정하는 것은 많은 대기 시간을 필요로 합니다.


이 부분은 추가로 업데이트 될 필드에 빛을 입히다 2018 버젼에서 확인할 수 있습니다.



3. 레퍼런스의 사용 : 이것은 내게도 상기시켜야 할 또다른 명백한 중요한 팁입니다. 실제 조명의 예제를 연구하는 것은 매우 중요합니다. 프로젝트의 시작 단계에서 뿐 아니라 늘 이 내용을 공개하세요. 만약에 내가 조명하는 특정 공간을 확신할 수 없다면, 나는 항상 유사한 유사한 상황에서 빛이 어떻게 반응하는지를 연구하기 위해 내 레퍼런스로 돌아갑니다.






Post Effects


Volumic fog, Sun rays, 혹은 대기의 입자효과와 같은 것들은 엄청난 재미가 있을 수 있지만, 나는 케이크 위에서 입힌 것과 같이 다루려고 노력합니다. 이것들은 라이팅 컴포지팅에서 재미를 더하는데 실제 도움이 되지만, 좋지 않은것을 숨기거나 가리는데는 도움이 되지 않습니다.


나는 항상 마지막 라이팅 패스에서 이를 추가함으로써 너무 산만해지지 않게 유지하려고 신경씁니다. 이걸 당신이 만들고 있는 게임의 종류에 따라 소금 한조금으로 양념을 한다 생각하세요. 그러나 이 효과들을 미묘하게 사용하는데 주의해야 합니다. 많은 아티스트들이(나를 포함해) 이 효과에 때때로 너무 도취 될 수 있습니다.







Speed up


Scene을 반복적으로 사용할 수 있다는 것은 중요합니다. 특히 baked/Static(구워진, 정적의) 조명의 경우 더 그렇습니다. 조명에 대해 "Less is More-과하지 않는 사용이 차라리 낫다" 접근방식이 도움이 될 수 있습니다. 만약에 각 bake별로 조정 가능한 소수의 빛을 가진 경우에 당신을 톤을 조정하는 것을 시도하거나 어떤 빛이 무엇에 반영되는지 게산하는 것보다 훨씬 빨리 움직일 수 있습니다.


Unreal에서 작업할 때, 저는 보통 Bounce lighting이 어떤 값/색상을 가질지 미리보기 bake를 사용합니다. 가끔 "중간" 품질의 빌드로 그림자 오류가 있는지 확인해야 합니다. 만약 하루에 끝내야 한다면.... 밤새 프로덕션 빌드를 할 수 있습니다.



동적조명을 사용해서 작업할 때에는 항상 성능(퍼포먼스)에 신경써야 합니다. 다이나믹 쉐도우 캐스팅 라이트는 쉽게 퍼포먼스를 많이 사용합니다. Unreal에서는 조명 복잡성(Light-complextity)과 overlapping stationary lights 등을 모니터하기에 유용한 뷰 모드가 있습니다.


역자 주 : 일반적인 상용엔진에서 light cmplexity와 overlapping 에 대한 뷰모드는 이러한 실시간 라이팅에서의 퍼포먼스 체크 유용합니다. 실시간 라이팅은 매우 간편하고 편하게 최종 아웃풋을 확인하는 방법이지만 실제 게임에서 이를 사용하는 건 매우 비싼 비용을 지불하게 됩니다. 보통 게임에서 배경은 이러한 부하를 줄이기 위해 케릭터가 아닌 배경에서는 이를 최대한 회피하려고 많은 노력을 합니다.







Shadow


좋은 그림자를 얻는 것은 라이팅에서 즐거운 과정입니다. 초기 키 조명을 설정할 때, 나는 항상 재미있는 캐스팅 그림자를 찾고 있습니다. 그림자는 다양한 방식으로 조명과 구성을 도울 수 있습니다. 광원을 서로의 그림자 속으로 잠그면 레벨에 깊이와 대비를 더할 수 있습니다. 또한 그림자는 Scene의 조명 환경 유형에 대해 많이 이야기 할 수 있습니다.


부드럽고 확산 된 그림자는 흐린 하늘이나 먼 광원을 판매 할 수 있지만 날카로운 그림자는 맑은 하늘이나 매우 가까운 광원에 더 적합합니다.(역자 주 : Soft shadow와 Hard Shadow) 플레이어가 그림자를 보더라도 게임은 여전히 전달 될 수 있어야한다는 것을 기억하십시오.







Advice



내 생각에 라이팅 아티스트가 이전에 언급 한 수준으로 일찍 패스하는 데 많은 가치가 있다고 생각합니다. 새로운 맵에서 시작할 때, 나의 첫 걸음은 언제나 레퍼런스를 수집하고 함께 분위기 보드를 만드는 것입니다. 나는 영화 촬영 소스와 같이, 사진 및 컨셉 아트에서 브레인 스토밍 및 아이디어 팔레트를 조합하며, 사진을 수집하여 조명에서 어떻게 보이는지 또는 어떤 종류의 노출이 이러한 인테리어등과 같이 사용될 것인지 등의 세부 정보를 참고하기도합니다.


일단 내가 참조 자료의 좋은 컬렉션을 가지고 있다면, 나는 내 글로벌 및 키라이트를 우선 막아둡니다. 내 조언은 세부 사항을 다듬기 전에 좋은 대비를 갖춘 강력한 조명 구성을 확보 할 수 있도록 초기 단계에서 많은 시간을 소비하는 것입니다.







반응형

'Technical Report > Graphics Tech Reports' 카테고리의 다른 글

Unity Texture Arrays  (0) 2018.10.14
[번역]Photogrammetry Workflow Layered shader  (0) 2018.06.02
FBX exoprt Animation options  (0) 2018.05.09
ASTC Format (2)  (0) 2018.03.22
GLSL WrapCore  (0) 2017.10.16