Karşınızda SLIM: Ölçeklenebilir Hafif Etkileşimli Modeller
Tüm Cihazlarda Daha Büyük ve Daha Ayrıntılı Dünyalar Oluşturmak için Hafif Görsele Dönüştürme Kompozitlerinin Gücünden Yararlanma
Roblox, basit mini oyunlardan yüksek kaliteli 3B varlıklarla dolu geniş açık dünyalara kadar milyonlarca deneyime ev sahipliği yapıyor. Amacımız, yaratıcıların geniş yelpazede kullanıcı cihazlarıyla hayata geçirmeyi hayal ettiği, giderek yoğunlaşan ve karmaşıklaşan deneyimleri desteklemektir. Bu deneyimler motorumuzda, içerik dağıtım sistemlerimizde ve altyapımızda yenilikler yapmamızı gerektirmektedir. Ölçeklenebilir Hafif Etkileşimli Modeller veya SLIM, yaratıcıların performanstan ödün vermeden büyük sanatsal vizyonlarını gerçeğe dönüştürmelerini sağlayan çok bölümlü bir geliştirme çalışmasının bir parçasıdır.
SLIM, yaratıcıların bir Roblox deneyimindeki herhangi bir nesnenin otomatik olarak hafif temsillerini oluşturmasına olanak tanıyarak istemcinin sağlam ve kusursuz bir dünyayı görsele dönüştürmesi için gereken çizim çağrısı, üçgen ve veri modeli durumlarının sayısını en aza indirir. SLIM, akış modelimize içeriği optimize etmek için güçlü yeni yollar sunarak üst düzey bir oyun bilgisayarına sahip bir kullanıcı ile düşük kaliteli bir mobil cihaza sahip bir kullanıcının, aynı deneyimi cihazlarının kaldırabileceği en yüksek kalitede paylaşmasına olanak tanır.
| Durum akışı ve SLIM olmadan | Durum akışı ve SLIM ile | |
| İstemci veri modeli durumları | 159.745 | 92.536 |
| Üçgenler | 20 milyon | 3,35 milyon |
| Çizim Çağrıları | 2.402 | 1.454 |
Akışın İki Temel Taşı: Durumlar ve Varlıklar
En sevdiğin dijital yayın platformunda bir film izlerken, cihazın sen filmi izlemeye başlamadan dosyanın tamamını indirmez. Hemen izlemeye başlaman için yeterli miktarda veri indirir, ardından deneyimde herhangi bir kesinti olmaması için sürekli olarak sonraki birkaç saniyeyi indirir (arabelleğe alır). Düşük kaliteli bir cihazda veya yavaş bir bağlantıyla izliyorsan platform, yüksek kaliteli içeriğin akışını sağlamak için yeterli veriyi indirdiği sırada sana içeriğin daha düşük kaliteli bir versiyonunu göndererek otomatik adaptasyon sağlar.
Roblox, içerik akışı için benzer bir konsept kullanır ancak yüksek kaliteli bir 3B simülasyonu temsil etmek için gereken verilerle ilgili bazı zorluklar bulunur. Bir videoda tek bir perspektiften görüntülenen içeriğin doğrusal bir zaman çizelgesi varken Roblox deneyimleri, kullanıcının kontrolündeki birçok perspektiften görüntülenebilen çok sayıda türden varlıkla dolu geniş, etkileşimli 3B dünyalar içerir. Buna çok çeşitli cihazlardan içerik oynayan, keşfeden ve nihayetinde içerik akışını sağlayan 151,5 milyon günlük aktif kullanıcıyı eklediğinizde, içeriğin sunum ve görüntülenme şeklini optimize etmek için muazzam bir potansiyel ortaya çıkar.1
Bir kullanıcının Roblox'ta gördüğü her şey (bir araba, bir ağaç, bir avatar veya bir bina) motor içinde bir dizi durum olarak temsil edilir. Örneğin kullanılabilir bir araba; tampon, kapı, lastikler vb. için durumlara ayrılır. Her durum; 3B mesh'ler, dokular, animasyonlar ve sesler gibi birden fazla varlık kullanılarak deneyim içinde oluşturulur.
Roblox'ta neredeyse tüm içerik akışları iki temel teknolojiye ayrılmıştır: durum akışı ve varlık akışı.
-
Durum akışı, bir kullanıcıya ait cihazın hangi durumların akışını yapması gerektiğini belirler. Kullanıcının henüz göremediği veya etkileşim kuramadığı deneyim bölümlerinin akışını yapmaya gerek yoktur. Yukarıdaki örnekte, yalnızca yakındaki binaları temsil eden durumların istemciye doğru akışı yapılır.
-
Varlık akışı, akışı yapılan durumların kalitesini belirler. Kullanıcının ince ayrıntıları ayırt edemeyeceği kadar uzakta olan bir dağ için yüksek çözünürlüklü 4K doku indirmeye gerek yoktur. Yukarıdaki görselde uzaktaki binalar ve ekranın küçük bir kısmını kaplayan binalar, azaltılmış mesh'ler ve düşük çözünürlüklü dokular kullanır.
Bu işlemin merkezî beyni, her kullanıcının mevcut kaynaklarını her bir karede izleyen Harmony adını verdiğimiz bir sistemdir. Harmony, bir cihazın belleğine, GPU ile işlemci yüküne ve ağ bant genişliğine göre en iyi deneyimi sağlamak için hem durum hem de varlık akışını ayarlar. Harmony, üst düzey bir oyun bilgisayarı için her şeyi en yüksek kaliteye çıkarır. Zayıf bağlantıya sahip bir mobil cihazda ise kullanıcı deneyimini sorunsuz tutmak için otomatik olarak ölçeği küçültür.
Ekip, Tech Talks podcast'inin 30. bölümünde içerik akışı, bulut kod dönüştürme ve SLIM'in arkasındaki teknoloji hakkında konuştu.
SLIM: Ölçeklenebilir Hafif Etkileşimli Modeller
SLIM'in altında yatan temel fikir basit ama güçlüdür: SLIM, bir yaratıcının dünyasındaki herhangi bir nesnenin veya modelin otomatik olarak birden fazla hafif, optimize edilmiş temsillerini oluşturabilir ve bunları çalışma zamanında getirilmek üzere sunucuda saklayabilir. Her kullanıcının istemcisi, cihazın mevcut kaynaklarına bağlı olarak orijinal durumları ve varlıkları veya bunların hafif SLIM temsillerinden birini görsele dönüştürme arasında dinamik olarak geçiş yapabilir.
SLIM, hafif bir temsil oluşturmak için iki ana teknik kullanır:
1. Kompozitleme
İlk olarak SLIM, birden fazla parçayı daha az parça olacak şekilde birleştirir. Aşağıdaki araba 112 ayrı mesh ve 24 ayrı doku gerektirirken hafif temsili yalnızca bir mesh ve dört doku gerektirebilir. Kompozitleme işlemi, motorun içeriği nihai olarak nasıl görsele dönüştüreceğine uygun olarak hassas bir şekilde ayarlanır, bir nesne içindeki görünmez geometriyi ortadan kaldırır ve onu görsele dönüştürmek için gereken çizim çağrılarının sayısını azaltır.
2. Detay Seviyesi (LoD)
SLIM, modeli birleştirdikten sonra farklı detay seviyelerinde birden fazla versiyon oluşturur. Bu, geleneksel Detay Seviyesi (LoD) tekniklerini kullanarak herhangi bir tekil mesh veya doku varlığında yaptığımız gibi, 3B mesh'in önemli ölçüde daha az üçgen içeren sürümlerini oluşturmak ve çok daha düşük çözünürlüklerde dokular üretmek anlamına gelir. Bu teknikler, elimizde her bir temel durumun ayrı koordinat çerçeveleri olduğu için SLIM modellerine uygulandığında daha da optimize edilebilir. Bu bize yaratıcının, bu varlıkların her birinin birlikte nasıl görsele dönüştürülmesini amaçladığına dair tam bir bağlam sunar. Bu bilgiyle birlikte SLIM, nerede gereksiz ayrıntıların kaldırılacağı ve nerede kullanıcıların fark edeceği ayrıntıların tutulacağı konusunda daha bilinçli kararlar vermemizi sağlar.
Doğru Zamanda Doğru Temsil
Bir nesnenin birden fazla temsili oluşturulduktan sonra SLIM, belirli bir kullanıcının cihazı için hangisini kullanacağına veya bunun yerine geleneksel görsele dönüştürme tekniklerini kullanıp kullanmayacağına karar vermelidir. Sistem dünyayı üç ayrı bölgeye ayırır. Bu bölgeleri düşünmenin basit bir yolu, oyuncudan dışarı doğru uzanan eş merkezli detay dairelerini hayal etmektir.
İçerik akışı sınırları aslında dairesel değildir. Şekilleri çeşitli faktörlere bağlıdır.
HH Bölgesi (Ağır Durumlar, Ağır Görsele Dönüştürme)
HH bölgesinde tam, ağır durumlar için sunucudan istemci veri modeline doğru akış yapılır ve istemci, her durum için indirilecek ve görsele dönüştürülecek spesifik varlık temsilini belirler. Bu bölgede mesh Detay Seviyeleri (LoD) ve doku süzmelerle (mipmap) ölçeklendirme yapılabilir ancak kompozitleme mümkün değildir. SLIM'den önce, bir deneyime akışı yapılan her durum bu şekilde görsele dönüştürülüyordu.
HL Bölgesi (Ağır Durumlar, Hafif Görsele Dönüştürme)
HL bölgesi, HH ve LL bölgeleri arasında yer alır. Bu bölgede istemci, veri modelinde ağır durumlara sahiptir ancak tam görsele dönüştürme hattını veya SLIM hattını kullanarak görsele dönüştürmeyi seçebilir. Bu bölge, kullanıcı ağ gecikmesiyle karşılaşsa bile HH ve LL bölgeleri arasında sorunsuz bir geçiş sağlamak için adapte olur. HH ve HL bölgeleri arasındaki geçiş noktası dinamiktir. Bu da Harmony'nin her iki yöndeki bir kaynak artışına yanıt olarak hemen yukarı veya aşağı ölçeklendirme yapmasına olanak tanır.
LL Bölgesi (Hafif Durumlar, Hafif Görsele Dönüştürme)
LL bölgesinde istemci, minimum meta verilerle birlikte bir SLIM modeli için koordinat çerçevesi tanımlamak amacıyla yalnızca gerekli durumların süper hafif temsillerinin akışını yapar. Bu bölgede her bir durum ve varlık yerine yalnızca hafif kompozit SLIM modelleri görsele dönüştürülür. LL bölgesi çok daha az üçgen ile çizim çağrısı gerektirir ve her ağır durumda akış yapmaya ve geleneksel görsele dönüştürme hattını kullanmaya kıyasla kullanıcının cihazındaki bellek kullanımını azaltır.
Bu bölge tekniği, istemcinin her ağır durum ve varlığı aynı anda kullanmanın tüm bilgi işlem yüküyle uğraşmadan görünür dünyanın tamamını her an görsele dönüştürmesine olanak tanır. Uzak nesneler, kullanıcı yaklaştıkça yüksek kaliteli muadilleriyle değiştirilen son derece optimize edilmiş, hafif temsillerdir. SLIM'in kompozitler ve çoklu ölçekli Detay Seviyesi (LoD) modelleri oluşturma yeteneği, Harmony'ye her kullanıcının cihazı için varlık kalitesini optimize etmenin daha fazla yolunu sunar.
Her şey bir araya geldiğinde, oyuncu kendini tamamen oyuna kaptırmış hissetmeli ve geçiş noktalarından herhangi birini veya değişen detay seviyelerini fark etmemelidir.
Gelecek: SLIM Bundan Sonra Hangi Noktaya Ulaşacak?
SLIM, çok adımlı bir yolculuğun yalnızca ilk adımıdır. Yaratıcıların, bu teknolojiyi iş akışlarına nasıl entegre edeceğini görmek için sabırsızlanıyoruz. Gelecekte SLIM'i iki ana yönde genişletmenin yollarını araştırıyoruz.
SLIM ile Başka Nelerin Yapılabileceğini Belirleme
İşe yaratıcıların Studio'da belirlediği statik modellerle başlıyoruz ancak gelecekte SLIM, Roblox'taki en karmaşık modellerden biri olan platform avatarlarını da optimize edebilecek. Avatarlar, ilişkili tüm animasyonları, üst üste giyilen kıyafetleri ve aksesuarları ile yaratıcılar için öngörülemeyen bir değişken olabilir. Avatarlarda SLIM kullanımına izin verilmesi, motorun tek bir avatar modelinin kullandığı kaynakları etkili bir şekilde sınırlayabileceği anlamına gelir.
Er ya da geç, yaratıcılara dinamik modellerdeki değişiklikler için SLIM'den yararlanma seçeneği sunmak istiyoruz. Sunucunun aktif olarak değişiklik yapabildiği (ör. bir kapı açılırken veya bir parça yok edilirken) bir model hayal edin. Birkaç akıllı numara ile istemci aynı hafif temsili yeniden kullanabilir.
SLIM Hattını Optimize Etme
Artık motora yeni bir esneklik boyutu sağlayan uçtan uca bir veri hattına sahip olduğumuza göre veri hattını daha akıllı, daha hızlı ve daha verimli hâle getirmeye de odaklanıyoruz. Buna şunlar dâhildir:
-
Dokuyu yeniden atlaslama: Birden fazla model dokusunu akıllı bir şekilde tek bir optimize edilmiş doku sayfası olarak paketleme.
-
Otomatik segmentasyon: SLIM'e en uygun modelleri belirlemek için dünyanın anlamsal ve mekânsal anlayışını otomatik olarak kullanma.
-
Daha hafif temsiller: Gecikmeye daha az bağımlı olan dinamik nesneler için, istemcide görsele dönüştürülmek amacıyla neredeyse kaynak gerektirmeyen 2B temsiller oluşturma üzerinde araştırmalar yapıyoruz.
-
Hiyerarşik SLIM: Tüm durum gruplarını basitleştirebilmek ve motorun farklı detay seviyeleri (ör. tek bir ağaç, bir orman veya ormanlarla ve diğer nesnelerle dolu bir kara parçasının tamamı) arasında dinamik olarak seçim yapabilmesini sağlamak için SLIM modellerini birbiri ardına yerleştirme.
-
Çözünürlük artırma: Bugün performansı optimize etmeye odaklıyız ancak çok yakında aynı sistem, yaratıcının orijinal sanatsal niyetini korurken gelecekteki donanımlar için varlıkların çözünürlüğünü artırmamıza olanak tanıyacak. Bu yeni mimari, motorumuz gerçekliği simüle etmede daha iyi hâle geldikçe kullandığı temsilleri sürekli olarak yükseltebileceğimiz anlamına gelir.
Hem Harmony hem de akış ve içerik dağıtım mimarimizin geri kalanıyla birlikte SLIM, daha fazla oyuncu için daha geniş ve detaylı dünyaları destekleme vizyonumuzda ileriye doğru büyük bir adım. Motorumuzun, içerik dağıtımımızın ve bulut altyapımızın sıkı entegrasyonu, milyonlarca yaratıcının devasa içerik tabanıyla birleştiğinde tüm deneyimi iyileştiren, birbirine derinden bağlı istemler oluşturmamıza olanak tanıyor. Motorumuz gerçekliği simüle etmede daha iyi hâle geldikçe kullandığı temsilleri sürekli olarak yükseltebiliriz. Bugün performansı optimize etmeye odaklıyız ancak çok yakında aynı sistem, yaratıcının orijinal sanatsal niyetini korurken gelecekteki donanımlar için varlıkların çözünürlüğünü artırmamıza olanak tanıyacak.
Yalnızca bu sanatsal niyete saygı duymakla kalmayıp aynı zamanda yaratıcıların Roblox'un mevcut olduğu her yerde yaratımlarını herhangi bir kullanıcıya çok çeşitli cihazlardan akıllıca ve otomatik olarak sunabilecek bir platform oluşturuyoruz. Topluluğun bununla neler inşa edeceğini görmek için sabırsızlanıyoruz.
12025'in 3. çeyreği itibarıyla.