석류 작업노트

언리얼엔진_나나이트에 대한 공부 / 첫 연구 본문

스터디/Unreal Engine

언리얼엔진_나나이트에 대한 공부 / 첫 연구

석류! 2023. 2. 24. 03:08
 

https://docs.unrealengine.com/5.0/ko/nanite-virtualized-geometry-in-unreal-engine/

 

 

이번에 포폴 작업으로 언리얼엔진5로 넘어가게 되면서

평소처럼 작업을 하다가 임포트 세팅에 "나나이트 빌트" 라는 항목이 생겨있어

자연스럽게 나나이트 공부쪽으로 빠지게 됬다.

 

당연하긴 했지만.. 알고는 있었지만..

에셋넣어 텍쳐 보려했다가 지금 몇시간째 문서만 바라보고있는중..

공부할게.. 넘 많다...

그렇기에 내 생각 정리 겸 문서와 유투브, 이런저런 글에서 보고 배운것들 이렇게 정리하려고 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

나나이트의 이해와 원리

 

 

나나이트를 간단하게 요약하자면 발전된 LOD에 가깝다고 생각합니다.

 

나나이트의 기본적인 원리는 엔진에 사용되는 에셋을 임포트를 할 때 트라이앵글의 일정한 부분만큼을 클러스터 라는 단위로 묶어 분석하며 분해해줍니다.

이를 랜더링 하는 동안 클러스터는 카메라뷰를 기반으로 다양한 LOD로 전환되며 실시간으로 뷰포트에서 보여줍니다.

이때 카메라가 바라보는 시점에 따라서 오클루전 컬링을 통해 보이는 곳만 랜더링해줍니다.

https://docs.unrealengine.com/4.27/ko/RenderingAndGraphics/VisibilityCulling/

 

비저빌리티 및 오클루전 컬링

언리얼 엔진 4 레퍼런스 및 안내서입니다.

docs.unrealengine.com

그렇기에 나나이트는 카메라가 스트리밍 하고있는 곳만 메모리를 차지합니다.

 

다만 여기서 주의할 점은 나나이트에서 클러스터 컬링을 처리할 때에 표면 사이의 거리가 지나치게 가까이 많이 겹쳐있게 된다면 오버드로가 발생할 수 있습니다.

주로 최상단 표면 가까이에 여러 지오메트리가 쌓여 겹쳐있는 경우 엔진이 위에 있는것인지 정확히 구분하지 못하게 되어 두 표면 모두를 랜더링하게 되고

이러한 과정에서 모든 부분을 랜더링하게 되어 최적화에 문제가 생길 수 있습니다.

 

이러한 과정을 통해 아무리 높은 폴리곤의 모델링이 사용된다 하여도

우리는 더이상 LOD를 제작하지 않아도 되며 퀄리티의 손실도 발생하지 않습니다.

 

또한 하이폴리곤 그 자체를 바로 사용할 수 있게 되어

노말맵 텍스쳐를 이용하여 디테일을 표현하지 않아도 됩니다.

 

 

 

 

 

 

나나이트는 고도의 디테일을 표현하고 싶은 경우에서 더더욱 용이하게 사용됩니다.

오히려 로우폴리곤을 제작하고 LOD를 사용하여 사용하는 것 보다

더 적은 코스트로 더 높은 퀄리티와 작은 용량으로 사용될 때도 있습니다.

 

 

우리는 메쉬와 텍스쳐를 사용할 때엔

로우폴리곤 , 텍스쳐 ( DIffuse , AO/Rou/Met , Normal ) 을 사용합니다.

 

하지만 여기서 우리는 디테일을 표현하기 위한 노말맵 대신 하이폴리곤 그대로 사용하여 나나이트를 적용해 볼 수 있습니다.

초고퀄리티를 표현하기 위한 4K 노말맵 텍스쳐와

나나이트가 적용된 하이폴리메쉬의 용량을 비교한다면

위와 같이 더 적은 용량으로 사용할 수 있다는 것을 알 수 있습니다.

 

여기서 아쉬운 노말맵 표현은

Detail Normal Texture 타일링을 통해 세세한 디테일 까지 같이 챙겨준다면

우린 이전에 사용하던 방법을 대체하여 사용하는 것도 고려할 수 있을겁니다.

 

다만 작업을 하다보면 디테일노말까지 사용하는것과 나나이트를 사용하는 것을 비교했을때 크게 불만족스러운 결과물이 나오지 않는다는 것 또한 알 수 있을겁니다.

 

 

 

 

나나이트의 사용법

 

 

버츄얼 텍스쳐 사용 "강력" 권장

https://docs.unrealengine.com/5.0/ko/virtual-texturing-in-unreal-engine/

 

버추얼 텍스처링

언리얼 엔진에서 사용할 수 있는 버추얼 텍스처링 메서드 개요입니다.

docs.unrealengine.com

 

 

 

ㄴ 사용가능

ㄴ 사용불가

 

하이폴리곤 자체를 사용할 때

하드서페이스와 같이 의도적인 스무딩그룹을 끊어주는 것이 아닌 이상

스무딩그룹을 끊어주어 사용하게 된다면

우측 이미지처럼 미친듯이 많은 콜드로우폭탄을 맛볼 수 있을 것이다.

 

 

 

 

디테일하게 사용가능과 불가를 알고 싶다면 문서를 확인할 것. ( 굳이 정리할 필요가 없음 )

 

 

 

 

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

정리

 

 

기본적으로 언리얼에서 나나이트를 사용하기 위한 이해와 기초 사용법정도에 대해 알아봤다.

지금 찾고보니까.. 내가 만들어야 하는 포폴에선 아직은 크게 사용되지 않을 기능들인듯하다..

다음시간엔 루멘이나 함 공부해봐야겠다

 

 

 

 

덤으로 하던거..

 

 

 

 

https://www.clien.net/service/board/use/17209213

 

언리얼엔진5가 아직 시기상조인 이유 (재업) : 클리앙

(출근길에 모바일에서 이미지를 중복으로 잘못 올려서 다시 올립니다) 이주 전 쯤에 언리얼엔진 5.0 정식버젼이 출시되었습니다. 제가 집 이사를 준비하느라 너무 정신없는 와중에 깜짝 출시해

www.clien.net

https://gall.dcinside.com/mgallery/board/view/?id=blender&no=6554 

 

일일 2시간 블렌더하다가 언리얼5로 외도중임 (언리얼찬양) - 블렌더 마이너 갤러리

메가스캔 써서 ue5로 아일랜드 만들어봄4 -> 5로 넘어오면서 UI가 발전한거도 장점이지만, 요번에 생긴 내나잇(nanite)이랑 루멘이라는 기능이 완전 혁명급 물건인거같다.한마디로 베이킹을 안해도

gall.dcinside.com

https://wergia.tistory.com/355

 

[UE5] 나나이트 가상화 지오메트리

개발단에 가입하여 베르의 게임 개발 유튜브를 후원해주세요! https://www.youtube.com/channel/UC9j37A2ACL9ooSbsT4mtGww/join 안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 이번에는 언리얼

wergia.tistory.com

https://docs.unrealengine.com/5.0/ko/nanite-virtualized-geometry-in-unreal-engine/

 

나나이트 가상화 지오메트리

픽셀 스케일의 디테일과 방대한 양의 오브젝트를 구현하는 언리얼 엔진 5의 가상 지오메트리 시스템 개요입니다.

docs.unrealengine.com

 

 

 

#Unreal engine #언리얼엔진