Kd ağacı kesişme mantığı nedir?


12

KD ağacının nasıl uygulanacağını anlamaya çalışıyorum.

Ericson tarafından "Gerçek zamanlı çarpışma tespiti" sayfa 322

Google kitap önizlemesinin bağlantıyı tıkladığınızda görmenize izin vermemesi durumunda metin bölümü aşağıda yer almaktadır

metin bölümü

İlgili bölüm:

Bir kd ağacı ile bir ışını veya yönlendirilmiş çizgi parçasını kesmenin arkasındaki temel fikir basittir. Çizgi, düğümün yarma düzlemine karşı kesişir ve kesişimin t değeri hesaplanır. T çizginin aralığı içindeyse, 0 <= t <= tmax, çizgi düzlemin üstündedir ve ağacın her iki alt öğesi yinelemeli olarak alçalır. Değilse, yalnızca segment orijinini içeren taraf tekrar tekrar ziyaret edilir.

İşte sahip olduğum şey: ( yazı göremiyorsanız resmi yeni sekmede aç )

görüntü

Mantıksal ağaç

div'ler

Burada turuncu ışın 3d sahneden geçiyor. X'ler bir düzlemle kesişmeyi temsil eder. SOL'dan, ışın vurur:

  • Sahnenin kapalı küpünün ön yüzü,
  • (1) yarma düzlemi
  • (2.2) yarma düzlemi
  • Sahnenin kapalı küpünün sağ tarafı

Ama yukarıdaki Ericson'un temel açıklamasını saf bir şekilde takip eden şey şu:

  • Yarma düzlemine (1) karşı test edin. Işın yarma düzlemine (1) vurur, bu nedenle yarma düzleminin (1) sol ve sağ çocukları bir sonraki teste dahil edilir.
  • Yarma düzlemine karşı test (2.1). Ray aslında bu uçağa çarpıyor, (sağdan iniş yolu), böylece her iki çocuk da bir sonraki test seviyesine dahil ediliyor . (Bu karşı sezgiseldir - sonraki testlere yalnızca alt düğüm dahil edilmemelidir)

Birisi turuncu ışın sahneden doğru bir şekilde geçtiğinde ne olacağını tarif edebilir mi?

Yanıtlar:


14

Gerçekten çok basit; bölme düzlemine (2.1) karşı test aşağıdakilerden dolayı başarısız olmalıdır:

Işın bölme düzlemine (1) çarptığında, "ışını bölersiniz" veya; tgeçerli olduğu-aralığını ayarlarsınız ve sonuçta ortaya çıkan parçalarla ağacı aşağı doğru devam ettirirsiniz.

Bu nedenle, düzleme (2.1) karşı kontrol ederken, düzlemin (1) solundaki ışının sadece bir kısmının, düzlemi (2.1) ile kesişip kesişmediğini kontrol etmelisiniz. Bahsettiğiniz "uzaktan sağa" kavşak, t> tışını düzlemle böldüğünüz değere sahiptir (1).

Umarım bu yeterince açıktır.

Özet: Sonraki ışın / düzlem kesişimleri, ışının yalnızca söz konusu düzlemle ayrılmasından sonra kalan kısmı ile yapılmalıdır.


1
Grr !! (harika cevap için kısa)
bobobobo

Güzel cevap Torious! GDSE'ye hoş geldiniz.
MichaelHouse
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.