gpt4 book ai didi

android - 如何从屏幕确定在 3D 空间中触摸了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:54 25 4
gpt4 key购买 nike

如何在我的 OpenGL ES 1.1 android 应用程序中使用 gl.gluUnproject 来确定用户触摸屏幕时选择的内容?

我的理解是触摸事件产生一条线,我必须找到它相交的第一个“东西”。

是否有关于如何执行此操作的任何教程?

最佳答案

如果您正在进行 2D 到 3D 拾取,则需要稍微摆弄一下矩阵和向量。 OpenGL ES 1.1 不存在 GlUnproject,因此您必须自己做一些数学运算。

Ray-object intersection 是一种可行的方法。 Timmmms 的回答已经涵盖了其中的一部分,但还有更多。想法是从 2D 坐标创建 3D 射线。为此需要 View 矩阵和投影矩阵的逆矩阵。一旦你有了光线,你就可以使用你选择的光线相交测试,当然你需要选择最近的物体,比如 Timmmm 的点 4。边界球和边界框很容易实现,互联网上有很多关于它们的交叉测试教程。

This picking tutorial适用于 DirectX,但您可能明白了。光线构建部分是最重要的。

编辑Android 实现了它自己的 gluUnproject 版本。它可用于创建射线,通过为近平面和远平面(0 和 1)调用它并从远平面结果中减去近平面结果以获得射线的方向。射线原点是 View 位置。更多 here .

关于android - 如何从屏幕确定在 3D 空间中触摸了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487710/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com