유니티 정적 라이팅 이게 최선인가요– 3DS MAX 멘탈레이를 이용한 프로젝트 FM 배경 퀄리티 업그레이드 사례
넥슨 코리아 DS 실 수석연구원
유우원
넥슨 코리아 DS 실 수석연구원
유우원
3D 배경 및 테크니컬 아트 /어시스턴트
•NHN / NHN 게임즈•NPLUTO
•웹젠•동양온라인
•모바일 스타트업•스킬트리랩 UE4 강사
•현 넥슨코리아 DS 실 프로젝트 FM 재직중
게임테크 2013 / 언리얼 서밋 2014 / 유나이트 2015 강연게임데브포에버 Silverchime [AKA 치매 ]
에이콘출판사 " 언리얼 4 블루프린트 게임 개발 " 공저
간접 라이팅
Indirect IlluminationGlobal illumination
라이팅 ( 조명 )직접광Direct
Illumination
간접광Indirect
Illumination+
Image from : Wikipedia/Radiosity
라이팅 ( 조명 )
NO GIGI :
Global Illumination
+
좀더 현실적인 라이팅을 위한 그래픽 알고리듬
GI : Global illumination orIndirect illumination
반사 (Reflecion) / 굴절 (Refraction) / 음영 (Shadow) 을
시뮬레이트
좀더 현실적인 라이팅을 위한 그래픽 알고리듬 .하나 이상을 혼용하기도 함 .정확해지지만 반대급부로 시간이 더 걸림
GI : Global illumination orIndirect illumination
• Radiosity• Ray Tracing• Photon Mapping• IBL (Image Based Lighting)…• ETCs
Mental Ray 의 GI 방식
파이널게더Final Gather
포톤 매핑Photon
Mappinig+
FG GI
Mental Ray 의 GI 방식
파이널게더Final Gather
포톤 매핑 (GI)Photon
Mappinig+
Image from : http://blog.digitaltutors.com/indirect-illumination-final-gather-vs-global-illumination/
Mental Ray
Mental Ray 란
• 독일 Mental Image 사가 만들어낸 프로덕션 퀄리티의 렌더러
• 3DS MAX, MAYA, SOFTIMAGE ,CATIA 등 여러 3D 제작 어플리케이션에 탑재됨 .
• 2007 년에 NVIDIA 사가 인수 .
Mental Ray 란Hulk / Tron : Legacy / Spider man 3/ The Matrix Reloaded & Revolutions, / Star Wars Episode II: Attack of the Clones, / The Day After Tomorrow 등에 사용
Mental Ray 의 장점
차근히 설명해 드릴께요 ㅠㅠ
• 포톤매핑을 이용한 물리기반 글로벌 일루미네이트 시뮬레이션
• 멘탈레이 라이트를 사용하여 여러 에어리어 라이트의 옵션 변경이 가능
Mental Ray 의 장점건축 렌더링 등 잘나가던 한 때 ( 물론 브라질 /멕스웰렌더 / 렌더맨등 더 한 칼 하시던 형님들도 있었어요 )
초기엔 맥스 스캔라인 렌더랑 멘탈레이 게시판 배틀하던 시절도…
그리고… V-Ray 의 등장
으아아아
Chaos GroupV-Ray
그리고… V-Ray 의 등장
• 사용하기 쉬우면서도 높은 퀄리티
• 신크기 대비 메모리 사용량 적음 , 수많은 서드파티 플러그인 지원 등의 문제로 많은 사람들이 뷔레이로 옮겨감 .
• 멘탈레이에 관한 수많은 정보나 튜토리얼들이 사라져감 .
그럼에도 왜 멘탈레이를 ?
• Vray 를 사장님이 안 사주실 때 .
$1040 정도 . 지브러시가 $795 니 고민되기는 하는 가격입니다 .단지 라이팅맵 하나 구우려고 구매신청서를 올리기엔 조금 부담이…
그럼에도 왜 멘탈레이를 ?
그럼에도 왜 멘탈레이를 ?
• 맥스는 정품이 있으니까 .
뷔레이는 없어도 맥스는 정품이니 내장 기능을 가능한 사용해 보자 .
그래서 해보았습니다 .
유니티와 3DS MAX 라이트의 비교
- 감쇠 (Attenuation) 의 유무 .
- 감쇠란 :
빛이 어디서부터 어떻게 감소하여 사라지는지의 설정 (Decay)
유니티와 3DS MAX 라이트의 차이점
감쇠가 왜 필요한데 ?
• 횃불 /모닥불 등 로컬라이트의 주변 강도와 채도가 강하면서도 복도 너머까지 영향을 주기 원하지 않는 경우 등 .
• 특히 실내조명 설정시 레인지와 파워만으로는 세밀한 요구사항에 맞춰 설정하기 힘든 경우가 있습니다 .
유니티와 멘탈레이 라이트의 비교
Unity Pointlight
유니티와 멘탈레이 라이트의 비교
Mental Ray Pointlight
Inverse Square
나 거의 안보임
유니티와 멘탈레이 라이트의 비교
프로젝트 시연
Shadow Color
이외로 그림자 칼라톤을 지정하고 싶다는 요구가 있었습니다 .
숲 속 , 풀 그림자 등
Shadow Color
신 엠비언트 칼라를 변경하는 방법도 있지만 이 경우 모든 다른 텍스쳐의 색감이 영향을 받음 . 특별히 왜곡되는 것을 바라지 않는 경우
그림자 색은 바꿨는데… 고기가… !
왜 외부라이팅맵이 필요하죠 ?
물론 유니티 비스트 라이트도 직관적이고 사용하기 편리하지만 ,
때로 여러 가지 요구를 다 맞추기에 역부족일 때가 존재 .
왜 외부라이팅맵이 필요하죠 ?물론 유니티 라이트도 직관적이고 사용성이 좋지만 , 여러 가지 요구를 다 맞추기에 역부족일 때가 존재 .
Ex ) 따뜻한 냉커피 , 끓는 팥빙수…
왜 외부라이팅맵이 필요하죠 ?
멘탈레이의 두가지 간접광 솔루션 : GI / FG
멘탈레이의 두가지 간접광 솔루션 : GI / FG
Image from : http://blog.digitaltutors.com/indirect-illumination-final-gather-vs-global-illumination/
Global Illumination : GIPhoton mapping
글로벌 일루미네이션
Global Illumination : by Photon mapping
Image from : http://blog.digitaltutors.com/indirect-illumination-final-gather-vs-global-illumination/
Global Illumination : by Photon mapping
Global Illumination : by Photon mapping
Energy : 발사될 때의 에너지Decay : 에너지 감소율GI Photon : 광원에서 발사할 포톤의 수
• 실제 포톤의 이동거리에 따라 에너지가 감소함• 광량만이 아니라 타겟과의 거리도 문제가 됨• 이동거리는 시스템 유닛을 따라 계산합니다 .
반드시 시스템 유닛 단위를 맞춰주세요 .
시스템 유닛이 다르면 조명 결과물이 다르게 나올 수 있습니다 !
GI : Photon mapping
*저는 멘탈레이 렌더링에서 cm 를 주로 이용합니다
포톤이 이동하며 에너지를 잃어 어두움
GI : Photon mapping
포톤의 이동거리가 짧아 에너지를 더 많이 가지고 있으므로 같은 라이트이지만 더 밝아짐
GI : Photon mapping
GI 의 장점• 물리적으로 정확함 .
• 적정량의 포톤을 사용할시 GI 계산이 상당히 빠르다 .
GI 의 단점• 다소 얼룩이 있음 .• 얼룩을 없앨정도의 포톤 매핑을 하려면 어마어마한 수의 포톤을 날려야
함 . 장점이 사라짐
• 포톤 방출 수백만 x 라이트 수십개 = !?
Photon 2,000,000
GI 의 단점• 다소 얼룩이 있음 .
• 얼룩을 없앨정도의 포톤 매핑을 하려면 어마어마한 수의 포톤을 날려야 함 .
장점이 사라짐
• 포톤 방출 수백만 x 라이트 수십개 = !?
GI 계산이 끝나지 않아…
FG : Final Gather
파이널 게더
FG : Final Gather
• GI 와 완전 반대 .
• [ 광원 ] 이 아닌 [ 카메라 ] 에서 .
• 포톤이 아니라 프로브 (?) 를 발사 이것을 FG Point ( 파이널 게더 포인트 ) 라 합니다
FG : Final Gather
직접광 상황 Direct Illumination
FG : Final Gather
( 카메라에서 ) FG 포인트 방출
FG : Final Gather
FG 포인트에서 레이를 방출 , 정보를 모음
FG : Final Gather
FG 포인트 샘플링
FG : Final Gather
샘플링 보간
FG : Final Gather
비교
FG 의 장점
• 빠르다 .
• 깨끗하다 . (노이즈 적음 )
• 시간대비 그럴싸한 결과물을 보여준다 . 심지어 대충 설치한 조명도 볼만하다 .
보이는데만 이쁘면 되는 거 아닌가요
FG 의 단점• 그럴싸하지만 FAKE( 구라 ) 다 .
• 카메라에서 프로브를 날려서 하는 것이라 ( 마치 SSAO처럼 ) 보이지 않는곳에 대한 정보는 없음 . 정확하지 않음 .
• 약점 극복을 위해 Diffuse bounce 를 작동시키고 FG 포인트 수를 늘리면 속도의 장점을 잃음 .
옵션을 올렸더니 렌더링 12 시간…
FG+GI
이 두가지를 함께 사용하면 ?
Image from : http://blog.digitaltutors.com/indirect-illumination-final-gather-vs-global-illumination/
FG+GI
• 빠른 조명 계산 : 파이널게더 페이즈에서 얼룩을
없애므로 포톤수를 적게 해도 OK
• FG 의 약점인카메라 사각도 포톤매핑이 되어 있으므로 정확 . GI 가 작동하면 시간을 많이 소모하는 Diffuse bounce 는 무효화 .
• 서로의 장점만을 부각 .
• 함께 사용하면 시간과 품질에서 모두 좋은 결과를 얻을 수 있음
FG+GI
Image from : http://blog.digitaltutors.com/indirect-illumination-final-gather-vs-global-illumination/
유니티엔진 에서 외부 라이팅맵 사용하기
•조명은 스탠다드의 mr omni, mr spot 위주로 세팅
•시스템 유닛 적절히 되었는지 꼬옥 확인 .
•Exposure Control 은 사용하지 않는다 .
•Gamma Control [ ON ].
맥스에서 멘탈레이 라이트 세팅
맥스에서 멘탈레이 라이트 세팅
라이트는 mr Area Spot 타입 .
맥스에서 멘탈레이 렌더링
Global Illumination
포톤 500,000 개
Final Gather
Draft ( 최저사양 )
렌더링 버켓이 움직일때 대강 상황을 본다던지
특정 부위 (Region) 만 빨리 렌더링을 걸어서 라이팅 상황을 신속하게 알아내고 변경하는것이 가능해서 편리합니다 .
맥스에서 멘탈레이 렌더링
유니티엔진에서 사용하기 위해
• 정적 오브젝트를 하나의 오브젝트로 Attach. 모든 매터리얼은 멀티 - 서브 매터리얼로 세팅됨 .
• 2 번째 UV 를 곱게 펴 둔다 .
2 번째 UV 채널을 폅니다
ㅠㅠ
잘 펼수 있지 ? 후훗
맥스에서 멘탈레이 렌더링
구워진 Lightingmap
0 키를 눌러 베이크 메뉴를 열고
2nd UV 채널에 Lightingmap 을 베이킹합니다
맥스에서 멘탈레이 렌더링
• 베이킹 시 EXR 32 비트 RGB 로 추출 . 알파채널은 제외합니다 .
• RGBA 로 추출하면 그림자(Shadow) 영역이 파랗게 보인다고 함 .
• 굳이 해보지는 않았음 .
유니티로 신 오브젝트를 임포트합니다
Generate Lightmap UV 는 언체크 해주세요
Bake Scene 을 눌러 라이트를 베이크합니다
Single Lightmap 모드로 라이트 빌드를 한번은 해야 라이트맵 슬롯이 생깁니다 .
들여온 EXR32 라이트맵을 설정합니다
임포트 타입은 Lightmap / 밉맵은꺼주세요 . 압축은 적절히 .
커스텀 라이트맵 지정하기
베이크한 뒤 만들어진 슬롯에 준비된 라이트맵을 끌어다 넣습니다
트러블슈팅
두 가지 문제가 생겼습니다 .
1. 생각보다 너무 어둡습니다 .
2. Seam 이 찢어져 있습니다 .
Seam 틀어짐 수정
Object 를 선택 후 Lightmapping 윈도우의 Object탭을 열면
Atlas 항목에 트래쉬 값이 들어가 있습니다 . Offset X/Y값을 모두 ‘ 0’ 으로 다시 지정해 줍니다 .
Seam 틀어짐 수정
UV 가 이제 제대로 들어가 있습니다 .
포토샵으로 라이트맵 수정하기
우클릭해서 Show in Explorer 로 열어서 라이트맵 파일을 포토샵으로 가져갑니다
밝기 수정
Image>Adjust>Exposure 메뉴에서
Gamma correction 항목에 2.2값을 넣어 줍니다 .
꽤 밝아질겁니다 . 정상입니다 .
밝기 수정
세이브하고 돌아오면 정상적으로 보입니다 .
유티니가 라이트맵을 가져올때 리니어로 변환과정을 거치므로 미리 라이트맵에 감마값 2.2 를 곱해주어야 역산시 정상으로 보이게 됩니다 .
렌더링과 비교
Unity
Mental RayRender
간접광 대조
Mental RayMinimal FG
LOW GI
BeastFree Version(NoBounce)
FM 프로젝트 적용 사례
MAX 뷰포트
FM 프로젝트 적용 사례
Unity Engine 4.XRed Fog + Godray
3DS MAX MR 렌더링
멘탈레이도 좋지만
유니티 GI 를 그래도 써야 하는데 ,좀 더 낫게 할 방법은 없는거야
[ 비스트 확장 옵션 사용하기 ]
왜 없겠습니까
비스트 확장 옵션 사용하기
비스트는 기본 라이팅 방식 외에 XML 파일을 라이트맵 폴더에 넣어 줌으로서 여러 가지 추가옵션 사용이 가능합니다 .
… 문제는 이 XML 명령이 대단히 접근하기 힘들다는것 .
비스트 확장 옵션 사용하기문제는 이 XML 명령이 대단히 접근하기 힘들다는것 .
뭐래
비스트 확장 옵션 사용하기
이를 도와주기 위한 GUI 형식의 익스텐션이 유니티 에셋스토어에 등록되어 있습니다 .[Lightmapping Extended]
https://www.assetstore.unity3d.com/kr/#!/content/6071
비스트 확장 옵션 사용하기익스텐션을 등록하면 다음과 같이 XML 을 직접 편집하지 않고도
기존 라이트맵 윈도우 인터페이스처럼 익스텐션을 사용할 수 있습니다 .
비스트 확장 옵션 사용하기큰 특징은 다음과 같습니다 .
-2 차 GI 를 설정할 수 있다 . -GI 방식이 Final gather 뿐 아니라 / Path Tracer / Monte Carlo 등이 사용 가능하다-Environment 탭에서 IBL (HDRI 이미지베이스드라이팅 ) 이 사용 가능하다
비스트 확장 옵션 사용하기
우연인지 이름도 BEAST -_-;
( 裏 )CODE
Copyright © 2007-2015 khara, inc.
BEAST
비스트 확장 옵션 사용하기
사용 예제 I-1
기본 FG Path Tracer
비스트 확장 옵션 사용하기
사용 예제 I-2
기본 FG Monte-Carlo
비스트 확장 옵션 사용하기
사용 예제 II-1
기본 FG 1st : FG / 2nd : Path Tracer
비스트 확장 옵션 사용하기
사용 예제 II-1
1st : FG / 2nd : Path Tracer Mental Ray
결론
- 외부 라이트 렌더링의 장점
•렌더링 퀄리티를 거의 그대로 가져올 수 있습니다 .렌더링만 잘 세팅하면 게임 광빨이…
•조건에 맞는 다양한 라이팅 옵션을 사용할 수 있습니다 .
•멘탈레이는 따로 안 사도 됩니다 .
결론
- 외부 렌더링의 단점
•멀티매터리얼 관리의 복잡함
•2nd Custom UV 채널을 펴는 수고…
물론 여러 UV 서드파티 프로그램을 활용할 수도 있습니다 .(Flatiron 등 )
MAX 의 UV 기능도 상당히 편해진 편입니다 .
결론
- 외부 렌더링의 단점 2
배경으로 사용할 [ 하나의 스태틱 오브젝트의 버텍스 수 ] 가
65535 이상이면 유니티에서 강제로 파트분리가 이루어집니다 .(16 비트 바이너리 한계 )
따라서 작은 분리된 스테이지 로 구성된 경우에 유효합니다 . 오픈월드 등 큰 필드에서는 사용이 곤란합니다
P.S.
-GI 옵션들은 살짝 비슷해요
굳이 멘탈레이가 아니라 다른 엔진 / 렌더러에서도 작동하는 기본만 알면 유용하게 사용할 수가 있습니다
P.S.
-Mental Ray 의 재발견
최근에는 뷔레이덕에 많이들 사용하지 않으시지만 살펴보니 멘탈레이도 좋은 렌더러 입니다 .
매년 높아진 가격만큼 추가되어 제공되는 기능들을 적극 도입해서 사용해보는건 어떨까요
P.S.2
ShaderFXShaderFXShaderFXShaderFX
뭐가 좋을지 몰라서뭐가 좋을지 몰라서일단 다 넣어봤어일단 다 넣어봤어
Iray Iray Iray Iray
노드기반 매터리얼노드기반 매터리얼노드기반 매터리얼노드기반 매터리얼
고맙고 좋은 건 알겠는데고맙고 좋은 건 알겠는데……MAX Creation GraphMAX Creation GraphMAX Creation GraphMAX Creation Graph
P.S.2
이후에도 기본 탑재기능들을 사용
편리하고 유용한 사례들을 준비해볼까 합니다 . ^^
+@ 요즘 Substance 가 핫하다죠 ?
감사합니다 .
終