Tam Monte-Carlo Hacimsel Saçılma


9

Yol izleyicime tam monte-carlo hacimsel saçılımı eklemek istiyorum, ancak nasıl yapılacağını araştırmakta zorlanıyorum. Ne yapmak istediğimi açıklayayım: Monte Carlo Hacimsel Saçılma Bir ışın bir malzemeye girer ve BTDF'yi uygularız, sonra bir miktar mesafeden sonra, hacimsel bir saçılma olayı meydana gelir, bundan sonra (izotropik durumda), ışın herhangi bir yönde saçar küre. Bu, ışın malzemeden başka bir BTDF ile çıkıncaya kadar tekrarlanır.

Sorularım aşağıdaki gibidir:

  1. Dağılım olayları arasındaki mesafeyi nasıl seçerim? Sezgi bana belli bir mesafeden sonra saçılma olasılığını veren bir tür saçılma pdf'si olması gerektiğini söylüyor?
    • Bu doğru olur mu?
    • Pdf izotropik malzemeler için doğrusal bir işlev olabilir mi?
    • Bu işlevin Google'da kullanabileceğim bir adı veya bir adı var mı?
  2. Beer-Lambert hala saçılma olayları arasında geçerli olur mu?
    • Ben düşünmezdim. Beer-Lambert, gerçek saçılma hesaplamalarının basitleştirilmesinden dolayı.
    • Sonra tekrar, belki de Beer-Lambert mikro ölçekte bir hesaplamadır ve yol izleme bir makro ölçekte.
  3. BSDF'ye hacimsel eşdeğer nedir? Görünüşe göre yeni yönü belirlemek için Henyey-Greenstein gibi bir faz fonksiyonu kullanabilirim, ancak zayıflama için ne kullanmalıyım?
  4. Son olarak, Monte-Carlo hacimsel saçılma için daha iyi Google ifadeleri nelerdir?
    • Hacimsel saçılma veya SSS araması, tam Monte-Carlo simülasyonunun (Dipol, saçılma, saçılma, difüzyon, vb.) Basitliği hakkında makaleler, yöntemler ve blog yazıları verir.

Yanıtlar:


7

Her şeyden önce, katılan medyada Monte Carlo yol izlemesi için iyi bir referans Steve Marschner'den bu ders notlarıdır.

Hacim saçılımı hakkında düşünmeyi sevdiğim yol, bir ortam boyunca seyahat eden bir fotonun, birim uzunluktaki etkileşim (dağılma veya emilme) başına belirli bir olasılığa sahip olmasıdır. Etkileşim yapmadığı sürece, engelsiz ve enerji kaybetmeden düz bir çizgide ilerler. Mesafe ne kadar büyük olursa, o mesafe içinde bir yerde etkileşim olasılığı da o kadar büyük olur. Birim uzunluk başına etkileşim olasılığı katsayıdırσdenklemlerde gördüğünüz Genellikle saçılma ve soğurma olasılıkları için ayrı katsayılarımız vardır, yaniσ=σs+σa.

Birim uzunluk başına bu olasılık tam olarak Beer-Lambert yasasının kökenidir. Bir ışın segmentini sonsuz aralıklarla dilimleyin, her aralığı etkileşime girmek için bağımsız bir olası yer olarak muamele edin, sonra ışın boyunca entegre edin; üstel bir dağılım elde edersiniz (rate parametresi ileσ) mesafenin bir fonksiyonu olarak etkileşim olasılığı için.

Bu nedenle, sorularınızı doğrudan yanıtlamak için:

  1. Sen edebilir istediğiniz gibi teknik olarak sürece doğru bir foton ortamı ile etkileşim olmadan iki komşu olaylar arasına yapabileceği olasılığı için yolunu ağırlık olarak, olaylar arasındaki mesafeyi seçin. Başka bir deyişle, ortam içindeki her bir yol segmenti,e-σx, nerede xsegmentin uzunluğudur. (Bu homojen bir ortam olduğu varsayılır, ancak homojen değilse ne yapılacağı için yukarıda bağlantılı Marschner notlarındaki bölüm 4.2'ye bakın.)

    Bu göz önüne alındığında, mesafe için genellikle iyi bir seçim, üstel dağılımdan önemini örneklemektir. Başka bir deyişle,x=-(lnξ)/σ ve sonra e-σx yol ağırlığından faktör.

    Daha sonra, emilimi hesaba katmak için, bir kesiri öldürmek için Rus ruletini kullanabilirsiniz. σbir/σHer etkinlikte yolların Bu özellikle, yolun öldürülmezse keyfi olarak uzun süre zıplayabileceği çok büyük veya sonsuz medya (atmosferik saçılmayı düşünün) için gereklidir. Sadece küçük ve çok yoğun olmayan ortamlarla uğraşıyorsanız, sadece ağırlığını hesaba katmak daha iyi olabilir1-σbir/σ Rus ruleti kullanmak yerine etkinlik başına.

  2. Hayır, az önce açıklanan önem örnekleme prosedürünü izlerseniz Beer-Lambert zaten örneklemede örtük olarak dahil edilmiştir, bu yüzden bunu yol ağırlıklarına uygulamak istemezsiniz.

  3. BSDF'ye hacimsel eşdeğer, saçılma ve soğurma katsayılarının birleşimidir σs,σbirve faz fonksiyonu. Geleneksel olarak, katsayılar iletim, saçılma ve emilimin genel dengesini kontrol ederken, faz fonksiyonu her zaman normalleştirilir.

    BSDF'ler için de böyle bir şey yapabilirsiniz; genel albedoyu etkisiz hale getirebilir ve yön bağımlılığının her zaman normalleştirilmesini sağlayabilirsiniz. Bu çoğunlukla konvansiyon AFAICT meselesidir.

  4. "Katılımcı medyayı" (yani, hafif taşımacılığa "katılan" hacimsel "orta" —pralral “medya”) ve “hacimsel yol izlemeyi” deneyin.


Tek renkli olmayan saçılma / soğurma katsayıları için mesafeleri nasıl örneklersiniz? Rastgele bir kanal seçin, ardından 1/3'e bölün (RGB veya XYZ durumunda)?
RichieSams

1
@RichieSams Bu durum için gördüğüm öneri her ışına tek bir dalga boyu veya renk kanalı atamaktır. Temel olarak her kanal için saçılımı ayrı ayrı hesaplarsınız. Örneğin, atmosferik saçılımda, mavi ışık kırmızıdan çok daha güçlü saçılır ve bu nedenle çok daha fazla saçılma olayına ihtiyaç duyar ve mavi fotonlar kırmızı olanlardan çok daha kıvrımlı yollar izler. Bu yüzden onları ayrı ayrı simüle etmek mantıklıdır - kırılma nedeniyle dağılmaya benzer. Ben bunu hiç denemedim.
Nathan Reed

Ahh, bu mantıklı. Yine de performans düşecektir ... Herkesin Monte-Carlo Katılımcı medyasını tahmin etmek istediğine şaşmamalı. Tüm bilgiler için teşekkürler!
RichieSams
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.