好吧,當我用gdi +繪製東西時,我曾經知道對象的座標,但現在當我在directx中使用網格時9我不知道如何獲得對象的座標,所以我可以查找是否將鼠標懸停在某個對象上。任何想法如何找到座標?directx 9 mouse over a object
0
A
回答
0
您需要將鼠標位置投射到世界中並將其轉換爲世界空間座標,然後根據各種對象對其進行測試。你可能能找到一個庫來爲你做這件事,我知道OpenGL支持選擇,大多數包裝提供了增強的功能,但其原理是:
在窗口中找到鼠標座標。使用這些座標,投射射線(無論您是在系統中實際使用射線還是簡單地進行類似的數學在這裏都不是什麼大問題)。您將使用當前視圖矩陣(「相機」角度和位置)來計算光線的方向和原點。使用該射線,測試您的物體,邊界框或幾何體(無論您選擇哪個)以找到該物體。使用交點座標,找到位於該位置的對象。
如果場景相對靜態,您也可以非常容易地使用深度緩衝區。只需將深度紋理設置爲Z緩衝區,然後使用深度,鼠標位置和視圖矩陣來查找交點。
也許可以這樣做,即將每個對象映射到適當的屏幕座標,但是您可能會遇到深度排序和重疊區域的問題。而且,將每個對象映射到每個窗口的窗口區域可能會造成不必要的緩慢。
相關問題
- 1. jquery mouse over
- 2. Javascript mouse over
- 3. XNA/MonoGame Mouse Over Cards
- 4. html zoom on mouse over
- 5. JQuery Table Mouse Over Images
- 6. Mouse Enter&Mouse Leave on a form
- 7. Animate Over Shooting Mouse單擊JQuery?
- 8. AS3 Mouse Over Change圖片
- 9. Blender Mouse Over not correct HitObject
- 10. Promise.map over object
- 11. DIV over flash object
- 12. python iter over dict-like object
- 13. Mouse Over上的故事板執行
- 14. Mouse Over停止工作後點擊
- 15. ie ie mousewheel while mouse is over div
- 16. Canvas over a Canvas
- 17. directx 9設置camra
- 18. DirectX 9或10 Overlay
- 19. Akka ActorSelection over a cluser
- 20. DirectX 9或DirectX 10的初學者?
- 21. C++ directx 9網格紋理
- 22. 如何在DirectX 9中創建Cubemap 9
- 23. DirectX 9的頂點球
- 24. DirectX 9 HLSL發光效果
- 25. Directx 9地形碰撞
- 26. Directx 9一切都模糊
- 27. DirectX 9地形生成C++
- 28. directx 9 with visual studio 2012 express
- 29. directX中的Obj loader 9
- 30. 更改DirectX「Object Table」的顯示格式