阅读本文前如果是初次接触opengl可以先阅读前文:
openGL 3D图形和openGL简介:
http://blog.csdn.net/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) getSystemService(Cont