Bu sitedeki içerik yapay zeka (AI) veya makine çeviri teknolojisi kullanılarak çevrilmiştir ve hatalar içerebilir.

Skip to content

SLIM'i tanıtıyoruz: Ölçeklenebilir Hafif Etkileşimli Modeller

Hafif Render Kompozitlerinin Gücünden Yararlanarak Her Cihaz İçin Daha Büyük ve Daha Ayrıntılı Dünyalar Oluşturmak

SLIM Car Comparison.webp

Roblox, basit mini oyunlardan yüksek kaliteli 3D varlıklarla dolu geniş açık dünyalara kadar milyonlarca deneyime ev sahipliği yapıyor. Amacımız, yaratıcıların geniş bir kullanıcı cihaz yelpazesinde hayal ettikleri, giderek daha yoğun ve karmaşık deneyimleri desteklemektir. Bu da motorumuzda, içerik dağıtım sistemlerimizde ve altyapımızda yenilik yapmamızı gerektirir. Ölçeklenebilir Hafif Etkileşimli Modeller (SLIM), yaratıcıların performanstan ödün vermeden büyük sanatsal vizyonlarını gerçekleştirmelerini sağlayan, çok parçalı bir geliştirme çalışmasının bir parçasıdır. 

SLIM, yaratıcıların bir Roblox deneyimindeki herhangi bir nesnenin hafif temsillerini otomatik olarak oluşturmasına olanak tanır ve istemcinin sağlam, kesintisiz bir dünya oluşturmak için ihtiyaç duyduğu çizim çağrılarının, üçgenlerin ve veri modeli örneklerinin sayısını en aza indirir. SLIM, akış modelimize içeriği optimize etmek için güçlü yeni yollar sunar ve üst düzey bir oyun bilgisayarı olan bir kullanıcı ile düşük düzey bir mobil cihaza sahip bir kullanıcının, cihazlarının kaldırabileceği en yüksek kalitede aynı deneyimi paylaşmasına olanak tanır.

SLIM Scene.webp
Yukarıdaki sahnede, örnek akışı ve SLIM etkinleştirildiğinde çok daha az veri modeli örneği, üçgen ve çizim çağrısı kullanılır.

Örnek akışı ve SLIM olmadan

Örnek akışı ve SLIM ile

İstemci veri modeli örnekleri

159.745

92.536

Üçgenler

20 milyon

3,35 milyon

Çizim Çağrıları

2.402

1.454

Akışın İki Temel Unsuru: Örnekler ve Varlıklar

En sevdiğiniz akış hizmetinde bir film izlediğinizde, cihazınız izlemeye başlamadan önce dosyanın tamamını indirmez. Hemen izlemeye başlayabilmeniz için yeterli miktarda veri indirir, ardından deneyimin kesintiye uğramaması için sonraki birkaç saniyeyi sürekli olarak indirir (veya arabelleğe alır). Düşük kaliteli bir cihazda veya yavaş bir bağlantıyla akış yapıyorsanız, platform, yüksek kaliteli içeriği akış için yeterli veriyi indirirken size içeriğin daha düşük kaliteli bir sürümünü göndererek otomatik olarak uyum sağlar. 

Roblox, içeriği anında yayınlamak için benzer bir konsept kullanır, ancak yüksek kaliteli bir 3D simülasyonu sunmak için gereken veriler kendine özgü zorluklar yaratır. Bir video, tek bir perspektiften izlenen içeriğin doğrusal bir zaman çizelgesine sahipken, Roblox deneyimleri, kullanıcı tarafından kontrol edilen birçok perspektiften izlenebilen, çok çeşitli varlıklarla dolu geniş, etkileşimli 3D dünyalar içerir. Buna, çok çeşitli cihazlardan oyun oynayan, keşif yapan ve nihayetinde içerik akışı gerçekleştiren 151,5 milyon günlük aktif kullanıcıyı da eklediğinizde, içeriğin sunulma 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 örnek olarak temsil edilir. Örneğin, kullanılabilir bir araba, tamponlar, kapılar, tekerlekler vb. için örneklere ayrılır. Her örnek, 3D ağlar, dokular, animasyonlar ve ses gibi birden fazla varlık kullanılarak deneyim içinde oluşturulur.

