3. 언리얼엔진의 나나이트란?

1. 나나이트(Nanite) – 가상화 지오메트리 시스템

3차원 모델링은 정교할수록 모델링을 구성하는 면의 개수, 즉 폴리곤이 많아진다.

그러나 폴리곤이 많아질수록 용량은 커지고 시스템에 부하가 걸린다.

나나이트는 이러한 점을 개선하기 위한 기술로, 멀리 있을 때는 폴리곤을 연산할 필요가 없다는 점에 착안하여

카메라와의 거리에 따라 알아서 폴리곤 개수를 늘리거나 줄여준다.

즉, 3차원 공간에서 카메라나 사용자의 시선과 가까운 오브젝트는 자세히 그려주고,

멀리 있거나 시야에 들어오지 않는 오브젝트들은 단순하게 그린다.

이로써 퀄리티는 높이고 최적화 문제도 해결하는 셈이다.

이를 통해 작업자는 부담 없이 고해상도 모델을 엔진으로 가져와 사용할 수 있고

실시간 렌더링에서도 성능을 유지할 수 있다.

주요 특징

  • 수백만 개의 폴리곤도 거뜬히 렌더링

기존에는 너무 높은 폴리곤 수를 가진 모델은 게임 엔진에서 제대로 작동하지 않아서(왜냐하면 폴리곤 수가 증가하면 실시간으로 처리해야 할 데이터도 증가하기 때문에), 개발자는 모델의 디테일을 줄이거나 LOD(Level of Detail)를 수작업으로 만들어야 했다. 나나이트는 이런 번거로운 과정을 제거하고, 영화 수준의 디테일을 가진 모델을 바로 게임에 사용할 수 있게 한다.

  • LOD와 배칭 자동화

나나이트는 객체가 화면에서 멀어지거나 가까워질 때 자동으로 디테일 수준(LOD)을 조정한다. 덕분에 개발자는 모델의 각 디테일 레벨을 별도로 준비하지 않아도 된다.

  • 최적화된 데이터 스트리밍

나나이트는 필요한 데이터를 효율적으로 스트리밍하므로, 메모리와 GPU 성능을 효율적으로 활용한다. 덕분에 복잡한 장면에서도 프레임 속도를 유지할 수 있다.

간단한 비유

만약 기존 기술이 1m x 1m 크기의 미술관 그림을 10cm x 10cm 크기로 줄여서 게임에 넣는 방식이었다면, 나나이트는 1m x 1m 크기의 그림 전체를 게임에 그대로 넣되, 그림을 보는 관람자가 보고 있는 부분만 원본 그대로 보여주고, 관람자가 보고 있지 않는 부분은 복잡한 디테일을 생략하고 간단한 데이터로 읽는 방식이다. 언리얼엔진은 관람자가 어디를 보는지 알고 있고, 보는 부분이 달라지는 것을 감지하여 자동으로 디테일하게 보여줘야 하는 부분을 바로 바로 그려낸다.

결과적으로, 개발자는 높은 품질의 모델을 원본 그대로 게임에 넣을 수 있고, 최적화 걱정을 덜게 되는 것이다.

나나이트 활성화 방법

1. 프로젝트에서 나나이트 활성화(언리얼엔진 5 이상 버전)

언리얼 엔진 상단 메뉴 Edit → Project Settings로 이동 → 검색창에 Nanite 입력 → Support Nanite 옵션에 체크

기본적으로 체크되어 있을 가능성이 높고, 설정을 변경했다면, 프로젝트를 재시작해야 적용된다.

2. Static Mesh에 나나이트 활성화

나나이트는 각 Static Mesh에 개별적으로 활성화해야 한다.

콘텐츠 브라우저에서 나나이트를 활성화할 메시를 찾고, 더블 클릭하여 Static Mesh Editor를 연다. → Details 패널에서 Nanite Settings 섹션 → Enable Nanite Support 옵션에 체크 → 변경사항 저장

참고사항

  • 나나이트는 Static Mesh에만 지원된다. (스켈레탈 메시 및 동적 요소, 변형되는 오브젝트는 지원하지 않음)
  • 머티리얼 중 불투명한 재질만 지원된다. (Translucent, Masked, Twosided 미지원)
  • 헤어, 나뭇잎, 수풀 등과 같은 초목에는 적합하지 않음

[ 아티스트를 위한 나나이트 ]

[ 나나이트에 대한 설명 ]

https://www.unrealengine.com/ko/blog/nanite-in-ue5-the-end-of-polycounts

Leave a Comment