3 puan yazan GN⁺ 2024-03-05 | 1 yorum | WhatsApp'ta paylaş
  • Motion blur'ı “mantıksal sınırına” kadar zorlayan bu deney, insan görüsündeki motion smear ile ekran oynatımı arasındaki farkı azaltacak şekilde bulanıklığı yeniden tanımlıyor ve bunu prosedürel gerçek zamanlı animasyona uyguluyor
  • Doğal sahnelerde retinadaki koni hücreleri ışık uyarımını zamansal olarak bütünleştirerek reseptör düzeyinde bulanıklık oluşturur; ancak düşük kare hızlı ekranlarda blur'süz görüntü, doğal smear yerine üst üste binmiş kareler gibi görünür
  • Geleneksel motion blur, bir karenin zaman aralamasını ortalayarak doğal sahnelere yaklaşır; ancak hızlı nesnelerde süreksizlik kalabilir, bu yüzden başlangıç ve bitiş ağırlıklarını düşüren bir shutter function daha doğal sonuç verir
  • Gerçek zamanlı shader uygulaması, çoklu örnekleme ve analitik ray tracing'den kaçınıp hareketli nesneleri zaman içeren koordinatların yoğunluk fonksiyonu olarak ifade eder; ardından zaman integrallerini volume ray casting ile render eder
  • Son “Torusphere Accelerator”, yörüngede hareket eden bir küre ile dönen bir torusu fiilen sonsuz hıza kadar blur'lar; “motion blur uygulanmış normal” diye bir şey olmadığı için yüzey normalleri ayrıca enterpole edilir

Doğal sahnelerde hareket ile ekran oynatımı arasındaki fark

  • Motion blur başlangıçta, kamera deklanşörü açıkken nesnenin hareket etmesiyle oluşan bir film artifact idi; ancak görüntüyü algısal olarak doğal sahnelere daha benzer hale getirdiği için faydalı oldu
  • 3D ve animasyonda “kamerayı simüle etmek” ile “doğal görünmek” her zaman aynı hedef olmayabilir
  • Doğal motion blur'ı görmek için dört soru gerekir
    • Doğal sahnelerdeki hareketi nasıl algılarız
    • Ekranda oynatılan sahneyi nasıl algılarız
    • Bu iki durum arasındaki algısal fark nedir
    • Video motion blur bu farkı nasıl azaltabilir

Koni hücrelerinin zamansal bütünleştirmesi ve motion smear

  • Aydınlık ortamlarda insan görüsünün ilk işlemesi koni hücreleri tarafından yapılır ve phototransduction anında gerçekleşmez
  • Işık uyarımındaki gecikme, uyarımı zaman ekseninde yumuşatan bir modelle ifade edilebilir
  • Howlett et al. (2017) tarafından verilen japon balığı koni hücresi örneği, fotoreseptöre giren foton sayısını, ağırlık fonksiyonunu ve bunun sonucu olan “effective stimulus”u gösterir
  • Bu ağırlık fonksiyonu biçimi ile insan koni hücrelerinin bilinen tepki süreleri birleştirilince, giriş sahnesindeki algılanan görüntü simüle edilebilir
  • Sonuç olarak doğal sahnelerde bile fotoreseptör düzeyinde doğal bir bulanıklık olan motion smear zaten vardır
  • Örnek simülasyon, gözlemcinin nesneyi gözleriyle takip etmediğini ve sabit bir noktaya baktığını varsayar

Ekran görüntüsünde geleneksel motion blur'ın yaptığı şey

  • Saniye başına kare sayısı sınırlı bir ekran izlendiğinde, motion blur olmayan görüntünün algılanan hali beklenen motion smear değil, üst üste bindirilmiş kareler gibi görünür
  • Motion blur uygulanmış görüntüde her kare tek bir anı göstermek yerine, karenin kapsadığı zaman aralığındaki tüm anların ortalamasını alır
  • Bu, bir kare süresi boyunca deklanşörü açık olan bir kamerayla elde edilen görüntüye benzer
  • Bu yaklaşımın algılanan görüntüsü, doğal sahne durumuna çok daha fazla benzer