Roblox'taki neredeyse tüm akışlar iki temel teknolojiye ayrılır: örnek akışı ve varlık akışı.

  • Örnek akışı, kullanıcının cihazının hangi örnekleri akışa alması gerektiğini belirler. Kullanıcının henüz göremeyeceği veya etkileşimde bulunamayacağı deneyimin parçalarını akışa almaya gerek yoktur. Yukarıdaki örnekte, yalnızca yakındaki binaları temsil eden örnekler istemciye aktarılır.
  • Varlık akışı, akışa alınan örneklerin kalitesini belirler. Kullanıcının ince ayrıntılarını ayırt edemeyeceği kadar uzaktaki bir dağ için yüksek çözünürlüklü 4K doku indirilmesine gerek yoktur. Yukarıdaki resimde, uzaktaki binalar ve ekran alanında az yer kaplayan binalar, inceltilmiş ağlar ve daha düşük çözünürlüklü dokular kullanır. 

Bu işlemin merkezi beyni, her karede her kullanıcının kullanılabilir kaynaklarını izleyen Harmony adını verdiğimiz bir sistemdir. Harmony, cihazın belleği, GPU ve CPU yükü ile ağ bant genişliğine göre en iyi deneyimi sunmak için hem örnek hem de varlık akışını ayarlar. Üst düzey bir oyun bilgisayarı için Harmony her şeyi en yüksek kaliteye çıkarır. Zayıf bağlantıya sahip bir mobil cihaz için ise kullanıcı deneyimini sorunsuz tutmak amacıyla otomatik olarak kaliteyi düşürür.

Ekip, Tech Talks podcast'inin 30. bölümünde akış, bulut kod dönüştürme ve SLIM'in arkasındaki teknolojiyi tartıştı. 

SLIM: Ölçeklenebilir Hafif Etkileşimli Modeller

SLIM'in temel fikri basit ama güçlüdür: SLIM, yaratıcının dünyasındaki herhangi bir nesnenin veya modelin birden fazla hafif, optimize edilmiş temsilini otomatik olarak oluşturabilir ve bunları çalışma zamanında alınmak üzere sunucuda depolayabilir. Her kullanıcının istemcisi, cihazın kullanılabilir kaynaklarına bağlı olarak, orijinal örnekleri ve varlıkları veya hafif SLIM temsillerinden birini dinamik olarak görüntüleyebilir. 

SLIM, hafif bir temsil oluşturmak için iki ana teknik kullanır:

1. Birleştirme

İlk olarak, SLIM birden fazla parçayı daha az sayıda parçaya birleştirir. Aşağıdaki arabanın 112 ayrı ağ ve 24 ayrı dokuya ihtiyaç duyması yerine, hafif temsili sadece bir ağ ve dört dokuya ihtiyaç duyabilir. Birleştirme süreci, motorun içeriği nihai olarak nasıl işleyeceğine tam olarak uyacak şekilde ayarlanır; bu sayede nesne içindeki görünmez geometri ortadan kaldırılır ve onu işlemek için gereken çizim çağrılarının sayısı azaltılır.

SLIM Car Comparison.webp

2. Ayrıntı Düzeyi (LoD)

Modeli birleştirdikten sonra, SLIM farklı ayrıntı düzeylerinde birden fazla sürüm oluşturur. Bu, geleneksel LoD tekniklerini kullanarak herhangi bir tekil ağ veya doku varlığında yaptığımız gibi, önemli ölçüde daha az üçgen içeren 3D ağ sürümleri oluşturmak ve çok daha düşük çözünürlüklerde dokular üretmek anlamına gelir. Her bir altta yatan örneğin tekil koordinat çerçevelerine sahip olduğumuzdan, bu teknikler SLIM modellerine uygulandığında daha da optimize edilebilir. Bu, yaratıcının bu varlıkların her birinin birlikte nasıl görüntülenmesini istediğine dair tam bir bağlam sağlar. Bu bilgiyle SLIM, gereksiz ayrıntıların nereden kaldırılacağı ve kullanıcıların fark edeceği ayrıntıların nereden korunacağı konusunda daha bilinçli kararlar almamızı sağlar.

