VRChat 마이너 갤러리 저장소

제 목
강좌/정보 월드 최적화 기본 강좌
글쓴이
xx
추천
20
댓글
11
원본 글 주소
https://gall.dcinside.com/vr/64671
  • 2018-10-21 06:17:45
  • 183.96
							

월드 최적화에 대한 기본 가이드는 월드 퍼블릭화할 때 VRC에서 안내해주는 Jetdog의 월드 최적화 가이드가 따로 있습니다.

하지만 영문으로 작성되어 있어 읽기 힘든 사람도 있을 것이고, 읽어도 잘 이해가 안되는 사람도 있을 겁니다.

이하의 강좌에선 작성자인 제가 이해하고 있는 내용을 기반으로, 반쯤은 번역 삼아 강좌를 작성합니다.

전공자가 아닌 관계로, 잘못 작성되어있는 내용이 있을 수 있으니, 발견하실 경우 댓글을 남겨주시기 바랍니다.


참고자료 :


Jetdog8808의 월드 최적화 가이드 : https://vrcat.club/threads/world-optimization-2.114/

Xiexe의 Lighting 튜토리얼 : https://vrcat.club/threads/xiexes-lighting-tutorial-how-to-get-good-at-baked-lighting-101.2081/


1. 안 움직이는 물체는 스태틱으로 체크하자


간단히 말해서 움직이지 않는 물체에 대해 이 스태틱이라고 하는 녀석을 체크를 해두면, 연산을 그만두게 됩니다.

연산이 줄어들면? 월드가 가벼워 집니다.


아무튼 이 오브젝트가 움직이지 않는 거 같으면, 상태가 변하지 않는 것 같으면 죄다 스태틱으로 체크해버리도록 합시다.

이 설정은 후에 설명할 베이크드 라이팅이나 오클루젼 컬링에도 사용됩니다.




인스펙터에서 스태틱을 간단히 체크할 수 있어요.

옆에 세모를 누르면 여러 종류의 스태틱을 보여주는데...

거기까진 따로 안 다루겠고 그냥 Everything으로 두도록 합시다.



2. 리얼타임 라이트를 줄이자.


월드가 무거워지는 가장 큰 원인은 단연코 빛, 정확히는 리얼타임 라이트 때문입니다.



유니티 라이팅 시스템엔 3종류가 있어요.


리얼타임 / 믹스드 / 베이크드


리얼타임 : 실시간으로 연산해서 뿌린다. 렉 걸린다. 따로 뭐 설정해줄 필요 없이 깔끔함.

베이크드 : 미리 연산해놓고 텍스쳐에 입힌다. 빛이 못 움직인다. 움직이는 물체에 빛을 못 비춘다. 움직이는 물체의 그림자가 없다.

믹스드 : 세부 모드에 따라 다르지만. 둘을 반반씩 섞어서 쓴다.


간단히 설명하면 리얼타임이 제일 무겁고, 믹스드가 중간, 베이크드가 제일 가볍다고 보시면 됩니다.

퀄리티는 역순이라고 할 수도 있고 아니라고 할 수도 있어요.


게임 탭에서 Stats를 클릭하면 드로우콜이 얼마나 발생하고 있는지를 Batches라는 숫자를 통해 확인할 수 있습니다.

사진에서는 과도한 리얼타임 라이트의 사용때문에 드로우콜이 심각하게 부풀어있는 상황이죠.


우리는 최적화를 하고 싶으니까 베이크드 라이팅을 써보도록 하겠습니다.


(1) Lighting 탭으로 가서 (인스펙터 옆에 있음) Auto Generate를 꺼준다.

(2) 월드에 배치된 Light의 Mode를 Baked로 설정한다.

(3) 움직이지 않는 물체를 모두 Static으로 체크해준다. (여기서는 특히 Lightmap Static일 필요가 있다. 베이크드 라이트는 Static 에만 적용된다.)



위의 과정을 거쳐서 라이팅을 베이크드로 바꿔준 모습이에요. 드로우콜이 1/10 정도로 줄어든 것을 확인할 수 있습니다.

빠르게 베이킹을 하기 위해서 품질을 낮췄기 때문에 상당히 저품질의 빛이 되었습니다.

하지만 다소 설정을 바꿔서 고품질로 베이킹을 해보면.....



이렇게 상당히 멋진 빛을 만들어낼 수 있습니다. 오히려 움직이지 않는 물체에 한해서는 리얼타임보다도 더 높은 퀄리티의 빛을 만들어낼 수 있습니다.

별 다른 사양도 잡아먹지 않고서요. 대신 퀄리티를 너무 올릴 경우 월드의 용량이 올라가니, 다운로드 시간이 조금 걸릴 것입니다.


이렇게 좋은 베이크드 라이팅이지만 본질적으로 움직이는 물체에 빛을 비추지 못한다는 단점이 있습니다.

이를 해결하기 위해선 [라이트 프루브]라고 하는 애를 배치해줘야합니다. 안그러면 아바타만 어두컴컴해질 수가 있습니다.