Shutter function ile süreksizliği azaltmak

  • Geleneksel motion blur'da bile bazı nesne hızlarında motion smear içinde süreksizlik artifact'leri kalabilir
  • Shutter function, kare aralığının tamamını eşit biçimde ortalamak yerine karenin başlangıç ve bitiş anlarına düşük, orta kısmına daha yüksek ağırlık verir
  • Adı, diyaframlı bir kameradaki deklanşör verimliliği benzetmesinden gelir; ancak burada amaç kamerayı simüle etmekten çok ekran ile doğal sahne arasındaki algısal farkı azaltacak bir fonksiyon seçmektir
  • Bu problem, sinyal işlemedeki window function tasarlama problemine çok benzer ve popüler pencere fonksiyonları iyi sonuç verir
  • Öznel testlere göre, nesnenin bir kare boyunca kat ettiği mesafe nesnenin genişliğiyle aynı ölçeğe geldiğinde shutter function faydalı hale gelir
  • Düşük hızlarda gerekliliği büyük değildir; ancak hızlı hareket eden nesnelerde daha doğal görünür ve durdurulmuş kareler de daha pürüzsüz görünür
  • Bu yaklaşım olağan kamera simülasyonu yöntemi değildir ve ardışık karelerin zaman aralıkları birbirleriyle çakışabilir
    • Tipik kamera simülasyonunda kareler arasında zaman çakışması olmaz ve kareler arasındaki anlar çoğu zaman atılır

Gerçek zamanlı shader ile “sonsuz motion blur” üretmek

  • Hedef animasyon, yörüngede hareket eden bir küre ile dönen bir torusu birleştirir ve her ikisine de fiilen sonsuz hıza kadar motion blur uygular
  • Nihai çıktıyı etkileşimli hale getirmek için gerçek zamanlı bir shader olarak uygulanır
  • Çoklu örnekleme, her karede sahneyi birden fazla zaman noktasında render etme yöntemidir
    • Nesne hızı arttıkça gereken örnek sayısı da orantılı olarak artar
    • Bu yüzden “sonsuz hız” animasyonu için uygun değildir
  • Analitik ray tracing motion blur da bir alternatif olabilir
    • Mesh'lerde üçgenleri prizmalara dönüştüren yöntemler vardır
    • Tamamen analitik bir yaklaşım da mümkündür, ancak burada daha ağır bir yöntem olabilir
    • Her iki yaklaşım da malzeme işleme için hâlâ çoklu örnekleme gerektirir
  • Seçilen uygulama, “integrated volume motion blur” denebilecek, hack'e yakın bir yöntemdir
    • Hareketli nesne, zaman da dahil koordinatları girdi olarak alıp içeride 1, dışarıda 0 döndüren bir yoğunluk fonksiyonu olarak ifade edilir
    • Bu yoğunluk fonksiyonu zaman boyunca integral alınarak istenen zaman aralığı için motion blur uygulanmış yoğunluk elde edilir
    • Sonuç volume ray casting ile render edilir
    • Fotoğrafik olarak tam doğru olmasa da, çok uzun izleri gerçek zamanlı performansla işlemeyi sağlar