undefined

Doğru zamanda doğru temsil

Bir nesnenin birden fazla temsilini oluşturduktan sonra, SLIM belirli bir kullanıcının cihazı için hangisini kullanacağına veya bunun yerine geleneksel görüntüleme tekniklerini kullanıp kullanmayacağına karar vermelidir. Sistem, dünyayı üç farklı bölgeye ayırır. Bu bölgeleri düşünmenin basit bir yolu, oyuncudan dışarıya doğru genişleyen eşmerkezli detay daireleri hayal etmektir.

tanımlanmamış
Akış sınırları aslında dairesel değildir. Şekilleri çeşitli faktörlere bağlıdır.

HH Bölgesi (Ağır Örnekler, Ağır İşleme)

HH bölgesinde, tam, ağır örnekler sunucudan istemci veri modeline aktarılır ve istemci, her örnek için indirilecek ve işlenecek belirli varlık temsilini belirler. Bu bölgede ölçeklendirme, mesh LoD'leri ve doku mip'leri ile yine de gerçekleştirilebilir, ancak birleştirme yoktur. SLIM'den önce, bir deneyime aktarılan her örnek bu şekilde işleniyordu. 

HL Bölgesi (Ağır Örnekler, Hafif İşleme) 

HL bölgesi, HH ve LL bölgeleri arasında yer alır. Bu bölgede, istemci veri modelinde ağır örnekleri barındırır, ancak tam render boru hattını veya SLIM boru hattını kullanarak render etmeyi seçebilir. Bu bölge, kullanıcı ağ gecikmesi yaşasa bile HH ve LL bölgeleri arasında sorunsuz bir geçiş sağlamak için uyum sağlar. HH ve HL bölgeleri arasındaki geçiş noktası dinamiktir; bu da Harmony'nin her iki yöndeki kaynak artışlarına yanıt olarak anında ölçeklendirilmesini sağlar.

LL Bölgesi (Hafif Örnekler, Hafif İşleme) 

LL bölgesinde, istemci yalnızca bir SLIM modeli için koordinat çerçevesini tanımlamak için gerekli olan örneklerin süper hafif temsillerini ve asgari düzeyde meta verileri aktarır. Bu bölgede, her bir örnek ve varlık yerine yalnızca hafif birleştirilmiş SLIM modelleri işlenir. LL bölgesi, çok daha az üçgen ve çizim çağrısı gerektirir ve her ağır örnekte akış yapıp geleneksel işleme boru 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 örnek ve varlığı aynı anda kullanmanın tam hesaplama maliyetine katlanmadan her zaman görünür dünyanın tamamını işleyebilmesini sağlar. Uzak nesneler, son derece optimize edilmiş, hafif temsillerdir ve kullanıcı yaklaştıkça yüksek kaliteli muadilleriyle değiştirilir. SLIM'in bileşikler ve çoklu ölçekli LoD modelleri oluşturma yeteneği, Harmony'ye her kullanıcının cihazı için varlık kalitesini optimize etmek üzere kullanabileceği daha fazla araç sunar.

Her şey bir araya geldiğinde, oyuncu tamamen oyuna dalmış hissetmeli ve geçiş noktalarını veya değişen detay seviyelerini fark etmemelidir.

Gelecek: SLIM Bundan Sonra Nereye Gidecek?

SLIM, çok aşamalı bir yolculuğun sadece ilk adımıdır ve yaratıcıların bu teknolojiyi iş akışlarına nasıl entegre edeceklerini görmek için sabırsızlanıyoruz. Gelecekte SLIM'i iki ana yönde genişletmeyi planlıyoruz. 

