For me
[Unreal Engine] 6) Nanite 본문
https://docs.unrealengine.com/5.0/en-US/nanite-virtualized-geometry-in-unreal-engine/
Nanite Virtualized Geometry
Overview of Unreal Engine 5's virtualized geometry system to achieve pixel scale detail and high object counts.
docs.unrealengine.com
NaNite 란?
새로운 내부 메시 포맷과 렌더링 기술을 사용하여 픽셀 스케일의 디테일과 다수의 오브젝트를 렌더링하는 언리얼 엔진 5에 새로 도입된 가상화 지오메트리 시스템으로, 최소 수백만 개의 폴리곤으로 만들어진 영화 품질의 아트를 퀄리티 손실없이 사용할 수 있음
엄청나게 많은 수의 트라이앵글 중 일정 수를 클러스트 단위로 묶고, 또다시 묶어 부모 클러스트를 만드는 것을 자동화
이러한 클러스트를 바라보는 시점에 따라 컬링
이전에 구현했던 것과 같이 구현하게 된다면,
[DirectX12] 10) Camera
Transform Camera를 구현하기전, 먼저 Transform을 구현해야함 ▶ 월드좌표, 로컬좌표를 구해야 하기 때문에 PushData를 통해 ConstantBuffer을 통해 transformParams를 GPU로 보내준다 Transfom.h 더보기 #pragma once #incl
givezero.tistory.com
Mesh가 겹쳐있다 하더라도 조금이라도 보이면 오브젝트 전체를 렌더링함 또한, 오브젝트가 가리더라도 렌더링함.
NaNite는 카메라이 보이는 클러스트만 랜더링
하지만, 표면 사이의 거리가 너무 가까우면 오버드로 판정으로 인해 소모하는 비용이 커지고 퍼포먼스가 저하됨
Cluster단위로 트리구조를 만들어 카메라 거리에 따라 나나이트가 자동으로 클러스트 묶음을 선택하고, 이외의 단계는 메모리에 저장하지 않도록 처리(LOD)
기존에서는 거리에 따른 LOD 처리를 해주었지만,
[DirectX12] 23) Tesellation
Tessellation : 새로운 정점 생성 , 지형 과 같은 거시적인 단위 Hull Shader Tessllator Domain Shader VertexShader 이후에 진행되는 과정 Tesellation 이란? Option 의 일부로 안해도 문제는 발생하지 않음. Geometry Shader
givezero.tistory.com
Nanite는 로우 퀄리티의 메시를 직접 만들고, 거리에 따른 LOD 설정이 필요없으며, LOD가 전환될때 퀄리티 손실이 거의 발생하지 않음
그렇기 때문에 High Quality Mesh를 그대로 사용하기 때문에 Normal Map Texture을 사용해서 디테일을 표현할 필요 X
노멀맵을 통해 매핑을 해주고, LOD를 위한 여러개의 매쉬를 준비하는 작업 등의 작업 배제
[DirectX12] 14) Normal Mapping
Normal Mapping (Bump Mapping) Normal Mapping을 사용하지 않을 때 Vertex Shader에서 정해준 각 정점의 값의 법선벡터로 내부의 점의 노말값을 보간 Normal Mapping을 사용하지 않고 Vertex 값을 무수히 늘릴 때 다양
givezero.tistory.com
하지만, Nanite는 스태틱 메시에만 적용 가능 (Skeletal , Morph Target, 머티리얼을 통한 월드 포지션 오프셋 지원X)
UE 5.1에서 지원하는 나나이트를 통한 풀의 흔들림 표현 영상
Low Quality와 NaNite의 차이
NaNite물체와의 거리에 따른 Triangle 수 차이 (LOD)
NaNite의 Cluster
Low Poly의 NaNite
'Unreal Engine > 이론' 카테고리의 다른 글
[Unreal Engine] 8) LandScape (0) | 2023.01.25 |
---|---|
[Unreal Engine] 7) Lumen (1) | 2023.01.25 |
[Unreal Engine] 5) Input (0) | 2023.01.24 |
[Unreal Engine] 4) C++ / 블루프린터 - 2 (0) | 2023.01.24 |
[Unreal Engine] 3) C++ / 블루프린터 - 1 (0) | 2023.01.24 |