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.
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.
Ö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ı?