Yörüngede hareket eden kürenin motion blur yoğunluğu

  • Yörüngede hareket eden küre, 2D kesitte yörüngede hareket eden bir çember problemine indirgenebilir
  • Çemberin merkezi orijinden R uzaklıktadır ve yarıçapı a'dır
  • Kutupsal koordinatlarda, verilen yarıçap r için nesne yüzeyinin açısı θ çözülerek noktanın nesnenin içine giriş ve çıkış anları hesaplanabilir
  • Nesne v hızıyla yörüngede hareket ediyorsa, açı koordinatında zaman terimi vt çıkarılarak ifade edilir
  • Uzaydaki herhangi bir nokta için nesnenin bulunduğu zaman aralığı I ile mevcut karenin zaman aralığı F arasındaki kesişim uzunluğu motion blur uygulanmış yoğunluk olur
  • Shutter function s uygulanırsa, yoğunluk s(t) ile çarpılıp integral alınır; s'nin belirsiz integrali S varsa bu, S(max I) - S(min I) biçiminde hesaplanabilir
  • Animasyonda kullanılan sinüs tabanlı shutter function, integral değeri 1 olacak şekilde tasarlanmıştır ve zaman ekseninde çakışsa bile herhangi bir andaki toplamı her zaman 1'dir

Dönen torus ve spiric section

  • Dönen torus da küreyle aynı prosedürle işlenir
  • Torusun 2D dik kesiti, spiric section ya da Perseus'un spiric'i olarak adlandırılır
  • Torusun minor radius'u a, major radius'u b alınarak ve belirli bir c konumunda kesit alınarak, torusun iç bölgesi kutupsal koordinatlarla ifade edilebilir
  • Yüzey açısı θ çözülerek pozitif ve negatif iki durum elde edilir; bu iki sınır arasındaki bölge solid torus yoğunluğu olarak kullanılır
  • Sonraki adımlar, zaman aralığını bulma ve shutter function integralini uygulama açısından yörüngede hareket eden küreyle aynıdır

Son Torusphere Accelerator

  • Son sahne, küre ile torusu birleştirir ve standart volume ray casting ile render edilir
  • Surface normals ek işlem gerektirir
    • “Motion blur uygulanmış yüzey normali” diye bir kavram olmadığından, uygulamada normaller harmanlanarak kullanılır
  • Canlı animasyon, temel fare ve dokunmatik etkileşimleri destekler
  • Tüm cihazlarda iyi çalışmayabileceği için sayfanın üst kısmında önceden render edilmiş bir video da sunulur
  • Nihai shader, Shadertoy üzerinde de görülebilir

HN tartışmasında öne çıkan başlıklar

  • Hacker News tartışmasında motion blur kalitesinin bir sanatsal tercih olduğu görüşü öne çıktı
  • Renk uzayı dönüşümünün önemi de ayrıca konuşuldu
  • Sinema VFX'inde motion blur'ın tarihsel olarak nasıl geliştiği de tartışıldı
    • Erken dönem CG filmi Jurassic Park, fiziksel olarak imkânsız bir box shutter function kullanan örneklerden biri olarak anıldı
  • Oyunlardaki motion blur hâlâ tartışmalı bir konu olmaya devam ediyor

