Konilerle Işın İzleme: kapsama alanı, üst üste binme ve bitişik üçgenler


10

John Amanatides, Koniler ile klasik Ray Ray Tracing adlı makalesinde klasik ray tracing üzerindeki bir varyasyonu anlatıyor. Bir ışın kavramını bir diyafram açısıyla genişleterek, bir koni haline getirerek, takma efektler (çok az Monte Carlo örneğinden kaynaklananlar dahil) azaltılabilir.

Koni üçgen kesişimi sırasında skaler kapsama değeri hesaplanır. Bu değer, koninin üçgenin kapsadığı kısmını temsil eder. O küçükse , bu üçgen tam koni kapsamaz anlamına gelir. İlave testler gereklidir. Bununla birlikte, daha gelişmiş teknikler kullanılmadan, koninin ne kadarının kaplandığını biliyoruz, ancak hangi kısımları değil.1

Amanatides şöyle diyor:

Şu anda çeşitli nesnelerden gelen katkıların karıştırılmasında sadece kesirli kapsama değeri kullanıldığından, üst üste binen yüzeyler doğru bir şekilde hesaplanacak, ancak bitişik yüzeyler olmayacaktır.

Bu benim için bir anlam ifade etmiyor. Benim bakış açımdan bunun tam tersi. Bir örnek verelim: Her biri konimizin tam olarak% 50'sini kapsayan yeşil ve mavi olmak üzere iki bitişik üçgenimiz var . İzleyiciden aynı mesafede.

Yeşil ve mavi üçgen

Önce yeşil üçgen test edilir. Kapsama değeri 0,5'dir, bu nedenle mavi üçgen daha sonra test edilir. Mavinin 0,5 kapsama değeri ile konimiz tamamen kaplıdır, bu yüzden bitti ve 50:50 yeşil-mavi bir karışımla sonuçlandı. Harika!

Şimdi mavi üçgeni öldürdüğümüzü ve yeşil olanın arkasına kırmızı bir tane eklediğimizi hayal edin - örtüşüyor . Greeny bize tekrar 0.5'lik bir kapsama değeri veriyor. Artık test etmek için mavi olana sahip olmadığımızdan, koniden daha aşağı bakıp yakında kırmızı olanı buluyoruz. Bu da yeşilin arkasında olduğu için olmaması gereken 0'dan büyük bir kapsama değeri döndürür .

Bu nedenle, bitişik üçgenlerin doğru olması için kapsama maskeleri gibi biraz daha büyüye ihtiyaç duyarken, bitişik üçgenlerin iyi çalıştığı sonucuna varıyorum. Amanatides'in söylediklerinin tam tersi budur. Bir şeyi yanlış mı anladım yoksa bu kağıtta bir kayma mı?

Yanıtlar:


3

Amantides'in çalışmasına dayanan bir ışın izleyici uyguladım, ancak yıllar önce olduğu gibi, kâğıdın hafızam biraz paslı.

Bununla birlikte, bu özel durumu göz ardı etmek, genel olarak, örneğin Alfa birleştirme gibi kesirli kapsama alanı ile ilgili olduğunda (bkz. "A'dan B'ye" ) benim anlayışım, olağan varsayımın, birleştirilen öğelerin ilişkisiz olduğudur.

Bu nedenle,% X kapsama alanına sahip A,% Y kapsama alanına ve B arka planda C'ye sahipse, o zaman birinin
% X * A + (% 100-X) * Y% * B + (100-X göreceği varsayılır. %) (100-Y,%) * Cı

bu mantıklı mı? Açıkçası bu, A ve B'nin güçlü bir şekilde ilişkili olduğu durumda "sızıntılar" verecektir.

Ben düşünüyorum ben bu sorunları önlemek için ışınları üzerinde küçük bit maskesi koymak olabilir, ama bu çok uzun zaman önceydi.


Bu açıklama ile tamamen mantıklı, teşekkür ederim! Hatırlamanız durumunda koni izleme deneyiminiz normal ışın izlemeyle karşılaştırıldığında nasıldı? Tabii ki bu bir tahmin, ama kabul edilebilir kalitede önemli bir hızlanma sağlıyor mu?
David Kuri

Aman tanrım, uzun zaman önceydi. Aslında, sadece koni izini uyguladım. Yarıçap kısmını kapatmayı denesem de hatırlayamıyorum ama eğer zaman alırsam, koni izleme rotasından inmenin artılarını ve eksilerini hatırlamaya çalışacağım.
Simon F
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.