En fazla sayıda cihazda iyi çalışan 3D Oyunlar, grafik işlemcilerden en iyi şekilde yararlanmak üzere tasarlanan 3D çizimlerle başlar. Bu kılavuzda, oyununuzun daha iyi performans göstermesini ve güç tüketimini en aza indirmesini sağlamak için mobil cihazlarda 3D öğelerle ilgili optimizasyonlar ve en iyi uygulamalar vurgulanmaktadır.
Geometrinin tanımı
Geometri veya poligon örgü, 3D bir nesneyi meydana getiren köşe noktaları, kenarlar ve yüzeylerden oluşan bir koleksiyondur. Bu bir araba, silah, ortam, karakter veya oyundaki herhangi bir görsel öğe olabilir.
Şekil 1. Bir küpün köşeleri, kenarları ve üçgenleri.
Geometri şu bölümlerden oluşur:
Köşeli: Köşe noktasının çoğul adı. Bu noktalar, 3D uzaydaki bir nesnenin yapısını tanımlar.
Kenar: Düz bir çizgiyle birbirine bağlanan iki köşe.
Üçgen: Üç kenarla birbirine bağlanan üç köşe noktasının bir üçgen oluşturması gerekir. Bu, bazen çokgen ya da yüz olarak da adlandırılır. 3ds Max, Maya veya Blender gibi 3D yazılımlarda genellikle dörtlülerle çalışıyorsunuz. Dörtgenler, dört kenarlı bir çokgendir; daha kolay değiştirilip üzerinde çalışılabilir. Oluşturulduğunda, bu poligonlar ekranda üçgen şeklinde görüntülenir.
Geometri hakkında daha fazla bilgi edinmek için aşağıdaki bölümleri kullanın:
Üçgen ve poligon kullanımı
Bu bölümde, üçgenler ve çokgenler kullanmayla ilgili en iyi uygulamalar ana hatlarıyla açıklanmaktadır. Bu güncelleme aşağıdaki önerilerden bazılarıdır:
- Üçgen sayısını azaltın
- Önemli alanlarda üçgenler kullanın
- Mikro üçgenleri kaldırma
- Uzun ve ince üçgenler kullanmaktan kaçının
Üçgen sayısını azaltın
Çok fazla üçgen eklerseniz oyunun performansı düşer.
Mümkün olduğunca az sayıda üçgen kullanın. İstediğiniz kaliteyi elde edecek kadar yeterli kullanmanızı öneririz. Mobil oyun için içerik oluşturmanın performans üzerindeki etkisini düşünün. Köşeleri işlemek pahalıdır. Dönüş sayısı ne kadar azsa oyunun genel performansı da o kadar iyi olur. Ayrıca, ne kadar az üçgen kullanırsanız oyun güçlü bir GPU olmadan o kadar çok cihazda oynanabilir.
Aşağıdaki resimde, daha az üçgenle kaliteyi koruyabileceğiniz gösterilmektedir:
2. Şekil. Gölgeli modda aynı görünen, farklı üçgen sayılarına sahip iki nesnenin karşılaştırılması. Soldaki nesnede, silüete katkısı olmayan kenarlar kaldırılmıştı.
Mobil platformlarda, tek bir örgü için yaygın olarak kullanılan maksimum köşe sayısı 65.535'tir. Maksimum uyumluluk için bu sayının altında kalmalısınız.
Bu sınırın nedeni, tüm GPU'ların yalnızca 0 ile 65.535 köşe aralığını temsil edebilen 16 bit dizinleri desteklemeyi garanti etmesidir. Modern GPU'ların tamamı olmasa da çoğu, 0-4.294.967.295 tepe noktasını temsil eden 32 bit dizinleri destekler. 16 bit dizinleri kullandığınızda desteklenen aralığı aşmış olursunuz. Bu durum, eksik veya yanlış oluşturulmuş geometriye yol açar.
Oyunu PC monitörü yerine, yayınlamayı düşündüğünüz tüm cihazlarda her zaman görüntüleyin ve test edin. Yüksek ayrıntı düzeyine sahip bazı modeller doğru şekilde oluşturulmayabilir, hatta mobil cihazlarda bile görünmeyebilir.
Ön plan nesnelerinde daha fazla, arka plan nesnelerinde ise daha az üçgen kullanılmasını öneririz. Bu, statik kamera bakış açısı (POV) olan oyunlar için daha faydalıdır. Aşağıdaki örnekte, ayrıntıların farklı nesnelerdeki uygun bir kullanımı gösterilmektedir.
3. Şekil. Bu örnekte, arka plan nesnelerine kıyasla ön plan nesnelerinin yüksek ayrıntı düzeyi gösterilmektedir.
Bir model için kullanmanız gereken maksimum üçgen sayısı cihaza ve içeriğe göre değişir. Ekranda daha fazla nesne varsa her model için daha az üçgen kullanın. Yalnızca iki veya üç nesne görüntüleniyorsa bunlar daha fazla üçgen içerebilir.
Aşağıdaki örnekte farklı demolardan iki model gösterilmektedir. Circuit VR demosu sadece bir robot karakteri içeriyor. Yalnızca tek bir nesne olduğundan robot modelinin üçgen sayısı daha yüksek olur. Diğer model Ories demosudur. Bu demoda her karede yüzlerce asker olduğu için her asker daha az üçgenle karşılaşır.
4. Şekil. İki farklı kullanım alanı için üçgen sayısının karşılaştırması. Sol tarafta, CircuitVR Robot'ta 11.000 üçgen var. Sağda, Ordu Askerinin 360 derecelik üçgeni var.
Üçgen kullanımı örneği
Aşağıdaki şekilde, Ordu'nun teknoloji demosunda kullanılan üçgenlerin örnek sayısı gösterilmektedir.
Unity'de yerleşik olarak bulunan 64 bitlik bir mobil teknoloji demosu olan Armies demosunda, çok sayıda animasyonlu karakterle kamera sabittir. Toplamda, her kare yaklaşık 210.000 üçgen oluşturur. Bu üçgen sayısı, demonun saniyede yaklaşık 30 kare (FPS) hızında kararlı bir şekilde çalışmasını sağlar.
5.Şekil Kullanılan üçgen sayısını gösteren, The Armies'in teknoloji demosundan alınmış bir örnek.
Sahnedeki en büyük nesneler olan top kuleleri, ekranın büyük bir kısmını kapladığı için yaklaşık 3.000 üçgen şeklindedir.
Karakterlerin her biri yaklaşık 360 derece üçgen kullanıyor. Çok fazla sayıda olduğu ve yalnızca uzaktan görülebildiği için çok fazla üçgen kullanmazlar. Kameranın bakış açısına göre uygun görünüyorlar.
6.Şekil Armies'in teknoloji demosundaki üçgen alçak askerlerin görünümü.
Önemli alanlarda üçgenler kullanın
Köşe noktaları mobil platformlarda çok pahalıdır. İşleme bütçenizin boşa harcanmasını önlemek için, oyunun görsel kalitesine katkıda bulunan alanlara köşeler yerleştirin. 3D bir nesnedeki küçük ayrıntılar oyunun son ekranında görünmeyebilir. Ekran boyutundan ve 3D nesnelerin yerleştirilmesinden dolayı, çok küçük ayrıntıları görmek imkansız olabilir.
İnce ayrıntılar yerine, silüete katkı sağlayan büyük şekillere odaklanın. Aşağıdaki resim, silüete odaklanma örneğidir:
7. Şekil. Robotun etrafındaki kırmızı çizgi, robotun silüetini temsil ediyor.
Kamera görüş açısında çok sık görünmeyen alanlarda daha az üçgen kullanmanızı öneririz. Örneğin, bir arabanın alt kısmı veya bir gardıropun arkası. Bir nesnenin bir parçası asla görülemeyecekse, nesnenin o kısmını silin.
Nesnenin bir kısmının silinmesi, dikkatlice yapılmalıdır. Bu, nesnenin yeniden kullanılabilirliğini sınırlandırabilir. Örneğin, bir tablo ağının alt kısmını silerseniz tablo ters yerleştirilmişse kullanıcı silinen bölümü fark eder.
Küçük ayrıntıları yüksek yoğunluklu üçgen örgülerle modellemeyin. İnce ayrıntılar için dokular ve normal haritalar kullanın. Aşağıdaki örnekte, normal harita içeren ve içermeyen aynı ağ gösterilmektedir.
Şekil 8. Normal harita uygulanmış ve uygulanmayan bir modelin karşılaştırılması.
Mikro üçgenleri kaldırma
Mikro üçgenler bir sahnenin nihai görsellerine katkıda bulunmayan çok küçük üçgenlerdir.
Yüksek çokgen sayısı olan tüm 3D nesneler, kameradan uzaklaştırıldığında mikro üçgen sorunları ortaya çıkar. Mikro üçgenlerin endüstri standardında bir tanımı yoktur ancak mikro üçgenler, nihai resimde genellikle 1 ila 10 pikselden küçük üçgenler olarak anlaşılır. Mikro üçgenler kötüdür çünkü nihai görüntüye katkı sağlamasalar bile tüm bu üçgenlerde işlemin tamamını GPU'nun yapması gerekir.
Mikro üçgenlerin nedeni iki şeydir:
- Ayrıntılar çok küçük ve çok sayıda üçgenden oluşuyor.
- Kameradan uzakta çok sayıda üçgen bulunan nesneler.
Şekil 9. Mesafenin mikro üçgenler üzerindeki etkisi
Şekil 9'da, ön plandaki robotta mikro üçgenler yoktur. Arka plan robotunun amacı, her üçgenin yalnızca 1 ila 10 piksel boyutunda olmasıdır.
Şekil 10. Son derece ayrıntılı modellerde mikro üçgenlerin karşılaştırılması. Vurgulanan alandaki üçgenlerin çoğu telefon ekranlarında görülemeyecek kadar küçük.
Kameradan daha uzakta olan bir nesne için ayrıntı düzeyi (LOD) özelliğini kullanın. Bu da bir nesnenin karmaşıklığını azaltır ve daha basit hale getirir. Sonuçta, yoğunluğu daha az üçgenli bir nesne ortaya çıkar.
Çok sayıda üçgenle ayrıntı oluşturmayın. Bu tür ince ayrıntılar için dokular ve normal haritalar kullanın. Çok küçük olan ve nihai görüntüye katkıda bulunmayan köşeleri ve üçgen ayrıntılarını birleştirebilirsiniz.
Bellek bant genişliğini etkileyebileceği için mikro üçgenlerin sayısını azaltmak önemlidir. Daha fazla üçgen olması, GPU'ya daha fazla veri gönderilmesini sağlar. Bu işlem, mobil cihazlarda pil ömrünü etkileyebilir. Daha fazla güç tüketimi termal sınırlamaya neden olabilir. Bu da GPU'nun maksimum performansını sınırlandırır.
Uzun, ince üçgenler kullanmaktan kaçının
Bunlar, nihai resimde oluşturulduktan sonra bir boyutta 10 pikselden küçük olan ve ekranın uzağına yayılan üçgenlerdir. Uzun ve ince üçgenlerin işlenmesi genellikle diğer üçgenlere göre daha pahalıdır.
Aşağıdaki resimde, sütunun eğimi uzaktan görüntülendiğinde uzun ve ince bir üçgene sahiptir. Yakından bakıldığında bu eğimler sorun oluşturmaz.
Şekil 11. Sütun üzerindeki eğim uzun ve ince bir üçgendir.
Mümkünse tüm nesnelerden uzun ince üçgenleri kaldırmanızı öneririz.
Parlak nesneler söz konusu olduğunda, uzun ve ince üçgenler kamera hareket ederken ışık titremesine neden olabilir. LOD, bir nesne kameradan uzakta olduğunda uzun, ince üçgenlerin kaldırılmasına yardımcı olabilir.
Mümkünse, tüm üçgenleri eşkene yakın tutmaya çalışın. Böylece üçgenler daha fazla alan ve daha az kenar elde eder. Uzun ve ince üçgenler, genel olarak büyük üçgenlere kıyasla daha kötü performans gösterir. Üçgen alanı hakkında daha fazla bilgi için Triangülasyon bölümünü okuyun.
Ayrıntı düzeyi
Ayrıntı düzeyi (LOD), nesneler izleyiciden daha uzaklaştıkça karmaşıklığı azaltan bir tekniği ifade eder. En yaygın LOD biçimi, bir ağın giderek daha az köşe noktasına sahip birden çok versiyonunu içerir. LOD yalnızca işlenecek köşe noktalarının sayısını azaltmakla kalmaz, aynı zamanda mikro üçgenler sorununu da önler. Ayrıca, sahnede daha uzaktaki nesnelerde de daha iyi görünür.
Mümkün olduğunda LOD kullanmanızı öneririz. Nesnenin silüetine odaklanın. tepe noktasını azaltmak için hedeflenecek düz alanlara odaklanmak en iyisidir. Aşağıdaki resimde, robot modeline uygulanan LOD kullanımı gösterilmektedir.
Şekil 12. LOD değişikliği olarak kullanılan köşe noktalarının karşılaştırılması.
Şekil 12'de, belirli bir mesafede 200 üçgen veya 2000 üçgen içeren aynı nesne arasındaki farkı görmek zordur. Daha fazla üçgene sahip bir nesnenin kaynak maliyeti yüksek olur ancak uzaktan görüntülendiğinde görünümü iyileştirmez.
Şekil 13. Farklı üçgen sayılarına sahip uzak modellerin karşılaştırması.
Kavram olarak LOD, gölgelendiricinin karmaşıklığı ve doku çözünürlüğü için de geçerli olabilir. Daha düşük bir LOD'da, daha basit gölgelendiriciler ve daha az dokuyla farklı malzemeler kullanılabilir. Ayrıca, uzaktaki nesnelere düşük çözünürlüklü doku seviyelerinin uygulanması için dokuların mip eşlemlerinin bulunduğundan emin olmalısınız. Bu önlemler, performansı artırırken verilerinizin boyutunu büyütmeden ödün verir.
Kameranın ve nesnelerin hareketsiz olduğu oyunlar için LOD seçeneği önerilmez. LOD'nin en büyük avantajı kameraya doğru ve kameradan uzaklaşan nesnelerdir. Statik nesneler hareket etmez, dolayısıyla LOD herhangi bir fayda sağlamaz.
Şekil 14. Armies teknoloji demosundaki, LOD kullanmayan statik kamera sahnesi.
LOD oranları
LOD için üçgen sayısını azaltırken tutarlı bir oran kullanın. Her seviye için üçgenleri% 50 azaltmanızı öneririz.
Basit nesnelerde LOD kullanmayın. Üçgen sayısı düşük olan nesneler LOD özelliğinden yararlanamaz. The Armies'in teknoloji demosundaki aşağıdaki örnekte oyunun statik bir resim ve alçak üçgen nesnelerle nasıl görüneceği gösterilmektedir.
Şekil 15. LOD azaldıkça modeller arasında karşılaştırma.
LOD seviyelerinin kameraya uygun mesafelerde değiştiğini doğrulayın. Analizinizde verilerin oyunda nasıl kullanıldığını temel alın.
Şekil 16. Bir LOD 3 modelinin yakından görünümünün ve istenen mesafenin karşılaştırılması.
Bir nesnenin ne kadar LOD'a sahip olabileceğini gösteren kesin bir sayı yoktur. Bu, nesnenin boyutuna ve nesnenin ne kadar önemli olduğuna bağlıdır. Örneğin, aksiyon oyunundaki bir karakterin veya yarış oyunundaki bir arabanın, ağaç gibi arka plandaki küçük nesnelerden daha fazla LOD seviyesi olabilir.
Çok fazla LOD için CPU kaynaklarına mal olacağını unutmayın. CPU'nun hangi LOD'un görüntüleneceğine karar vermesi için daha fazla işlem gücü gerekir. LOD'lar aynı zamanda belleğe de maliyettir. Bu da dosya boyutunu ve VRAM kullanımını artırır. Ayrıca LOD modellerinin oluşturulması ve doğrulanması da ek zaman alır.
LOD örgüleri oluşturmanın iki yolu vardır: manuel ve otomatik.
- Herhangi bir 3D yazılımla manuel olarak LOD örgüleri oluşturabilirsiniz.
- Bunu yapmak için, kenar döngülerini kaldırın veya 3D nesne üzerindeki köşelerin sayısını azaltın.
- Bu sayede sanatçı, nihai ürün üzerinde en fazla kontrole sahip olur ancak bu süre uzayabilir.
- LOD ağları otomatik olarak oluşturulabilir.
- Bir 3D paket içinde, 3ds Max'teki ProOptimizer veya Maya'da LOD Ağları Oluştur gibi bir değiştirici kullanabilirsiniz.
- Simplygon veya InstaLOD gibi LOD oluşturma yazılımları kullanabilirsiniz.
- Bazı oyun motorları, LOD ağları oluşturup uygulamanıza olanak tanıyan otomatik bir LOD oluşturma özelliğine sahiptir.
En iyi uygulamalar
Oyununuz için gereken kaynakları azaltıp grafik kalitesini de koruyan ek teknikler vardır.
Yumuşatma grupları veya özel köşe normalleri
Bir kenarın sertliğini tanımlamak ve modelin görünümünü değiştirmek için yumuşatma gruplarını veya özel tepe noktası normallerini kullanın. Yumuşatma grubu, düşük poli sanat yönünde daha iyi bir gölgelendirme oluşturulmasına yardımcı olur. Yumuşatma grubu, ekmek pişirme işlemi sırasında UV adalarının bölünmesini ve normal haritaların kalitesini de etkiler.
Şekil 17. Yumuşatma grubu olan ve olmayan modelin karşılaştırılması.
3D modele yumuşatma grubu uygularsanız bu grubun, 3D yazılımından dışa aktarılması ve motora aktarılması gerekir.
Örgü topolojisi
Yeni bir 3D öğe oluşturduğunuzda, düzenli bir topolojiye sahip olduğundan emin olun. Animasyon ve değişen karakterler ve diğer nesneler için temiz topoloji çok önemlidir. Topolojinin mükemmel olması gerekmez. Son kullanıcıların tel çerçeveyi görmeyeceğini, dokuların ve malzemelerin modelin görünümü üzerinde daha büyük bir etki yaratacağını unutmayın.
Şekil 18. Armies teknoloji demosundaki bir kayanın topoloji, tel çerçevesi ve son hali.
Şekil abartısı
Modellerinizin daha kolay yorumlanmasını sağlamak için bazı şekilleri abartabilirsiniz. Bu durum büyük ölçüde oyununuzun türüne ve tarzına bağlıdır. Mobil cihaz ekranları küçük olduğundan, çok küçük bazı şekilleri yakalamak zor olabilir. Bu şekillerin abartılması, uzak mesafeden bile kullanıcıların şekli görmesine yardımcı olabilir.
Örneğin, daha kolay görünmek için elleri büyük karakterler oluşturabilirsiniz.
Şekil 19. Daha iyi görünürlük için abartılı oranları gösteren örnek model.