UNREAL ENGİNE NANİTE MANTIĞINI ANLAMAK VE GEOMETRİ YÖNETMEK
Unreal Engine 5 ile birlikte gelen Nanite, “daha fazla poligon” vaadini tek başına bir sihir gibi sunmaz; doğru anlaşılmadığında performans, bellek ve üretim hattı üzerinde beklenmedik etkiler oluşturabilir. Özellikle büyük ekiplerde, farklı kaynaklardan gelen varlıkların bir araya toplandığı projelerde, Nanite’in nasıl karar verdiğini bilmek; sahne karmaşıklığını öngörülebilir biçimde yönetmek için kritik bir kaldıraçtır.
Bu yazıda Nanite mantığı üzerine pratik bir çerçeve kuracağız: sanallaştırılmış geometri nasıl hazırlanır, hangi tür mesh’ler sorun çıkarır, hangi ayarlar gerçekten fark yaratır ve hangi metriklerle doğru ölçüm yapılır. Amaç, sadece “aç/kapat” seviyesinde kalmadan; geometri bütçesini, LOD yaklaşımını ve sahne optimizasyonunu sürdürülebilir hale getirmektir.
Eğer ekip içinde “Neden bu mesh Nanite’ta iyi çalışmıyor?”, “LOD üretmeyi tamamen bırakabilir miyiz?”, “Çakışma ve ışıklandırma tarafı nasıl etkileniyor?” gibi sorular sık sık geliyorsa, bu rehber; karar vericilere net bir ortak dil kurmak için de iyi bir başlangıç sağlar. İlerlemek isteyenler için Unreal Engine tarafında uygulamalı içeriklere Unreal Engine eğitimi sayfasından ulaşabilirsiniz.
Nanite mantığını projede konumlandırmak ve ölçmek
Nanite, klasik LOD zincirini “mikro poligon” düzeyinde otomatik bir seçim mekanizmasına dönüştürür. Temel fikir; yüksek detaylı mesh’leri cluster denilen parçalara ayırmak ve kameraya, ekran boyutuna ve görünürlük koşullarına göre gereken ayrıntıyı anlık seçmektir. Bu yaklaşım, varlık sayısı arttıkça daha da kıymetli olur; çünkü tek tek LOD üretmek yerine, doğru kurallar ve doğru ölçümlerle kalite-performans dengesini yönetmek mümkün hale gelir.
Yine de “otomatik” kelimesi, kontrolün tamamen kaybolduğu anlamına gelmez. Nanite; materyal karmaşıklığı, maskeleme, iki taraflı yüzeyler, deformasyon ihtiyacı ve çakışma yaklaşımı gibi parametrelerle sınırlanır. Bu yüzden projede ilk adım; Nanite’ın hangi varlık kategorilerinde kullanılacağına karar vermek ve bunu ekipçe standartlaştırmaktır. Örneğin statik çevre varlıkları için iyi bir adayken, yoğun deformasyon isteyen karakterlerde farklı seçenekler gerekebilir.
Cluster kararlarını okumak ve darboğaz bulmak
Nanite performansı tek bir sayıyla açıklanmaz; “GPU süresi”, “triangle throughput” ve “visibility” gibi başlıklar bir arada değerlendirilmelidir. Ekranda görünen piksel sayısı arttıkça, gereksiz ayrıntının budanması daha önemli hale gelir. Bu noktada profiling alışkanlığı, tartışmaları kişisel görüşlerden çıkarıp veriye taşır.
// Profiling için sık kullanılan konsol komutları (UE5)
stat unit
stat gpu
stat nanite
r.Nanite.Visualize 1
r.Nanite.VisualizeMode 2
r.ViewDistanceScale 1.0
r.ScreenPercentage 100
Bu komutlar; CPU/GPU sürelerini, Nanite’ın sahnede ne kadar iş yaptığını ve görselleştirme modlarıyla yoğun bölgeleri yakalamayı kolaylaştırır. İlk ölçümlerde “her şey yavaş” gibi genellemeler yerine; hangi sahnede, hangi kamerada, hangi varlık grubunun baskın olduğunu yazılı hale getirmek, sonraki adımların hızını ciddi artırır.
Sanallaştırılmış geometriyi doğru hazırlamak ve sürdürmek
Nanite için en büyük risk, kaynak varlıkların tutarsız gelmesidir. Farklı DCC araçlarından gelen ölçü birimleri, pivot alışkanlıkları, yüzey normalleri ve UV pratikleri; sahnede hem görsel hem de performans dalgalanması oluşturabilir. Bu nedenle varlık alımında “kontrol listesi” yaklaşımı, üretim sürecini sakinleştirir.
Nanite’a uygun mesh’ler genelde şu ortak özellikleri taşır: temiz yüzey normalleri, çok küçük üçgenlerden kaçınma, aşırı ince detayın anlamlı mesafelerde gerçekten görünür olması ve materyal tarafında mümkün olduğunca sade kalmak. Nanite geometriyi yönetirken, materyal karmaşıklığı GPU üzerinde ayrı bir yük yaratabilir; yani geometri rahatladı diye her şey otomatik hızlanmaz.
Kaynak mesh standartlarını belirlemek ve denetlemek
Ekipte aynı hedefe bakmak için basit bir standart seti faydalıdır: isimlendirme, ölçek, pivot, collision proxy stratejisi ve import ayarları. Bu standardı bir sayfaya dökmek, yeni katılanların projeye uyumunu hızlandırır ve “neden burada farklı?” sorusunu azaltır. Ayrıca version control üzerinde değişikliklerin izini sürmek de kolaylaşır.
- Ölçek tutarlılığı sağlamak ve sahne metriklerini sabitlemek
- Pivot ve orijin alışkanlığını ortaklaştırmak ve yerleşimi hızlandırmak
- Materyal slotlarını sınırlamak ve drawcall baskısını azaltmak
- Çakışmayı proxy ile çözmek ve fizik maliyetini yönetmek

