Işın izlemede hacimsel etkiler nasıl ele alınır?


10

Duman, sis veya bulutlar gibi hacimsel etkiler bir ışın izleyici tarafından nasıl oluşturulur? Katı nesnelerin aksine, bunların bir kavşağı hesaplamak için iyi tanımlanmış bir yüzeyi yoktur.

Yanıtlar:


11

genel bakış

Doğada hacimlerin (katılımcı ortam olarak da adlandırılır) ortaya çıkması, hava veya su gibi çevreleyen sıvıda asılı olan toz, su damlacıkları veya plankton gibi küçük parçacıklardan kaynaklanır. Bu parçacıklar katı nesnelerdir ve ışık bu nesnelerin normal bir yüzeyde olduğu gibi kırılır veya yansır. Teorik olarak, katılımcı medya bu nedenle sadece yüzey kesişme noktalarına sahip geleneksel bir ışın izleyici tarafından idare edilebilir.

İstatistiksel Model

Tabii ki, bu parçacıkların sayısı tek tek onları gerçekten izlemeyi olanaksız kılar. Bunun yerine, istatistiksel bir modelle yaklaşılırlar: Parçacıklar çok küçük olduğundan ve parçacıklar arasındaki mesafe parçacık boyutundan çok daha büyük olduğundan, ışığın parçacıklar ile bireysel etkileşimleri istatistiksel olarak bağımsız olarak modellenebilir. Bu nedenle, ayrı ayrı parçacıkların, uzaydaki belirli bir bölgedeki "ortalama" ışık-parçacık etkileşimini tarif eden sürekli miktarlarla değiştirilmesi makul bir yaklaşımdır.

Fiziksel temelli hacimsel ışık nakli için, akla gelmeyen birçok parçacığı iki özelliğe sahip sürekli bir katılımcı ortamla değiştiririz: Emilim katsayısı ve saçılma katsayısı. Bu katsayılar, ışığın izlenmesi için çok uygundur, çünkü bir ışının ortamla etkileşime girme olasılığını - yani parçacıklardan birine çarpma olasılığını - mesafenin bir fonksiyonu olarak hesaplamamıza izin verir.

