[英]Mouse Coords to Game Coords WebGL
我正在嘗試將鼠標的x,y坐標轉換為webgl畫布的3d世界坐標。 我已經使其部分工作,但是當世界在任何軸上旋轉時,都會遇到一些麻煩。
我正在使用unproject方法,該方法獲取射線的起點/終點,然后對法線為0、1、0且使用的點為0、0、0的平面進行線到面碰撞測試。
您可以通過查看源代碼在wingsofexodus.com上找到代碼。 使用的功能是RtoW(現實世界,用於鼠標到世界的轉換),lpi(線平面相交測試)和取消投影。
自從我不得不做任何矩陣/矢量數學並經過很長時間證明很難清除灰塵以來,已經很久了。
該網站的運行速度可能很慢,我的互聯網連接不是很好。 如果證明有麻煩,我將代碼復制到此處。
任何幫助或鏈接可能會有所幫助,不勝感激。
您有正確的主意,但我看到兩個錯誤和一個不必要的麻煩:
mm
。 或者,確保矩陣堆棧是在正確的地方,並有unproject
只使用mvMatrix
。 這樣可以避免錯誤。 RtoW
結果(在RtoW
)時參考了翻譯。 這是一個錯誤,因為翻譯已經包含在mm
; 您將其加倍或取消。 取消投影鼠標坐標后,您將擁有在進行射線碰撞測試之前無需進一步修改的世界坐標 。 invert(view)*invert(projection)
或(cheaper) invert(projection*view)
,但是您當前正在執行invert(projection*invert(view))
,這是錯誤的。 這些就是讓我大吃一驚的東西,但是我還沒有閱讀您所有的代碼。 當我將其與自己的相同版本進行比較時,取消投影看起來可以。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.