Texture-Streaming の様にジオメトリを Streaming し、ピクセルレベルのジオメトリ描画を可能にする。
デモでは10億Triを超えるソースジオメトリを、Nanite が適切にコントロールして2000万Triのジオメトリとして描画する。
・Naniteのメイン開発者であるBrianは、UE4のバーチャルテクスチャ機能に取り組んできた
・バーチャルテクスチャストリーミングのポリゴン版とも言える
・超ハイポリメッシュをLOD的な技術で自動化する
・Naniteでは無駄な描画をピクセルレベルで弾く
・メッシュとテクスチャを含んだ独自のNaniteメッシュというフォーマットになる。量子化(クオンタイズ)による非可逆圧縮
・Naniteメッシュにはモデル固有の法線マップは不要
・汎用のタイリングされた詳細法線マップを足してより高解像度感を出せる
・Naniteメッシュは必要な時だけ必要なディティールでストリーミングされる
・Naniteメッシュでは頂点カラーを使用する事は可能
・アルベドテクスチャを使うより頂点カラーで色を設定した方がサイズが小さくなるかもしれない
・剛体ジオメトリのみサポート(岩、彫像、ビル等が得意)
・ストレージのメッシュ データを高速ストリーミングする機能に依存している。SSD推奨
Naniteのストリーミングの仕組みについて
ゲハを斬る!! DF「UE5のNaniteにはPS5のSSDみたいな超高速は要らんかったらしい」
これは誤った情報。その後EpicGamesにより指摘があり300MB/secであると修正された。おそらくランダムアクセス性能なので、つまりNVMe SSDの速度が必要である事を意味している。
[更新:公開後、Epicはここで修正を求めました。元の部分は、データスループットが10MB /秒であるとMichalValientが引用しました。これは、フレームあたり10MBです。30 fpsでは、これは1秒あたり300MBになります。]
テクスチャのビットやNaniteデータのビットをストリーミングするので、動き回っている間は1秒あたり10MB程度で推移しています。テクスチャや小さなタイルを必要に応じてストリーミングしています。
それらをレンダリングする際に、Naniteは特定のビューをレンダリングするのに必要な三角形の実際の小さなクラスタを選択します。
そして、そのデータだけをストリーミングするので、過剰にストリーミングすることはありません。
Nanite 仮想化ジオメトリ – Unreal Engine ドキュメント
Nanite – Inside Unreal – YouTube EpicGames公式解説
UE5のNaniteについて。もうゲーム開発者はポリゴン数のバジェットを気にする必要は無い!そして超ハイポリモデルを使ってもディスクサイズが増えない理由 – soy-software
UE5が出た!ハイスペPCを持ってる人は触っといた方が爆アドや – soy-software
[UE] Virtual TextureとそのStreamingの仕組み、またよく頂く質問への回答 – Qiita
Naniteを前提とした制作
西川善司の3DGE-Gearsシリーズの制作スタジオが語るUnreal Engine 5――1億ポリゴン時代に突入するゲーム開発のゆくえ
Alpha Pointプロジェクトの開発チームは,UE5におけるテクスチャ関連の取り扱いに関わる部分に対して,独自のエンジン拡張を行った。
・テクスチャベースのマテリアルレイヤーを4つまでのマルチレイヤーに対応させる拡張
・膨大なテクスチャリソースをカテゴリやタグなどのメタデータで管理することで,検索や流用をしやすくするテクスチャ管理ツールの拡張
バーチャルテクスチャは、テクスチャ全体をメモリに読み込まず,あらかじめブロック単位で分割したテクスチャをストレージに保存しておくことで,任意の時点で描画に必要なブロックやテクスチャをストリーミングで読み出しつつ利用する
XSXでは,ほぼCPUが介入することなくSSDからデータの読み出しができる「Velocity Architecture」がある
バーチャルテクスチャの仕組みを利用すると,「GPU側のテクスチャユニットに対する負荷は,通常のテクスチャよりも高くなる」
【UE5】Naniteとは?使い方も解説!|UnrealEngine5の教科書
Naniteを使用した熱帯雨林↓
Nanite & Lumen are INSANE! on a Tropical Hillside – Unreal Engine 5 – YouTube
Lumenは、サブサーフェススキャタリングが実装されていないため、Foliageではまだ機能しません。