Emilim katsayısı belirtilir σbir. Diyelim ki bir ışık ışını seyahat etmek istiyortkatılan ortamın içindeki metre; emilmemiş - yani parçacıklardan birine çarpmama ve onun tarafından emilmeme - olasılığıe-tσbir`. T arttıkça, bu olasılığın sıfıra gittiğini görebiliriz, yani ortam boyunca ne kadar uzun süre seyahat edersek, bir şeye çarpma ve emilme olasılığı artar. Saçılma katsayısı için çok benzer şeyler geçerlidirσs: Işının bir partiküle çarpmama ve dağılma olasılığı e-tσs; yani, bir ortam boyunca ne kadar uzun süre seyahat edersek, bir parçacığa çarpma ve farklı bir yöne saçılma ihtimalimiz o kadar yüksektir.

Genellikle, bu iki miktar tek bir yok olma katsayısına katlanır, σt=σbir+σs. Seyahat olasılığıt daha sonra (ne emilmez ne de dağılmaz) bir ortam içinden geçirilir etσt. Öte yandan, bir ortamla etkileşime girme olasılığıt metre 1etσt.

Katılımcı Medya ile Oluşturma

Bunun fiziksel tabanlı oluşturucularda kullanım şekli şöyledir: Bir ışın bir ortama girdiğinde, muhtemelen ortam içinde durdururuz ve bir parçacıkla etkileşime girmesini sağlarız. Etkileşim olasılığını örneklemenin önemi1-e-tσt mesafe verir t; bu bize ışının gittiğini söylert bir parçacığa çarpmadan önce ortam içinde metre ve şimdi iki şeyden biri olur: Ya ışın parçacık tarafından emilir (olasılıkla σbirσt) ya da dağılmış (olasılıkla) σsσt).

Işının nasıl dağıldığı faz fonksiyonu ile tanımlanır ve parçacıkların doğasına bağlıdır; Rayleigh faz fonksiyonu, ışığın dalga boyundan daha küçük olan küresel parçacıklardan saçılmayı tarif eder (örn. atmosferimiz); Mie faz fonksiyonu, dalga boyundan benzer büyüklükteki küresel partiküllerden saçılmayı tarif eder (örn. su damlacıkları); grafiklerde genellikle Henyey-Greenstein faz fonksiyonu kullanılır, başlangıçta yıldızlararası tozdan saçılmaya uygulanır.

Şimdi, grafiklerde, normalde sonsuz bir ortamın resimlerini oluşturmuyoruz, ancak ortamı sert yüzeylerden oluşan bir sahnenin içinde oluşturuyoruz. Bu durumda, ilk önce ışını bir sonraki yüzeye çarpana kadar tamamen izleriz ve katılan ortamı tamamen görmezden geliriz; bu bize bir sonraki yüzeye olan mesafeyi verir,tMbirx. Daha sonra bir etkileşim mesafesi örnekliyoruztdaha önce tarif edildiği gibi ortam içinde. Eğert<tMbirx, ışın bir sonraki yüzeye giderken bir parçacığa çarptı ve onu ya emeriz ya da saçarız. EğerttMbirx, ışın demonte edilmemiş ve her zamanki gibi yüzeyle etkileşime girmiştir.

Görünüm

Bu gönderi, katılımcı medyayla oluşturmaya yalnızca küçük bir girişti; diğer şeylerin yanı sıra, mekansal olarak değişen katsayıları (bulutlar, duman vb. için ihtiyacınız olan) tamamen göz ardı ettim. Eğer ilgileniyorsanız, Steve Marschner'ın notları iyi bir kaynaktır. Genel olarak, katılımcı medyanın verimli bir şekilde oluşturulması çok zordur ve burada tarif ettiğimden çok daha karmaşık bir hale gelebilirsiniz; orada Volumetrik Foton Haritalama , Foton Kirişler , Difüzyon yaklaşımlar , Ortak Önemi Örnekleme ve daha fazlası. Taneli medyaİstatistiksel model bozulduğunda ne yapılacağını açıklayan ilginç bir çalışma da vardır , yani parçacık etkileşimleri artık istatistiksel olarak bağımsız değildir.


4

Bunu yapmanın bir yolu - tam olarak "git" çözümü değil, ama iyi çalışabilir, ışının hacimde kat ettiği mesafeyi bulmak ve ne kadar "malzeme" olduğunu hesaplamak için bazı yoğunluk işlevinin entegrasyonunu kullanmaktır çarptı.

Örnek bir uygulama içeren bir bağlantı: http://blog.demofox.org/2014/06/22/analytic-fog-density/


3

Hacim efekti bağlıdır.

Saçılma işlemine ait olmayan düzgün hacim efektleri, sadece ışın giriş ve ışın çıkış mesafeleri hesaplanarak simüle edilebilir.

Aksi takdirde, ışın yürüyüşü olarak da bilinen ışın yolunun entegrasyonunu yapmanız gerekir. İkincil ışınları vurmaktan kaçınmak için, ışın yürüyüşü genellikle derinlik haritası, derin haritalar, tuğla haritaları veya ışık gölgelemesi için voksel bulutları gibi bir tür önbellekle birleştirilir. Bu şekilde, tüm sahneyi yürüyüşe gerek yoktur. Benzer önbellekleme genellikle prosedürel doku hacmine yapılır.

Dokuyu, uygun yumuşak kenarlı dokuya sahip kutular, küreler veya düzlemler gibi yüzey ilkellerine dönüştürmek de mümkündür. Daha sonra hacimsel efekti çözmek için normal oluşturma tekniklerini kullanabilirsiniz. Bununla ilgili sorun, genellikle çok sayıda ilkeye ihtiyaç duymanızdır. Ek olarak, ilkelin şekli çok düzgün örnekleme olarak ortaya çıkabilir.


Sadece bir ray yolunun analitik olarak da gerçek entegrasyonunu yapabileceğinizi, istenmiyorsa Ray yürüyüşünü kullanmanız gerekmediğini unutmayın.
Alan Wolfe

@AlanWolfe, tek tip durumda yaptığınız şeydir, ancak ortam geometriye katılırsa, daha şık bir şey yapmanız gerekir. Neyse ben bu tüm yöntemler olduğunu iddia etmedi.
joojaa

Elbette, sadece cevabınızı ekliyoruz. Düzgün bir durumda tam olarak ne demek istediğinizden emin değilsiniz, ancak sis durumunda, tekdüze yoğunluk olmak zorunda değildir, sadece entegre edebileceğiniz bir yoğunluk fonksiyonu olmak zorunda değildir. Tekdüze vakadan kastettiğin bu mu?
Alan Wolfe
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.