Işık haritası - Lightmap

Karşılık gelen ışık haritasına sahip karmaşık bir sahne (sağda gösterilmiştir).
Basit bir ışık haritasına sahip küp (sağda gösterilmiştir).

Bir ışık haritası , sanal bir sahnedeki yüzeylerin parlaklığının önceden hesaplandığı ve daha sonra kullanılmak üzere doku haritalarında saklandığı bir yüzey önbelleğe alma biçimi olan ışık haritasında kullanılan bir veri yapısıdır . Işık haritaları, küresel aydınlatma gibi aydınlatma efektlerini nispeten düşük bir hesaplama maliyetiyle sağlamak için video oyunları gibi gerçek zamanlı 3B bilgisayar grafiklerini kullanan uygulamalarda en yaygın olarak statik nesnelere uygulanır .

Tarih

John Carmack 'ın Quake genişletmek için lightmaps kullanan ilk bilgisayar oyunu oldu render . Işık haritaları icat edilmeden önce, gerçek zamanlı uygulamalar yüzeyler için tepe noktası aydınlatmasını enterpolasyon yapmak için tamamen Gouraud gölgelendirmesine dayanıyordu . Bu, yalnızca düşük frekanslı aydınlatma bilgilerine izin verdi ve perspektif-doğru enterpolasyon olmadan kameraya yakın kırpma artefaktları oluşturabilir. Süreksizlik ağ oluşturma , bazen , tepe aydınlatma bilgilerinin çözünürlüğünü uyarlamalı bir şekilde geliştirmek için özellikle radyosite çözümleriyle birlikte kullanıldı , ancak gerçek zamanlı rasterleştirme için ilkel kurulumdaki ek maliyet genellikle engelleyiciydi. Quake'in yazılım rasterleştiricisi , çokgenler başlangıçta görüntüleme kesiği içinde göründüğünde doku uzayında aydınlatma hesaplamaları uygulamak için yüzey önbelleğe almayı kullandı (izleyici sahneyi müzakere ederken o anda görünür olan dokuların geçici 'aydınlatılmış' versiyonlarını etkili bir şekilde yaratıyor).

Çoklu doku oluşturabilen tüketici 3d grafik donanımı olarak , ışık haritalama daha popüler hale geldi ve motorlar ışık haritalarını gerçek zamanlı olarak ikincil bir çoklu karışım doku katmanı olarak birleştirmeye başladı ...

sınırlamalar

Lightmaps oluşan lumels içinde texel benzer (bir aydınlatma elemanları), doku kaplama . Daha küçük lümeller, daha yüksek çözünürlüklü bir ışık haritası sağlayarak, daha düşük performans ve artan bellek kullanımı karşılığında daha ince aydınlatma ayrıntıları sağlar. Örneğin, dünya birimi başına 4 lümellik bir ışık haritası ölçeği, dünya birimi başına 16 lümellik bir ölçekten daha düşük bir kalite verecektir. Bu nedenle, tekniği kullanırken, seviye tasarımcıları ve 3d sanatçılar genellikle performans ve kalite arasında bir uzlaşmaya varmak zorundadır; yüksek çözünürlüklü ışık haritaları çok sık kullanılıyorsa, uygulama aşırı sistem kaynaklarını tüketerek performansı olumsuz etkileyebilir. Lightmap çözünürlüğü ve ölçeklendirme, disk depolama alanı miktarı, bant genişliği/indirme süresi veya uygulamaya yönelik doku belleği ile de sınırlandırılabilir. Bazı uygulamalar, bu sınırlamaları aşmaya yardımcı olmak için atlasing olarak bilinen bir süreçte birden çok ışık haritasını bir araya getirmeye çalışır .

Lightmap çözünürlüğü ve ölçek iki farklı şeydir. Çözünürlük, bir veya daha fazla yüzeyin ışık haritalarını depolamak için kullanılabilen piksel cinsinden alandır. Bir ışık haritasına sığabilecek tek tek yüzeylerin sayısı ölçek tarafından belirlenir. Daha düşük ölçek değerleri, bir ışık haritasında daha yüksek kalite ve daha fazla alan kapladığı anlamına gelir. Daha yüksek ölçek değerleri, daha düşük kalite ve daha az yer kapladığı anlamına gelir. Bir yüzey, aynı alana sahip bir ışık haritasına sahip olabilir, yani 1:1 oranında veya daha küçük olabilir, bu nedenle ışık haritası sığacak şekilde uzatılır.

