Những điều bạn cần biết về Nanite trong Unreal Engine 5
Nanite là một tính năng mới quan trọng trong Unreal Engine. Nó được ra mắt lần đầu tiên trong bản Unreal Engine 5. Vậy, Nanite thực chất là gì, nó mang lại những lợi ích và hạn chế nào và liệu bạn có nên sử dụng Nanite trong các dự án Unreal Engine hay không? Hãy cùng iRender tìm hiểu chi tiết về tính năng này trong bài viết sau đây.
Nanite trong Unreal Engine là gì?
Nguồn: unreal-university.blog
Nanite là một phương thức rất hiệu quả để render các đối tượng trên màn hình. Cách thức hoạt động của nó là chia các mesh thành các cụm hình tam giác- clusters of triangles.
Khi bạn kéo một mesh Nanite vào scene của mình, bạn sẽ thấy viewport hiện như hình bên dưới đây. Trong Viewport >> chọn mục Lit >> Nanite Visualisation, bạn sẽ thấy một danh sách tất cả các chế độ xem Nanite. Trong ví dụ này, chúng ta sẽ chọn chế độ Clusters. Clusters sẽ cho chúng ta thấy cách Nanite chia các mesh thành các cụm hình tam giác.
Nguồn: unreal-university.blog
Quan sát ví dụ bên trên, model Nanite đã được chia thành nhiều màu riêng biệt, mỗi màu đại diện cho một cụm (cluster).
Các cụm sẽ điều chỉnh dựa trên kích thước của chúng trên màn hình, khoảng cách đến camera và độ phân giải. Chúng sẽ bị cắt bớt hoặc loại bỏ khi không hiển thị trên màn hình. Điều này cho phép các mesh Nanite có nhiều LOD. Khi phóng to một mesh Nanite, bạn sẽ thấy nhiều cụm khác nhau trong đó. Và khi di chuyển ra khỏi mesh, bạn sẽ thấy nó được chia thành các cụm lớn hơn.
Chính điều này sẽ làm cho các mesh được tối ưu hóa.
Những lợi ích của Nanite
Nanite mang lại một số lợi ích như sau:
-
-
- Nó cho phép bạn import trực tiếp model chất lượng cao vào các dự án. Bạn có thể sử dụng các bản scan chân thật và mô hình nhiều poly mà không phải lo lắng về việc nó sẽ ảnh hưởng đến hiệu suất của trò chơi hoặc dự án của bạn. Nanite có thể xử lý hàng triệu polygon đang ở trên màn hình.
- Nó tự động tính toán LOD: Bạn không phải lo lắng về việc tạo nhiều LOD cho các phiên bản model của bạn, Nanite sẽ xử lý việc này.
- Trong Games, đôi khi normal map được sử dụng để tăng chất lượng của model, làm cho nó trông thực tế hơn. Với Nanite, bạn có thể import trực tiếp model chất lượng cao đó mà không cần bake nó trong normal map. Từ đó, nó giúp bạn tiết kiệm thời gian.
- Việc Kitbash trở nên dễ dàng hơn. Kit bashing đề cập đến khái niệm trong đó bạn lấy một loạt mô hình từ những nơi khác nhau và kết hợp chúng lại với nhau để tạo ra một scene. Trước đây, cách làm này không thật sự hiệu quả vì bạn sẽ phải tải nhiều model khác nhau, điều này có thể làm giảm hiệu suất của dự án.
- Nanite nén các mesh rất tốt, do đó nó giúp cải thiện hiệu suất dự án và nó chỉ chiếm rất ít bộ nhớ hệ thống. Dưới đây là kết quả so sánh giữa hai mesh có cùng số lượng triangle. Chúng ta có thể thấy Mesh Nanite nhỏ hơn khoảng 7 lần so với Mesh High-Poly kia.
-
High Poly Static Mesh | Nanite Mesh |
Triangles: 1,545,338 | Triangles: 1,545,338 |
Vertices: 793,330 | Vertices: 793,330 |
Num LOD’s: 4 | Num LOD’s: N/A |
Nanite: Disabled | Nanite: Enabled |
Static Mesh Compressed Packaged Size: 148.95MB | Static Mesh Compressed Packaged Size: 19.64MB |
Những hạn chế của Nanite
Mặc dù mang lại nhiều lợi ích như liệt kê bên trên, Nanite cũng có những hạn chế nhất định.
-
-
- Nó không hoạt động tốt với Aggerate Geometry
- Hình học tổng hợp – Aggerate Geometry: là hình học có các chi tiết nhỏ như tóc, lá trên cây và cỏ. Trong bản Unreal Engine 5.1, Nanite đã được cập nhật để hoạt động với lá cây và thực tế là Unreal Engine liên tục cải tiến tính năng này trong mỗi phiên bản phần mềm. Vì vậy, hạn chế này không có nghĩa là chúng ta không thể kích hoạt Nanite trên các dạng hình học tổng hợp này.
-
-
-
- Nanite cũng không hoạt động tốt với các bề mặt xếp chồng lên nhau. Nanite thực hiện tốt công việc phát hiện các mesh tĩnh và tối ưu hóa chúng ngay cả khi các mesh này ở gần nhau. Tuy nhiên, nó đôi khi không thể xác định được cái nào ở trên hay dưới. Điều này có thể dẫn đến tình trạng vẽ chồng nhiều lần khi cùng một pixel (đã được vẽ nhiều lần trong một khung hình). Từ đó, ảnh hưởng tới hiệu suất của dự án. Dưới đây là một ví dụ minh họa về điều này.
-
Nguồn: unreal-university.blog
-
-
- Nanite cũng chỉ hoạt động với một số mesh nhất định. Nó không hỗ trợ Deforming/skeletal meshes và Splines Meshes.
-
Cách kích hoạt Nanite
Việc kích hoạt và sử dụng Nanite rất đơn giản. Chúng ta có thể kích hoạt tính năng này thông qua hai cách bên dưới đây.
Cách 1:
Khi import một mesh tĩnh vào Unreal Engine, hãy chọn tùy chọn Build Nanite bên dưới. Tùy chọn này sẽ tạo ra một mesh Nanite.
Nguồn: unrealengine.com
Cách 2:
Nếu bạn đã có một mesh tĩnh trong Unreal Engine trước đó, hãy mở nó lên và truy cập Nanite Settings >> chọn Enable Nanite Support >> chọn Apply Changes.
Nếu bạn muốn dừng sử dụng Nanite, chỉ cần bỏ tích tùy chọn Enable Nanite Support, sau đó chọn Apply Changes để cập nhật thay đổi cài đặt.
Nguồn: unreal-university.blog
Nên sử dụng Nanite khi nào?
Bạn có thể sử dụng Nanite ở bất kỳ nơi nào có thể. Nó sẽ giúp phần mềm đạt hiệu suất, giúp quản lý bộ nhớ tốt hơn vì nó sẽ chỉ chiếm rất ít bộ nhớ của hệ thống.
Trong tài liệu hướng dẫn sử dụng Unreal Engine từ Epic Games, Nanite được gợi ý sử dụng trong các trường hợp sau:
-
-
- Khi một mesh chứa nhiều hình tam giác hoặc có các hình tam giác rất nhỏ trên màn hình.
- Khi một mesh có nhiều phiên bản trong scene.
- Khi mesh đóng vai trò là một vật thể chặn ánh sáng.
-
Hy vọng bài viết đã giúp bạn hiểu rõ hơn về Nanite trong Unreal Engine 5. Để biết thêm thông tin chi tiết về Nanite trong bản Unreal Engine 5.3 mới nhất, bạn có thể tham khảo thêm tại tài liệu hướng dẫn từ Team Unreal Engine tại đây.
Render nhanh hơn trong Unreal Engine với iRender
iRender cung cấp máy chủ (server) cấu hình cao với 1x RTX 4090 cho render Unreal Engine. Với CPU khỏe là AMD Ryzen™ Threadripper™ PRO 3955WX @ 3.9 – 4.2GHz, bộ nhớ RAM 256GB và dung lượng ổ cứng NVMe SSD 2T, server của chúng tôi có thể xử lý hầu hết mọi mức độ phức tạp của các dự án Unreal Engine.
Đối với các dự án có deadline gần và cần render nhanh, bạn có thể sử dụng đồng thời nhiều server. iRender cho phép người dùng sử dụng nhiều server trên một tài khoản cùng lúc để đẩy nhanh tiến độ render. Việc cài đặt cũng rất đơn giản: Chỉ cần thiết lập Unreal Engine trên một máy và clone máy này ra thành nhiều máy khác (khi đó, môi trường làm việc của bạn sẽ y nguyên máy gốc, bạn không cần cài đặt lại bất kỳ thứ gì.)
Cùng theo dõi video chúng tôi test hiệu suất render của máy 1 card RTX 4090 này trong Unreal Engine:
Nhận ưu đãi 100% cho khoản nạp đầu tiên trong vòng 24 giờ đăng ký từ chương trình ưu đãi đặc biệt của chúng tôi.
Để biết thêm thông tin, xin vui lòng liên hệ với chúng tôi qua email [email protected] hoặc số điện thoại +84915875500.
iRender – Happy Rendering!
Nguồn tham khảo: unrealengine.com & unreal-university.blog