2 puan yazan GN⁺ 2023-09-09 | 1 yorum | WhatsApp'ta paylaş
  • SIGGRAPH 2023'teki 3D Gaussian Splatting makalesi, fotoğraf tabanlı sahneleri milyonlarca 3D Gaussian'a dönüştürüp gerçek zamanlı render etmeye yönelik bir yaklaşım sunuyor; ayrıca Unity görselleştirme deneysel uygulaması da yayımlandı
  • Sahne, mesh·voksel·distance field yerine konum, dönüş, eşitsiz ölçek, opaklık ve küresel harmonik katsayıları taşıyan uzaydaki blob kümeleri olarak temsil ediliyor
  • Bu yöntem NeRF değildir ve resmi uygulama da sabit işlevli rasterization pipeline yerine %100 CUDA tabanlı kutucuklu yazılım render'ı kullanıyor
  • Unity uygulaması, NVIDIA RTX 3080 Ti üzerinde 1200x800 çözünürlükte resmi görüntüleyicinin 7.40ms'sine karşılık daha yavaş olan 23.8ms sürse de, standart HLSL ile yazıldığı için Mac'te de çalışıyor
  • bicycle sahnesi diskte 1.5GB, yaklaşık 6 milyon blob ve blob başına yaklaşık 250 bayt yer kaplıyor; bu da performansın yanı sıra veri boyutu ve GPU belleğini de önemli iyileştirme alanları haline getiriyor

SIGGRAPH 2023 makalesi ve Unity deneyi

  • SIGGRAPH 2023 makalesi 3D Gaussian Splatting for Real-Time Radiance Field Rendering, Kerbl, Kopanas, Leimkühler ve Drettakis'in çalışması
  • Makale sitesi, kaynak kodu ve veri seti açık olduğundan, deney yapmak ve yeniden üretmek doğrudan mümkün
  • Unity deneyi, önceden üretilmiş Gaussian Splat “model” dosyasını alıp gerçek zamanlı görselleştirmeye odaklanıyor
  • Uygulama aras-p/UnityGaussianSplatting adresinde açıklandı ve ardından ek deneylerin sürmesi planlanıyor
  • Veri boyutunun azaltılıp azaltılamayacağı da bir ilgi konusu; önceki float sıkıştırma deneylerinden yararlanma ihtimali var

Gaussian Splat nelerden oluşur

  • Gaussian Splatting, 3D sahneleri poligon mesh, voksel veya distance field yerine milyonlarca parçacıkla temsil ediyor
  • Her parçacık, yani bir “3D Gaussian”, şu bilgileri taşıyor
    • 3D uzaydaki konum
    • dönüş
    • eşitsiz 3D ölçek
    • opaklık
    • renk bilgisi
  • Renk tek bir renk değil; görüş yönüne göre değişebilen 3. derece Spherical Harmonics katsayılarıyla ifade ediliyor
  • Render sırasında parçacıklar uzamış 3D küreler olarak çizilmiyor; ekran uzayındaki 2D Gaussian olarak “splat” ediliyor
  • Temel fikir, ölçek ve renge sahip blob kümelerinden fotoğraf tabanlı sahne temsili oluşturmak ve bunu hızlı biçimde render etmek

NeRF de değil, sabit işlevli rasterization da değil

  • Gaussian Splatting NeRF değildir
    • İçinde “Neural” bir unsur olmadığı açıkça belirtiliyor
  • Hızlı olmasının nedeni de “GPU rasterization donanımı kullanması” değil
    • Resmi uygulama rasterization pipeline kullanmıyor
    • %100 CUDA ile uygulanmış
  • Resmi uygulamanın performansı, sabit işlevli rasterization'dan değil, milyonlarca ölçeklenmiş parçacığı verimli biçimde işleyen kutucuk tabanlı yazılım render'ından geliyor
  • Yine de kutucuk tabanlı “GPU üzerinde yazılım” rasterizer fikri tamamen yeni değil

