Android 初学者OpenGL ES glsurfaceview/Render
我是OpenGL新手,我正在努力学习它。我创建了一个正方形,我告诉它旋转。为了做到这一点,我告诉它onSurfaceCreated,它工作了,它显示了旋转的图片。但是,我了解到在创建曲面时会调用onSurfaceCreated。所以问题是,每次我想更新一个对象来进行任何转换时,它是否总是必须在SurfaceCreated上创建?如果逻辑正确,是否意味着每次在SurfaceCreated上渲染新帧时都会调用onSurfaceCreated,因为根据onSurfaceCreated和onDraw的名称,我想onDraw会用更新的帧渲染重新绘制场景吗 老实说,我还没有在Android上完成这项工作,但我有一点OpenGL ES的经验。但我认为你的假设是正确的Android 初学者OpenGL ES glsurfaceview/Render,android,opengl-es,Android,Opengl Es,我是OpenGL新手,我正在努力学习它。我创建了一个正方形,我告诉它旋转。为了做到这一点,我告诉它onSurfaceCreated,它工作了,它显示了旋转的图片。但是,我了解到在创建曲面时会调用onSurfaceCreated。所以问题是,每次我想更新一个对象来进行任何转换时,它是否总是必须在SurfaceCreated上创建?如果逻辑正确,是否意味着每次在SurfaceCreated上渲染新帧时都会调用onSurfaceCreated,因为根据onSurfaceCreated和onDraw的名
onSurfaceCreated
将是一个初始化接口,不应在每一帧调用该接口。相反,您将在onDraw
中更新和/或重画场景
可能包括一些到目前为止您所获得的示例代码?然后,我们可以推荐一些更好的方法来构建它。我一直在学习本教程:除了一些添加的东西,如alpha混合,这几乎是一样的。我在摆弄它,看看它能做什么。好吧。。。因此,如果您的代码大致相同,则看起来“onSurfaceChanged”只是用于设置视口(即受绘图影响的曲面区域)和设置透视矩阵。“onDrawFrame”被正确地用于通过清除曲面和重新绘制来刷新场景。那么,您的项目的实际目标是什么?你想让它做什么?没什么大不了的,我正在努力掌握这里的基本知识。我只想让它在一定时间内把正方形从一个点移动到另一个点。好的。。。如果你看一下这个函数,它每次进入这个函数时都会不断地更新一个矩阵(“ModelView”矩阵)。在本例中,将矩阵设置为将正方形-5.0单位从摄影机移开。如果您将-5.0更改为一个变量并随时间进行更新,您将看到正方形的动画。若要向左/向右移动,请为第一个0.0创建一个变量,并向上/向下移动第二个0.0。使用这三个变量,您可以开始在任何方向设置正方形的动画。这是一个很好的起点祝你好运