Android 在2D游戏中使用光线投射

Android 在2D游戏中使用光线投射,android,opengl-es,2d,touch-event,raycasting,Android,Opengl Es,2d,Touch Event,Raycasting,在我的一篇文章中,我询问了OpenGL中的onTouchEvents。其想法是创建一个简单的应用程序,在按下屏幕的地方画一个正方形。过了一段时间,我推出了一款应用程序,它以应有的方式完成了所有事情,但正方形没有重新绘制,它只是从屏幕上消失了 有人告诉我,要解决这个问题,我需要从2D角度将光线发送到OpenGL的3D环境中,但就我的一生而言,我不明白为什么,因为当我阅读光线投射时,它似乎主要用于照明效果。到底什么是光线投射?为什么我需要z轴呢?当我只需要改变方格位置的x轴和y轴时,无论触摸的深度如

在我的一篇文章中,我询问了OpenGL中的onTouchEvents。其想法是创建一个简单的应用程序,在按下屏幕的地方画一个正方形。过了一段时间,我推出了一款应用程序,它以应有的方式完成了所有事情,但正方形没有重新绘制,它只是从屏幕上消失了


有人告诉我,要解决这个问题,我需要从2D角度将光线发送到OpenGL的3D环境中,但就我的一生而言,我不明白为什么,因为当我阅读光线投射时,它似乎主要用于照明效果。到底什么是光线投射?为什么我需要z轴呢?当我只需要改变方格位置的x轴和y轴时,无论触摸的深度如何,都可以从中找到坐标?

你需要从视图向屏幕发送一条光线,以知道在世界的何处绘制方格。虽然这涉及到光线投射,但它不是作为渲染技术的光线投射。除非您正在使用正交,甚至在某种程度上,否则需要完成从屏幕到世界或从世界到屏幕的转换数学,以便为基本体找到正确的点。

您需要从视图向屏幕发送一条光线,以知道在世界的何处绘制正方形。虽然这涉及到光线投射,但它不是作为渲染技术的光线投射。除非您正在使用正交投影,甚至在某种程度上,否则需要完成从屏幕到世界或从世界到屏幕的转换数学,以便为基本体找到正确的点。

您的最后一个问题显示您使用的是透视投影而不是正交投影-如果您正在进行二维工作,正交投影矩阵的使用要简单得多,那么为什么要使用透视呢?只是改为正交矩阵,现在对glOthof()命令上的六个浮点数有点困惑。它们是屏幕的参数和要求的景深吗?你试过了吗?它们定义了剪裁平面,可以匹配视图的宽度/高度,但不一定要匹配。此外,景深是一个完全不同的主题。因此,在这种情况下,剪切平面应该沿着屏幕边缘还是围绕正方形?出于您的目的,可能是屏幕边缘。您的最后一个问题显示您使用的是透视投影而不是正交投影-如果您正在进行二维工作,正交投影矩阵的使用要简单得多,那么为什么要使用透视呢?只是改为正交矩阵,现在对glOthof()命令上的六个浮点数有点困惑。它们是屏幕的参数和要求的景深吗?你试过了吗?它们定义了剪裁平面,可以匹配视图的宽度/高度,但不一定要匹配。此外,景深是一个完全不同的主题。因此,在这种情况下,剪裁平面应该沿着屏幕边缘还是围绕正方形?出于您的目的,可能是屏幕边缘。opengl有什么命令来实现光线投射用于此用途?当然没有,但我决不是opengl专家,只是有人谁运行的代码做什么,你正试图做在过去。它涉及到一些矩阵乘法来转换图幅,仅此而已。opengl有什么命令来实现这种使用的光线投射呢?当然没有,但我绝不是opengl专家,只是一个运行代码来完成您在过去试图做的事情的人。它只涉及一些矩阵乘法来转换图幅。