Eski teknik yapı taşlarıyla bağlantı

  • Gaussian Splatting'in kendisi, 2001~2002 civarındaki EWA Splatting gibi çalışmalarla bağlantılı
    • Ölçeklenmiş ve yönlendirilmiş blob'lar uzaya yerleştirilir, ekrana nasıl izdüşecekleri hesaplanır ve ardından ekran uzayında Gaussian biçimi işlenir
  • 1994 oyunu Ecstatica, elipsoid tabanlı bir renderer kullanan ilginç bir örnek
  • Spherical Harmonics, fizikte yüzlerce yıldır kullanılıyor; bilgisayar grafiklerinde ise 2000 civarında Ravi Ramamoorthi ve Peter-Pike Sloan'ın çalışmalarıyla yaygınlaştı
  • Point-Based Rendering de eski bir alan
  • Demoscene ve gerçek zamanlı VFX araçları da alışılmadık render yaklaşımlarını uzun süredir kullanıyor
  • fogleman/primitive, bir görüntüyü primitive shape kümeleri olarak ifade eden 2016 tarihli bir araç örneği
  • Media Molecule'ün “Dreams”i splat tabanlı bir renderer kullandı; yayımlanan sürümün birkaç tekniğin birleşimi olduğu görülüyor
  • Parçacıklar için kutucuklu rasterization, en azından 2014'te Gareth Thomas'ın Holy smoke! Faster Particle Rendering using Direct Compute çalışmasından beri var
    • Ekranı kutucuklara bölüp kutucuk içinde çalışmak bellek trafiğini azaltabiliyor
    • Bu yaklaşım, mobil GPU'ların genel çalışma biçimiyle de bağlantılı; PowerVR'ın ilk tasarımı 1996'ya, Pixel Planes 5 ise 1989'a kadar gidiyor

UnityGaussianSplatting'in mevcut durumu

  • aras-p/UnityGaussianSplatting, Gaussian Splat modelinin bir görselleştirici uygulaması
  • Mevcut durumu, “çalışıyor ama hızlı değil”e daha yakın
  • NVIDIA RTX 3080 Ti üzerinde bicycle sahnesi 1200x800 çözünürlükte render edilirken performans farkı büyük
    • Resmi görüntüleyici: 7.40ms, 135FPS
    • Unity uygulaması: 23.8ms, 42FPS
    • Yaklaşık 4 kat daha yavaş
  • Sıralama yöntemi de performans farkını etkiliyor
    • Unity uygulaması görece basit bir GPU bitonic sort kullanıyor
    • Resmi uygulama, OneSweep algoritmasına dayanan CUDA radix sort kullanıyor
  • Rasterization yaklaşımı da farklı
    • Resmi uygulama, CUDA ile yazılmış kutucuk tabanlı bir yöntem kullanıyor
    • Unity uygulaması ise her splat'i ekran uzayında bir quad olarak render etmek için genel GPU rasterization pipeline'ını kullanıyor
  • Unity uygulamasının taşınabilirlik açısından avantajı var
    • Kod, Unity içindeki standart HLSL ile yazıldığı için Mac'te de çalışıyor
    • Apple M1 Max üzerinde aynı sahne 108ms, 9FPS ile render ediliyor
  • GPU belleği açısından şu anda Unity uygulaması daha az kullanıyor gibi görünüyor
    • Resmi görüntüleyici: 4.8GB
    • Unity uygulaması: 2.2GB
    • Bu rakamlara Unity Editor'ün kullandığı bellek de dahil

Veri boyutu ve bellek kullanımı

  • Gaussian Splatting tartışmaları çoğu zaman render kalitesi ve hızına odaklansa da veri boyutu ve bellek kullanımı da büyük bir sorun
  • bicycle sahnesi diskte 1.5GB yer kaplıyor
  • Söz konusu sahne yaklaşık 6 milyon blobdan oluşuyor
  • Her blob yaklaşık 250 bayt kullanıyor
  • Çalışma anında sıralama ve kutucuk tabanlı render gibi işlemler için ek bellek gerekiyor
  • Dreams sunumunda, boyutu azaltmaya yardımcı olabilecek fikirler bulunuyor

