Modern oyunlarda LOD [kapalı]


14

Şu anda LOD ve kafes sadeleştirme üzerine yüksek lisans tezim üzerinde çalışıyorum ve konuyla ilgili birçok akademik makale ve makale okuyorum. Ancak, modern oyunlarda LOD'un nasıl kullanıldığı hakkında yeterli bilgi bulamıyorum. Birçok oyunun arazi için bir çeşit dinamik LOD kullandığını biliyorum, ama başka yerlerde ne olacak?

Örneğin 3D Grafikler için Ayrıntı Düzeyi, sürekli LOD'nin performans yükü nedeniyle ayrı LOD'un (sanatçıların önceden birkaç model hazırladığı yerlerde) yaygın olarak kullanıldığına dikkat çekiyor. Ancak bu kitap 2002'de yayınlandı ve şimdi durumların farklı olup olmadığını merak ediyorum. Geometri gölgelendiricisini ( örneğin ShaderX6'daki uygulamasıyla bu makale) kullanarak dinamik LOD gerçekleştirmek için bazı araştırmalar yapıldı, bu modern bir oyunda kullanılacak mı?

Özetlemek gerekirse, sorum modern video oyunlarında LOD'un durumu, hangi algoritmalar kullanılıyor ve neden? Özellikle, görünüme bağlı sürekli basitleştirme kullanılıyor mu veya çalışma zamanı yükü uygun harmanlama ve taklitçilerle ayrı modelleri kullanmayı daha cazip hale getiriyor mu? Ayrık modeller kullanılıyorsa, bunları çevrimdışı oluşturmak için kullanılan bir algoritma (örn. Tepe kümesi ) kullanılıyor mu, sanatçılar modelleri manuel olarak mı oluşturuyor, yoksa belki de her iki yöntemin bir kombinasyonu kullanılıyor mu?


Tamamen grafik LOD ile ilgilendiğiniz için bir 'render' etiketi eklemenizi öneririm, oysa LOD fizik, AI ve bir şeye veya performansa bağlı olarak önem derecesinin azaltılabileceği diğer alanlara da uygulanabilir.
Kaj

@Kaj: İyi nokta. Özellikle poligonal ağ basitleştirmesinden bahsediyorum.
Firas Assaad

Oh, aynı zamanda düzenlenmiş gibi görünüyoruz (Etiketler ekleyebileceğimi unuttum, grafik programlamayı kaldırmaktan çekinmeyin: o \). Daha sonra bir cevap bulmaya çalışacağım - bugün çıtırdayım.
Kaj

Yanıtlar:


9

Şimdilik ayrı LOD hala tercih ediliyor gibi görünüyor, ancak bunun yeni nesil konsol donanımı ile değişip değişmeyeceği görülmeye devam ediyor.

Değerli olduğu için Tom Forsyth, sürekli ilerleyen “LOD” hakkında çok şey yazdı. Game Programming Gems 2, bu makalelerden birine sahip olduğunu iddia ediyor, ancak burada yansıtılmış gibi görünüyor .

Tom'un oyunlarından birinin son nesil konsol donanımında aşamalı ağ kullanarak gönderildiğine inanıyorum. İnsanların sürekli LOD ile ilgili endişe duydukları hesaplama yükü olduğunu sanmıyorum. Ayrık LOD'un daha kolay olduğunu düşünüyorum. Sürekli LOD, takım boru hattında daha ağır kaldırma yapar ve yeterince net avantajları yoktur.

Ayrık LOD üretimi için, otomatik araçlar ve sanatçı oluşturma kombinasyonunu kullanıyoruz. DirectX SDK, geometriyi otomatik olarak azaltmak için bazı şeyler ile birlikte geliyor ve ilk geçiş olarak kullandığımıza inanıyorum, eğer kalite yeterince iyi değilse, sanatçılar ayrı LOD'ları elle veya Maya'da ek araçlar kullanarak üretiyorlar.


