Lighting Techniques & Guides | Live Training | Unreal Engine

Lighting Techniques & Guides | Live Training | Unreal Engine


안녕하세요! 언리얼 엔진
라이브 스트림에 오신 것을 환영합니다. 저는 오늘의 진행자
알렉산더 파스칼입니다. 이쪽은 오늘 우리와 함께할
서포트 테크니션 팀 홉슨이죠. 오늘 라이팅에 대해
많은 것을 설명해 주실 것입니다. 여기서 말씀드리자면 이 분은 위키에서
라이팅 관련 문제를 해결할 수 있는 좋은 방법도 많이 써서 게시하셨으니 여기서 다루지 않은 내용도
위키를 참고해 보면 될 것입니다. 네, 위키에 정말 많은 내용을
써 놓았으니까요. 뭐 대부분은, 99%는 보는 사람이 있든 없든 커뮤니티의 유저들이 보낸 질문에
답변을 한 것이지만요. 이 스트리밍도 언제나 하는 답변의
일환이라 할 수 있겠습니다. 덕분에 사람들이 정보를
보다 쉽게 접할 수 있게 말이죠. AnswerHub같은 곳을 돌아다니면서
질문을 할 필요도 없게요. 포럼 포스트에서도 질문을 많이 받으시고 채팅으로도 질문을 받을테지만 일단은 사람들로부터 받은 질문을 바탕으로
프레젠테이션을 준비해 오셨죠? 그리고 Twitch 생방송으로 보고 계신 분들은
채팅으로 질문을 하실 수 있습니다. 저는 그런 질문들을 문서로 정리해 프레젠테이션 후에 팀에게 보여주어
답변을 드릴 수 있도록 하겠습니다. 팀, 시작하시죠. 시작하기 전에 먼저 한 가지 짚고 넘어가자면 이 스트림의 목표는 이 스트림이 끝났을 때 여러분을 라이팅 전문 아티스트로
만드는 게 아닙니다. 저는 그저 에픽게임즈에서
일하면서 배웠던 팁이나 기술들을
보여드리려는 것입니다. 작업과 문제 해결에 도움이 되었던
기술들이죠. 그러니 여러분의 씬과 최적화에도
도움이 될 수 있을 것입니다. 저는 라이팅 아티스트는 아닙니다.
그런 인식은 주고 싶지 않아요. 바로 시작해보죠. 일단 여기서 주로 많이 다뤄볼 것에 대해
말씀드려보자면 라이트매스 임포턴스 볼륨과
캐릭터 디테일 볼륨, 그리고 간접광을 전반적으로 다룰 것입니다. 여기서부터 뭔가를 보여드리겠습니다. 이것은 제가 미리 빌드해온 씬입니다. 이 스트림에서 라이팅을
많이 빌드하지는 않을 텐데, 왜냐하면 가진 애셋의 숫자나
라이트 맵 해상도 등에 따라 빌드에 시간이 좀 걸릴 수도
있기 때문입니다. 여기 있는 것은
제 라이트 임포턴스 볼륨으로, 스태틱 라이팅을 쓸 때는
레벨에서 이걸 사용하고 싶으실 겁니다. 이 방법으로 모든 라이팅을
여기서 필요한 곳에 집중하고 있습니다. 하나 이상을 사용할 수도 있습니다.
굳이 하나일 필요는 없죠. 다른 사람들의 말처럼,
라이트매스 임포턴스 볼륨처럼요. 이것은 스케일도 가능하고
레벨 어디든 배치해줄 수 있습니다. 라이트매스 얘기가 나와서 말인데
여기가 바로 제 라이팅이 집중되며 최고의 간접광이 있는 곳입니다. 여러분이 사용하지 않는다 해도 월드의 바운딩 박스에서
실제로 사용하고 있습니다. 그러니 계산해야 할 월드의 크기가 커질수록 아마 더 많은 문제가 생기겠죠. 빠르게 보여드리겠습니다.
제 라이트매스 임포턴스 볼륨은 저기 있습니다. 그냥 모드 창에서 드래그한 것입니다. Lightmass(Importance Volume)를
찾아줍니다. 그러면 라이트매스 임포턴스 볼륨 외에도
다른 것들이 뜹니다. 여기서 드래그해서
필요한 만큼 스케일해주면 됩니다. 제 (라이트매스 임포턴스 볼륨) 것은
여기 전체를 덮고 있습니다. ‘그런데 라이트매스 임포턴스 볼륨의
정확한 목적이 무엇인가요?’ ‘그리고 레벨이 너무 커서
볼륨이 커버하지 못하는 부분이 생기면 어떻게 되죠?’ – 채팅에서 나온 질문입니다.
– 이 부분은 저도 확인해봐야겠네요. 저도 라이팅에 관한 모든 것을
자세하게 기억하는 것은 아니라 문서를 자주 확인해 본답니다. 시간이 날 때마다
항상 연구를 많이 하는 편이죠. 볼륨 바깥에 있을 경우 낮은 품질의 간접광 바운스만
받을 것이라고 생각합니다. 그러니까, 음, 이것들을 플레이 가능 영역 내에
유지시키고 싶을 경우, 게임을 보면 어느정도
선형적인 구간이 있습니다. 레벨을 따라 걸어간다든지 하는 구간 말이죠. 간접광 값은 이 영역을 커버하는
라이트매스 임포턴스 볼륨을 갖게 하는 쪽이 쉽습니다. (볼륨에서) 벗어나는 영역은
낮은 퀄리티로 구워질 수 있습니다. 굳이 그럴 필요가 없다면
그 곳의 포톤 등에도 집중해서 모두 계산하고 싶지는 않을테니까요. 이렇게 라이트매스 임포턴스 볼륨을 구했습니다. 이렇게 구성한 목적은
간접광 캐시를 구하는 것이었으므로, (상단의 표시를 누르고)
시각화 메뉴에서 Volume Lighting Samples를 눌러줍니다. 그러면 레벨 전체에 배치된 샘플들이
보이게 됩니다. 보면 그림자를 받는 이 표면 위에도
배치가 되어 있죠. 여기 있는 샘플들을 보면 한 샘플은 표면에서 50 유닛,
혹은 50센티미터 위쪽에 배치되었고 또 다른 샘플은 표면으로부터 250센티미터 위에
배치되었습니다. 이것은 간접광을 받는 영역에 있는
여러분의 캐릭터들이 간접적으로 조명을 받는 간접광 영역과
실제로 더 잘 블렌드 되도록 해 줍니다. 안그랬다간 그림자가 전혀 없어서 캐릭터가 이렇게 공중에 떠 있는 것처럼
보일 수 있습니다. 이 무버블 캐릭터들은 사실 여기서
그림자를 만들지 않습니다. 이 스트림에서는 힘들겠지만,
한번 살펴보면 이 샘플들 중 일부가
주변에 배치되어 있는 것도 볼 수가 있습니다. 이 캐릭터들에게 조명을 비출 수 있는
다양한 방법들이 있습니다. 언제나 기본 설정을 사용할 필요는 없습니다. 캐릭터를 선택한 상태로
우측 창으로 가서 여기서 Indirect를 입력해주면 Indirect Lighting Cache(간접광 캐시)용
옵션을 찾을 수 있습니다. 여기서는 3가지의 옵션을
선택할 수 있습니다. Indirect Lighting Volume과
기본 설정인 Indirect Point, 그리고 Indirect Lighting Off가
있습니다. 첫번째로 선택한 것은
Indirect Lighting Point로 그 다음은 Indirect Lighting Volume, 그리고 마지막은 실제로 Indirect Lighting Cache를
전혀 사용하지 않은 모습입니다. 그래서 그냥 검정색으로 렌더링됩니다. 이것들이 중요한 이유는
잊어버리지 않게 적어서 가져왔습니다. – 중요 내용 메모인가요?
– 그렇죠. 좋습니다. 여기서 명령어를 실행해 보겠습니다. (~키를 누른 다음) – 무슨 명령어죠?
– r.Cache.DrawInterpolationpoints입니다. 명령어 뒤에 한번 띄고
2… 가 아니라 1을 입력해 실행합니다. 2를 넣으면 슈퍼 참인가요,
더블 참인가요? 불리언의 놀라운 세계입니다 여러분. 또 다른 명령어를 입력합니다. 이번에는…
뭐가 있냐면… 잠시만요. r.Cache.UpdateEveryFrame입니다.
이 명령어는 사실 – 문서에 있는 내용입니다.
– r.Cache.UpdateEveryFrame인가요? 이 두 개를 사용해
이것이 중요한 이유를 보여드리겠습니다. r.Cache.DrawInterpolationpoints 1
를 입력했습니다. 이 명령어는 현재 화면에 보이는
이 포인트들을 그려줍니다. 그리고 이것은 이 간접광 영역에 있는
무버블 캐릭터가 캐시 포인트를 어떻게 사용해
이 영역에 블렌드되는지 보여줍니다. 그리고 또 다른 명령어는 아래와 같습니다.
r.Cache.UpdateEveryFrame 이것(포인트)을 계속 볼 수 있게 해줍니다. 아니면 현재 이 에디터에서는
실시간으로 렌더링을 하고 있기 때문에 이 캐릭터를 움직일 때마다
이것을 확인할 수 있게 됩니다. 그래서 저는 이것을
계속해서 확인할 수 있습니다. 이제 여기 있는
간접광 품질 설정으로 가면 이 첫번째 캐릭터에 있는 포인트를
선택하게 됩니다. 그러면 보간용 포인트 하나를 제공합니다. 이 포인트는 제가 캐릭터를 움직일 때마다 다음 캐시 포인트 간에
블렌드됩니다. 그러니 캐시 포인트를 각각
여기, 여기, 여기에 두면 시간이 지날수록 각 포인트 간에
블렌드가 되는 것입니다. 실제로 이것을 위한 명령도 있습니다. 다양한 r.Cache 명령이 존재하죠. (r.Cache로 찾은) 명령어 중에… 저도 확신할 수는 없지만
이 중에 하나가… 이 중에 시간 지속에 따른
보간을 해 주는 명령이 있습니다. 제 생각에는 아마 interpolation이
들어가있을 것 같아요. 이것도 아니고, 저것도 아니고… 네, r.Cache.SampleTransitionSpeed입니다. 이걸 선택해줍니다.
그리고 물음표를 붙여주면 기본 설정은 어떤지
출력 로그로 보여줍니다. 사실 지금도 굉장히 괜찮은 설정입니다.
천천히 블렌드가 되죠. 여기서 플레이를 눌러보겠습니다.
이런! 3인칭 캐릭터를 저 밖에 놔뒀네요. 그냥 시뮬레이트를 해 보겠습니다. – 됐습니다.
– 우와! – 자 이제…
– 무슨 일이 일어나는 거죠? 이것은 잠시 후에 다뤄보겠습니다. 이것은 r.cache 명령으로
프레임별 보간을 하는 것으로, 이것으로 볼륨과 관련된 것을 처리합니다. 여기 있는 포인트 1개짜리
캐릭터를 보시면, 캐릭터가 위아래로 움직일 때마다
점도 사이사이 위치를 바꿉니다. 저는 현재 캐릭터를
위아래로 움직이고 있으며 이렇게 높이 300 유닛 범위를 벗어나면 이 범위는 보간 지속 및 간접광 캐시가
지속되는 범위로, 이렇게 움직이면서 각 범위 사이를 오갑니다. 이제 다음 것을 살펴보면 이 캐릭터는 볼륨을 사용하고 있습니다. 여기 캐릭터 주위에 있는
볼륨들을 사용하죠. 그리고 공간을 들어왔다 나갔다 할 때마다
더 부드럽게 블렌딩이 됩니다. 좀 더 전환적인걸 볼 수 있는데요 캐릭터가 나오길 기다렸다가
라이트가 적용 되는 것이죠. 이 (캐릭터)는 좀 더 시간에 맞춰
블렌드가 됩니다. 간접광을 받던 공간에서
빠르게 나오는 것이 보이죠. 변화가 일어나기 직전에
살짝 멈추는 것을 확인할 수 있습니다. 그리고 마지막에서는
전혀 간접광 캐시를 쓰지 않습니다. 그래서 보간될 포인트도 없으며 사용할 것이 없으니
완전한 검은색으로 나타납니다. 좋습니다. 이제… 이 작은 부분을 다뤄봤으니 어쩌면 여러분은 제가 이 간접광 지역에
무버블 캐릭터를 배치했는데도 섀도우가 없는 것을
이상하게 생각하실 수 있습니다. 여기 제일 왼쪽을 보시면, 이 주제에 대해 너무 깊이
파고들지는 않겠습니다만, 4.11, 4.12 버전부터 추가된 기능인
캡슐 섀도잉 인데요. 음, 그리고 이것은 캐릭터를 나타내는
피직스 애셋을 사용해 이 영역 내에 캐릭터 자신을 위한
그림자를 만들어 줍니다. 여길 보시면 이미 설정이 되어 있는데, 일단 이렇게 취소를 해 주겠습니다. 캐릭터를 선택해 준 다음 (디테일 창에서)
Capsule을 검색합니다. 이렇게 스켈레탈 메시에 캡슐 그림자를
등록했습니다. 여기서 실제로 디렉트 섀도잉과
인디렉트 섀도잉 옵션을 적용할 수 있습니다. 여기서 중요한 것은 인디렉트 섀도잉인데, 캐릭터가 간접광을 받는 지역에 있으니까요. 간접 그림자를 꺼버리면
꼭 허공을 걷는 것처럼 보이게 됩니다. 이렇게 멋진 캡슐 그림자를 적용하면 실제로 (걷는 것처럼 보이죠)… 또한 이 보간 포인트를 간접광 캐시로
사용하기도 합니다. 이런 영역에서 사용한다면
정말 멋진 기능들이죠. 직접광에서의 캡슐 그림자도 보여드리자면 모든 것이 똑같은 캐릭터입니다. 이 캐릭터는 현재 스태이셔너리 라이트에 의해 조명을 받고
다이내믹 섀도우를 보여주고 있기 때문에 여기에서 Capsule Direct Shadow를
적용해주면 캡슐로부터 만들어진
부드러운 그림자와 직접광을 통해 만들어지는 일반 그림자를
실제로 비교해볼 수 있습니다. 화면의 직육면체에 대한 질문이 들어왔습니다. ‘직육면체 주변에 있는 빈 공간들이
빌드 시간이나 퍼포먼스에 영향을 주나요, 아니면 그냥 무시가 되나요?’ – 아, 그러니까 이 간접광 캐시 얘기죠?
– 네, 저 라이팅 캐시 닷들을 얘기하는 것 같네요. 아, 네, 음…
이것은 사실… 여기는 잠시 멈춰두고
잠시 후에 다시 보여드리죠. 이 설정들의 많은 부분이
실제 월드 상에서 조정 가능합니다. 아예 시뮬레이션을 멈춰두겠습니다. 보시다시피 World Setting을 보면
Lightmass가 있습니다. Volume Light Sample Placement같은 옵션도
이 아래쪽에 존재하죠. 여기서 할 수 있는 한 가지는
디폴트로 간격을 조절하는 것입니다. 이것을 대략 0.1에서 1 사이의 값까지
낮춰주면 이 샘플들의 배치 밀도를 높이게 됩니다. 예를 들어 여기 볼륨 라이팅을 배치했는데
뭔가 보기 싫은 변경 같은 것이 생겼다면, 이 값을 낮춰서 더 나은 트랜지션을
얻을 수 있습니다. 다시 이미지를 끌어오겠습니다. BaseLightmass.ini 파일을 보시면 이 파일에서 유일하게 바꿔도 좋다고
권장드리는 부분입니다, 바로 밀도 부분이죠. 사실 이 부분은 별로 신경쓰지 않으셔도 되고 실제로도… 랜드스케이프의 표면 샘플들을 대략
30메가바이트 정도로 크기를 다듬는군요 샘플의 숫자는 지정할 수 있으며 이 부분에 제한을 둘 수도 있지만
항상 신경써야 할 문제는 아닙니다. 일단 한 가지만 더 보여드린 다음
이 부분을 다시 다뤄보겠습니다. – 대답이 되었으면 좋겠군요.
– 그런 것 같아요. 현재 간접광 샘플들이 배치된 것을
보고 계십니다. 이제 캐릭터 볼륨을 살펴보겠습니다. 방금 빠르게 보여드린 것은
여기 전체에 배치된 샘플의 밀도를 항상 높일 필요는 없다는 것입니다. 여러분의 레벨에는 사용하지
않을 수도 있으니까요. 그래서 캐릭터 임포턴스와
캐릭터의 간접광 라이팅 볼륨이 있는 것입니다. 이것의 기능은 실제로 이 영역에
더 밀집된 샘플을 배치하는 것입니다. 그래서 캐릭터가 이 영역에서
상하 운동을 많이 하고 있다면 보간이 잘 되도록
캐릭터를 볼륨 안에 유지시키면 됩니다. 그래서 계속 블렌드도 잘 되도록 유지하고 모든 것이 잘 작동하게 둘 수 있죠. 이제… 만약 샘플이 더 필요할 경우에는 이 부분만을 바꾸도록 권장합니다. 바꾸더라도 명확한 용도로 사용해야지 만병통치약 같이 생각하고
변경을 하면 안됩니다. 그러니… 우리가 논했던 대로 첫번째 샘플은 50 유닛 위에 배치됩니다. 첫번째로 그림자가 드리우는 표면이 여기 나열됩니다. 다음은 250(유닛)에 (배치)되므로
총합 300이 됩니다. 우리가 설정한 것은 이 샘플들의 간격을
300씩 두는 것입니다. 더 많은 표면이 필요하다면 언제나 여기를 증가시켜서 확인했었던 기본값인 50과 250까지
만들어줄 수 있습니다. 그리고… 이 2를 3으로 바꾸게 되면
3번째 레이어를 얻게 되는 것이죠. 이처럼 엔진을 재시작할 필요도 없이 BaseLightmass.ini만 수정하고, 파일을 저장한 후
라이트를 리빌드해주면 적용됩니다. – 그러니…
– 멋지네요. 빠른 질문입니다. 방금처럼
간단하게 대답해주시면 됩니다. ‘라이팅을 빌드할 때의 연산은
CPU와 GPU 중에 어디서 이루어지나요?’ – CPU죠.
-CPU군요. – GPU 라이트매스 같은 것은 없습니다.
– 그렇군요. 사실 채팅에서도
누가 즉시 대답을 해주긴 했는데 영상에도 남겨두고 싶어서요… 저도 위키에 있는 라이팅 가이드에서도
이걸 다뤘었습니다. 그냥 Daniel Wright의
멋진 대답을 복사해온 셈이죠. – (Daniel은) 거의 달인이니까요.
– 맞아요. 진짜 Daniel 대답을 복사해온 거예요. 저도 개발 상의 질문들은
그런 식으로 많이 처리하거든요. 구글에서 찾아보던가,
아는 사람 중에 알 만한 사람을 찾아서 예전에 비슷한 답변을 했었는지 찾아보는거죠.
나쁜 생각은 아닙니다. 그리고 여기에는 당연히
빌드된 라이트맵이 필요한가요? – 뭐라구요?
– 이 작업은 빌드된 라이트맵 기반이냐는 질문입니다. 아, 네 그렇습니다. 여기서 사용한 스태틱 라이트는
모두 미리 빌드한 것들입니다. 그러니 고정 스태틱 라이트를 사용하신다면…
(빌드해야 합니다) 그렇지 않으면 라이팅 샘플을
전혀 얻을 수 없습니다. 이렇게 모든 질문들이
명쾌한 답변을 얻었으면 좋겠네요. 이제 이 레벨에서 한 가지만 더
빠르게 보여드리겠습니다. 간접광 캐시를 갖추면
좋은 이유를 하나 더 보여드리겠습니다. 이 부분은 보다 어두운 영역에서의 블렌딩을
보여드리기 위해 만들었습니다. 포스트 프로세스를 통해서 자동 노출이나 눈 순응은
모두 비활성화했습니다. 저는 에디터에서 작업할 때
방금 말한 요소들을 비활성화 후 작업하는 편입니다. 왜냐하면 그걸 활성화하면
이 안도 온통 환해져서 제가 씬을 실제로 어떻게 작업했는지, 그리고 어떻게 보이는지
알아보기가 어려워지기 때문입니다. 보시다시피 모두가 라이팅이
더 어두워지는 쪽으로 움직이면서 완전히 어두운 안쪽까지
다다르게 됩니다. 이쪽으로도 가보겠습니다. 이쪽 역시 마찬가지입니다. 더 작은 라이팅이 들어오는 가운데 저 뒤쪽으로는 모든 것이 점점 어두워집니다. 이제 계속 진행을 해 보면… 여기서 간접광 라이팅의 이음새나 레벨 상에 이음새가
왜 이리 많냐고 하실 수 있는데 (콘텐츠 브라우저 창에서 ILC_Static을)
실행해주면… 저장도 해 주겠습니다. 그러면 이렇게 제 작은 집이 나타납니다. 저렇게 라이팅 사이에 보이는 이음새는
자주 보이는 현상입니다. 다들 그 이유가 무엇인지도 물어보시는데, 이유를 간단히 설명드리면
라이팅은 CPU에서 처리합니다. 그리고 새 오브젝트가 라이트매스로
보내질 때마다 (CPU의) 서로 다른 쓰레드로
보내지게 됩니다. 그러니 이 메시는 다른 메시의 라이팅 정보를
알지 못하는 것입니다. 그래서 이런 간접광 영역에서는
이렇게 선명한 이음새가 나타날 수 있습니다. 바깥쪽으로 다시 나와서 보면 바깥의 벽에서는
방금처럼 이음새가 나타나지 않죠. 이 세 벽은 광원에서 빛을 직접 받고 직접광으로 라이팅이 되기 때문입니다. 하지만 이 안에서는
반사광을 받고 있는 것이고 서로 제대로 블렌드가 되지 않는 것이죠.
이 문제를 해결하는 방법도 다양합니다. 그렇다고 이 방법도 만병통치약처럼
기능하는 것은 아닙니다. 여기 Indirect Lighting Quality를 언제나
높은 값으로 조정해줄 수 있지만 그럴 때마다 Indirect Lighting Smoothness도
실제로 낮춰주어야 합니다. 툴팁으로 뜨는 경고에서도
이 부분을 높일 경우 사용한 값에 따라서 라이트 빌드 시간이
확연히 증가할 수 있다고 합니다. 그리고 이 Indirect Lighting Smoothness은 대략 0.65나 0.75 정도로
값을 낮추어주면 이 이음새를 부드럽게 없애줄 수 있지만
역시 부작용이 생길 수 있습니다. 적당한 균형점을 찾도록 하세요. 이 질문은 굉장히 자주 나오는 것이고 이렇게 평평한 서피스가
기본 머티리얼로 구성되어 있다면 이런 부작용을 알아보기가 더 쉽습니다. 하지만 뭔가를 감싼 디퓨즈 텍스처처럼
노멀 맵을 사용할 경우에는 이 경우에는 잘 넘어갈 것입니다.
항상 문제가 해결되지는 않겠지만 도움은 될 수 있습니다. 또 다른 해결책으로는… 이런 일이 생길 때마다
제가 추천드리고 싶은 방법은… 레벨을 지나치게 모듈화해서
관리하는 것도 추천하지 않습니다. 여기서도 같은 벽 메시를
길게 늘려서 사용했죠. 이것도 최고의 선택지는 아닙니다. 이렇게 메시를 늘려서 사용하면 베이크된 간접광도 늘리게 되니까요. 특히 메시를 굉장히 늘렸을 때의 얘깁니다. 그래서 여기서 추천드리고 싶은 방법은 이렇게 4벽이 면으로…
4면이 벽으로 막힌 방에서는 – 이렇게…
– 4벽이 면으로… – 네?
– 미안합니다. 4면이 벽으로 막혔다구요. – 제대로 말씀하셨죠. 미안합니다.
– 그럴 수도 있잖아요. 꼬투리를 잡고 그런대요.
발음 좀 잘못할 수도 있지. 여기서 실제로 추천하는 방법으로는 이것을 실제로 적절히 라이트맵 된
단일 메시로 빌드하고 라이트맵에 적절한 레이아웃을
실제로 사용하는 것입니다. 그러면 이 벽의 크기에
실제로 잘 맞게 됩니다. 그런 방식으로 더 나은 결과물을
만들 수 있으리라 생각합니다. 또한 이를 적용할 수 있는,
제가 자주 발견하는 문제점이 또 있는데 바닥이나 천장에서 이런 부분이
밝게 표시되는 것입니다. 여기서 무슨 일이 일어나고 있냐면
사실… 그림자를 받는 넓은 면적의
바닥이 있고 모든 라이트를 가려야 하지만 실제로 얻는 (바닥) 메시에서는 라이트가 라이트맵의 해상도에 비례해
어느 정도의 빛샘을 보이게 됩니다. 라이트맵을 실제 해상도처럼 2048이나 4096으로
완전히 구동하고 싶지는 않으실 것입니다. 그러면 텍스처 메모리를 정말 많이 사용하게 되므로
이와는 다르게 디자인하겠죠. 실제로는 그보다 훨씬 낮은 텍스처 해상도를
사용할 수 있습니다. 텍스처가 아니라 라이트맵 해상도죠. 이를 이용해서
같은 문제를 해결할 수 있습니다. 여기 마지막 메시에 있는데요 이것은 같은 바닥 메시를 사용하되
스케일만 줄여준 것입니다. 그리고… 여기서는 구석에 빛샘 현상을
찾아볼 수 없습니다. 그러니까, 빛샘을 크게 염려할 필요 없이
모든 것이 훨썬 더 잘 블렌드 되었죠. 다 더 나은 디자인 덕분입니다. 그리고 레벨의 지나친 모듈화를 피해
얻을 수 있는 또 다른 이점으로는, 사실 레벨이 아니고
저 방 정도지만, 벽을 구성하는 요소가 많으면
또 각각 드로 콜을 가지게 되어서 각각의 텍스처 고해상도 및 라이트맵 텍스처 해상도에도
신경을 써야 하게 됩니다. 이제 다음으로는… 또 다른 이미지를 준비해왔습니다. 사실 이 이미지는 문서에서
직접 가져온 것입니다. 저희는 라이트맵 전반에 관련된
좋은 문서들이 있습니다. (이 문서 링크도 유튜브) 설명에 올려둘게요. 네, 문서에서 라이트 매핑 관련 문서를
찾아서 (올리면 될 것 같아요.) 이제 여기서 준비한 것을 살펴보면 여기 준비된 박스 몇 개는 각각
모델링된 면을 가지고 있습니다. 모서리도 있죠. 굉장히 분명한 경게로
구분이 되어 있죠. 이제 이 상자들의 라이트맵을 살펴보면 이것은 3DS 맥스나 마야에서 쓰는
플랫 매핑처럼 생겼습니다. 모두 바깥쪽을 향하고 있습니다. 여기서 얻을 수 있는 것은… 이것으로는 로우 라이트 맵을 위한
충분한 텍셀 밀도를 얻을 수 없습니다. 사이사이에 낭비된 공간이 너무 많아요. 그리고 빌드 결과물로 가 보면 이렇게 에러가 많이 발생합니다. 면의 사이사이가
그렇게 좋은 퀄리티가 아니며 서로 연결이 되지 않았습니다. 하나의 벽을 가지고 있어도
UV에서 면이 둘로 나뉘면 여전히 둘이 분리된 메시인 것처럼
이음새를 보게 됩니다. 버텍스가 서로 연결되어있지 않기 때문에 한 부분의 UV는
다른 부분의 UV 정보를 알지 못하니까요. 그러니 시작 지점이
그렇게 좋아보이지는 않아요. 고쳐보고 싶네요. 어디 봅시다… 이것은 수정된 메시입니다. 이 면들은 각각의 분리된 면이 아니라
인접한 메시이며 그리고… 라이트맵을 다시 보면
하나의 인접한 메시를 볼 수 있으며 이번엔 공간도 아주 잘 쓰고 있고
서로 잘 맞춰져 있습니다. 덕분에 라이트매스도 빌드가
더 잘될 수 있으며 더 나은 퀄리티가 나올 수 있습니다. 보시다시피 많은 부작용이 사라졌으며 많은 수의 연결부분은 필요한 경우
라이트맵 해상도 증가로 해결할 수 있지만 실전에서는 라이트맵 해상도를
항상 최소한으로 유지하라고 다시 한번 조언드립니다.
모두 닫아줍니다. 라이트매스 관련 질문은 없나요?
너무 많은 내용을 빨리 진행한 것 같아서… 네, 사실은… 말씀드리고는 싶었는데
계속 진행중이셔서… 방금 말씀하셨던 이음새 관련 질문입니다. ‘메시를 합치면 이음새 문제를 어느정도
완화할 수 있지 않을까요?’라는군요. 아니오, 그 이유도 방금 다뤘던 이야기로 돌아가서… 이 라이트맵을 다시 보겠습니다. 이 라이트맵은 두 개의 상자의
위쪽과 아래쪽 면입니다. 이제 에디터 상에서 메시를 합친 다음
라이트맵을 리팩해봤자 리팩된 라이트맵으로
원래의 UV까지 초기 리팩할 수는 없습니다. 그러니 그렇게 블렌드한다고 해서
이음새가 없어지진 않습니다. 그러니까 꼭 이렇게 벽이 두 개 있다고 치고 이쪽 끝의 벽을 이쪽 벽에 연결해 봐야
그 쪽의 라이팅 정보는 알지 못합니다. 그래서 사이에 있는 패딩이 실제로
라이팅 이음새를 만들어냅니다. 그러니 결국 라이트맵의 디자인 문제인 것이며 라이트맵의 미학적 문제라고 생각합니다. 결국 이 문제는 직접 겪어보면서 어떤 해결법이 통하고 안통하는지, 얼마나 복잡한 방법을 사용할지
알아봐야 할 문제입니다. – 이 정도면 대답이 되었을까요?
– 대부분은 대답이 되었다고 생각합니다. 실질적인 도움이 안되는 대답이더라도 어쩄든 도움을 기반으로 한 대답이니까요. 사람들이 라이트매스나
라이트매핑에 대해 제기하는 많은 의문들은 애셋 디자인을 어떻게 했느냐에
달려있습니다. 그리고 모든 문제를 해결하는데
에디터만 들여다보지는 마세요. 모델링 프로그램도 문제 해결에
큰 도움을 주며 실제로 주된 해결방안이기도 합니다. 에디터 안에서만 작업을 살펴보지 않고
메시를 에디터 밖으로 익스포트해서 약간의 변경을 가해야 할 필요도
있는 것이죠. 같은 스트림 방송에서 말씀하셨기를 라이팅을 하기 전에
먼저 계획을 하라고 하셨죠. 말씀대로 작업 전에 먼저
생각을 해야 할 것 같습니다. 이번에는 어떤 질문이 들어왔냐면, 모듈화된 건물의 라이트맵 이음새 관련 질문인데, 해결이 될 때까지 모든 것을 시도 해봤답니다.
포럼에 올라와 있는 질문이네요. 그래서 계획을 세우는 것에 관해
조언을 들어보고 싶다고 하네요. 모듈화 건물이나 소품, 또는 청크 단위로 스폰하는 등
스폰의 계획에 대한 조언이 필요하답니다. 청크 단위로 스폰이요? – 스폰이 된 것은 라이트매핑을 안쓰거든요.
– 맞는 말씀입니다. 스태틱 라이팅이 있을 경우
실질적으로 간접광 캐시를 사용하게 됩니다. 기본적으로 이동 가능한 액터처럼
취급이 되거든요. 이제 여러분이 에디터에 모든 스크립트를 구축한 다음
라이팅을 빌드한다면 여전히 좋은 UV로 라이트매핑을 구축하는 것으로
요약된다고 생각합니다. 라이트매핑 문서를 봐도 아시겠지만
정말 많은 기술과 요령이 존재합니다. 지루한 작업이고 배워야 할 점도 많지만 계속 다른 것을 시도해보면서
인접 메시를 활용하고 한UV의 인접한 레이아웃을 활용하면 이것보단 나을 것입니다. 이런 결과물을 얻지는 않을 것입니다. 제가 말씀드렸듯 이 면 각각은 연결이 됐든 안됐든
서로의 라이팅 정보를 모릅니다. 그래서 이대로 베이크할 경우
라이팅 에러가 발생할 확률이 큽니다. 반면 이것을 보세요. 이 둘은 라이트 매핑 문서에 있는
빌드 옵션 및 사례입니다. 여러분께 보여드릴 간단한 샘플로
가져온 것입니다. 확실히 이해하기가 쉬워질 것 같습니다. 씬과 구성에 관련된
일반적인 질문 하나가 더 있습니다. ‘월드에는 항상 디렉셔널 라이트와
스카이라이트가 있어야 하는 건가요, 아니면 둘 다 무버블이 되거나
디렉셔널 라이트만 있어도 되는 건가요? 여러분 마음에 달렸습니다. 여러분에게 필요한 능력에 따라
둘 중에 선택할 수 있다는 뜻입니다. 예를 들어 먼 거리를 앰비언트 오클루전으로
채우고 싶다면 여기에는 무버블 스카이라이트와 스테틱 혹은 스테이셔너리 디렉셔널 라이트를
사용해도 됩니다. 그러니 원하는 결과물과
성취하고 싶은 목표에 따라 활용도 달라지는 셈이죠. 살짝 포괄적인 질문이라
대답이 되었을지 모르겠군요. ‘뭘 만들고 싶으냐에 따라 다르다’
정도로 정리할 수 있겠네요. 그런 답변은 포럼에서도 많이 해서
피하고 싶었는데 모두에게 좀 더 유용한 답변을
드리고 싶었거든요. 이제 이 쪽으로 이동해 보겠습니다. 모두 준비해두었습니다. 이쪽으로 와서… 파 섀도우에 대한 질문도 들어왔었습니다. 여기에는 디렉셔널 라이트가 있습니다. 또한 대규모 랜드스케이프도 준비했죠. 이 랜드스케이프에는
파 섀도우가 적용되어 있으며 언리얼 엔진 4.8 당시 Kite
데모에서 활용했던 것입니다. 4개의 클로즈업 섀도우와 대략 1600유닛의 거리에 걸친
케스케이드 섀도 맵을 사용했으며 더 먼 거리의 나무와 폴리지의 그림자에는
디스턴스 필드 섀도우를 사용했습니다. 하지만 그보다 더 먼 거리의 랜드스케이프에도
여전히 라이팅을 해주어야 했습니다. 그래서 우리가 해 준 것은… 아, 잠시 월드 설정으로 나가겠습니다. 이제 이 아래 설정으로 내려가서… Cascaded Shadow Maps 탭으로 갑니다. 여기에는 Far Shadow Cascade Count
옵션이 있습니다. 기본 설정은 언제나 0이고
랜드스케이프에는 언제나 적용되어 있습니다. 검색창에 Far를 입력해주면 이 랜드스케이프에는 Far Shadow가
자동으로 적용되어 있는 것을 볼 수 있습니다. 그리고 이제 Light Source를
선택해 줍니다. 여기서는 30,000 유닛 거리보다 멀리서 보여질 캐스케이드 섀도우를 정합니다. 이것은 실제로 이런 대규모 오픈월드에서
더 큰 차이점을 보여줄 수 있습니다. 섀도우 정보 양이 적어야 할 곳 등에서 말이죠. 이렇게 거리를 조정해줄 수 있으며 캐스케이드 역시 조정이 가능합니다. 캐스케이드 값이 높을수록
퀄리티도 올라갑니다. 정말 날렵한 풍경인데요. Andrew도 지금 랜드스케이프와 관련된
튜토리얼을 준비하고 있는데, 2주 이상 후에 나올 것 같아요. 이것과 비슷한 과정을 다룰 것이니
한번 기대해 보세요. 이제 이 쪽으로 가보겠습니다. 여기서도 뭔가를 다뤄보겠습니다.
잠시 대본을 좀 볼게요. 이 시스템에는 기억할게 참 많아서… 아 괜찮아요, 괜찮아요. 채팅창에서도 많은 사람들이
대규모, 소규모 월드의 크기나 건축 시각화와 관련된 일반적인 질문들을
올리고 있습니다. 아마 지금 대규모 월드와 관련된
몇 가지 질문에 답변을 해야 할 것 같아요. 네, 대규모 월드에 대해 빠르게 다뤄보죠. 대규모 월드의 라이트 매핑은… Kite 데모는 대략 16km X 16km
넓이였습니다. Kite 데모는 런처에서
쉽게 받아보실 수 있습니다. 거기서는 모두 다이나믹 라이팅을
사용했어요. 라이트매핑 사용에는 큰 역할을
두지 않는 경우가 흔합니다. 특히 폴리지 같은 데에 그런데 거기 신경을 너무 썼다간
텍스처 메모리가 치솟기 때문입니다. 많은 것들을 천문학적으로 만들어 줍니다. 심지어 월드의 크기에 따라서 패키지를 할 때마다
라이팅 능력에 한계가 오기도 합니다. 맵은 세이브합니다.
맵은 세이브해야죠. 하지만 라이팅 데이터의 용량이
2기가 이상이 될 수도 있습니다. 그런 다음 패키지가 되지 않았다는
윈도우 메시지를 몇 번 본 적이 있습니다. – 명심해두어야 겠네요.
– 물론이죠. 좋습니다, 이제… 오, 채팅에서 아주 좋은 질문이 올라왔어요. 그런데 우리가 이 부분의 시간은
다 써버려서… – 아직 진도 나갈 부분이 좀 있거든요.
– 네, 그럼 진행하시죠. 그럼 여기서 다이내믹 라이트를
조금 다루어 보겠습니다. 아래쪽에 있는
Cascaded Shadow Maps 탭을 봅니다. 다이내믹 라이트는
Cascade Shadow Distance에 있습니다. 이 부분은 항상 필요한 수준에서
최대한 낮춰두는 것이 좋습니다. 여러분의 프로젝트와
목표에 따라 달라지지만요. 말씀드렸듯이 Kite 데모에서는
1600 유닛 언저리로 유지했지만 여기서는 10,000으로 설정하겠습니다. 그냥 보여드리려는 것이니까요. 다음으로 설정할 것은
캐스케이드의 숫자입니다. 여기서는 월드 전체에서 벌어질
캐스케이드의 숫자를 조절합니다. 이것들은 라이트에 따른 퀄리티 레벨이라고
생각하시면 됩니다. 0으로 설정하면 아무것도 없게 되죠. 이것을 1로 설정해주면
이제 10,000 유닛 거리 내에는 캐스케이드를 1개만 보여주게 됩니다.
퀄리티 수준이 1인 셈이죠. 이걸 2로 설정해 주면
보다 나은 퀄리티를 볼 수 있습니다. 보시면 이해가 될 것입니다. 여러분의 목표하는 거리에 따라서 언제나 필요한 수준에 맞추면서
최대한 낮게 유지하는 것이 좋습니다. 그리고 또 추가적인 캐스케이드나
디스턴스 필드 섀도잉같은 대체 라이트 소스, 혹은 이렇게 거대한 월드가 아니라면
아예 스테이셔너리 라이트로 대체할 수도 있습니다. 랜드스케이프 일부에 대신 사용할
빌드된 라이팅 같은 걸로 말이죠. 그리고 그 밑의 Distribution Exponent는 이것이 월드 전체에 걸쳐
어떻게 변화할지를 결정합니다. 잘 이해가 가지 않으실 수 있습니다. 하지만 여기서 (화면 상단의 표시 버튼을 눌러)
이 옵션을 사용해보면… 이 아래쪽의 고급 카테고리에서 Shadow Frustums를 선택합니다.
시작해 보겠습니다. 여기에 디렉셔널 라이트가 있습니다. 그리고 현재 우리가 월드에 캐스팅중인
라이트를 보여주죠. 그래서 여기서 거리와 관련된
옵션들을 조정해보면 월드 속에서는 어떻게 달라지는지
확인해볼 수가 있습니다. 캐스케이드를 추가하거나 제거하고 이 모든 범위를 포괄하는
하나의 케스케이드를 사용할 수도 있습니다. 아니면 또 다른 캐스케이드를
추가할 수도 있습니다. 그리고 이 Distribution (Exponent)으로 이것이 어떻게 영향을 받는지도
보실 수 있습니다. 이것으로 시청자 여러분께
시각적인 레퍼런스를 제공해서 좀 더 이해가 잘 되셨으면 좋겠습니다. 라이팅 관련 문제 해결 사례도 있는데 이렇게 왔다갔다 하는 조정 방식으로
해결하는 과정을 보여줍니다. 혹시 Stat FPS도 띄워주셔서 이 데모에 드는 엔진 비용은 정확히
얼마나 되는지도 보여주실 수 있나요? 사실 비용은 확인을 해 본 적이 없어서
전혀 감이 안잡히네요. 네, 저는 잘 안보입니다. 저렇게 떠버리네요. 밝은 배경에 밝은 숫자로 뜨니
읽기가 힘드네요. 숫자가 뒤쪽의 밝은 배경에
섞여버립니다. 이제 여기를 보겠습니다. 이제 파 섀도우에 관해 하나 다뤄보자면
또 이렇게 생각하실 수도 있습니다. 이게 랜드스케이프에만 필요한 게
아니라고 생각하실 수도 있죠. 예를 보여드릴게요. 멀리 오브젝트가 있다고 가정해 보면, 그 캐스케이드에 섀도우를 적용해야 할 경우,
사실 어떤 액터를 선택해도 됩니다. 그렇다고 모든 액터를 선택하라고
권장하지는 않겠습니다. 여러분이 필요한 액터만 선택해야겠죠. 이렇게 파 섀도우를 활성화하면
액터별로 활성화도 가능합니다. 그래서 대략 이 정도 멀리 떨어진 곳에
건물이 있었더라면 이 파 섀도우 기능을 활성화해서
섀도를 입히는 것이 쉬울 것입니다. 그리고… 제 생각에는
이 주제는 여기까지 다루겠습니다. 이 부분에서 질문이 있으신가요? 전반적인 게임 개발에 관한
질문들이 많이 있는데요. ‘자체 섀도우가 되는 랜드스케이프 제작의
가장 좋은 접근법은 무엇인가요?’ 그리고 ‘프로그래밍은 어떻게 해요?’ 이건… 아, 저는 프로그래머가 아니예요.
이건 숨김 없이 털어놓겠습니다. 그러면 방금 전의 질문을
받아보겠습니다. 자쳬 섀도우가 되는 랜드스케이프 제작의
가장 좋은 접근법이 무엇인가요? 언리얼 엔진 4의 랜드스케이프는
라이팅이 있든 없든 자동으로 자체 섀도우를 형성합니다 여기서 섀도우(설정)를
모두 비활성화하더라도 랜드스케이프에는 여전히
섀도우가 적용됩니다. 여기서 (Light의) Affect World를
비활성화 해 보면 라이트를 전부 비활성화 했네요
그림자를 보이게 해야 하는데… 이런! (디테일의 검색 창에 Cast를 찾아)
관련 설정으로 갑니다. 이제 아무(설정)도 없습니다.
이것이 일부가 자체 그림자를 가집니다. 그렇다고 롱 섀도우 캐스팅같은
파 섀도우 류의 자체 섀도우는 아닙니다. 이처럼 메시 중에 라이트의 영향을 받지 않는 부분은
섀도우의 영향을 받게 되지만 파 섀도우 같은 것도 없는데
이 봉우리에서 아래쪽 끝까지 그림자를 만들지는 않습니다. 대답이 된 것 같나요? 네, 도움이 될 만한 답변 같습니다. 다음 질문은 전체적으로
이 맵과 연관이 되어 있군요. ‘디렉셔널 라이트를 이동시켜
밤 낮의 주기를 만들려면 이 라이트는 월드 아래로 내려갔을 때
실제로 꺼져야 할까요?’ 그러니까 (디렉셔널 라이트를) 꺼서
완전한 암흑을 만들어야 하냐는 뜻일까요? 네. 여기엔 페이드 아웃을 쓰는 것이
더 좋겠습니다. 제 생각에는 제 웹사이트나 포럼 쓰레드에 준비한
많은 프로젝트나 위키에서 팁을 참조해보시는 것도 좋겠습니다. 이게 아마 몇 년 된 일일텐데 남의 위키를 작성하면서
이런저런 조정을 하는 작업 중에 (라이트가) 월드의 지평선에 해당하는
트랜지션에 닿을 경우 아예 꺼져버리거나 시간을 두고
페이드 아웃하는 효과를 부여했습니다. 월드 아래로 내려갔으니
더 이상 볼 필요가 없잖아요. – 그리고 거기에 렌더링을 낭비하고 싶지도 않았겠죠.
– 맞습니다. 이게 좋은 사례인지는 모르겠습니다. 퍼포먼스 관련 작업이나
프로파일링도 안했고 딱히 최적화를 하려고도 안했거든요. 그냥 제가 뭘 할 수 있나
맵을 만지작거리면서 위키 내용이나 더 채우려다가
배우게 된 것이거든요. – 이걸로 그 질문은 마무리 해보죠.
– 좋습니다. 이제 다음으로는… 사실 이것은 작년 GDC에서
누가 제게 물어봤던 것입니다. 사실 저는 재미삼아서 했던 것인데 아주 굉장한 것까지는 아니고
그냥 간단한 아트에 불과하지만 여기서 포스트 프로세스의 위력을
보여드리겠습니다. VR 프로젝트를 진행하고 있다는 팀이
제게 물어보기를 자신들의 월드에 이미시브 오브젝트 라이트를
동적으로 갖추고 싶다고 했어요. 그래서 저는 ‘좋아요, 15분 정도만 주시면
제가 뭘 할 수 있을지 알아보죠’라고 했죠. 그래서 제가 뭘 했냐면
이런 머티리얼에서 시간 경과에 따라 변화하는
간단한 포스트 프로세스를 사용했죠. 이것을 실제로 거기 있던
제 메시에 붙였습니다. 그리고 이것은 두 포스트 프로세스 사이에서
블렌드가 되면서 GI를 조정합니다. 이제 이쪽의 Post Process Settings를 보시면 여기 글로벌 일루미네이션을 위한
이런 멋진 옵션이 있습니다. 이것은 굉장히 작은 씬이고 제게 필요한 베이크드 라이트 정보는 포스트 프로세스를 통해 GI(글로벌 일루미네이션)에
영향을 줄 수 있을 정도면 충분합니다. 그래서 여기에 작은 포인트 라이트가 있습니다. 강도가 아주 낮아서 스트리밍에서
제대로 보일지나 모르겠네요. 이 방을 위한 베이크된 정보를
얻기에는 딱 적당합니다. 그리고 이게 이동을 하면
아래로 들어가는데… 약간 조정을 해 준 다음
플레이를 해 보겠습니다. 이 포스트 프로세스에서 수행하는 것에는
어떤 베이크드 라이팅 정보도 조정하지 않습니다. 이것도 사이에 들어가
블렌드가 되는 것 뿐입니다. 여기 있는 것은 저의
글로벌 포스트 프로세스입니다. 이것은 기본 설정대로
1의 간접광 세기를 사용하고 있으며 딱히 특별한 점은 없습니다. 이것을 상하로 조절해보면 포스트 프로세스가 GI에 실제로
어떤 영향을 미치는지 볼 수 있습니다. 그리고 이 위에 있는 것을 가지고 간접광 색상을 다루어 보겠습니다. 이것은 제 라이트나 이미시브 머티리얼과
색상 값이 거의 동일합니다. 이 값을 내리면 밝기가 더 올라갑니다. 제 생각에 포스트 프로세스는 종종
라이팅에서 간과하고 넘어가는 경향이 있는데 이것은 실제로 라이트 빌드를 다시 하지 않고도 뒤로 돌아가서 값을 변경할 수 있는
아주 강력한 도구입니다. 여기 이걸 좀 보셔야겠는데요. – 저희 둘의 이미지가 화면을 가려서…
– 아 이런, 죄송합니다. – 아뇨, 이렇게 풀스크린을 하면 되니까…
– 네, 다시 진행할게요. 죄송합니다. 네, 이것이 제가 글로벌 일루미네이션의
포스트 프로세스에서 조정하고 있던 간접광 색상 설정입니다. 그리고 여기에는 세기도 있습니다. 포스트 프로세스에서 이 위로 올라와보면 여기에 영향을 미치고 있는 것을
볼 수 있습니다. 지금 제가 포스트 프로세스 안에 있고 이 포스트 프로세스가 글로벌 (일루미네이션)을
장악하고 있기 때문입니다. 이렇게 세기도 낮게 조절해봅니다. 여기서 항상 언급할만한 점은 눈속임을 할 수 있는 수단도 많으며 항상 현실같은 라이팅을 하려고
시도하지는 말라는 것입니다. – 그러니…
– 알겠습니다. – 이 주제에 대해서도 질문이 꽤 들어왔어요.
– 아, 알겠습니다. 한번 보겠습니다… ‘간접광이 노멀 맵과 어떻게 상호작용을 하는지
좀 더 설명해 주시겠습니까?’ 간접광은 자동으로 노멀 맵과
상호작용을 합니다. 프로젝트 세팅을 보시면
이와 관련된 복잡한 설정들이 있습니다. 이 부분에 대한 예제는 없어요. 사람들이 헤메였을 것 같습니다. (검색어로) 좀 더 간단하게 보여드리죠. Use Normal Maps for Static Lighting
설정입니다. 이와 유사한 것을 보셨다면 제 노멀 맵에
라이팅이 영향을 주지 않았단 것이겠죠. 그러니 실제로는 이것의 사례가 아닙니다. 이것은 굉장히 특별한 용례로 제가 조금 전에 들려고 했던 사례는… 정육면체가 하나 있다고 생각해봅시다. 여섯 면은 모두
하나로 스무스 처리된 노멀입니다. 모두 같은 스무딩 그룹에 속해있으며 이것을 구해서 여기에 날카로운 에지를 가진
노멀 맵을 적용한다고 해 봅시다. 하지만 라이트매스는 이것을 가지고
뭘 해야 할지 알지 못합니다. 따라서 여기서 필요한 작업은
이 옵션을 활성화해서 라이트매스에게 이런 유형의 노멀 맵을 가지고 스무스 오브젝트에 존재하는
하드 에지를 파악할 수 있게 하고, 또 이것을 가지고 뭘 해야 할지
알려주는 것입니다. 다시 말씀드리지만 이 부분은 보여드릴 예가 없고
저도 딱 한번만 해 본 것 같습니다. 저도 정보가 그렇게 많은 것은 아니지만
나중에라도 다루어볼 수 있겠죠. 질문입니다. ‘자연 환경의 씬 컬러를 구성할 때, 좀 더 야외 느낌이 나게
포스트 프로세스를 하는 팁이 있나요?’ 어, 저는 라이팅 아티스트가 아니라서… 그런 질문은 라이팅 아티스트에게
하실만한 질문인 것 같습니다. 저는 그냥 일단 진행해 본 다음 제 눈에 괜찮아 보이거나
레퍼런스와 유사해 보일때까지 값을 조정하거든요. 뭔가 전문적인 답변을 드리기는
힘들 것 같네요. 글쎄요, 제 생각에는
그 정도면 충분히 맞는 답 같습니다. 저는 그냥 괜찮은 이미지 하나 찾아서 비슷해 보일때까지 값을 고치면
되겠다고 생각했거든요. 저도 제 라이팅 연습을 할 때는
딱 그런 방식으로 합니다. 일이 아니라 제 공부같은 걸 할 때는
그렇게 구성을 하죠. 일단 참고로 사용할 이미지를 구한 다음
어떻게 작업을 할 것인지 목표도 정해서 얼마나 비슷해졌는지
비교도 합니다. 그리고 제가 이런 대규모 오픈 랜드스케이프
작업에 대해 말씀드렸던 것처럼 Andrew에게 이 주제에 대해
다루어달라고 부탁해볼 수도 있습니다. – 네, 많이 다뤄달라고 해보죠.
– 네, 그러면 되겠습니다. 다시 진행하시죠. 그리고 여기서 질문과 답변을 이해 못하신 분들은
채팅 관련 목록을 포럼에 올려둘테니 나중에 유튜브에서 영상을 보시면서
설명 란에 있는 포럼 링크로 찾아가시면 됩니다. 네, 정말 여기서 보여드리고 싶은 사례와
주제들이 몇 장씩 남아있는데 여기서 다 못 보여드리더라도
포럼에서 답변을 드리겠습니다. 이제 넘어가겠습니다. 이번에 다뤄볼 것은 백라이팅입니다. 이것은 건축 시각화 종사자들에게
아주 특별한 주제가 될 것입니다. 그 이유는 이 옵션의 용도가… 아직 게임용 뷰네요. 용도가… 그냥 여기서 콘솔을 입력해주겠습니다. r.Cache.DrawInterpolationPoints를
입력하겠습니다. 됐습니다. 백라이팅은 자주 주제가 되는 소재입니다. 사람들은 그냥 이미시브를 스태틱으로
쓰면 다 해결되지 않느냐고 하는데, 여기서 보여드리고 싶은 것은
이미시브를 스태틱으로 쓸 때의 장점과 그 외의 우회법에 대해서
알아보려는 것입니다. 그래서 여기에는 두 가지 사례를 준비했습니다.
오른쪽은 스태틱용 이미시브이고, 왼쪽은 지오메트리 뒤에
포인트라이트를 배치해 똑같은 효과를 낸 것입니다. 여기의 라이트맵 해상도는 128입니다. 그리고 여길 보면 충분한 텍셀 밀도가
확보되지 않았다는 것을 볼 수 있습니다. 그러니 이미시브 스태틱 라이팅이
충분한 맵 해상도를 갖는다고 생각되신다면 여기서는 직접광이 한 번만 반사된다는 것도 염두에 두시기 바랍니다. 그래서 옆의 포인트 라이트만큼
좋은 퀄리티가 나오지 않습니다. 그리고 이 뒤에는 엄청난 양의
포인트 라이트가 있으며 저 사이의 간격에 모두 삽입해 넣었습니다. 그래서 오른쪽과 같은
멋진 효과를 내려고 했죠. 아티스트 여러분이라면 저보다
훨씬 멋지게 하실 수 있을 것입니다. 하지만 계속 진행해서
해상도 256의 경우를 보면 더 나은 섀도잉을 보실 수 있습니다. 오른쪽의 라이팅이 훨씬 더 개선됐고
디테일도 살아있는 것 같군요. 네, 개선이 됐죠. 하지만 저기서는 이제 라이트맵의
텍스처 메모리도 늘렸습니다. 그래서 이쪽 (512 해상도)을 보게 되면 여기서 왼쪽의 사례를 볼 경우
라이트맵 해상도가 증가할 수록 (포인트 라이트 쪽에서는)
충분히 확보가 되지 않지만 이미시브 스태틱에서는
확보가 되었습니다. 이것은 1024 해상도에서도
마찬가지입니다. (오른쪽은) 정말 멋진 이펙트인데 그만한 라이트맵 텍스처를
지불한 결과물이고 이제 게임에 가장 잘 맞는 최적화를
별개로 찾아서 또 해야 합니다. 자, 질문이 없다면
이 주제도 마치겠습니다. 아, 질문은 많습니다.
그런데 일단 최대한 진행한 다음에 받죠. 잘못하면 질문에 답변만 하다가
끝날 수도 있겠거든요. 그리고 질문과 직접 관련되지 않을만한
마지막 주제로는… 라이트맵 에러 컬러링입니다.
제가 제일 좋아하는 것 중에 하나죠. 아마 제대로 아시는 분이
없을 거라 생각하는 기능입니다. 상단의 라이팅 빌드 메뉴로 가서 드롭다운을 열면
‘오류를 색으로 표시’가 있습니다. 이 기능이 뭘 하냐면… (라이팅) 퀄리티 수준을 프리뷰나 중간에 맞추고
빌드를 할 경우 씬이 (오류를 색으로 표시해서
보여줄 수) 있게 합니다. 그러니까 라이팅 퀄리티로 가보면
프리뷰나 중간을 사용하고 있을 겁니다. 프로덕션은 무시하세요. 이건 예전에 제가 다른 레벨을
빌드하면서 사용했던 것입니다. 그냥 빠르게 빌드로 보여드리겠습니다. 레벨을 프로덕션으로 빌드하면 오류가 색으로 전혀 표시되지 않습니다. 모든 것이 분명 괜찮아보이지만 실상은 오브젝트에 오버래핑 UV가 있다, 각종 퍼센티지 등등
갖가지 에러 메시지를 받게 됩니다. 또 다른 에러는 UV 겹침 문제네요.
아무튼 이것은 제가 구성한 사례들입니다. 어쩄든 다시 빌드 메뉴로 돌아가서 라이팅 퀄리티를
중간으로 맞추고 빌드를 하면 화면에서 오류를 색으로 표시하게 됩니다. 여전히 겹치는 UV나 퍼센티지 관련 문제가 있다는
오류 메시지가 뜬 다음, 여기에 겹치는 UV 오류가 있다는 것이
(색으로) 표시되어 나타납니다. 그러니 월드 내에서 이런 라이팅 에러를
쉽게 찾을 수 있는 방법으로 다시 돌아가서 이것을 고쳐야 할지 말지
신속하게 결정할 수 있는 수단인 셈입니다. 좋습니다, 한번 해 보겠습니다. 제가 아는 팁과 비법을
곧바로 알려드리도록 하겠습니다. 이 주제에 대한 질문만 없다면
꽤 빠르게 진행할 수 있을 것입니다. 특별히 이 주제에 관련된 질문은 없구요, 채팅에서는 스트리밍을 보는 사람들에게
좋은 내용이 되겠다고 하네요. – 네, 이런 팁하고 비법이요?
– 네, 맞습니다. 네, 여기서 제가 드리고자 하는 팁과 비법은
이런 (오류같은) 것들을 찾아내는 것이기 때문에… 네, 이제 악명 높은 상황을
보여드리겠습니다. 리빌드가 필요한 오브젝트가 있습니다. 다들 각 오브젝트에 항상 이름을 부여하지는
않는다는 사실을 알고 있습니다. 그러니 이 오브젝트를 찾기 위해
그 액터를 찾아 보겠습니다. (좌상단의 창>) 개발자 툴>출력 로그로 가서… 출력 로고 창이 어디갔죠? 아, 여기 있네요. 좋습니다. 여기서
dumpallunbuiltlightinteractions 명령을 사용합니다. 이 명령어가 맞을 겁니다…
아니네요. – 뭘 찾으시는데요?
– 잘 안보이네요. dumpunbuilt로 찾아보면… 네, DumpUnbuiltLightInteractions입니다. 이 명령어는 라이트가 빌드되지 않은
액터들의 목록을 구해줍니다. 그러니 여기에 영향을 주는 포인트라이트나
그 프리미티브를 구하게 됩니다. 그러니 이 작은 구획 안에서
라이트의 범위 안에 있는 것은 전부 구해오는 것입니다. 그러니 범위 내에 있는 이 두 액터는
서로 분리된 방 안에 있지만 라이트에 의해 영향을 받고 있다고
파악이 되고 있습니다. 또 마찬가지로 영향을 받고 있는
프리미티브 스태틱 메시 컴포넌트가 있습니다. 보시다시피 SM_OverlappingUVs라고
이름을 지어둔 메시입니다. 이런 상황에 있는 오브젝트는 이렇게
빠르게 찾아줄 수 있습니다. 여기서 또 다뤄볼만한 귀중한 기능은… 상단의 창>통계로 들어갑니다. 여기서는 두 가지를 살펴보겠습니다.
바로 Lighting Build Info와 Static Mesh Lighting Info입니다. Lighting Build Info에서 알 수 있는 것은
실제 Lighting build에 관한 정보와 Lightmass 및 Swarm Agent에 익스포트했을 때 실제로 Lighting build 및
각 메시 처리에 걸리는 시간입니다. 이것이 중요한 이유가 무엇일까요? 작업을 하다 보면 사람들이
다음과 같이 호소하는 경우가 있는데, ‘라이팅 진행 상황이 0%에서 멈췄어요’나 ‘라이팅 빌드가 이렇게 오래 걸리는
이유를 모르겠어요’라고들 하십니다. 모든 작업이 끝났다면 이 화면으로 와서 어떤 액터의 작업이 가장 오래 걸렸는지
확인 가능합니다. 굉장히 큰 라이트맵이 있거나 각각 다른 라이트의 영향이 너무 많아서 계산하는 시간도 길어져서
처리가 늦었을 수도 있습니다. 또한 현재 사용중인 텍스처,
Total Texel Memory도 확인해보실 수 있습니다. 이 메뉴에서 Static Mesh Lighting Info로 가 주면 메시의 이름과 위치 레벨,
텍스처 유형, UV, 사용중인 라이트맵 해상도, 그리고 사용중인 총 텍스처 라이트맵
등을 확인할 수 있습니다. 여기서 아무거나 선택하면
실제로 콘텐츠 브라우저에서 열려서 콘텐츠 브라우저와 월드 상에서
선택이 된 상태로 보여집니다. 탐색에 아주 유용한 기능이죠. 이 모든 것은 CSV로 익스포트도 가능합니다. 이제 계속 진행해 보겠습니다. 여기서… 새 레벨을 열어주겠습니다.
저장도 해 줍니다. 아마 4.13 부터 새로 추가된 기능인데, (Point Light를 월드로 드래그한 후)
Intensity를 올리고 잘 보이는 밝은 색으로 바꿔줍니다. 그리고 (디테일의 검색창에서)
Max Distance를 찾아줍니다. 라이트의 디스턴스 설정을 가지고 있다면 실제로 라이트가 보이는
최대 거리를 조정해 줄 수 있습니다. 저는 2000 정도로 설정해 준 다음
뒤로 빠져 보겠습니다. 이렇게 뒤로 빠져보면… 속도를 좀 줄여야… 이런! – 와아아…
– 아, 됐습니다. 이렇게 뒤로 빠지다가
2000 유닛 이상의 거리가 떨어지면 실제로 라이트의 렌더링이
멈추게 됩니다. 지금 이 시범을 통해
질문 몇 가지에 답변을 주신 것 같네요. 그리고 Max Distance Fade Range까지 결합하면
더욱 멋진 기능이 됩니다. 여기에 1000 정도를 입력해주면 라이트가 그냥 사라지는 것이 아니라
서서히 사라지는 것을 볼 수 있습니다. 여기서 또 다른 팁을
빠르게 하나 드리자면 (콘텐츠 브라우저로 가서) Maps 폴더에서 마지막으로
맵 하나만 사용하겠습니다. 다들 물어보시는 볼류메트릭 라이팅을
다루어 보겠습니다. 아, 잘됐네요. – 볼류메트릭 라이팅이라구요?
– 네, 다이내믹한건 아니지만… 이렇게 엔진 콘텐츠 폴더에서 게임 뷰 보기를 눌러줍니다. 이것은 실제 사용했던 배너 이미지로 심플 볼류메트리컬 라이팅을
사용한 것입니다. 이건 그냥 스태틱 메시 위에 있는
머티리얼이며 간단한 예제를 원하신다면 실제로 엔진 콘텐츠 폴더에
갖추고 있습니다. 하단 뷰 옵션에서
엔진 콘텐츠 표시에 체크하고 좌측 엔진 콘텐츠 폴더로 간 다음 필터 검색창에서 Lightbeam을 찾아줍니다. 그럼 이미 구성되어 있는
멋진 머티리얼들을 볼 수 있습니다. 그리고 월드 내로 드래그 할 수 있는
스태틱 메시도 있습니다. 이것 대신 이걸 쓰겠습니다. 이것은 라이트 밑에 배치해
사용할 수 있습니다. 이것은 대부분의 게임들에서
많은 볼류메트릭 라이팅을 페이크하는 방식입니다. 여기서 T 키를 누르면… 네, 됐네요. 이것이 스케일을 높인 제 스태틱 메시입니다.
그 위에 머티리얼만 올렸죠. 그리고 Materials를 열어보면 저는 여기 있는 기본 머티리얼을
사용했었습니다. 그저 인스턴스 상의 설정만
조금 바꿔서 기본(머티리얼)보다는
좀 더 부드러운 볼류메트릭 라이팅을 사용할 수 있게 했습니다. 그런 다음에는… – 지금까지 질문이 있었나요?
– 네, 몇 가지 들어왔습니다. 한번 보면… 이런 시범을 보여주시면서
몇 가지 질문에 답변이 되기는 했는데 ‘거리에 따라 그림자가 갑자기 없어지는
디스턴스 설정은 어떻게 조정하나요?’ 질문이 뭐라구요? 아마 LOD에 따라서 그림자가
갑자기 사라지지 않게 하고 싶나 봅니다. 라이팅이 서서히 사라지게 하는 것은 다루셨으니
그림자도 물어보나 봅니다. 그 문제는 스케일러빌리티 문제므로 최대 해상도의 스케일러빌리티로
해결할 수 있습니다. 세팅>엔진 퀄리티 세팅에 가면
섀도우의 낮음, 중간, 높음 설정이 있습니다. 기본 스케일러빌리티 ini 파일은 실제로 이것을 위해 구성된 수많은 콘솔 변수들의
목록이라 할 수 있습니다. 그래서 포인트라이트나
스포트라이트를 사용하면 거리가 멀어질수록 그 해상도가
자동으로 떨어지기 시작합니다. 그 이유는 최적화 때문입니다. 지금 저희가 사용하는 섀도우 설정은
에픽입니다. 이 설정에서 섀도우의 최고 해상도는
2048이며 이것을 새로 추가된 시네마틱으로 올려주면
최고 해상도 값도 증가합니다. 이 경우 최고 섀도우 해상도는
4096 정도였던 것으로 기억합니다. 그게 최대치였을 것입니다.
그 이상은 본 적이 없어서. 그리고 이런 포인트라이트의
더 높은 섀도우맵 해상도를 얻을 수 있는 것은 다이내믹 라이트, 디렉셔널 라이트와
캐스케이드가 있습니다. 이런 방식으로 캐스케이드와 함께
분배하시면 됩니다. 또 다른 질문입니다. ‘이런 볼류메트릭 라이팅 페이크가
오버드로우로 인한 높은 코스트를 유발하진 않나요?’ 페이크 한 것이 씬에 얼마나 있느냐에 따라… 아뇨! 이 씬에는 2개가 있는데…
아니라는 말씀이시죠… 네, 오버드로우는 언제나 큰 문제죠. 월드 내 모든 것에 이런 페이크를
사용하라는 말은 않겠습니다. 저는 어떤 인상을 남기려는 것이 아니라
시범을 보여드리는 것 뿐이고 프로파일링도 하지 않습니다. 자기 게임이라면 당연히 프로파일링을 할 테고
특히 발매하려는 게임이라면 더욱 그럴겁니다. 또 특히 특정 콘솔이나 플랫폼을
목표로 하고 있다면 말이죠. 따라서 어떤 요소가 어떻게 사용되는지
프로파일링 하는 것은 언제나 좋습니다. 하지만 그런 주제는
다른 스트림에서 다뤄야겠죠. 맞는 말씀입니다.
여기서 다룰 주제는 아니죠. 하지만 저 원뿔 모양 전등을 살펴 보면서 어떤 식으로 구성을 해서
만들어 주었는지 간단한 팁이라도 준다면 괜찮을 것 같네요. 제가 만든 건 없고
이건 다 엔진 콘텐츠인데요. 아… 알겠습니다. – 그냥 고치기만 했죠
– 그럼 어떻게 고쳤는지를 보여주세요. 좋습니다. 일단 여기 보이는 것은
스태틱 메시입니다. 여기서는 와이어프레임으로 가서… 아니, 그냥 다시…
(Material 탭 메뉴의 검색창을 열고) WorldGridMaterial을 찾아줍니다. 왜 업데이트가 안될까요? 좋습니다. 그럼… 그냥 와이어프레임을 활용해보겠습니다. 그리고 다양한 모양 및 요소를 가진
다른 스태틱 메시들도 몇 개 있습니다. 그런 것들을 활용해서 배너를 제작했죠. 제 필요에 맞춰서 다시 스케일하는 등
약간의 수정을 가하기는 했습니다. 여러분에게 필요한 라이트가 무엇이든, 언제나 자신의 필요에 맞도록
메시를 재구성할 수 있습니다. 보시다시피 단면으로 본 UV 레이아웃도
별로 복잡하지 않습니다. 그리고 여기 있는 레이아웃으로 머티리얼이 어떻게 적용되는지
볼 수 있습니다. 그리고 점점 다가갈수록 흐릿해지는데 UV 레이아웃이 나쁠 경우에는
머티리얼로도 살리기 힘들 것입니다. 여기서는 구체적으로
드릴만한 팁이 없군요. 그냥 여기에 이렇게 살펴볼만한
콘텐츠가 있다는 것만 알아두세요. 또 Blueprint Office 데모도 있고 – 데모요?
– SunTemple요. 여기에는 갓레이도 있습니다. 이게 비슷한 유형의 머티리얼을 가진
싱글 플레인을 사용하기는 하지만 태양의 방향을 따라 변동하는 광선 등 모든 것을 포함하고 있습니다. 따라서 미학적 면에서
언리얼 엔진을 고려하신다면 말씀드린 예제도 꼭 한번 보시길
추천합니다. 하지만 여기서의 목적에서는… 방금 그 설명을 통해서
갓레이와 관련된 질문들도 해결하셨네요. Office나 Sun Temple 같은 예제가 있다고
모두에게 알려줬으니까요. 네, Blueprint Office 예제요. 그 예제는 보다 심도있게
구성이 되어 있다고 생각하며 블루프린트 전체가 만들어져 있어 원리를 관찰하고 싶으신 경우
여러분의 프로젝트로 이주시킬 수 있습니다. 그리고 디렉셔널 라이트도 할당할 수 있고요. 멋집니다. 시간만 된다면 질문을
더 많이 받아보고 싶네요. – 아니면 여기서 마무리를 할까요?
– 네, 안그래도 10분 후에 미팅이 있으니 모두가 궁금해하는 질문 하나만 받고
마무리를 하는 건 어떨까요? 사실 아주 좋은 질문 하나가 들어왔습니다. 어떤 질문이냐면… ‘레벨 내에서 라이팅을 빌드한 애셋을
모두 일괄 변경할 때 ‘라이트맵 해상도 조정 설정은
어떻게 사용하세요?’ ‘애셋마다 수동으로 해상도를
조정하고 싶진 않습니다.’ 사실 이 기능은 잘 사용하지 않아서
저를 믿을 수 있을지 모르겠네요. 하지만 어디에 있는 기능인지는
보여드릴 수 있습니다. (상단 빌드 메뉴를 누르면)
여기 라이팅 정보에 라이트맵 밀도 렌더링 옵션이 있습니다. 그 밑에 라이트맵 해상도 조절도 있습니다. 마지막으로는 스태틱 메시 라이팅 정보도 있네요.
이것을 잠 눌러보겠습니다. 그러면 아까 봤던 그 창을
이렇게도 확인할 수 있습니다. 잊고 있었습니다. 라이팅 관련 메뉴가 참 많죠. 라이트맵 밀도 렌더링 옵션에서는 여러분이 원하는 이상적 밀도, 최대 밀도 등을
정해줄 수 있습니다. 솔직히 저는 기능 위치만 설명드리고 실제 기능은 직접 만져보면서
배우라고 해야겠습니다. 솔직히 여러분께 가르쳐 드릴만큼
이 기능을 사용해보질 않았어요. 밀도를 볼 수 있는 방법이
또 한 가지 있는데, (상단 뷰 모드 메뉴의)
최적화 뷰에서 라이트맵 밀도를 선택하면 이렇게… 파란색일 줄은 몰랐네요.
어쩄든 그리드를 보시게 됩니다. 여기서 제가 할 것은… 디테일 탭의 검색창에서
Overridden Light Map Resolution을 찾아줍니다. 이것은 64로 설정해주면… 밀도가 낮아집니다. (이번에는 256과 1024를 입력하면,) 이렇게 조정이 됩니다. 뭐 라이트맵 밀도 뷰에 상관없이 라이팅을 빌드할 때면
이 조정을 볼 수 있을 것입니다. – 그리고 씬 전체에 적용되죠.
– 씬 전체에 적용되죠. 질문 하나만 더 주시면
답변하거나 빠르게 다음으로 넘어갈 수 있을 것 같네요. 저는 그동안 라이트맵으로
다시 돌아가 있겠습니다. 네, 그 외에도 질문이 꽤 있네요. ‘우주에 비치는 별빛의 라이트를
표현하는 데 힌트를 좀 주실 수 있을까요?’ – 어… 포스트 프로세스요.
– 포스트 프로세스요? 네, 포스트 프로세스를 사용하세요. 그러니까 사실 생각해보면 포스트 프로세스를 써서
거리가 얼마나 떨어져 있는지로 조절을 하는거죠 -네, 그렇죠.
– 그리고 체크박스를… 네, 그렇게 블룸과 넘 등을 조정할 수 있습니다. 또 일부 설정도 조정할 수 있겠죠. 왜냐하면 그 시점에는 아마 많은 분들이
현실속 비율 등을 사용하고 계실테니 항상 그게 최고의 필수 선택지라고는
생각하지 않습니다. 특히 이렇게 엄청나게 거대한 규모의
월드를 가진 게임의 경우에는 이런 디테일을 잃기 시작하게 됩니다. 특히 다이내믹 라이팅이나
디스턴스 같은 것에 그렇죠. 다이나믹 디렉셔널 라이트에
실제 값을 직접 적어넣기 보다는 슬라이더로 최대값인
20,000 유닛을 입력하고요. 그냥 실제로 보여드리겠습니다. 우와, 이건 무슨 맵인가요? 아, 아까 봤던 그 맵인데 그냥… – 하하, 속았네요.
– 넵. 무슨 설정으로 가시는 거죠?
라이트 밀도인가요? 네, 제가 뭘 잘못 만졌는지는 몰라도
분명 아까는 제대로 작동했는데 밀도가 굉장히 올라가 있기 때문에
한쪽 끝은 밝은 적색이 되어야 하거든요. 문제가 뭔지 모르겠네요.
일단 빠져나오겠습니다. 좋습니다. – 다음 질문은 뭔가요?
– 보겠습니다… 맨 위에서부터 보면… 누군가 캐스팅 시네마틱 섀도우에 대해
물어보셨네요. 이것을 활용하는 방법은
두 가지가 있습니다. 여기서는 제가 만들어 둔 CSM 설정을
활용해 보겠습니다. 여기에 연관된 것이 두 가지가 있는데
다이나믹 인셋 섀도우와, 아마 WilliamK님이 주신 질문 같은데, 다이내믹 인셋 섀도우의 역할은… 어떤 오브젝트가 사용하는 라이트의
다이내믹 섀도우 디스턴스 밖에 있더라도 여전히 그림자가 생기도록 해 줍니다. 그 대상으로는 무버블 액터 등이 있습니다. 그래서 이 수치를 0으로 설정해두면 이 거리에서는 적용되는
다이내믹 라이팅이 없지만 캐릭터의 그림자는 여전히 보입니다. 제가 여기서 이 수치를 높여보면 다시 그림자가 돌아오는 것을
보실 수 있습니다. 이렇게 빠르게 사례를 보여드렸습니다. 이번엔 시네마틱 섀도우입니다. 시네마틱 섀도우의 역할은… 일단 여기에 포인트라이트가 있다고
해 봅시다. 그리고 여기서 활성화를 해주면
무버블로 설정이 됩니다. 그런 다음… (Cast Shadow from Cinematic을
찾아준 다음) 여기에 체크를 해 줍니다. 이것의 역할은
역시 이 플래그가 체크된 모든 액터가 라이팅 채널 외 다른 영역에 영향을 줄 수 있는
씬뎁스 같은 것을 신경쓰지 않고 이 라이트로부터 그림자를
드리우도록 만드는 것입니다. 딱 이름처럼 시네마틱 제작 등에
굉장히 유용하게 사용되는 것이죠. – 딱 이름같네요.
– 그럼요. 또 다른 질문이 있네요. 건축 시각화의 야외 라이팅 문제입니다. 저는 그냥 여기에 좋은
포스트 프로세스 볼륨도 있고 다시 한번 말씀드리지만
저는 실제 라이팅 아티스트는 아니므로 좋은 레퍼런스나 괜찮은 견본을
찾아보는 게 좋겠습니다. 제가 라이팅이 정말 마음에 들었던
언리얼 엔진 4 게임이 있었는데 – 제목이 아마 The Park였나…
– The Park요? Funcom에서 만든거요? 내부에서 진행했던 게임 잼에서
좋은 평가를 받았던 게임으로 기억하는데요. 네, 게임 스토리와 느낌은
전체적으로 Secret World와 비슷한데 게임 속의 라이팅이 정말 굉장해요.
정말 예쁘게 렌더링이 되었죠. 그리고 포스트 프로세스도 많이 사용해서 저도 게임에서 어둠에 적응한 시야나
야간 씬에 많이 참고합니다. 멋진 것들이 정말 많아요. 그래서 연구용으로 굉장히 좋을 것 같습니다. 이렇게 건축 시각화의
야외 라이팅 관련 질문도 마쳤습니다. 제가 알기로는 건축 시각화 야외 씬의 경우
주로 이렇게 작은 씬 안에 폴리지를 비롯한 모든 것을 다 몰아넣는데, 이 뒤에 보이는 것처럼 거대한 야외 랜드스케이프를
형성하는 경향을 보이지는 않습니다. 그런 경우 라이트맵을 회피하는 것은
추천하지 않습니다. 그냥 라이트맵과 스태틱 라이팅을 어떻게 사용할지 관리하는 방식으로
접근하는 것이 최적이라고 봅니다. 라이팅 통계 툴을 사용해 라이트 빌드를 가장 오래 걸리게 하는 요인은 무엇인지, 실제로 개선할 수 있는 사항은
무엇인지 살펴보면서 거기 집중할 수 있도록 라이트매스 임포턴스 볼륨을
반드시 사용하도록 합니다. 또한 인다이렉트 라이트매스 포탈도 있어서 실제로 포톤을 집중시킬 수 있는
윈도우들을 활용해 더 나은 간접광을 얻을 수도 있습니다. 실제 사례를 보여드리지는 않았지만 Daniel이 포럼에 관련 자료를
올려두었습니다. 네, Daniel은 굉장히 양질의 자료를
공유해주곤 합니다. 거의 다 멋진 것들이예요. 또 다른 것 하나도 다들 사용할 수 있는
일반적인 기능입니다. 좌상단 폴리지 툴에서 스태틱 메시 필터 설정을 찾아서 추가한 다음 Pilar_50x500을 찾아
‘+여기에 폴리지 드롭’으로 드래그합니다. 여기 있는 옵션 중에
라이트맵 해상도가 있는데 기본 설정으로는 비활성화 상태입니다. 어디에 있더라… 멋진 라이팅을 사용한 또 다른 게임은
뭐가 있냐고 알려달라는군요. 그런 질문이 들어왔어요. 저는 게임을 그렇게 많이
플레이하지 않아서요. 게임 개발자가 겪는 전형적인 문제를
보여주고 계십니다. 이제 집에서 애도 키우고 있어서 게임을 할 수 있는 자유시간이
굉장히 제한되어 있어요. 저는 레지던트 이블 7을 추천하겠어요. 왜냐하면 프리뷰에서 보여준 라이팅이
아주 좋았거든요. 좋아요, 계속 넘어가서
회색으로 처리가 되었네요. 캐스트 스태틱 섀도우는 필요하지 않으면
비활성화 해 줍니다. 만약 땅에 스태틱 섀도우를 가지는
폴리지가 움직인다면, 나무와 풀이 하늘하늘 흔들린다면
비활성화 해주세요. 보통 풀의 경우에는
이것을 비활성화합니다. 메시를 비롯해서
계산할 것이 많거든요. 하지만 여기 있는 또 다른 옵션인
라이트맵 해상도는 기본 설정으로 비활성화가 되어 있습니다. 이는 즉 여러분이 폴리지에
어떤 클러스터 설정을 하셨든, 모두 해당 메시의 기본 라이트맵 해상도를
사용한다는 뜻입니다. 그러니 이 클러스터로 다시 돌아오면 월드의 크기나
여러분의 목적에 따라 이 값을 기본값 8로
더 낮게 설정할 수 있습니다. 그 값보다도 더 낮게,
대략 4까지 낮출 수도 있습니다. 역시 월드의 크기나
뭘 하고 싶으냐에 따라서요. 네, 지금까지 많은 것을 다뤄봤고
이제 남은 시간이… 네, 아쉽지만 이젠 시간이 다 됐네요. 하지만 말씀드렸듯이
여기 질문이 약간 더 있고 채팅창에도 질문이 더 있네요. 저는 여기 채팅창에서 질문을 뽑고 포럼에서도 질문을 선정해
답변을 드리고 있습니다. 어쩌면 후속편에서
계속 답변을 다룰 수도 있을 것 같아요. – 네, 이 라이팅이라는 것이…
– 다뤄야 할 게 정말 많네요. 1시간 ~ 1시간 반만에
끝낼 수 있는 것이 아닙니다. 지난 1주일 정도의 기간 동안
여러분의 요청을 모아서 살펴볼 주제와 사례들만 해도
정말 다양하고 많습니다. 이번 스트리밍이 많은 분들께
도움이 되었다면 좋겠습니다. 제 생각에 전체적으로 정보를
많이 다뤄본 것 같습니다. 그리고 여러분이 뭘 보고 싶으신지
의견을 수렴해보니 라이팅의 장르를 다루는 스트리밍을
해 주는 것도 좋겠다는 결과가 나왔습니다. 다양한 장르의 게임들의 라이팅을 다루며
이전에 봤던 기본적인 형태부터 유별난 것으로는 생존형 호러 게임,
사람을 놀래키는 호러 게임, 거대한 오픈월드와 소형 건축 시각화까지
다양한 장르들을 다뤄보는 것입니다. 이런 제안들을 모으고
또 다른 스트리밍을 준비하고 여러분이 포럼에 올려둔 요청에
최대한 대답을 해 드리도록 하겠습니다… …네. 하지만 아쉽게도
이제 시간이 다 되었고 저희도 이제 다른 스케쥴에
참여해야 합니다. – 회의까지 달려가야 해요.
– 진짜 뛰어가야 됩니다. 여러분 모두 시청해주셔서 감사합니다. 이번 주 목요일 미 동부 시간 오후 2시
스트리밍에서도 다시 뵈었으면 좋겠습니다. Nick Darnell과 제가 4.15 프리뷰에 대해
스트리밍을 진행할 것입니다. 아주 재미있을 것입니다. 모두에게 보여드리려고
슬라이드쇼까지 준비했대요. 다음주 화요일에도 또 다른
트레이닝 스트리밍을 진행할 예정입니다. 기억하세요, 저희는 미 동부 시간 기준
매주 화 목요일 오후 2시에 스트리밍을 진행합니다. 네, 제가 드릴 말씀도 여기까집니다. 그리고 이번 주 목요일에는
이 곳 랠리에서 언리얼 엔진 4 모임이 있습니다. 저도 주최자로 참가하니
참가자 분들은 한 번씩 인사해 주세요. 오늘은 여기까지 하겠습니다, 팀. 이렇게 나와서 멋진 라이팅 테크닉에 대해
말씀해 주셔서 정말 감사합니다. – 다음에 또 뵐 수 있기를 바랄게요.
– 한번 보죠. 이렇게 제 마음을 아프게 하시네요.
한번 보죠. 그럼 여러분, 한번 보겠습니다.
다음에 또 뵙겠습니다. cafe.naver.com/unrealenginekr


