월드 제작을 하고있다면, 당연하게 알고있을 오클루젼 컬링에 대해 먼저 다뤄야겠지
말 그대로 시야 외적인 부분을 없애면서 렉을 줄이는 거야
분명 큰 도움이 되는 기능이지만 디테일 적인 부분에선 분명 아쉬운게 있음
안보여도 될 벽 건너편이 완벽하게 컬링되지 않는다는 거지
그래서, 시야와 관련해서 최적화를 할 때 오클루젼 컬링과 함께 사용하면 좋은 녀석을 소개할게
LOD란??? : level to detail
LOD에 대해서 이번시간엔 아주 간단하게만 알아볼거야
말하자면, 거리에 따라 모델링을 다르게 보여주거나, 아예 보여주지 않는걸 말해
오늘은 2가지 정도의 예시를 가져왔어.
첫번째는, 일반적으로 활용할 수 있는 방법과
두번째로, 극단적으로 활용할 수 있는 방법
먼저 첫번째
대충 이렇게 생겼음
대충 이렇게 3가지 모델링을 준비했어
왼쪽이 가장 고퀄리티, 오른쪽으로 갈수록 점점 평면에 가까워짐
먼저 하나의 객체에 하위로 모두 넣어주자
거리에 따라서 사용할 오브젝트가 다르기 때문에, 당연히 좌표는 모두 같아야겠지
하지만 설명을 위해서 이대로 쓸게
상위 오브젝트에 LOD그룹 스크립트를 넣어주자
대충 이렇게 생긴 화면이 나올거야
LOD 0 에 가까울수록 오브젝트에 가까워지고, Culled에 가까워질수록 멀어짐
먼저 LOD 0 를 눌러주고
가장 고퀄리티 모델을 넣어주자
그러면 해당 오브젝트에 있는 모델이 추가된걸 볼 수 있음
나머지 LOD 1, LOD 2 도 이렇게 점점 로우퀄리티로 지정해주자
그리고 마우스를 이용해서 LOD 0 부터 CULLED 까지의 범위(퍼센티지)를 조정해주자
카메라가 얼마나 멀어졌을 때 렌더링 할 모델이 달라지는가에 대해 선택하는 거야
정상적으로 적용했다면,
점점 멀어질 수록 로우퀄이 되다가 최종적으로는 아예 모델 자체가 사라지게 됨
반대로 가까워질 수록 점점 고퀄리티가 되는거지
플레이어의 거리에 따라서 오브젝트들의 모델링이 변경되는데
위화감없이 월드를 즐길 수 있으면서도
최적화는 최적화대로 하니까 가볍게 만들 수 있겠지
대신, 각각의 모델을 따로 준비해야한다는 단점이 있고
결국 모델의 개수가 늘면서 월드 용량도 그만큼 늘어나는 단점이 있을거야
만약, 별도의 모델을 준비하지 못했거나 용량이 늘어나는게 싫다면
지금부터 아래에 작성한 2번째 방법 -극단적인 활용 을 읽어보자
우선, 한때 말이 많았던 그 월드를 잠시 가져왔어
내가 가진 월드 중에는 지금부터 설명할 내용에 가장 잘 어울리는 월드이기 때문에 양해부탁해
뭔소린지 모르면 그냥 읽으면 댐
이 월드는 이렇게 섬형 구조를 가지고 있고, 각각의 방에 있는 인터렉트 트리거를 이용해서 다른 방으로 이동할 수 있는 구조야
그렇다면, 유저가 어느 한 방에 있다면 다른 방들은 모두 렌더링 자체를 하지 않는게 가장 옳게된 최적화겠지??
방 하나를 골라봤어
프리펍을 만들어도 되지만, 귀찮다면 그냥 적당한 오브젝트 하위에 나머지 파일들을 통째로 몰아넣어버리자
마찬가지로 LOD 스크립트를 가져오고
LOD 0 과 CULLED를 제외한 나머지 LOD를 삭제할거야
삭제는 각각의 LOD위에 마우스 올리고 우클릭하면 위 사진의 창이 뜰거야
그러면 LOD 0 과 CULLED 밖에 안남을건데
그상태로 LOD 0 에 ADD를 눌러서 아까 통째로 몰아넣은 오브젝트를 찾아주자
그전에 오브젝트의 이름을 각각 알아보기 편하게 지정해두는게 좋을거야
그러면 몰아넣었던 하위 오브젝트들까지 모든 모델들이 자동으로 넣어진걸 볼 수 있어
이러면 모든걸 렌더링하는 LOD0 과 모든걸 지우는 CULLED 만 남았기 때문에
지정한 거리 이후부터는 아예 렌더링 자체를 하지 않겠지
이런 방법 외에도 조금 더 응용하면
멀리서 봤을 땐 분명 귀여운 라무네였는데 가까이 가보니 우간다밖에 안보인다거나
일정 거리에 가까이 가야만 보이는 오브젝트같은 재미난 기믹을 만들 수 있겠지
사실 신경써야할 부분이 되게 많지만, 간단하게만 적어봤어
대충 이런 기능도 있구나 정도로만 읽고 넘겨도 괜찮다고 생각해
즐거운 주말 보내렴