1
Bence Mesih ilerici ağları yoğun bir şekilde kullandı, sanırım yıllar önce dünya bu konuda şaşkındı. Ama katılıyorum, statik lodge hala baktığım yerde yaygın gibi görünüyor. OP'nin bildiği gibi bir SigGraph kağıdı bu konuda yazılmış olmasına rağmen, hangi detayın korunması için kritik olduğuna karar vermek zor. Bir yana, her zaman hatırladığım sevimli bir yöntem, inanıyorum ki Oyun Programlama mücevherlerinden birinde 'gerçek imposter' bölümü ... parralaks oklüzyon haritalaması olan imposters kullandıkları. Aynı yöntemle yazılmış daha fazla makale gördüğümü biliyorum (belki de Fabio Policarpo?)
Kaj

1
Sürekli LOD'a karşı bir başka darbe, konsol ortamında kullanılabilir sabit bellek miktarıdır. Ayrık nesneler, yüksek çözünürlüklü modelleri ve tüm bağımlı dokularını / gölgelendiricileri atmanıza ve basit bir gölgelendirici ve önceden birleştirilmiş daha küçük dokuya sahip çok daha düşük maliyetli bir modelle değiştirmenize olanak tanır. Açık dünya başlıklarında, hangi verilerin doldurulduğu konusunda savaşan sınırlı bellek genellikle CPU / GPU döngülerinden daha büyük bir mücadeledir.
wkerslake

6
  • Yüce Komutan (1 ve 2) - bu RTS , savaş alanının bir haritasını görmek için tüm yol boyunca yakınlaştırabilir ve ardından bir alanı tamamen yakınlaştırabilir ve yönetebilirsiniz. Grafik kartına aşırı yüklenmekten kaçınmak için yakınlaştırıp uzaklaştırdığınızda LOD'u çok iyi kullanır ve belirli bir uzaklaştırma düzeyinde kafeslerin yerini, ne tür bir birimin 2D görüntüleri ile değiştirir, böylece savaş alanının haritası net bir şekilde şeylerin nerede olduğunu gösterin (çünkü 20.000 ft'de gerçekten düşük detaylı bir 3D mesh ayırt edilemez olacaktır). 2B değiştirme efektini bu videonun ilk birkaç saniyesinde oldukça net bir şekilde görebilirsiniz .
  • RollerCoaster Tycoon 3 - Supreme Commander'a benzer şekilde, bu oyun istediğiniz zaman yakınlaştırma ve uzaklaştırma, tüm tema parkınızı görüntüleme veya tek bir coaster yönetmenizi sağlar. 2D görüntü değiştirme kullanmaz, ancak LOD nedeniyle her şey pürüzsüz kalır; büyük kafeslerin kalitesi azalmakla kalmaz, aynı zamanda yeterince uzaklaştığınızda etrafta dolaşan insanlar gibi küçük detaylar da kaybolur.
  • Legend of Zelda: Wind Waker - Açık denizi seyrederken etrafınıza bakabilir ve size en yakın adaları görebilirsiniz; Bununla birlikte, sadece adaların siluetleri ve gerçek 3D modeller bir adaya yaklaşana kadar yüklenmiyor. Yakındaki sulardaki düşmanlar ve tayfunlar gibi adanın diğer özellikleri de yüklenir; ne yazık ki oyuncu yaklaştıkça onları "pop" olarak görebilir, ancak genel olarak Nintendo GameCube donanımını aşırı yüklemeyi önlerken iyi bir tekniktir ve oyuncuya denizlerde yelken açma ve dönüm adalarını ayırt edebilme hissi verir. mesafe.
  • Elder Scrolls IV: Oblivion - Bu oyunu uzun zamandır oynamadım ama şehirlerden birinin yüksek kulesi ve uzak dağlar gibi uzak simge yapıları için kontrast veya gerçekten düşük detaylı modeller kullandığını biliyorum. .