1 yorum

 
GN⁺ 2024-03-05
Hacker News yorumları
  • Sonlu bir ekran yenileme hızında hareket bulanıklığını render ederken ya da çekerken verilen ödünün temelinde, izleyicinin ekrandaki hareketli nesneyi gözüyle takip edebilmesi yatıyor.
    Gerçek hayatta bunu yaptığınızda nesne netleşir. Bu yüzden ya göz hareketini izleyip göreli harekete göre bulanıklık vermek ya da sonsuz yenileme hızında hareket bulanıklığını tamamen ortadan kaldırmak gerekir. İkisi de mevcut teknolojiyle pratik olmadığından, bir yerlerde mutlaka tuhaf görünür. İyi bir yönetmen ya da oyun tasarımcısı, izleyicinin gözlerinin nasıl hareket edeceğini tahmin ederek deklanşör hızını veya render bulanıklığını seçer.

    • Ancak izleyiciler shutter angle’ı zaten görsel dilin bir parçası olarak kabul ediyor. Örneğin dar shutter angle keskin bir rap videosu hissi, uzun shutter angle ise rüya gibi retro bir his verir.
      Render edilmiş içerik aynı görsel dili konuşamıyorsa, yenileme hızından bağımsız olarak bir araç eksik demektir. Elbette bunun da bir sınırı var; 400Hz’de farkı gerçekten görebilmek oldukça şaşırtıcı olurdu.
      Render edilmiş içerikte ilginç olan şey, bunu daha da ileri taşıyabilmenizdir. Örneğin tek bir karenin süresini aşan bir shutter angle gibi, anladığınızı sandığınız kavramlarla oynayabilirsiniz.
    • Sonsuz yenileme hızına alternatif olarak, her kareyi normal kare süresinin yalnızca bir kısmı boyunca gösterme yöntemi var. Yani tek tek kareleri hızla flaş gibi gösterip geri kalan zamanı siyah ekran olarak bırakmak.
      Bu yöntem azami ekran parlaklığını düşürür ve titremeyi önlemek için asgari bir kare hızı gerektirir; ancak gerçek dünyada olmayan, gözle takipten kaynaklanan kalıcılık bulanıklığını azaltır. Daha doğrusu takip bulanıklığını tamamen ortadan kaldırmak için her kareyi sonsuz derecede kısa bir süre göstermek gerekir; bu da gerçekçi değildir. Yine de VR başlıkları bu flaş/strobe yöntemini kullanır.
      CRT ve plazma ekranların hareket netliğinin LCD veya OLED’den çok daha iyi olmasının nedeni de budur. İlki her kareyi kısa bir parıltı gibi gösterir; ikincisi ise aynı kareyi tüm kare süresi boyunca tutan sample-and-hold yöntemidir. Örneğin 60Hz’de kare 1/60 saniye boyunca tutulur. CRT’de 60FPS, OLED’de 120FPS’ten daha akıcı görünebilir.
      Oyunlarda reprojection tekniğiyle çok sayıda kare ekleme yöntemi de var. Motor içinde pahalı kareleri topluca render etmeden gerçek kamera hareketini yaklaşık olarak elde edebilirsiniz. Bu da VR’da zaten kullanılıyor, ancak henüz çok yüksek kare hızlarına kadar değil. Ayrıntıları şu yazı iyi ele alıyor:
      https://blurbusters.com/frame-generation-essentials-interpol...
      Reprojection ile 1000FPS civarının oldukça gerçekçi olduğu söyleniyor; bu da ekran parlaklığını düşürmeden takip bulanıklığı sorununu çözebilecek gibi görünüyor.
    • Hareketli nesneler, her kare sabit bir konumda daha kısa süre gösterilirse daha net olabilir. Yani MPRT’yi azaltarak, göz hareketi takip ederken gösterilen karenin yayılmasını engellemek.
      Bu, CRT/OLED’in genellikle rolling tarzındaki taramalı çıktısıyla ya da LCD arka ışık strobing’iyle, çoğu zaman tüm kare yöntemiyle uygulanabilir. Ancak 24Hz’de her kareyi kısa süre göstermek dayanılmaz derecede titremeye yol açtığından, film projektörleri her film karesini 2–3 kez gösterirdi. 50Hz’de bu ancak katlanılabilir düzeydedir; bu yüzden bazı Avrupa CRT TV’leri 50Hz görüntüyü 100Hz’e frame doubling ile çıkarıyordu ve bunun sonucunda hareketli nesneler bazen çift görünüyordu. En iyi akıcılık ve en az göz yorgunluğu için ideal olarak 70–75Hz ve üzeri gerekir; ancak o zaman da 60FPS kaydedilmiş videoyu judder ya da tearing olmadan göstermek zorlaşır.
    • Doğru. Bu yazı için arka plan araştırması yaparken, az önce anlattığın şeyi açıklayan ve izleyicinin göz hareketlerini öngören bir çözüm öneren oldukça güzel bir makale okudum: Temporal Video Filtering and Exposure Control for Perceptual Motion Blur (Stengel et al., 2015)
    • Sonlu yenileme hızında hareketli bir görüntüyü gerçekten net yapmak mümkün değildir. Yeterince yüksek yenileme hızlarında buna yaklaşılabilir; fakat nesneler zaman içinde ancak takıla takıla ilerleyen bir yol üzerinde hareket edebildiği için göz hareketiyle uyuşmaz.
  • Bunun görsel medyayı daha gerçekçi hissettireceği beklentisinin aksine, oyunlarda video oyunlarını aşırı kurgulanmış bir filmin ucuz bir taklidi gibi gösterdiği hissi var
    Çok hızlı hareket eden, çok yakından geçen ya da özellikle kendi bakış açın dışındaki hareketler için mantıklı. Ama “karakterin hızla dönmesi” gibi durumlarda çok fazla kötüye kullanılıyor
    Başını ya da gözlerini hızla çevirdiğinde bulanık bir görüntü görmezsin; yeni görüntüyü görürsün ve beyin ara veriyi atar. Aynada bir gözünden diğer gözüne odak kaydırmayı denersen anlarsın. Gözlerinin ya da yüzünün bulanıklaştığını görüyor musun?
    Oyunda bakış açısını hareket ettirirken blur eklemek, yeni görüş alanını göstermeyi sadece geciktirir. Dikkat dağıtıcı ve gerçek dışıdır

    • Bu test en iyisi değil. Çünkü beyin sakkadik göz hareketini telafi ederken girdiyi kısa süreliğine sansürler. Ayrıca yürürken sokak tabelalarını okuyabilmeni sağlayan yerleşik hareket sabitleme de vardır
      Daha iyi bir test, parmağını ya da elini çok hızlı sallayıp ona bakmaktır. Parmağın hareket ederken motion blur göreceksin. Bazı durumlarda, ardıl görüntü olarak tek tek “frame”leri bile görebilirsin. Örneğin yeni otomobillerin arka farlarına bakarsan LED’lerin sürekli yanmadığını, PWM ile çok hızlı yanıp söndüğünü görürsün. Bu yüzden gece arka farlara bakarken gözünü hareket ettirirsen bulanık bir görüntü değil, noktalardan oluşan bir dizi görürsün. Bu püf noktasını öğrendikten sonra, bulanık mı yoksa kesik kesik noktalar halinde mi göründüğüne bakarak analog aydınlatma ile PWM’yi ayırt edebilirsin
    • Motion blur’un fare ivmesi gibi kullanılması gerektiğini düşünüyorum. Söylediğin gibi, başını hızlı çevirdiğinde görüntü net ve anında belirmeli
      Ama bir arabanın içindeysen ya da oyunda havada uçuyorsan, hızlıca göz atarken görüntü bozulabilir. Beklenen şey, hızlandıkça sürükleniyormuş gibi bir blur’dur; böyle bir efekt hızlı sahneleri çok daha heyecanlı hale getirebilir. Sorun, motion blur’un neredeyse her yerde berbat uygulanması
    • Oyunlarda motion blur’un tartışmalı olmasının nedeni çoğunlukla uygulamasının çok kötü olması
      En büyük üç günah, nesneleri gereğinden fazla uzağa kadar bulanıklaştırmak, bulanıklaştırılmaması gereken şeyleri bulanıklaştırmak ve tüm sahneyi bulanıklaştırmaktır. Üçüncüsü sonuçta ikinciye indirgenebilir, yani aslında iki günah da olabilir. En önemlisi motion blur’un ince ve belli belirsiz olması gerektiğidir. Doğru motion blur oyunu bulanık hale getirmez; daha gerçekçi ve akıcı gösterir
      Bir nesne kareler arasında 50 piksel hareket ediyorsa blur genişliği 50 pikseli aşmamalıdır. Hatta daha hafif yapmak için muhtemelen 25 piksel civarı daha doğrudur. Ama nedense yarış oyunları hızlı giderken tüm sahneye bolca radyal blur uygular ve kişisel olarak bunun sahneyi mahvettiğini düşünüyorum
      Benzer şekilde, kameraya göre hareket etmeyen nesnelerde motion blur olmamalı. Birçok oyun burada hata yapıyor. Dönerken sahneyi son işlemle bulanıklaştırıyorlar. Tamamen statik bir sahneyse bu mantıklı ve hesaplama maliyeti açısından da çok verimli bir yöntem. Ama bir nesneyi takip ettiğin için dönüyorsan, takip ettiğin nesne bulanık olmamalı. Bir yarış oyununda yanındaki araba seninle aynı hızda gidiyorsa o araba bulanıklaştırılmamalı
      Doğru motion blur elde etmenin kesin yolu, birden fazla tam kareyi art arda render edip sonra karıştırmaktır; ancak iyi görünmesi için çok fazla örnek gerekir. Aksi halde dikey çizgi gibi bir şey ekran boyunca uçtuğunda yumuşak bir blur yerine dikey şeritlerden oluşan bir dizi gibi görünür
      Muhtemelen en iyi seçenek hibrit bir yaklaşım olurdu: sahnedeki her nesneyi ayrı render etmek ve kameraya göre göreli hareket yönüne bağlı olarak nesne bazında son işlem blur’u uygulamak. Ancak Z sırası işleme büyük bir zorluk olabilir
    • Video oyunlarında motion blur düşük kare hızını telafi etmeye yardımcı olur. Özellikle 30FPS’te neredeyse gereklidir, 60FPS’te de fena değildir
      Nadiren 120FPS’te oyun oynayabildiğimde, projektör ne yazık ki 60Hz ile sınırlı olsa da, motion blur olmadan oynamayı daha çok tercih ettim
    • Aslında yeni görüntüyü görmüyorsun; belli miktarda ayrıntı görüyorsun ve beyin gördüklerinin geçmişini yeniden yazarak süreklilik varmış gibi hissettiriyor
  • İyi bir genel bakış [1]’de var
    İlginçtir ki shutter efficiency modellemesiyle ilgili klasik makale [2] 2005’te yayımlanana kadar, VFX üretiminde kullanılan tüm renderer’lar box shutter kullanıyordu. Yani shutter anında açılıyor, belirlenen süre boyunca açık kalıyor ve anında kapanıyordu
    “Jurassic Park” ya da “The Mask” gibi filmlerde aşırı motion blur sahneleri görürsen, bu PhotoRealistic RenderMan’in box shutter kullanmasıdır
    [2]’deki parametreleştirmenin prodüksiyonda bire bir ilk uygulaması, makalenin çıktığı aynı yıl [3]’te yapıldı ve bugüne kadar değişmedi. İlk kullanıldığı yapım “Charlotte's Web”di ve yalnızca Rising Sun Pictures’ın [3] kullanarak yaptığı örümcek karakterlerine uygulandı
    Pixar da birkaç yıl sonra ekledi; [4]’te ise bunu biraz fazla zorladı. Günümüzde çoğu offline renderer’da bu özellik var ve buna shutter curve deniyor
    [1] O. Navarro et al.: Motion Blur Rendering: State of the Art (https://citeseerx.ist.psu.edu/doc_view/pid/fc23fb525cafa8fe6...)
    [2] Stephenson, Ian: Improving Motion Blur: Shutter Efficiency and Temporal Sampling (https://staffprofiles.bournemouth.ac.uk/display/journal-arti...)
    [3] https://www.3delight.com/, özellikle https://nsi.readthedocs.io/en/latest/nodes.html adresine bakın
    [4] https://renderman.pixar.com/resources/RenderMan_20/cameramod...

  • Demonun sRGB uzayında hesaplanmış gibi görünüyor. Yani doğrusal olmayan parlaklık değerleri kullanıyor; bulanıklığın doğal görünmemesinin büyük kısmı sanırım buradan kaynaklanıyor
    Fiziksel bir olguyu simüle etmek için doğrusal parlaklık değerleriyle işlem yapıp yalnızca en sonda sRGB’ye dönüştürmek gerekir
    İnsan görsel algısının doğrusal olmayan etkileri bunu tamamen telafi ediyorsa durum farklı olabilir, ama öyleyse en azından bundan bahsedilmesi gerekir

    • İşaret ettiğin için teşekkürler. Başka grafik uygulamalarında renk uzayı dönüşümü yapmıştım, ama belli ki dersi tam öğrenememişim
      Yeniden kontrol edeceğim; doğruysa etkileşimli görselleri ve metni güncelleyeceğim. Ana “torusphere” shader’ı için hareket bulanıklığı gerçekçi değil ve elle ayarlanmış, bu yüzden muhtemelen sorun olmaz; ama baştaki birkaç etkileşimli görsel teoriyi doğrudan uyguladığı için bu eleştiri onları ilgilendiriyor. Yine de bunun metnin ana fikrini genel olarak geçersiz kıldığını sanmıyorum
    • Gammanın tamamen yanlış olduğunu fark ettim. Görsellerde yumuşak algılanan bir hareket bulanıklığı oluşmadığı için yazının amacına doğrudan zarar veriyor. Çok daha iyi olabilirdi
    • Yazarın doğrusal uzayı göz ardı etmek gibi bu kadar önemli bir noktayı kaçırmış olması şaşırtıcı. Ama Adobe bile 2024’te doğrusal işlemeyi ancak destekler hâle gelmişken çok da tuhaf değil
  • Torus demosu gerçekten harika. Yüksek kare hızının bulanıklık algısını nasıl değiştirdiği ilginç
    240Hz ekran kullanıyorum; Şekil 5’te yaklaşık 12rad/s’ye kadar ayrık daireleri görmüyorum. 40rad/s’de bile geleneksel shutter ile sine shutter seçenekleri arasındaki farkı hareket sırasında hissedemiyorum
    Sırf fare hareketinin akıcılığı ve düşük gecikme için bile 240Hz’i şiddetle tavsiye ederim. 60Hz fare imlecine dönmek gerçekten, gerçekten zor

    • 4K 24 inç ekran, “Retina kullanınca geri dönemezsin” tarafı ve 144Hz ekran kullandım; ama ana ortamım olan eski üç adet 24 inç 1920x1200 60Hz ekranı yükseltme isteği duymuyorum
      Bazı insanlar gerçekten umursamıyor. Giriş gecikmesi ya da terminal emülatörü kutsal savaşı gibi tartışmaları da pek anlamıyorum. Framebuffer konsolunda çalışmakla 50ms eklenmiş ssh üzerinden çalışmak arasındaki farkı hissedemiyorum
      30FPS ile 60FPS oyun arasındaki farkı anlayabiliyorum, ama yalnızca dikkat ederek baktığımda. İki değer arasında gidip gelmeyip sabit kaldığı sürece pek umursamıyorum
    • Benim için 144Hz imlecin akıcı hissettirdiğine katılıyorum. Yine de 60FPS imlece dönmekte hiç sorun yaşamıyorum
      Ancak daha yumuşak geçişlere sahip bir arayüzün daha kararlı bir his verdiğini ve yüksek yenileme hızının zamanla zihinsel durumu etkileyip etkilemeyeceğini merak ediyorum
  • Torus ve arkadaki küre hareket bulanıklığıyla oluşturulmuşsa kısmen şeffaf olmaları gerekmez mi? Bir noktada tekrar opaklaşıyormuş gibi görünüyor; bu da tuhaf hissettiriyor

    • Doğru. torusphere kavramı fiziksel olarak imkânsız. Tamamı bir döngü olduğu için nesnenin teorik bir varlığı bile yok; hepsi yapay olarak kalınlaştırılmış hareket bulanıklığından ibaret
      Başlığın motion blur all the way down olmasının nedeni de bu
    • Belli ki küre ile torus arasında, sonra tekrar torus ile küre arasında harmanlama yapılıyor. Öyle olmasa zaman geçtikçe sürekli soluklaşırdı
    • Işık ayrık mı, sürekli mi?
    • Sonsuz hızlı hareket eden ya da sıçrayan bir nesnenin şeffaflaşabileceğini sanmıyorum. Çünkü yolu üzerinden geçen tüm ışınları kaçınılmaz olarak engeller
      Ancak hareket eden nesnenin yaydığı ışık, duran nesneninkinden daha düşük olmalı. Bu yüzden mesafe arttıkça nesne giderek daha karanlık hâle gelmeli
  • Bu, film kamerasını simüle etmeye çalışmaktan çıkıp insan görsel sistemini simüle etmeye yönelik bir girişim. Faydalı bir yön
    Eski teknolojiyi taklit etmekten çıkıp gerçekliğe bir adım daha yaklaşmak demek. Shutter tarzı hareket bulanıklığı da sepya tonlu baskılar, 16FPS siyah-beyaz filmler ve mekanik shutter yüzünden oluşan eliptik tekerlekler gibi ortadan kalkabilir

    • TV ekranında gerçek Güneş’in çıktısını render edebilen teknoloji çıktığında haber ver
      Gerçekliğin yeniden üretimi hedef değil. Çünkü buna ulaşılamaz
  • ambient.garden az önce ön sayfaya çıktığı için sanırım bu yazı da gündeme geldi. Tekrar okuyunca aslında iki ayrı yazı olması gerektiğini düşündüm
    İlk kısmı hâlâ seviyorum. Hareket bulanıklığının ne olduğunu ve teorik olarak ne olması gerektiğini yerinde biçimde irdeliyor. İkinci kısım ise hareket bulanıklığı tabanlı belirli bir “torusphere” animasyonu için shader’ın nasıl çalıştığına dair biraz dağınık, aşırı sıkıştırılmış bir açıklama. O bölüm, en azından benim için, kodun şu anda tamamen anlaşılmaz hâle gelmemesini sağlaması açısından esas olarak faydalı. Geriye dönüp bakınca iki bölüm arasındaki geçiş donmuş bir göle atlamak gibi hissettiriyor. Üzgünüm

    • Okurken, shutter angle denen pozlama aralığının bir fonksiyonu olarak hareket bulanıklığını temiz biçimde açıklayıp sonra birden çok tuhaf bir özel durumun çılgın alanına atlıyormuş gibi hissettim
      Demek ki bunun nedeni az önce içtiğim bir kadeh şarap değilmiş; iyi oldu
      Dördüncü boyutlu bir çıkıntının projeksiyon fonksiyonu olarak hareket bulanıklığıyla birkaç kez oynamıştım; ama asıl bağlam olan video ve dokularda, önbellekleme destekli donanım örneklemeye kıyasla pratik olmayan bir yöntem hâline geliyor. Yine de bu yazı bana “sadece bir kez daha denesem mi” dedirtiyor
  • Gerçek zamanlı karşılaştırma demosu muazzam. O noktaya kadar takip ederken zihnen “anladım” diye hissediyordum; ama hareket bulanıklığını aç/kapat şeklinde doğrudan geçiş yapabilince fark gerçekten apaçık oldu

  • motion blur all the way down ifadesini görünce nedense sicim teorisini, atomları ve evrenin nasıl oluştuğunu düşünmeye başladım

    • İlginç bir metafor. Elektron kabukları bazen olasılık yoğunluğu bulutu olarak açıklanır. Gölgelendirme, zamanı durdurduğunda elektronu o noktada bulma olasılığını gösterir gibi
      Elbette daha derine indikçe işler giderek daha da tuhaflaşıyor