46 thoughts on “Lighting Techniques & Guides | Live Training | Unreal Engine

  1. not related but I recently updated to 4.13.2 and my ctrl+end shortcut doesnt snap to grid , im following your tutorial on youtube , the episode 2 – geometry layout

  2. This was one of the most content-rich streams you guys have done. Try to do more of these rapid-fire answer dumps in the future.

  3. Hey there, I need huge help with a shading issue that's completely blocking me from continuing my work.
    Forum post:
    https://forums.unrealengine.com/showthread.php?135214-Shading-issues-with-Blender-made-static-meshes
    Any advice?

  4. Hello and thanks for these awesome tutorials. One question about BSPs vs meshes if it comes to properly lighting your scene. In your older tutorials (Getting started), the tutor was using BSPs for basic geometry such as walls and ceilings. Is there a difference between using BSPs or meshes in your levels? Thanks!

  5. What does shadow casting samples do in particular ? I can't seem to understand its main purpose and the way it is visualized.

  6. I haven't touched UE4 because I'm in the process of building my own PC, my laptop burns up using UE4, so seeing all this makes me happy and very thankful

  7. to bad about the light bleed, i was kinda hoping for a solution there. i have a inner wall, creating an alcove, on the left side, where the light is coming from, it looks great no issues at all. Cause its all lit.

    From the other side however, i get a light bleed on the roof coming from that alcove wall.
    i have remade the geometry, re-uv mapped it, and tried increasing the lightmap resolution, and i've tried from 64 to 1024 but still its there, without any difference between lightmap the resolution.

    As for the modeling the room and floor are really compressed in size to perfectly fit with the walls so there's no excess geo to give this light bleeding as it does in this video at 22:07.

    I've tried other tutorials, read the wiki as well as forums, but there's little to nothing about this.

  8. I am desperately trying to figure out how to project a light pattern like those projection nightlights. Or GOBO lighting. Almost like the effect you have going in the thumbnail…Please help. I have reached out on the forums and found nothing so far and no responses. Can this even been done?

  9. "so many lighting things"
    .. does anyone have an actual count thing of sorts? :p
    light menus
    light menu items
    light settings
    each and total n stuff.. would be cool with counts 🙂
    – give us achi points as we progress……. ?! 😀 u know its smart do it do it do iiiiit 😛 <3

  10. yall talk to much and not showing how to use the lighting tools. nobody cares about your website how do you do it? how did you get your scene pitch black you just open a new scene without showing from the beginning terrible..

  11. how do I make lighting inside a large closed space? The inside gets really dark and hard to see. I've tried using the point, spot and emission materials, but the emission materials take up the whole screen. Is there a way to light up a large closed space (No outside light) and keep emission materials without taking up the whole screen?

  12. in unreal engine 4.17.2 it is no detail setting to change colour of point light ????????
    I am very disappointed

  13. I like the content and I'm sure a lot of it will be really useful but it'd be nice if it started slower like the differences between lights and such. I know the documentation has that and I get the basics but hearing a pro go from top to bottom would just be really nice I think. Not take up a ton of time but just quickly blurt out some basics for 5 or 10 minutes and gradually build on that instead of starting with something so specific and advanced. That's the problem I have with a lot of these streams, maybe I'm just too noob when it comes to this stuff but there's so much terminology. Cascaded shadow maps, distance field stuff, three types of lights, one that bake lightmap one that is dynamic and one that is both and all 3 effect objects 3 different ways depending on what the object is set to, etc. Anyone know what the best video resource for explaining all of this is?

  14. Would be nice is they had a "lighting artist" teach lighting techniques. Still a good tut tho. thanks.

  15. thANK you guys sincerely i am a student of U. i havent done much yet. but i appreciate your behaviour ! thanks

  16. Thank you for this video, it is very helpful, as person which done only basic lighting course for UE4, that expands my knowledge very well.

  17. Thanks for sharing guys, tons of little tidbits of knowledge to soak up in this vid. really appreciate content like this!

  18. I may switch to unity- or somewhere else,,its really SAD when a game engine TRIES to force users to ugrade , for the sake of raytracing, bc their video card isn't quite up to the task, thats sheer robbery andI"m not having it.

    Amd will be my next card, sick and tired of being told to spend more hard earned money to get rays. I can get the rays I need with a older amd card, with sure a slight performance hit but at least amd isn't forcing me to upgrade to a VERY expensive card.

  19. I need help my rooms I make arent dark when I close them.. I want it to be sunny but when I go in the box without any windows and stuff I want it to be dark but I can't fix this

  20. Why don't you address the issue with the lightind build that will not buid? There are posts regarding this issue going back to 2014 and it still persist in the newer versions 4.21.2 , 4.22.3. It says "Lighting build was successful" and then In tells you "Lighting needs build". You've been coming out with new versions of the engine, but ignore some of the isssues (this is not the only one), how about you stick to the same version and make it bug free.

Leave a Reply

Your email address will not be published. Required fields are marked *