1 yorum

 
GN⁺ 2023-09-09
Hacker News yorumları
  • Gradyan inişi ve türevlenebilir rendering kullanırken “neural”dan kaçınıldığını söylemek biraz böbürlenme gibi geliyor
    Kavramsal olarak NeRF’e benzer biçimde, görüntülerden yola çıkarak 3D sahneyle ilgili değişkenleri yaklaşıkleyen veri odaklı bir gösterimi optimize ediyor; fark şu gibi görünüyor: NeRF ışık taşınımının tamamını, yani radiance field’ı modellemeye çalışırken burada yalnızca ışığın ulaştığı sınır koşulları modelleniyor
    Hedef farklı olduğu için daha basit bir temsil tabanı makul ve sonuçlar da iyi görünüyor; ama sinir ağından kaçınmanın başlı başına övgüye değer bir şeymiş gibi sunulması üzücü. Sinir ağları yalnızca moda oldukları için kullanılmıyor; gerçekten güçlü fonksiyon yaklaştırıcıları ve “sinir ağı” denen yapıların kapsamı da çok geniş
    Bu izlenim, blog yazısının girişindeki tondan kaynaklanıyor; makalenin kendisiyle farklı olabilir

    • NeRF ile bu tekniğin büyük farkı, NeRF’in birbirine bağlı düğümlerden oluşan bir kara kutu olması; bu yöntemin ise 3D uzay içine yerleştirilmiş değerler koleksiyonu olması
      Bu yüzden anlaşılması daha kolay, editörler veya renderer’lar gibi diğer 3D yazılımlara entegre edilmesi de daha kolay görünüyor; animasyon da mümkün olabilir. Tüm sahneyi tek seferde ifade eden bir kara kutu fonksiyon yaklaştırıcısı ölçeklenebilir ya da zarif hissettirmiyor
    • Sinir ağları kullanan araştırmacıları dışlamak kimse için iyi bir yol değil
      Ancak sinir ağlarında, problem iyi modellense bile eğitilmiş modelin gerçekte nasıl çalıştığını çoğu zaman bilmiyoruz; veri ihtiyacı ve tekrarlı yeniden eğitim nedeniyle uzun vadeli çözümler üretmede sınırları var
      Burada yazarların küçük bir kültür savaşını körüklediğini değil, dostça bir şaka yaptığını iyi niyetle kabul etmek istiyorum
    • Makalenin başlığı “3D Gaussian Splatting for Real-Time Radiance Field Rendering”
      Her rendering pikseli, sınırı olmayan, bakış açısına bağlı Gauss’ların katkılarını ağırlıklı toplam olarak aldığı için, NeRF’in radiance field’ı modellediği, bunun ise yalnızca sınır koşullarını modellediği ayrımı doğru değil
    • Aras’ın şakasını daha dar bir teknik anlamda okudum. NeRF’in özü, gerçek dünyanın light field örnekleri olan fotoğraflardan 5 boyutlu bir light field’ın, yani 3D konum ve 2D yönün sinir ağı temsilini elde etmek; 5 boyut ise o kadar çok değil
      NeRF’in yön alanında düşük rütbeli küresel harmonik temsil kullandığı da düşünülürse neredeyse 3D+α’ya yakın; bu kadar düşük boyutlu bir fonksiyonu geri kazanmak için neden sinir ağı seçildiği sorusu doğuyor
      Çıkarım sırasında her piksel için görüş ışını boyunca sinir ağının tekrar tekrar örneklenmesi gerekiyor; oysa light field’ın sıkıştırılmış temsili grafik alanında zaten uzun süredir ele alınan bir problem, bu yüzden bu kısım oldukça tuhaf
      Daha sonra Plenoxels, NeRF’ten “Ne”yi çıkarıp eğitim ve çıkarım performansını büyük ölçüde artırdı; Nvidia’nın Instant NeRF’i ise küçük bir sinir ağına ayrıntılı giriş gömme temsillerini enterpole ederek ekleyen bir yöntemle bunu bir ölçüde telafi etti: https://nvlabs.github.io/instant-ngp/assets/mueller2022insta...
      Grafik mühendisliğinde sinir ağlarının yaygın kullanıldığı yerler çoğunlukla seyrek veri rekonstrüksiyonu, özellikle de gürültü giderme; bu da yüksek boyutlu bir problem olduğu için doğal. Yine de elle tasarlanmış algoritmaları ezip geçtiği durumlar nadir; küçük sinir ağlarını sıkıştırma için kullanmanın ise geleceği var gibi görünüyor
      Grafiklerde fonksiyon yaklaştırma çok olduğu için sinir ağlarına yer var; ancak ele alınan fonksiyonlar genelde daha anlaşılabilir ve kontrol edilebilir olduğundan, doğal dil anlama gibi elle algoritmik çözüm üretmenin neredeyse imkânsız olduğu alanlardan farklı
    • Kültür savaşına girildiğinde sıradan ve makul insanlar bile doğrulanmamış fikirlere kapılmaya yatkın oluyor
      Pek çok sohbet AI=kötü, CRYPTO=kötü diye bitiyor; sorun karşı görüşün yanlış olması değil, sonuca baştan karar verip düşünmeyi bırakırsanız kendi fikrinizin tamamen saçma olup olmadığını fark etmenin bir yolunun kalmaması
  • Gerçekten harika bir iş
    Yazıda nokta tabanlı rendering ve parçacık sistemlerinden bahsediliyor; son oyunlarda, doku parçalarından ziyade nokta odaklı ama fizik sistemi gibi davranan yeni bir parçacık stiline doğru ince bir kayış varmış gibi hissediliyor
    Örnek olarak Hogwarts: https://www.gamespot.com/a/uploads/original/1816/18167535/40..., Forspoken: https://oyster.ignimgs.com/mediawiki/apis.ign.com/project-at..., Starfield: https://dotesports.com/wp-content/uploads/2023/08/temple-loc..., AC6, FF16 var
    Ortak noktaları, fiziği olan renkli saydam nokta parçacıkları gibi görünmeleri; özellikle konsollarda CPU yükü olmadan GPU üzerinde ucuz efektler üretmek için kullanılıyor gibi. Oyun geliştirme tarafında bilen biri varsa merak ederim

    • Şu an oyun geliştirmiyorum, grafiklerden de sorumlu değildim ama son 10 yılda gerçek zamanlı akışkan simülasyonu daha yaygınlaştı ve burada sözü edilen “fizik” muhtemelen buna işaret ediyor
      Akışkan simülasyonu yoksa nokta tabanlı parçacık sistemi yalnızca havai fişek gibi görünür. Bir sonraki aşama, her parçacığın bağımsız olarak momentum ya da rüzgâr gibi fizik özelliklerine sahip olup küçük doku billboard’ları olarak render edilmesiydi; nispeten yakın zamana kadar patlama ve duman gösteriminde kullanılıyordu
      Artık makine performansı ve fizik algoritmaları iyileştiği için parçacıkların birbiriyle etkileştiği akışkan simülasyonları gerçek zamanlı çalıştırılabiliyor; şu an gördüğümüz efektler de o tarafa benziyor
    • En yeni tekniklere çok hâkim değilim ama Doom’dan Quake’e geçilen dönemde Quake’in parçacık sistemi de büyük doku sprite’larının silüetinden çok, küçük düz renk parçacıklarına ve onların hareketine dayanıyordu
      3D oyun dünyasında yalnızca gerçek 3D temel şekillerle çalışmanın kavramsal ve yapısal olarak pek çok avantajı var; nokta sprite’ları da neredeyse sonsuz küçük 3D nesneler gibi ele alınabiliyor
      Buna karşılık 2D sprite’ları 3D sahneye koyduğunuzda, kısmi saydamlık varsa arkadan öne doğru sıralamak gerekir; z-buffer ile pek uyumlu değildir, GPU’ya uygun çizim sırası ile çatışır, 3D yüzeylerin içine girerek 2D olduğu gerçeğini kolayca belli eder
      Bu sorunları çözmek için screen-door saydamlık, z-buffer yazma biçimini değiştiren shader’lar, alpha test, alpha-to-coverage gibi birçok uzlaşma zamanla birikti
      VR’da 3D sahne içindeki 2D görüntü tabanlı rendering, tek bir ekrandakinden çok daha kötü göze batar ve düz bir billboard olduğu çok daha kolay anlaşılır. Bu nedenleri bir araya getirince, 3D sahnelerdeki 2D doku sprite efektlerinden uzaklaşmak istemek için yeterince sebep var
    • Son yıllarda oyun motorlarının çok daha karmaşık parçacık sistemlerini öne çıkardığını kesinlikle gördüm
      Yapay zeka tarafındaki akım nedeniyle GPU’ların RT çekirdekleri ve tensor çekirdekleri gibi bileşenlerle “GPU içindeki küçültülmüş komut kümesi GPU’su” yönüne gitmesi de bir ölçüde ilgili görünüyor
      Birkaç yıl önce NVIDIA tarafında SE(3) çekirdeklerini tensor çekirdeklerine taşıyan bir kernel yazmışlardı; Gaussian splatting’in küresel harmonik kısmına da sıkıştırma ve çalışma sırasında kısmi taşıma uygulanabilecek gibi görünmesi şaşırtıcı değil: https://developer.nvidia.com/blog/accelerating-se3-transform...
      Gaussian splatting 3D uzayda her zaman bir destek bölgesine sahip olduğundan oldukça verimli olacak gibi; kabaca ve hızlı dönüştürülse bile nihai sonuç oldukça iyi olabilir
    • Unity’ye birkaç yıl önce VFX Graph eklendi; bununla bu tür ayrıntılı parçacık efektleri yapılabiliyor
      Parlayan noktaların güzel girdaplarını yapmak da nispeten kolay. Unreal Engine’de de benzeri vardır diye düşünüyorum ama doğrudan pek deneyimim yok
    • Bu tür “parçacık efektlerini” yaklaşık 11 yıl önce Unreal Engine 4 demosu “Elemental”da ilk kez etkileyici biçimde gördüğümü hatırlıyorum: https://youtu.be/dD9CPqSKjTU
      Buradan türediğini düşünmüyorum ama işaret edebileceğim ilk kilometre taşı o demo
  • Siggraph makalesi ilk çıktığında gerçekten heyecanlanmıştım
    Son yaklaşık 10 yılda yaşadığım odaları bir gün 3D olarak yeniden oluşturmak için yüzlerce açıdan fotoğraflar çektim; Gaussian splatting, bunu neredeyse gerçekmiş gibi hissettirecek şekilde yeniden oluşturabilecek ilk teknik gibi geliyor
    Araçlar daha olgunlaştığında eski odalarımı yeniden dolaşıp nostaljiye kapılma fikri beni çok heyecanlandırıyor

  • Pek bilmediğim bir alan olduğu için cahilce bir soru olabilir ama bu videolar gerçekten harika görünüyor
    Anladığım kadarıyla sahne ya da radiance field her zaman statik ve aydınlatma bake edilmiş oluyor; bunun dinamik olarak aydınlatmayı değiştirmeyi ve hareketi de destekleyecek yönde gelişme ihtimali olup olmadığını merak ediyorum

    • Güzel soru; kısa cevap hayır
      Radiance field’da ışığın yayılması, yansıması, soğurulması gibi kavramlar yok; her şey “iletilen ışık” denen tek bir değerde ezilmiş durumda. Bu anlamda radiance field daha çok 3D fotoğrafa yakın
      Bunu değiştirmek için inverse rendering ya da fotogrametriyle ışık kaynaklarının konumlarını, yüzeyleri, malzemeleri vb. tahmin edip ardından yeniden geleneksel path tracing kullanmak gerekir
      Başka bir yön de animasyon değil video olabilir: radiance field’ı zaman içinde sürekli yakalayıp kareler arasındaki benzerliği sıkıştırarak zamansal tutarlılık elde etmek gibi bir yöntem olabilir
    • Hareket tarafında Gaussian splatting’i hareketli nesnelere genişleten çalışmalar zaten var: https://dynamic3dgaussians.github.io/
      Birkaçını birbirine ekleyerek animasyon da yapılabilir: https://twitter.com/8Infinite8/status/1699460316529090568
      Yeniden aydınlatma için bunu destekleyen çok sayıda NeRF varyantı olduğundan, splat’lerin malzeme parametrelerini optimize etmek de mümkün görünüyor
    • Genelde tek bir kamerayı hareket ettirerek çok sayıda fotoğraf çekilip yakalama yapıldığı için kolay olmayacak gibi
      Örneğin bir iç mekân sahnesinde masa zeminde koyu bir gölge oluşturuyorsa, NeRF henüz ışık kaynağını ve gölgeyi anlamadığından zeminin siyah mı olduğunu, beyaz bir zeminin masa gölgesiyle mi örtüldüğünü, yoksa gölgenin içinde mavi bir Stanford bunny’nin mi saklandığını bilemez
      İnsan yüzü gibi küçük nesneleri yakalayan 3D tarama düzenekleri, aydınlatmayı manipüle edip BRDF’yi doğrudan örnekleyerek bunu çözer. Aydınlatmayı manipüle edemiyorsanız BRDF’yi tahmin etmek mümkün olabilir ama sınırları vardır
      Sonradan animasyon eklemek kolay olabilir; ancak animasyonun kendisini yakalamak için birden fazla kamera gerekir ya da konu insan olduğu için karşı tarafı hayal edip dolduran bir sinir ağı gibi tahminlere dayanmak gerekir
      Intel birkaç yıl önce birden fazla kamerayla sahneyi yakalayıp son işlemede kamera konumunu değiştirebildiğiniz bir proje yapmıştı; sanırım Amerikan futbolu yayınlarını hedefliyordu ama fiilen çıktığına dair bir haber duymadım. Matrix tarzında birden fazla kamera gerekiyor
    • Mümkün. Yöntemlerden biri, birden fazla gerçek aydınlatma koşulunda splat’leri toplayıp bunları en yakın simüle edilmiş aydınlatma koşuluna eşlemek
      Yani veriyi günün saatine göre animasyonlu hâle getirme yöntemi. Veri gereksinimi büyüyebilir ama enterpolasyon yöntemleri olduğu için o kadar da kötü olmayabilir
      Statik bir sahne 2GB ise, kabaca zaman dilimi yaklaşımı 16GB’tan azıyla mümkün olabilir ve modern GPU’larda render edilebilir. Sonrası, H100 sınıfı performansın tüketici tarafına inmesini beklerken birkaç yıl optimizasyon yapma meselesi
  • Bilimin bilimkurgunun beklentilerini aşması her zaman eğlenceli
    Bu durumda aklıma hemen Cyberpunk 2077’deki Braindance kavramı geldi; başka birinin görsel anılarının içinde, o kişinin sahnede algıladığı kapsam dahilinde dolaşabilme özelliği
    Kamerayı özgün bakış açısından farklı bir yere taşıdığınızda görüş alanı üç boyutlu bir piksel yığını gibi dağılıyor; buradaki blob kavramına benziyor ama şaşırtıcı biçimde bu makaledekinden çok daha az rafine görünüyor
    https://steelseries.com/blog/how-to-braindance-cyberpunk-207...

  • Hacim render etmede splatting oldukça eski bir teknik. Westover, Lee Alan’ın Temmuz 1991 tarihli “SPLATTING: A Parallel, Feed-Forward Volume Rendering Algorithm” makalesi var

    • Bu çalışmada yeni bir şey olmadığını mı, yoksa zaten yerleşmiş bir yaklaşımın üzerine inşa edildiğini mi kastettiğini merak ediyorum
      İkincisini kimse saklamaya çalışıyor gibi görünmüyor; birincisi ise doğru görünmüyor
    • Eskiden bunu, pencereye Gaussian kar topları fırlatıp neyin yapıştığına bakmak gibi düşünürdüm
      O içgörünün nereden geldiğini bilmiyorum ama o dönemde Boston yakınlarında yaşıyordum ve küçük çocuklarım vardı
    • Yeni makalenin yazarları ilgili mevcut çalışmaların epey bir kısmını kaçırmış olabilir gibi görünüyor
  • 3DGS render etmenin ilk yerel optimize WebGPU uygulamasını heyecanla bekliyorum
    Sahne verilerinin nasıl verimli biçimde sıkıştırılıp açılacağını da merak ediyorum

  • Geçenlerde Gaussian splatting kullanımını gösteren bir video izledim: Getting Started With 3D Gaussian Splats for Windows (Beginner Guide) - https://www.youtube.com/watch?v=UXtuigy_wYc

  • Hareketten yapı çıkarımı alanındaki son durum merak ediliyor
    Bir mekâna ait video olduğunda, bugün bunun pratikte nasıl 3B sahneye dönüştürüldüğünü bilmek istiyorum

    • “Hareketten yapı çıkarımı”, bir görüntü veya video kümesinden kamera pozlarını ve seyrek nokta bulutunu yeniden oluşturma sürecini ifade eder
      Bu makalede açıklanan sahne yeniden oluşturma sürecinin girdisi de tam olarak budur
      Bildiğim kadarıyla SfM’in temel yaklaşımı son yaklaşık 10 yılda pek değişmedi; SIFT gibi görüntü öznitelik çıkarımı, sezgisel eşleştirme, bundle adjustment ve aykırı değer temizleme olarak özetlenebilir
    • Video, durağan görüntülerden oluşan bir demetten ibaret olduğundan, çözünürlük veya motion blur nedeniyle kalitenin düşebilmesi dışında “video olmadan 3B sahne nasıl yakalanır?” sorusuyla neredeyse aynıdır
      Genel yanıt fotogrametridir; NeRF tarzı yaklaşımlara yönelik ilgi ve bunların pratikliği de giderek artıyor
      Ancak bunun video olması sayesinde çıkarılabilecek ek uzamsal ilişkilerin daha fazla ilgi görmemesi şaşırtıcı. Kareler arasında kameranın yalnızca belirli şekillerde hareket edebileceği kısıtının kamera pozu kestiriminde kullanılabileceği düşünülebilir
    • Gaussian Splatting makalesinin kendisi COLMAP kullanıyor; bu pek de yeni bir araç değil
      Splat edilmiş Gauss’lar üzerinde marching cubes çalıştırıp mesh çıkarmak fikri var, ama henüz bunu gerçekten yapan bir örnek gördüğümü sanmıyorum
    • Derin öğrenme ile geleneksel SfM’i birlikte kullanan GitHub deposu hierarchical localization’a bakmak iyi olabilir
    • Kelimenin tam anlamıyla Gaussian Splatting ve NeRF
  • 90’ların sonunda blob ile voksel eş-yüzeyleri render ediyorduk
    Tüm 3B voksel dizisinde yüzey voksellerini tarıyor, yerel yoğunluk gradyanından normali hesaplayıp 240 taneden birine kuantalıyorduk
    Ardından bir yer değiştirme vektörü tablosu kullanarak yüzey voksel zincirleri oluşturuyorduk; voksellerin çoğu, önceki voksele göre yer değiştirme indeksi ve normal vektör indeksi olmak üzere 2 bayttı
    240 normal vektör için aydınlatma önceden hesaplanıp bir lookup table’a konuyordu; yazılım da z-buffer’a küçük renkli daireleri çok hızlı boyayabiliyordu
    O dönemdeki büyük hayal kırıklığı, perspektif kullanamamamızdı. Yer değiştirme vektörlerini her karede ekran uzayına dönüştürdüğümüz için blob’u boyuyor, offset uyguluyor, rengi lookup ediyor ve tekrar boyuyorduk. Zincirin sonunu ve bir sonraki mutlak konumun saklandığını işaretleyen tek bir yer değiştirme değeri vardı, ama voksellerin çoğu 2 bayttı