SLIM'in Uygulanabileceği Diğer Alanları Belirlemek 

Yaratıcıların Studio'da belirlediği statik modellerle başlıyoruz, ancak gelecekte SLIM, Roblox'taki en karmaşık modellerden bazılarını, yani platform avatarlarını optimize edebilecek. Avatarlar, bunlarla ilişkili tüm animasyonlar, katmanlı giysiler ve aksesuarlarla birlikte, yaratıcılar için öngörülemez bir değişken olabilir. Avatarların SLIM'e dahil edilmesine izin vermek, motorun tek bir avatar modelinin kullandığı kaynakları etkili bir şekilde sınırlayabileceği anlamına gelir.

Nihayetinde, yaratıcılara dinamik modellerde değişiklikler yapmak için SLIM'den yararlanma seçeneği sunmak istiyoruz. Sunucunun aktif olarak değişiklikler yapabileceği (örneğin, bir kapının açılması veya bir parçanın yok edilmesi), ancak birkaç akıllı hileyle istemcinin aynı hafif temsili yeniden kullanabileceği bir model düşünün.

SLIM İş Akışını Optimize Etme 

Artık motora yeni bir esneklik boyutu sağlayan uçtan uca bir boru hattına sahip olduğumuza göre, boru hattının kendisini daha akıllı, daha hızlı ve daha verimli hale getirmeye de odaklanıyoruz. Bu, şunları içerir:

  • Doku yeniden atlaslama: Birden fazla model dokusunu tek bir optimize edilmiş doku sayfasına akıllıca paketleme.
  • Otomatik segmentasyon: Dünyaya ilişkin semantik ve uzamsal anlayışı otomatik olarak kullanarak SLIM'e en uygun modelleri belirleme.
  • Daha hafif temsiller: Gecikmeye daha az bağımlı olan dinamik nesneler için, istemcide render edilmesi neredeyse hiç kaynak gerektirmeyen 2D temsiller oluşturmayı araştırıyoruz.
  • Hiyerarşik SLIM: SLIM modellerini arka arkaya iç içe yerleştirerek, tüm örnek gruplarının basitleştirilmesini ve motorun ayrıntı düzeyleri arasında dinamik olarak seçim yapabilmesini sağlıyoruz; örneğin, tek bir ağaçtan ormana, ormanlar ve diğer nesnelerle dolu bir kara parçasına kadar.
  • Çözünürlük artırma: Şu anda performans için optimizasyona odaklanıyoruz, ancak çok yakında bu 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 hale geldikçe, kullandığı temsilleri sürekli olarak yükseltebileceğimiz anlamına geliyor. 

SLIM, Harmony ve diğer akış ve içerik dağıtım mimarimizle birleştiğinde, daha fazla oyuncu için daha geniş ve ayrıntılı dünyaları destekleme vizyonumuzda dev bir adımdır. Motorumuz, içerik dağıtımımız 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 derinlemesine birbirine bağlı sistemler oluşturmamızı sağlıyor. Motorumuz gerçekliği simüle etme konusunda daha iyi hale geldikçe, kullandığı temsilleri sürekli olarak güncelleyebiliriz. Bugün, performans için optimizasyona odaklanıyoruz, ancak çok yakında bu aynı sistem, içerik oluşturucuların orijinal sanatsal niyetini korurken gelecekteki donanımlar için varlıkların çözünürlüğünü artırmamıza olanak tanıyacak.

Sadece bu sanatsal niyeti saygı duyan değil, aynı zamanda yaratıcıların eserlerini Roblox'un kullanılabildiği her yerde, çok çeşitli cihazlardaki herhangi bir kullanıcıya akıllı ve otomatik bir şekilde sunabilen bir platform oluşturuyoruz. Topluluğun bununla neler yaratacağını görmek için sabırsızlanıyoruz.

1 2025 yılının 3. çeyreği itibarıyla.