Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 初学者OpenGL ES glsurfaceview/Render_Android_Opengl Es - Fatal编程技术网

Android 初学者OpenGL ES glsurfaceview/Render

Android 初学者OpenGL ES glsurfaceview/Render,android,opengl-es,Android,Opengl Es,我是OpenGL新手,我正在努力学习它。我创建了一个正方形,我告诉它旋转。为了做到这一点,我告诉它onSurfaceCreated,它工作了,它显示了旋转的图片。但是,我了解到在创建曲面时会调用onSurfaceCreated。所以问题是,每次我想更新一个对象来进行任何转换时,它是否总是必须在SurfaceCreated上创建?如果逻辑正确,是否意味着每次在SurfaceCreated上渲染新帧时都会调用onSurfaceCreated,因为根据onSurfaceCreated和onDraw的名

我是OpenGL新手,我正在努力学习它。我创建了一个正方形,我告诉它旋转。为了做到这一点,我告诉它onSurfaceCreated,它工作了,它显示了旋转的图片。但是,我了解到在创建曲面时会调用onSurfaceCreated。所以问题是,每次我想更新一个对象来进行任何转换时,它是否总是必须在SurfaceCreated上创建?如果逻辑正确,是否意味着每次在SurfaceCreated上渲染新帧时都会调用onSurfaceCreated,因为根据onSurfaceCreated和onDraw的名称,我想onDraw会用更新的帧渲染重新绘制场景吗

老实说,我还没有在Android上完成这项工作,但我有一点OpenGL ES的经验。但我认为你的假设是正确的
onSurfaceCreated
将是一个初始化接口,不应在每一帧调用该接口。相反,您将在
onDraw
中更新和/或重画场景


可能包括一些到目前为止您所获得的示例代码?然后,我们可以推荐一些更好的方法来构建它。

我一直在学习本教程:除了一些添加的东西,如alpha混合,这几乎是一样的。我在摆弄它,看看它能做什么。好吧。。。因此,如果您的代码大致相同,则看起来“onSurfaceChanged”只是用于设置视口(即受绘图影响的曲面区域)和设置透视矩阵。“onDrawFrame”被正确地用于通过清除曲面和重新绘制来刷新场景。那么,您的项目的实际目标是什么?你想让它做什么?没什么大不了的,我正在努力掌握这里的基本知识。我只想让它在一定时间内把正方形从一个点移动到另一个点。好的。。。如果你看一下这个函数,它每次进入这个函数时都会不断地更新一个矩阵(“ModelView”矩阵)。在本例中,将矩阵设置为将正方形-5.0单位从摄影机移开。如果您将-5.0更改为一个变量并随时间进行更新,您将看到正方形的动画。若要向左/向右移动,请为第一个0.0创建一个变量,并向上/向下移动第二个0.0。使用这三个变量,您可以开始在任何方向设置正方形的动画。这是一个很好的起点祝你好运