Deneyiminizi Optimize Etme süreci, varlıklarınızı ve Stüdyo ayarlarınızı yapılandırarak, bellek ve grafik işleme birimi (GPU) sınırlamaları olan cihazlar için çerçeve hızınızı ve performans seviyelerinizi yüksek tutmayı amaçlar. Bu süreç, neredeyse her kullanıcının çevrenizi görüntülerken aynı oyun deneyimi ve görsel deneyim yaşamasını sağlar.
Çevre Sanatı - Optimize Etme .rbxl dosyasını referans olarak kullanarak, bu çevresel sanat müfredatı bölümü, yerinizi optimize grafikler için gözden geçirmenin ve yapılandırmanın yollarını gösterir, buna aşağıdaki konular dahil:
- Her varlığın fizik ve görüntüleme parametrelerini gözden geçirerek, bunların bellek ve motor performansını koruyup korumadığını doğrulama.
- Roblox Motorunun varlıklarınızı render etmek için gerçekleştirmesi gereken hesaplamaları gereksiz yere artıran fazla doku, geometri veya saydamlıkları kaldırma.
Roblox Motoru, çoğu optimizasyon çalışmasını sizin için halleder, ancak belirli kareleri render etmenin ne kadar zaman aldığını görmek için Mikroprofiler kullanarak bu optimizasyon çabalarına yardımcı olabilirsiniz. Bu bilgiyi kullanarak, varlıklarınızın parametreleri veya fazlalık içeriği ile ilgili hangi varlıkların dikkat gerektirdiğine dair bilinçli kararlar verebilirsiniz. Sahne Analizi kaynak kullanımını kontrol etmek için başka bir güçlü araçtır.

Fizik ve render parametrelerini gözden geçirin
Bir varlık kütüphanesi oluşturma bölümünde, varlıklarınızın bellek ve GPU sınırlamaları olan cihazlarda yüksek görsel kalitelerini korumasını sağlamak için fizik ve görüntüleme parametrelerini ayarlamanın ne kadar önemli olduğunu öğrendiniz. Ancak, çevrenizi oluştururken bu parametreleri varlığın bağlamsal konumu ve amacı doğrultusunda ayarlamak yaygındır. Örneğin, son örnek lazer tag ortamındaki bitkilerin çoğu, çevrenin gerçekçiliğini artırdığı için bir performans maliyeti olmasına rağmen gölgeler düşürmektedir.
Fizik ve render parametrelerini değiştirdiğinizde, gelişim sürecinin sonlarına yaklaştığınızda tüm parametreleri gözden geçirebilir ve estetik hedeflerinizi ve oyun gereksinimlerinizi korurken bir parametreyi optimize etmenin yollarını görebilirsiniz. Örneğin, oyun alanının kenarlarında bitkiler için BasePart.CastShadow özelliğini devre dışı bırakabilirsiniz, böylece bir kullanıcının oyun veya görsel deneyimini etkilemeden performanstan tasarruf sağlarsınız.


Gereksiz içeriği kaldırın
Fizik ve render parametrelerinizi gözden geçirdikten sonra, varlıkları kendilerini inceleyerek oyun deneyiminizi etkilemeyecek gereksiz içeriği nerede kaldırabileceğinizi görebilirsiniz. Bu içerikler arasında farklı varlık kimlikleriyle aynı dokular, çok sayıda köşeye sahip karmaşık geometriler veya kameranın görünümüne bağlı olarak üst üste katman olan saydamlıklar yer alır. Aşağıdaki bölümler, bu içeriği gözden geçirmek ve bunun optimizasyon çabalarına neden yardımcı olduğuna dair detayları sunar.
Tekrar eden dokuları kaldırın
Varlıklarınızı geliştirirken ve çevrenizi oluştururken, estetik hedefleriniz veya oyun gereksinimleriniz için neyin gerekli olduğunu bulduğunuzda dokuları veya modelleri tekrar gözden geçirmek yaygındır. Varlıklarınızı paketlere dönüştürmezseniz, bu iterasyonları Studio'ya import ettiğinizde, Roblox Motorunun varlıklarınızı çevrede render ederken referans alması gereken benzersiz varlık kimlikleri oluşturuyorsunuz.
Örneğin, aşağıdaki iki yangın hidroforu modelini Studio'ya ayrı ayrı import ederseniz, görünüm açısından tamamen aynı olsalar bile, Roblox Motoru bunları benzersiz varlık kimliklerine sahip iki nesne olarak değerlendirir. Motorun yapması gereken daha fazla benzersiz çağrı olduğunda, bellek ve performans üzerinde daha fazla etkiye neden olur. Bu nedenle, aynı varlığı birden fazla kez kullanıyorsanız, o varlığın her örneğinin aynı varlık kimliğini kullandığını doğrulamak önemlidir, böylece motor onu tekrar tekrar render etmek için yalnızca bir çağrı yapmak zorundadır.