하이어라키에 우클릭하고 Light->Light Probe Group을 누르면 라이트 프루브 그룹을 2x2x2의 모양으로 배치해줍니다.


노란색 공 4개가 보일텐데 그게 바로 라이트 프루브입니다.


이제 인스펙터에서 Edit Light Probes를 클릭한 뒤 이 노란 공들을 클릭하면 파란색으로 선택되는 걸 확인할 수 있습니다.

Ctrl+D로 선택된 라이트 프루브를 복사할 수 있고, 오브젝트 옮기듯 움직여서 배치할 수 있습니다.


이 라이트 프루브는 해당 위치에 물체가 있을 경우 어느 정도의 빛을 받을 지 미리 계산해서 저장해놓는 역할을 합니다.

따라서 움직이는 물체가 갈만한 곳, 즉 플레이어들이 돌아다닐만한 곳에 적당히 배치하면 됩니다.

배치되지 않은 틈새에는 그 근처에 있는 프루브의 값을 적당히 섞어서 쓰게 됩니다.


너무 많이 배치하게 되면 리얼타임 라이트마냥 연산이 늘어나게 되니 주의.



효율적이진 않지만 너무 귀찮으면 이런 식으로 바둑판 배치를 하는 것도 방법입니다.


이러면 이제 움직이는 물체도 빛의 영향을 받게 됩니다.


완벽하진 않지만 떠다니는 큐브가 빛의 영향을 일부 받는 것을 확인할 수 있습니다.

하지만 이 큐브에 그림자를 주는 것은 불가능합니다. 베이크드 라이트를 쓰는 한은요.


3. 오클루젼 컬링


어떤 월드는 너무 큽니다. 항상 작고 가벼운 월드만 만들어 즐길 수 있다면 좋겠지만 작은 맵만 하는 건 재미없잖아요.

이런 넓은 월드에서 모든 것을 연산하는 것은 상당히 낭비입니다. 눈 앞에 보이는 것만 연산하면 그만입니다.

유니티에선 이 선택적 연산을 자동으로 해주는 오클루젼 컬링 기능이 있습니다.

다만 이미 충분히 작고 좁은 월드에선 이 기능을 사용하면 오히려 성능을 저하시킬 수도 있으니 주의하세요.


(1) 인스펙터 옆의 오클루전 탭을 찾아서 클릭합니다. 없다면 Window->Occlusion Culling을 클릭합니다.

(2) 숫자를 하나도 신경쓰지 말고 맨 밑의 Bake 버튼을 누릅니다. 대부분의 경우에 기본값이면 충분합니다.

(3) 끝입니다. 물체 배치가 바뀌었다면 다시 새롭게 Bake를 해주면 됩니다.


그냥 이거 누르면 끝입니다. 정말 쉽죠?


1줄요약 : 안 움직이는 물체는 스태틱박고 빛은 베이크드 라이트 쓰고 맵 넓으면 오클루젼 컬링까지 ㄱ





Jetdog8808의 가이드에선 이 이외에도 몇 가지 더 소개하지만 위의 셋에 비해 중요도가 떨어지거나, 상식적인 내용이거나(폴리곤 수를 줄이세요 같은) 혹은 제가 설명하기 힘든 부분이라 따로 소개하지 않았습니다. 이 부분에 대해 궁금하시면 직접 Jetdog8808의 가이드를 읽어보시는 것을 강력히 권해드립니다. 또한 베이크 라이팅의 고퀄리티 설정 등도 다소 복잡하니 이에 대해서는 Xiexe의 라이팅 튜토리얼을 참고하시길 권해드리는 바입니다.


Jetdog8808의 월드 최적화 가이드 : https://vrcat.club/threads/world-optimization-2.114/

Xiexe의 Lighting 튜토리얼 : https://vrcat.club/threads/xiexes-lighting-tutorial-how-to-get-good-at-baked-lighting-101.2081/


이 이외에 궁금하신 점, 이해가 안가시는 점 있으시면 댓글 주시면 확인하겠습니다.

