android – 如何从屏幕确定3D空间中的触摸内容?

android – 如何从屏幕确定3D空间中的触摸内容?,第1张

概述如何在我的OpenGL ES 1.1 android应用程序中使用gl.gluUnproject来确定用户触摸屏幕时选择的内容? 我的理解是触摸事件导致一条线,我必须找到它与之相交的第一个“东西”. 有没有关于如何做到这一点的教程? 如果您正在进行2D到3D拾取,则需要稍微调整矩阵和向量. OpenGL ES 1.1不存在GlUnproject,所以你必须自己做一些数学运算. 射线 – 物体交叉是 如何在我的OpenGL ES 1.1 android应用程序中使用gl.gluUnproject来确定用户触摸屏幕时选择的内容?

我的理解是触摸事件导致一条线,我必须找到它与之相交的第一个“东西”.

有没有关于如何做到这一点的教程?

解决方法 如果您正在进行2D到3D拾取,则需要稍微调整矩阵和向量. OpenGL ES 1.1不存在glunproject,所以你必须自己做一些数学运算.

射线 – 物体交叉是一种可行的方式.蒂姆斯姆斯的回答已经涵盖了其中的一部分,但还有更多.想法是从2D坐标创建射线到3D.为此需要视图矩阵和投影矩阵的逆.一旦你有射线,你可以使用你选择的射线相交测试,当然你需要选择最接近的对象,如Timmmm的点4.边界球和边界框很容易实现,互联网上有很多交叉测试教程.

This picking tutorial适用于DirectX,但您可能会理解.射线构造部分是最重要的.

编辑
AndroID实现了它自己的gluUnproject版本.它可用于创建射线,通过调用近距离和远距离平面(0和1)并从远距离平面结果中减去近平面结果来获得射线的方向. Ray起源是视图位置.更多here.

总结

以上是内存溢出为你收集整理的android – 如何从屏幕确定3D空间中的触摸内容?全部内容,希望文章能够帮你解决android – 如何从屏幕确定3D空间中的触摸内容?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存