好吧,当我用gdi +绘制东西时,我曾经知道对象的坐标,但现在当我在directx中使用网格时9我不知道如何获得对象的坐标,所以我可以查找是否将鼠标悬停在某个对象上。任何想法如何找到坐标?directx 9 mouse over a object
0
A
回答
0
您需要将鼠标位置投射到世界中并将其转换为世界空间坐标,然后根据各种对象对其进行测试。你可能能找到一个库来为你做这件事,我知道OpenGL支持选择,大多数包装提供了增强的功能,但其原理是:
在窗口中找到鼠标坐标。使用这些坐标,投射射线(无论您是在系统中实际使用射线还是简单地进行类似的数学在这里都不是什么大问题)。您将使用当前视图矩阵(“相机”角度和位置)来计算光线的方向和原点。使用该射线,测试您的物体,边界框或几何体(无论您选择哪个)以找到该物体。使用交点坐标,找到位于该位置的对象。
如果场景相对静态,您也可以非常容易地使用深度缓冲区。只需将深度纹理设置为Z缓冲区,然后使用深度,鼠标位置和视图矩阵来查找交点。
也许可以这样做,即将每个对象映射到适当的屏幕坐标,但是您可能会遇到深度排序和重叠区域的问题。而且,将每个对象映射到每个窗口的窗口区域可能会造成不必要的缓慢。
相关问题
- 1. html zoom on mouse over
- 2. XNA/MonoGame Mouse Over Cards
- 3. Mouse Enter&Mouse Leave on a form
- 4. Promise.map over object
- 5. DIV over flash object
- 6. python iter over dict-like object
- 7. Mouse Over停止工作后点击
- 8. ie ie mousewheel while mouse is over div
- 9. directx 9设置camra
- 10. DirectX 9或DirectX 10的初学者?
- 11. C++ directx 9网格纹理
- 12. Directx 9一切都模糊
- 13. directX中的Obj loader 9
- 14. DirectX 9地形生成C++
- 15. JSF - <ui:repeat /> over a java.util.Set?
- 16. astroquery:vizier.query_region over a large area failing
- 17. jquery fadein img background on mouse over,but not content indide
- 18. 如何让Mouse Over事件从客户端连接按钮?
- 19. Mouse Over触发器在wpf按钮控件上不起作用
- 20. 使用DirectX 9显示网格
- 21. DirectX 9和DirectX 10着色器之间的兼容性
- 22. 在directx中绘制一个圆圈9
- 23. 如何自动卸载DirectX 9?
- 24. directx 9 C++有没有irc聊天室?
- 25. directx 9无法找到包含库
- 26. 你是如何学习directx 9的?
- 27. DirectX 9的固定功能纹理
- 28. DirectX 9个的网格重叠C++
- 29. DirectX 9“加载纹理”进度条
- 30. 为什么directx 9缺乏资源? C++