LOD sadece arazi için değil, aynı zamanda uzak yapıların siluetleri ve kartalın strateji / simülasyon oyunlarının göz görünümleri için de kullanılır. Algoritmaların ayrıntılarını bilmiyorum ve sanırım bu sorunuzun ana kısmı, ama size modern video oyunlarında LOD'un durumundan bazı örnekler vermek istedim.


4

Sürekli LOD'a modern bir yaklaşım donanım mozaiklemesidir. Donanım mozaikleme DirectX 11'de uygulandı ve esas olarak yüzeylerin programlanabilir altbölümünü sağlıyor. Bu GPU'da uygulandığından, CPU tarafından üretilen mozaikleme tarafından sağlanandan çok daha yüksek ayrıntıya izin verir. Örneğin, görüş mesafesine göre yüzeyleri alt bölümlere ayırarak, bir tür sürekli LOD sağlayabilirsiniz.

Donanım mozaiklemesi GPU'ların çok yeni bir özelliğidir ve onu kullanan çok fazla oyun yoktur. Şüpheliyim ki, daha çok yumru haritalama için bir drop-in olarak kullanan oyunların - piksel gölgelendiricisindeki yumru harita yerine, gerçek geometriyi değiştirebilirsiniz. Muhtemelen donanım mozaiklemesi kullanılarak mesh basitleştirme ve iyileştirme konusunda daha fazla araştırma yapmak için çok fazla alan vardır.

Biraz daha kaynak:


Henüz çok büyük bir hedef kitleyi hariç tuttuğunuz için bunu pratikten çok bir vitrin teknolojisi olarak görüyorum. Ancak evet, prosedürler, MS'in mevcut uygulamasından emin olmayan bir şekilde veya şekilde ilerlemenin yolu olabilir. Zaman gösterecek.
Kaj


3

LOD, işlem miktarını zaman içinde sabit tutmaya çalışmakla ilgilidir. Hiyerarşik ayrıntı düzeyi, bunu önemli ayrıntı sahneleri için yapmanın tek yoludur. Bir nesneye yeterince yakınsanız, birden fazla nesneye ayrışır. Bu özyinelemeli LOD, yalnızca yeni ayrıntı düzeylerinde geçiş yapmak için geçiş noktalarını işlemek için basit bir mekanizma sağlamakla kalmaz, aynı zamanda dünya nesnelerinize ne kadar yakın / yakın olursanız olun render çağrı sayısının yaklaşık olarak aynı kalmasını sağlar.

Kafesleriniz ve dokularınız için harika LOD'lara sahip olmak çok iyi, ancak PS2'de gönderdiğim en az bir oyunda, zamandan tasarruf etmenin yolu, sektörlerdeki tüm yaprakları tek bir çizim çağrısına toplamaktı. Bu daha büyük çekiş çağrısı, dikkatlice sipariş edilen malzeme geçişleri ve her örgü türünü toplu işlerken bile, tüm düşük lod varyantlarının oluşturulmasından yaklaşık% 90 daha az zaman aldı. Bu nedenle, LOD'u dikkatlice düşünün. Sadece bireysel nesnelerle ilgili değil. Tüm render aşamasıyla ilgili.


1

Makalenizde tartışmayı düşünmeniz gereken bir başka konu da (sadece bir tezin tamamı sadece bu konuda kolayca yazılabilir olsa da) prosedürel arazi üretimidir.

Birçok modern proje, en geniş alanlardan bazılarını adlandırmak için büyük alanların (Outerra, Infinity (INovae)) üretmek için gerçek zamanlı prosedürel arazi üretimini kullanmaya başlıyor. Kafes LOD, kafeslerin prosedürel doğası nedeniyle basit bir seçenek değildir.

Bu araziler genellikle LOD'u belirlemek için quadtrees gibi heirik bölümleme yapılarını kullanır ve ağacın düğümünün derinliğine bağlı olarak uygun çözünürlükte bir ağ oluşturur.

Sürekli LOD kullanılmadan, bu harika projeler imkansız olurdu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.