0
進出口工作在光線跟蹤中C.我想弄清楚的射線相交平面的數學。我有光線追蹤在C,雷平面交叉口
d =((PO-LO)(點)N)/(L(點)N)
現在,如果我是正確的......
n - the planes normal ray
Po = single point on the plane
L = the vector that represents the ray I am shooting
Lo = a point on the line
我很困惑,到如何工作。如果我逐個像素地進行,線(L)上的點是否需要着陸在飛機上?如果那是真的,我不能用我正在投射什麼射線(L)的方向矢量來表示那個點嗎?
我覺得我完全過去複雜這一點,但我完全失去了對如何在我的代碼得到這個工作。
編輯:
d = a scalar in the real world domain.
所以d需求等於零,以使平面和光線(點我看)相交?我可以使用方向矢量座標表示就行該點>
d似乎是一個標量。它代表什麼? – 2013-02-20 04:56:27
如果你想可能挽救自己有些頭疼,當涉及到十字路口,你可以存儲在本地座標中所有的原語(即與單元大小的由來),並保持與每一個相關聯的仿射變換(旋轉,縮放和翻譯)。當執行交叉點的邏輯,可以執行逆* *變換的射線並解決簡化相交問題,即P0 = 0,L0 =轉化的射線的來源,以及N是隻是你的座標系中的向上矢量。然後,您可以將生成的交點重新轉換爲世界座標。 – 2013-02-20 05:12:35
線平面交叉口這個答案應該幫助*(它幾乎同樣的事情射線平面交叉口)*, 它引用的C代碼也http://stackoverflow.com/a/18543221/432509(和準確的參考功能https://developer.blender.org/diffusion/B/browse/master/source/blender/blenlib/intern/math_geom.c;62225057394b61c66cb7cb2ce1e9b8c62170c0d8$1262) – ideasman42 2015-10-23 05:17:09