본문 바로가기

카테고리 없음

언리얼 나나이트 공부 Nanite

<Nanite>


-GPU 파이프라인에 해당된다
-나나이트는 Virtualized Geometry라고 할 수 있다. Virtual이라는 것의 뜻은 씬 렌더링에 필요한 데이터만 로드하고 나머지는 다 캐시처리하는 것을 말한다. Virtual Texturing, Virtual ShadowMap 모두 이것에 해당한다.
-나나이트는 Smoothing Group이나 UV Seam을 통해 메시를 Clusters로 나눈다. 이는 Visualize > Nanite Visualize > Clusters에서 확인할 수 있다. 하나의 클러스터는 128개의 triangles로 이루어져 있다고 한다. Cluster LOD는 다수의 LOD를 통해 생성된다. 일반 LOD와 다른 점은 LOD는 오브젝트 별로 작동한다면 Cluster LOD는 내가 보고 있는 곳을 기준으로 작동한다는 것이다. 렌더하는데 필요한 메시 구역만 불러오는거라서 같은 오브젝트라도 클러스터 LOD가 다를 수 있다
-나나이트는 콘텐츠 브라우저에서 메시를 우클릭하여 켜거나, 메시를 더블클릭해서 디테일 창에서 켜주거나, 메시를 외부 DCC에서 임포트 할 때 세팅에서 나나이트를 켜서 임포트해줄 수 있다
-나나이트를 켜면 렌더링도 빠르고, 메모리도 덜 차지하니 쓸 수 있으면 써라
-나나이트를 켠 메시와 켜지 않은 메시는 문제없이 공존할 수 있다.
-나나이트는 지오메트리를 압축하기 때문에 파일 사이즈도 작아진다
-이제 업데이트 되어서 WPOTwo-Sided Materials, Masked Material, Pixel Depth Offset // Foliage, Custom DepthStencil, Lighting Channels, Global Clip Plane에서도 작동된다. 나나이트와 작동되지 않는 것을 썼다면 메시가 까맣게 나올 것이다
-Pixel Depth Offset, Non-Opaque, Forward Rendering, MSAA, Stencil에서 작동되지 않는다(2021 기준)
-폴리곤 수가 많은 메시를 이용할 수 있게 됐지만 그렇게 많을 필요는 없다. 중요한건 엄청나게 많은 트라이앵글을 사용할 수 있어도 그럴 필요가 없다는 것이다. 이미 만들어놓은 에셋을 수정할 필요가 없다.
-나나이트 덕분에 하이폴리 메시를 그대로 사용하는 것이 가능해졌다! 원래는 로우폴리를 이용하되 노말맵 등은 하이폴리에서 구워서 가져온 텍스처를 만든다음 하이폴리는 버리는 방식을 이용했었다. 이제는 로우폴리는 UV unwrap할 때만 필요하지 게임에 하이폴리 메시를 그대로 넣을 수 있다! 이 덕분에 노말맵이 필요없어졌다. 이미 하이폴리로 굴곡이나 깊이감이 표현되기 때문에 굳이 메모리 차지하게 노말맵을 넣을 필요가 없다.
-지오메트리를 합칠 수 있는 것은 합치라고 한다. 나나이트가 지오메트리를 더 효율적으로 줄일 수 있다고 한다. 루멘이랑 정반대네. 루멘은 합치지 말고 나누라고 했는데
-나나이트를 쓸거면 메시의 Smoothing Group이 활성화 되어있는지 확인하자. 나나이트의 LOD 세팅에 영향을 미친다. 왜냐면 Cluster가 스무딩 그룹과 UV Seam을 통해 생성되기 때문이다.