LOD yaklaşımını yeniden düşünmek ve sınırları bilmek
Nanite, klasik LOD üretimini birçok statik varlıkta gereksiz kılabilir; ancak bu, LOD düşüncesinin tamamen bittiği anlamına gelmez. Bazı varlıklar Nanite dışında kalabilir (örneğin özel deformasyon, belirli translucency kullanımları veya oyun tasarımının gerektirdiği durumlar). Ayrıca uzak mesafe temsili, gölge davranışı ve çakışma gibi konularda hâlâ strateji gerekir.
Bu bölümde amaç; “LOD yok” sloganı yerine, hangi koşullarda LOD mantığının hâlâ devrede olduğunu anlaşılır kılmaktır. Böylece ekip, varlık üretirken doğru kararları erkenden verir ve geri dönüş maliyeti düşer.
Nanite dışı varlıkları planlamak ve geri dönüş hazırlamak
Projede bazı varlıklar için fallback mesh kullanımı gerekebilir. Özellikle belirli platform hedefleri, özel render özellikleri veya oyun içi etkileşimler bu kararı tetikler. En iyi yaklaşım; “Nanite mı değil mi?” ikilemini son dakikaya bırakmadan, varlık kategorilerine göre net bir matriks kurmaktır. Bu matrikste; performans hedefi, görsel hedef ve teknik sınırlamalar birlikte değerlendirilir.
Materyal karmaşıklığını yönetmek ve shader maliyetini azaltmak
Nanite geometri tarafını optimize ederken, materyal tarafında maliyet büyümeye devam edebilir. Özellikle maskeleme, karmaşık katmanlar, çok sayıda texture örneklemesi ve pahalı hesaplamalar; GPU süresini beklenmedik şekilde şişirebilir. Bu yüzden “poligon serbest” algısı, materyal disiplinini gevşetmemelidir.
İyi bir pratik; önce sahne geometri yoğunluğunu stabil hale getirip, sonra materyal karmaşıklığını kademeli azaltmaktır. Böylece nereden kazanım geldiği daha net görülür. Shader complexity ve benzeri görselleştirmeler, hangi yüzeylerin pahalı olduğunu hızlıca gösterir.
Maskeleme kararlarını gözden geçirmek ve alternatif üretmek
Maskeleme (masked) yüzeyler, piksel maliyetini arttırabilir ve bazı durumlarda Nanite ile istenen sonuçları vermeyebilir. Eğer yaprak, tel örgü veya ince detay gibi içerikleriniz varsa; kart yaklaşımı, atlas düzeni, normal detay kullanımı veya tamamen farklı bir varlık tipi tercih etmek daha doğru olabilir. Burada hedef, görüntüyü bozmak değil; aynı algıyı daha düşük maliyetle üretmektir.
Çakışma ve etkileşimi kurgulamak ve maliyeti dengelemek
Nanite, render edilen geometriyi sanallaştırır; ancak çakışma (collision) ve fizik tarafında çoğu zaman ayrı bir temsil gerekir. Yüksek detaylı bir çevre varlığını fizik hesaplarına aynı detayda taşımak gereksiz maliyet üretir. Bu nedenle render mesh’i ile collision mesh’ini ayırmak; hem performansı hem de tasarım güvenilirliğini artırır.
Burada sık yapılan hata, her varlık için otomatik karmaşık çakışmayı açmaktır. Bunun yerine; basit proxy şekilleri, hull yaklaşımı veya belirli etkileşim bölgeleri için özel collision mesh’leri daha kontrollü sonuç verir. Ekip içinde “hangi varlık ne kadar etkileşimli?” sorusuna net cevap verilmesi, gereksiz fizik maliyetini azaltır.
Proxy collision üretmek ve sahne davranışını korumak
Proxy yaklaşımında amaç, oyuncu ve etkileşimlerin beklediği davranışı bozmadan maliyeti düşürmektir. Örneğin bir kaya varlığında oyuncu tırmanmıyorsa, yüzlerce girinti çıkıntıyı fizik tarafında temsil etmeye gerek yoktur. Basitleştirilmiş collision ile hem stabil simülasyon elde edilir hem de CPU tarafında yük azalır.
// Örnek: Basit bir kontrol listesi mantığını kodla belgelemek (pseudo)
if (asset.category == "Environment_Static" && asset.isNaniteEnabled)
{
collision.type = "SimpleProxy";
collision.maxHullCount = 8;
collision.allowComplexAsSimple = false;
}
else if (asset.category == "Gameplay_Interactive")
{
collision.type = "Custom";
collision.requiresDesignerReview = true;
}