Oyunlardaki ışık haritaları genellikle renkli doku haritalarıdır veya köşe renklerine göredir. Genellikle düzdürler, ışığın yönü hakkında bilgi içermezler , bazı oyun motorları ise normal haritalarla birleştirmek için yaklaşık yön bilgisi sağlamak için birden fazla ışık haritası kullanır. Lightmap'ler ayrıca, ortam kapatma ve güneş ışığı gölgeleme gibi gölgelendiricili yarı dinamik aydınlatma için önceden hesaplanmış aydınlatma bilgisi bileşenlerini de depolayabilir.

oluşturma

Işık haritaları oluşturulurken, aydınlatma tamamen önceden hesaplandığından ve gerçek zamanlı performans her zaman bir zorunluluk olmadığından, herhangi bir aydınlatma modeli kullanılabilir. Ortam tıkanıklığı , örneklenmiş gölge kenarlarıyla doğrudan aydınlatma ve tam radyositeli yansıma ışık çözümleri dahil olmak üzere çeşitli teknikler tipik olarak kullanılır. Modern 3D paketler, ışık haritası UV koordinatlarını uygulamak, birden fazla yüzeyi tek doku sayfalarına atlaslamak ve haritaları kendileri oluşturmak için özel eklentiler içerir. Alternatif olarak oyun motoru ardışık düzenleri, özel ışık haritası oluşturma araçlarını içerebilir. Ek bir husus, engelleme artefaktlarına tabi olan sıkıştırılmış DXT dokularının kullanılmasıdır - en iyi sonuçlar için tek tek yüzeyler 4x4 texel parçaları üzerinde çarpışmamalıdır.

Her durumda, hangi lümenlerin ışık tarafından görülebildiğini belirlemek için basit oklüzyon testleri (temel ışın izleme gibi ) kullanılıyorsa, statik geometri için yumuşak gölgeler mümkündür . Bununla birlikte, gölgelerin gerçek yumuşaklığı, motorun bir yüzey boyunca lumel verilerini nasıl enterpolasyon yaptığına göre belirlenir ve lümenler çok büyükse pikselli bir görünüme neden olabilir . Doku filtrelemeye bakın .

Işık haritaları , Gouraud gölgeleme kusurlarına eğilimli olmayan kaliteli renkli aydınlatma efektleri için gerçek zamanlı olarak da hesaplanabilir, ancak gölge oluşturma yine de şablon gölge hacimleri veya gölge eşleme gibi başka bir yöntem kullanılarak gerçek zamanlı ışın olarak yapılmalıdır. -izleme, çoğu 3D motorda modern donanımda gerçekleştirilemeyecek kadar yavaştır.

Foton haritalama , ışık haritaları için küresel aydınlatmayı hesaplamak için kullanılabilir.

alternatifler

Verteks aydınlatması

In tepe aydınlatması , aydınlatma bilgisi vertex hesaplanır ve saklanan köşe renk niteliklerini . İki teknik birleştirilebilir, örneğin yüksek detaylı ağlar için saklanan tepe renk değerleri, hafif haritalar ise sadece daha kaba geometri için kullanılır.

süreksizlik haritalama

In süreksizliği haritalama , sahne daha da olabilir bölünmüştür ve kırpılmış daha iyi gölgeleri tanımlamak için hafif ve karanlıkta büyük değişiklikler boyunca.

Ayrıca bakınız

Referanslar

  1. ^ Abrash, Michael. "Quake'in Aydınlatma Modeli: Yüzey Önbelleğe Alma" . www.bluesnews.com . 2015-09-07 alındı .
  2. ^ Channa, Keshav (21 Temmuz 2003). "flipcode - Işık Haritalama - Teori ve Uygulama" . www.flipcode.com . 2015-09-07 alındı .
  3. ^ "Doku Atlaslama Teknik Raporu" (PDF) . nvidia.com . NVIDIA . 2004-07-07 . 2015-09-07 alındı .
  4. ^ Jason Mitchell, Gary McTaggart, Chris Green, Valve's Source Engine'de Shading . ( PDF ) Erişim tarihi: 07 Haziran 2019.
  5. ^ 16 Kasım 2003. OpenGL'de Dinamik Işık Haritaları . Joshbeam.com 07 Temmuz 2014 tarihinde erişildi.