2 puan yazan GN⁺ 2024-03-01 | 1 yorum | WhatsApp'ta paylaş

Video oyunlarında LUT kullanma yöntemi ve sizin de nasıl kullanabileceğiniz

  • Video oyunlarında LUT'ler (Look-up tables) yaratıcı tekniklerden yararlanmak için kullanılır.
  • WebGL kullanılan bir örnek üzerinden video verisinin gerçek zamanlı olarak nasıl manipüle edileceği açıklanır.
  • Kullanıcılar kendi videolarını veya web kameralarını kullanarak bunu uygulayabilir.

Kurulum

  • Başlangıç noktası olarak termal kamerayla çekilmiş siyah-beyaz bir video kullanılır.
  • Video, WebGL aracılığıyla GPU'ya yüklenir ve shader kullanılarak orijinaliyle aynı şekilde görüntülenir.

Renklendirme

  • Videoya renk vermek için piksel başına rengi belirleyen Fragment Shader kullanılır.
  • Turuncu renk ekleyen basit bir örnekle renk manipülasyonunun nasıl yapıldığı anlatılır.

Performans maliyeti: sıfır

  • Renklendirmenin performans üzerindeki etkisi yok denecek kadar azdır ve GPU'nun latency hiding özelliği sayesinde ihmal edilebilir düzeydedir.

Valve Software'in renklendirme kullanımı

  • Valve Software'in Left 4 Dead oyununda araç modellerine renklendirme uygulanarak çeşitli varyasyonlar üretilir.

LUT - basit ama güçlü

  • LUT kullanarak renk aralıklarının nasıl tanımlanıp değiştirilebileceği açıklanır.

Mütevazı 1D LUT

  • 1D LUT, gri tonlamalı videoyu RGB'ye dönüştürmek için kullanılan bir renk dizisidir.
  • Farklı boyutlardaki 1D LUT'lerle renk dönüşümü gösterilir.

Bir sürü renk

  • matplotlib'in desteklediği tüm renk haritaları 1D LUT olarak sunulur.
  • Perceptually Uniform renk haritalarının kullanılması önerilir.

Hâlâ performans maliyeti yok mu?

  • Küçük 1D LUT'ler performansı önemli ölçüde etkilemez ve GPU önbelleğini verimli kullanır.

Zombiler için çeşitlilik

  • Left 4 Dead 2 oyununda LUT kullanılarak zombiler için farklı renk varyasyonları üretilir.

Hesaplamayı önceden hesaplama

  • 1D LUT, maliyetli hesaplamaları önbelleğe almak için kullanılabilir; örneğin gamma düzeltmesi hızlı biçimde uygulanabilir.

Güçlü 3D LUT

  • 3D LUT, tüm RGB uzayını tek bir küp olarak temsil ederek renkleri yeniden eşler.

Kurulum

  • Panasonic GH6 ile çekilmiş log profile video kullanılarak 3D LUT işlemesi açıklanır.

Basit düzeltme

  • DaVinci Resolve kullanılarak renk düzeltmesi uygulanması ve LUT'un yeniden dışa aktarılması süreci anlatılır.

Left 4 Dead'de 3D LUT kullanımı

  • Bu, oyun endüstrisinde yaygın olarak bilinen bir iş akışıdır; oyun renklerini dış araçlarla stilize etmek için kullanılır.

İleri seviye macera

  • DaVinci Resolve gibi color grading araçlarıyla karmaşık renk dönüşümlerinin LUT olarak nasıl dışa aktarılacağı açıklanır.

Diğer kullanım biçimleri

  • LUT'un başka kullanım örnekleri arasında, Game Boy Advanced için Tomb Raider portunda kullanılan LUT de tanıtılır.

GN⁺ görüşü

  • LUT, video oyunları ve grafik programlamada renk manipülasyonu ve optimizasyon için güçlü bir araçtır. Bu teknik, gerçek zamanlı render sırasında performans kaybı olmadan çeşitli görsel efektler sunabildiği için hem geliştiriciler hem de sanatçılar açısından faydalıdır.
  • LUT kullanırken renk doğruluğu ve verinin görsel temsili dikkate alınmalıdır. Özellikle renk körlüğünü hesaba katan Perceptually Uniform renk haritalarının önemini anlamak önemlidir.
  • Bu teknik; renk düzeltme, görsel stil verme ve veri görselleştirme gibi birçok alanda uygulanabilir. Örneğin film endüstrisinde color grading için kullanılan LUT benzeri teknikler oyun geliştirmeye uygulanabilir.
  • LUT'un boyutu ve hassasiyeti kullanım amacına ve platforma göre değişebilir; bunun anlaşılması gerekir. Örneğin film endüstrisinde 33³px boyutundaki LUT'ler standarttır, ancak oyunlarda veya diğer grafik uygulamalarında farklı boyutlara ihtiyaç duyulabilir.
  • Bu tekniği kullanırken renklerin doğru temsili ile performans optimizasyonu arasında denge kurmak önemlidir. LUT'leri etkili kullanmak için renk teorisi ve grafik programlama konusunda derin bir anlayış gerekir.