Dünya ölçeğinde sahneyi bölmek ve streaming kurgulamak
Büyük haritalarda Nanite tek başına yeterli değildir; streaming ve sahne bölme stratejisi ile birlikte çalışmalıdır. World Partition, data layer kullanımı ve varlıkların mantıksal olarak gruplanması; hem geliştirme sürecini hem de çalışma zamanını etkiler. Bu noktada geometri yönetimi; sadece “kaç poligon var?” sorusundan çıkar, “hangi bölgede ne zaman yükleniyor?” sorusuna evrilir.
İyi bir yaklaşım; sahneyi içerik yoğunluğuna göre bölmek, tekrar eden set parçalarını instancing ile yönetmek ve bellek bütçesini platform hedeflerine göre izlemektir. Nanite; görünür ayrıntıyı iyi budasa da, sahne tasarımı kontrolsüz büyürse bellek ve IO baskısı oluşabilir.
Instancing stratejisi kurmak ve tekrarları azaltmak
Tekrarlayan varlıklarda instancing; hem düzenlemeyi hızlandırır hem de render maliyetini daha öngörülebilir hale getirir. Modüler set parçalarıyla ilerlerken, “aynı şeyin farklı kopyaları” yerine “aynı varlığın kontrollü varyasyonları” yaklaşımı daha verimlidir. Bu; hem sanat ekibini rahatlatır hem de teknik ekip için ölçümlemeyi kolaylaştırır.
Kontrol listesiyle kararları hızlandırmak ve ekip dilini kurmak
Nanite tartışmaları çoğu zaman ekip içinde “göz kararı” ilerler. Oysa birkaç ortak metrik ve kısa bir kontrol listesi, kararları hızlandırır: hedef platform, FPS hedefi, sahne yoğunluğu, materyal sınırları ve etkileşim gereksinimi. Bu çerçeveye oturan bir süreçte, yeni varlıklar sahneye girerken sürprizler azalır.
Önerilen pratik; her sprint sonunda en yoğun sahnelerde kısa bir ölçüm yapmak, değişiklikleri not etmek ve sorunlu varlıkları küçük bir kuyruğa almaktır. Böylece optimizasyon “panik anında” değil, düzenli bakım gibi yürür. Ayrıca ekip içi bilgi aktarımı hızlanır; çünkü herkes aynı terimleri kullanır ve aynı ekran çıktıları üzerinden konuşur.
Ölçüm sonuçlarını raporlamak ve iyileştirmeyi planlamak
Raporlama kısmında amaç; karmaşık tablolar üretmek değil, karar vermeyi kolaylaştırmaktır. “Bu sahnede GPU süresi şu kadar arttı, sebep şu varlık grubu, aksiyon şu” gibi net özetler, iş akışını düzene sokar. Eğitim tarafında da bu yaklaşım; ekibin aynı araçları doğru kullanmasını sağlar ve standart bir ölçüm kültürü oluşturur.

Özetle Nanite, geometri yönetimini kolaylaştıran güçlü bir sistemdir; ancak gerçek kazanım, onu ölçerek ve sınırlarını bilerek kullanınca ortaya çıkar. Sanallaştırılmış geometri yaklaşımını doğru varlık standartları, akıllı collision stratejisi ve materyal disiplinine bağladığınızda; hem görsel kalite hem de performans tarafında daha güvenli ilerlersiniz. Eğer ekibinizde bu konuları ortak bir dil ve uygulamalı örneklerle derinleştirmek isterseniz, Unreal Engine eğitimi ile ölçüm, optimizasyon ve üretim hattı pratiklerini birlikte ele alabilirsiniz.