Geometriyi optimize edin
Cihazlar arasında çerçeve hızını artırmak için daha fazla ayarlama yapmanız gerektiğini düşünüyorsanız, geometriyi optimize edebileceğiniz alanları görmek faydalıdır:
- Bir dizi modeli tek bir varlıkta birleştirmek.
- Geometrik karmaşıklığı olan varlıkların çokgen sayısını azaltmak.
Bu ilk teknikle ilgili olarak, deneyiminizdeki her benzersiz varlık, GPU üzerinde bir çekim çağrısı oluşturur; bu da Roblox Motorunun varlığın doğru bir şekilde render edilmesi için bilgi çağrısında bulunması gerektiği anlamına gelir. Sahip olduğunuz ne kadar çok benzersiz varlık varsa, sistemin yapması gereken o kadar çok çekim çağrısı vardır. Bu nedenle, deneyiminizde daha büyük bir bileşeni oluşturan bir grup modeli birleştirebilirseniz, onları üçüncü taraf modelleme araçlarında bir araya getirerek birden fazla çekim çağrısının gerekliliğini azaltabilirsiniz.
Bu noktayı örneklendirmek için, son örnek lazer Tag ortamı, binanın dışındaki büyük kuleleri oluşturmak için birden fazla parça ve modeli birleştirmiştir. Tüm bu bireysel bileşenleri birleştirirseniz, yalnızca bir varlık kimliğiyle tek bir varlık oluşturabilir ve çekim çağrısı sayısını 8'den 1'e indirebilirsiniz. Ancak, bu tekniğin her bileşenin görsel ve fiziksel özelliklerini, konumu veya malzemesi gibi serbestçe değiştirme yetinizi ortadan kaldıracağını belirtmek önemlidir.
Örneğin, aşağıdaki resimde, sol kule bir Model nesnesinin altında birden fazla varlık içerir ve sağ kule tek bir varlıktır. Sol kuledeki her bileşeni ayrı ayrı değiştirebilirsiniz, ancak sağ kulede, rengini siyaha değiştirmek gibi bir değişiklik yaptığınızda, bu nesnenin tamamını etkiler. Bu nedenle, estetik hedeflerinizi etkilemeden performansı artırmanın yollarını bildiğinizde, bu tekniği yalnızca çevrenizin geliştirme sürecinin sonlarında dikkate almak önemlidir.

İkinci teknikle genişletecek olursak, geometrik karmaşıklığı olan varlıklar daha fazla çokgen içerir, bu da motorun görsel görünümünü render ederken hesaplaması gereken daha fazla köşe olduğu anlamına gelir. Bu nedenle, daha az karmaşıklığa ve sadeliğe sahip varlıklar render etmek için daha düşük maliyetlidir ve bu da hem performansta hem de bellek kullanımında iyileşme sağlar.
Katmanlı saydamlıkları silin
Ortama gerçekçilik katmak için, final örnek lazer tag ortamı saydamlık seviyeleri değişen birçok modeli içerir; bunlar arasında dış alanlardaki bitkiler, gelecekçi tabelalar ya da saksı korkulukları üzerindeki cam yer alır. Kamera, önünde veya arkasında yer alan birden fazla yarı saydam nesneyi görüntülediğinde, Roblox Motoru, şeffaf alanları hesaba katmak için üst üste gelen pikselleri birden fazla kez render etmek zorundadır. Bu süreç yüksek saydamlık üst üste bindirme olarak adlandırılır ve performansa önemli bir etki yapar.
Örneğin, örnek ortamda bir saksının görünümünü düşünün. Motor, kameraya en yakın bitkiden dış alana en yakın bitkiye kadar yaprakların şeffaf alanlarını katmanlar halinde render etmek zorundadır; bu da yüz binlerce gereksiz piksel oluşturur. Bu etkileri azaltmak için, çevrenizdeki tüm yarı saydam nesnelerin yerleşimini gözden geçirmek ve çok sayıda üst üste bindirme katmanının olmadığı yerleri kontrol etmek önemlidir, özellikle ekranın büyük alanlarında.


Tüm içeriğinizi gözden geçirdiğinizde ve cihazlar arasında optimal hale getirdiğinizde, deneyiminiz artık yayınlanmaya hazır!