阅读本文前如果是初次接触opengl可以先阅读前文:
openGL 3D图形和openGL简介:
http://blog.youkuaiyun.com/pangrui201/article/details/75091501
android上opengl es基础知识
Google在Android2.2 以后支持 opengl es 2.2,在Android 4.3以后引入opengl es 3.0。Android中使用openGL会用到GLSurfaceView控件, GLSurfaceView.Renderer,在Android studio的debug模式下我们可以清楚的看到Renderer的各个回调函数发生在非UI主线程,即渲染线程,具体渲染是在一块称为”surface”(在openGL里面称为ViewPort视口)的地方完成,渲染绘制完成后在将渲染结果直接在主线程显示,实际上GLSurfaceView在View Hierarchy上”穿洞”,让底层open gl surface显示出来。同时,需要考虑GLSurfaceView和Activity的各个生命周期的问题。
另一方面,在Android 4.0以后提供了一个纹理视图(TextureView)可以也可以渲染opengl,TextureView像普通view一样不在需要”穿洞”了,但是TextureView没有内置opengl的初始化操作。
第一个opengl es程序
如下代码是在Android studio上创建的第一个opengl es项目:
public class MainActivity extends AppCompatActivity {
private GLSurfaceView glSurfaceView;
private boolean rendererSet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
glSurfaceView = new GLSurfaceView(this);
// Check if the system supports OpenGL ES 2.0.
final ActivityManager activityManager =
(ActivityManager) getSystemSer

本文介绍了在Android Studio上创建第一个OpenGL ES程序的过程,包括如何判断设备支持OpenGL ES 2.0,设置GLSurfaceView及其生命周期管理。文章详细解析了GLSurfaceView.Renderer的三个关键回调方法:onSurfaceCreated、onSurfaceChanged和onDrawFrame,以及如何实现清屏颜色和视口设置。此外,还讨论了渲染模式和脏渲染的概念。
最低0.47元/天 解锁文章
2942

被折叠的 条评论
为什么被折叠?