케모미아재 날아올라~ 2018.10.21 06:21:10
케모미아재 2018.10.21 06:21:11
꿀뚤 감사감사 - dc App 2018.10.21 06:27:18
Luche 그림자 안쓰면 쉽고 간편하게 가벼운 월드 가능 ㅎ 2018.10.21 06:42:37
NAME_HORANG 멋진강좌다 2018.10.21 06:49:57
5upporter 우주감사 2018.10.21 06:57:08
Wolfs 아름다워... - dc App 2018.10.21 07:10:28
zetyx 2018.10.21 08:11:38
반타블랙 개추 2018.10.21 08:27:17
경운기Cultivator 개추 - dc App 2018.10.21 08:38:33
ㅇㅇ 여러번 올라왔던 정보 아닌가 124.58 2018.10.21 10:10:31
번호 분류 제목 글쓴이 날짜 추천
71219 일반 고백받앗다....고딩한테.. 10 ㅇㅇ 110.70 2018-11-08 3
71216 일반 밑에 갤주가 쓴글 보고 대충 보완 및 의문점?올려봄 6 긴긴 2018-11-08 0
71215 일반 스토커쨩이고 뭐고 또 니들만 아는 이야기 시작하는거 같은데 2 포도초콜렛 2018-11-08 3
71214 일반 친구어케사김 3 ㅇㅇ 59.14 2018-11-08 0
71213 일반 최근 2달 내로 이렇게까지 불탄 적은 없엇는데 7 싸이킥유코 2018-11-08 0
71211 일반 소셜이미지 아이디어 추천좀 5 라그네아 2018-11-08 0
71206 일반 친추안된사람 폴리곤으로 바꾸는거 어캐해요? 3 ㅇㅇ 112.185 2018-11-08 0
71205 일반 이거 압타에 달면 스틸앤골드에서 빠요엔 당하던 한을 풀수는 있겠다 8 검은연 2018-11-08 0
71203 일반 핵쟁이들의 핵툴과 그 원리 등에 대하여 13 MANKALO 2018-11-08 2
71202 일반 내가 봤을 때 이거 그거 같아보이는데...? 6 유젤 2018-11-08 0
71200 일반 제압되었습니다 5 꼬마키` 2018-11-08 0
71199 일반 갤 터지는 법 1 ㅇㅇ 117.111 2018-11-08 1
71198 일반 갤주야 이것만 해명해줄수있어? 6 ㅈㅈ 95.154 2018-11-08 0
71197 일반 확실히 KVCG인지 뭔지 얘기 가져온 방법이 좀 잘못됐음 2 JinSilly 221.153 2018-11-08 0
71196 일반 분탕이나 치고 그렇게 할짓이 없나요? 브얄챗이나 하셈 2 ㅇㅇ 182.172 2018-11-08 0
71195 일반 방금 뭐지? 1 ㅋㅋ 45.56 2018-11-08 0
71194 일반 핵쟁이들은 걍 다른 게임 하는 애들이라 쳐야함 1 ㅇㅇ 118.218 2018-11-08 0
71193 일반 갤하면서 좆도 관심없는 글들 4개.txt 9 ㅇㅇ 178.128 2018-11-08 0
71190 일반 kvcg고 뭐고 관심가지는 이유가 뭐냐 ㅋㅋ 9 꼬마키` 2018-11-08 8
71189 일반 핵 관련해서 이것저것 정리해올게 MANKALO 2018-11-08 2
71188 일반 코딩 도와준 덕분에 광학조준경 만듬 ㅋㅋㅋ 고맙다 18 검은연 2018-11-08 18
71186 일반 핵관련 이야기 좀더 명확하게해주셈 2 ㅇㅇ 175.203 2018-11-08 0
71184 일반 외국인이랑 가족놀이 하는사람 손 3 딜런 2018-11-08 0
71183 일반 키넥트 파시는분 없나요 6 cleasky 2018-11-08 0
71182 일반 뭘해도 갤주는 손해임 9 ㅇㅇㅇㅇㅇ 2018-11-08 5
71181 일반 kvcg가 그거임? 4 ㅇㅇ 117.111 2018-11-08 0
71180 일반 긍정적으로 생각하면 3 ㅇㅇ 5.176 2018-11-08 0
71179 일반 아니 근데 kvcg인지 뭔지 왜자꾸 끌고옴 6 긴긴 2018-11-08 6
71178 일반 망갤테스트 9 ㅇㅇ 178.128 2018-11-08 25
71177 일반 핵쟁이 새끼들은 관심을 못받고자란건가 ㅎㅈㅁ 119.195 2018-11-08 6
71176 일반 핵써서 아바타 캐시파일 kvcg지들이 얻은걸 공유해야해? 10 ㅇㅇ 104.238 2018-11-08 0
71175 일반 와 갤 개판이네 7 싸이킥유코 2018-11-08 0
71174 일반 이로서 Vr = 병신 이란게 판명됨 2 ㅇㅇ 5.176 2018-11-08 1
71173 일반 이상한걸로 싸우지말고 견적 상담좀 해주샘 13 ㅇㅇ 59.31 2018-11-08 0
71172 일반 좆병신갤러리 다되었네 ㅋㅋ시발 4 마요릭 2018-11-08 0
71171 일반 갤주 왜이래 2 ㅇㅇ 185.92 2018-11-08 3
71170 일반 모치 쉐이크 쉐이더 4 ㅇㅇ 104.238 2018-11-08 2
71169 일반 kvcg 실드 오지게 치네 ㅋㅋㅋ 1 ㅇㅇ 175.223 2018-11-08 14
71168 일반 이게임 정체성은 친목이야 ㄷ얘들아 2 MPL 2018-11-08 1
71166 일반 Vrc 일년넘게한놈으로서 이거 유료화되야한다고생각함 4 ㅎㅈㅁ 119.195 2018-11-08 1
념글 삭제글 갤러리 랭킹