1 yorum

 
GN⁺ 2024-03-01
Hacker News görüşleri
  • LUT (lookup table) kullanarak efektlerin nasıl uygulandığına dair açıklama

    • Oyuncunun etrafındaki dairesel aydınlatma ayrıntılarını depolayan büyük bir lookup table ve arka plan satırlarının sırasını rastgeleleştiren ikinci bir lookup table kullanılıyor.
    • Ekranın yalnızca 1/20’si güncellenebilse de, rastgele sıra sayesinde yumuşak kenar efekti elde edilebiliyor ve raster tarama gizlenebiliyor.
    • Gerçek zamanlı hesaplama için fazla yavaş olan bölümler lookup table ile işlenerek satırların güncellenmeden kalması önleniyor.
  • Doku tüneli efekti için lookup table kullanma deneyimi paylaşılıyor

    • Ekrandaki her piksel için merkeze olan açıyı ve mesafeyi veren bir lookup table kullanılıyor.
    • Bu, 3D geometriye sahip bir tünelde ilerliyormuş gibi görünse de düşük maliyetli olduğundan Pico’da bile uygulanabiliyor.
    • "Stardust" oyununun bu efekti kullandığı düşünülmüş, ancak gerçekte arka plan olarak tekrar eden 6 karelik bir animasyon kullanıyor.
  • "The Legend of Zelda: Wind Waker" oyununun lookup table kullanarak kendine özgü görselleri nasıl oluşturduğunu anlatan bir video bağlantısı paylaşılıyor

    • "Breath of the Wild" ve "Tears of the Kingdom" da aynı tekniği kullanıyor.
  • Lookup table hakkında yazıyı gönderen yazarın soruları yanıtlamaya hazır olduğu belirtiliyor.

  • Retro oyun geliştirmede lookup table’ların önemine dair açıklama

    • Geçmişte bellek hızlı, işlemciler ise yavaştı; bu yüzden mümkün olduğunca çok hesaplama lookup table’lara konuluyordu.
    • Lookup table’ları ne kadar iyi kullanırsan o kadar gösterişli oyunlar yapabiliyordun.
  • NES homebrew topluluğunda lookup table kullanarak şaşırtıcı fizik efektleri uygulayan "Bobl" oyunu hakkında deneyim paylaşılıyor

    • Sistemin gerçek zamanlı hesaplayabileceğinden çok daha karmaşık görünen efektler lookup table ile elde ediliyor.
  • SNES sürümü "Doom" portunun trigonometrik hesaplamaları lookup table kullanarak nasıl yaptığına dair bir podcast bölümü paylaşılıyor

    • SNES’te grafik işlemcisi olmadığı için hesaplamalar lookup table ile yapılıyordu.
  • Dinamik programlama bilgisi olan kişilerin caching ile memoization’ı karıştırmasına yönelik rahatsızlık dile getiriliyor

    • Memoization yerel paylaşımlı durum, caching ise küresel paylaşımlı durum içerir; bu yüzden farklı sorunları vardır.
    • Caching gelecekte gerekecek bir şeyi öngörmektir, memoization ise hemen gerekeceği bilinen bir durumu ifade eder.
    • Tabulation, ortak alt problemleri önceden belirleyip çözmektir; lookup table ise sabit boyutlu bir tabulation’dır.
  • Lookup table’larla çalışan Mac uygulaması "Lattice" hakkında bilgi paylaşılıyor

  • Lookup table kullanılarak elde edilen çeşitli efektlere örnekler listeleniyor

    • Atmosferik saçılma, sprite renk tonlama, gece görüşü, termal kamera, siyah-beyaz video akışı efekti, glitch efekti, heightmap gölgelendirme, uzay aracı egzoz plumes için alfa nokta parçacıkları, web sitesi ziyaretçilerinin fare bekleme ısı haritası, kristal efekti, ham renk uzayında post-processing renklendirme gibi örnekler veriliyor.
    • Lookup table’lar, bilinen değer dizilerini görselleştirmenin bir yoludur ve oldukça kullanışlıdır.