Megatexture nasıl çalışır?


21

Sadece küçük deneysel oyunlar geliştirmek için değil, aynı zamanda çeşitli renderleme tekniklerini ve bunun gibi şeyleri test etmek için bir üs olarak hizmet etmek için küçük bir motor geliştirmeyi düşünüyorum. Şu anda, dokularla nasıl başa çıkılacağı ve megatexture üzerine tökezleyen çok şey düşünüyordum, ama bu biraz kafa karıştırıcı olan bir şey. Etrafında bir sürü dokuya sahip olmak ve onları gerektiği gibi yüklemek için geleneksel yaklaşımdan daha iyi olduğu hakkında çok fazla konuşma var, ancak megatexture bunu nasıl önlüyor, etrafta akışları kullandıklarını ve sadece akışları kullanabildiklerini okudum. her bir dokuyu ayrı ayrı yüklemek yerine bunun parçaları, ancak bu nasıl daha iyi performans sunuyor ve bu başka bir işçilik biçimi değil mi?

Gölgelendiricideyken böyle bir dokuyu nasıl örnekleyebiliriz, bir kısmını belleğe aktarır ve sonra üzerinde çalışırız. Rage'in en yeni videolarını gördüm ve doku harika görünüyor, ancak harika sanatçıların sonucu mu yoksa teknoloji oyuna mı girdi?

Özetle, nasıl çalışır, neden harika ve nasıl benzer bir şey yapabilirim.

Yanıtlar:


15

Mega dokuların temel fikri, tüm farklı dokularınızı büyük bir dokuya yerleştirdiğiniz ve bu görüntüyü indekslemek için UV'leri kullandığınız bir doku atlası kullanmak. Ekranda gördüklerinize dayanarak dokudan hangi bölümünün diskten akması gerektiğini bilmek için iyi sezgiler gerekir. Sonuç olarak, oyun dünyasında tamamen benzersiz dokulara sahip olabilirsiniz ve sadece görünür verileri RAM'de tutabilirsiniz. Bunu uygun hale getirmek için iyi bir akış ve önbellekleme sistemi gerekir.

Bir yaklaşım hakkında daha ayrıntılı bilgi için bu sayfadaki materyalin üzerinden geçmenizi tavsiye ederim: http://silverspaceship.com/src/svt/


4

Önceden var olan SGI donanım uygulaması için küçük haritalama kontrol edin.

Daha yakın bir zamanda Megatexture, Seyrek Sanal Tekstüre (SVT) için bir pr adı olarak kullanılıyor

SVT, hangi doku ve mipmap'e ihtiyaç duyulacağını belirten küçük çözünürlüklü bir kamera görüntüsü sağlar. Daha sonra bir CPU rutini bu doku / mip yığınını belleğe getirmek için (bellekte değilse) disk sistemine yükler verir ve yüklenen doku parçası büyük bir doku atlasının bir bölümüne (genellikle 128x128.

Doku parçaları getirildiğinde, gerekli dokuları alan ve onu gerçekte depolandığı büyük dokunun belirli kısmına yönlendiren bir yönlendirme dokusu (sanal sayfa haritası) güncellenir.


Bu biraz açıklar. Merak ediyorum, sadece akış olup olmadığını merak ediyordum, ne büyük bir doku parçasını, herhangi bir kullanım için yeterince hızlı bir HDD ya da diskte yayınlamayı başardılar, ara atlas oldukça güzel cevap veriyordu. Ayrıca neden geleneksel yöntemlerden daha verimli olduğunu hatırlıyorum. SVT hakkında daha fazla ayrıntı için etrafa bakacağım (Flawe'nin bağlantısı bunun için iyi bir başlangıç ​​noktası gibi gözüküyor)
Daemoniorum

1

Megatexture'ı “akış” dokusu şeklinde düşünebilirsiniz. Kesit olarak okunan büyük, tamamen ayrıntılı bir doku görüntüsünün (basitçe ifade edilir) gösterilmesi gerekir. Eminim ki LOD / mipmapping, yükleme ve kaynak yönetimi gibi bariz şeyler arasında bundan çok daha fazlası var.

Wikipedia'da bir makale var.


2
Makaleyi daha önce okudum, ancak detaylara biraz ışık tuttu. Bu teknikle ilgili gerçek detayları almak biraz zor. Kimliğin bir kağıt yapmasını isterdim ...
Daemoniorum
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.