如何使用Android中的OpenGL ES媒体效果

2025-05-03 16:33:07
推荐回答(1个)
回答1:

  • 准备

  1. 一款支持Android开发的IDE;

  2. 一款运行Android4.0之上Android手机,并且GPU支持OpenGL ES2.0 ;

  3. 对OpenGL的基本知识了解;

  • 步骤

设置OpenGL ES环境

  1. 为了显示OpenGL的图形,需要使用GLSurfaceView类,就像其他任何的View子类意义,可以将它添加到Activity或Fragment之上,通过在布局xml文件中定义或者在代码中创建实例,Activity中的onCreate方法如下:

  2. 因为媒体效果的框架仅仅支持OpenGL ES2.0及以上的版本,所以在setEGLContextClientVersion 方法中传入2;

  3. 了确保GLSurfaceView仅仅在必要的时候进行渲染,在setRenderMode 方法中进行设置:

创建Renderer

  1. 创建类实现接口GLSurfaceView.Renderer,将这个类命名为EffectsRenderer,添加构造函数并覆写接口中的抽象方法,如下:

  2. 回到Activity中调用setRenderer方法,让GLSurfaceView使用我们创建的Renderer:

  3. 编写Manifest文件

    在AndroidManifest.xml文件中添加如下语句:

创建一个OpenGL平面

  1. 创建一个2D平面,并且具有4个顶点。

  2. 默认的OpenGL系统的坐标系中的原点是在中心,因此4个角的坐标可以表示为:

  3. 创建一个float数组来代表这些顶点,在square上定位纹理,需要确定纹理的顶点坐标,创建另一个数组来表示纹理顶点的坐标:

  4. 这些坐标数组应该被转变为缓冲字符(byte buffer)在OpenGL可以使用之前,所以需要定义: