[Android] OpenGL ES 介绍及环境搭建

OpenGL ES 简介

OpenGL ES 是针对嵌入式设备的图形 API,为 3D 处理硬件指定了一个标准的软件接口。Android 支持多种版本的 OpenGL ES API:

OpenGL ES 1.0和1.1 – Android 1.0及更高版本支持此API规范。
OpenGL ES 2.0 – Android 2.2(API级别8)及更高版本支持此API规范。
OpenGL ES 3.0 – Android 4.3(API级别18)及更高版本支持此API规范。
OpenGL ES 3.1 – Android 5.0(API级别21)及更高版本支持此API规范。

通常来说 OpenGL ES 2.0 和 OpenGL ES 3.0 提供了比 OpenGL ES 1.0 更好更快的图形处理性能,但是为了适配更多机型我们不得不选用适配较多机型的 API。到目前为止更为广泛使用的是 OpenGL ES 2.0,所以我们接下来的文章均采用 OpenGL ES 2.0。

环境搭建

1、声明

我们如果需要使用 OpenGL ES,需要在 Manifest 文件中声明,声明如下:

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

以上为使用 OpenGL ES 2.0 的声明,如果需要使用 OpenGL ES 3.0 则需要以下声明:

<uses-feature android:glEsVersion="0x00030000" android:required="true" />

2、构建 GLSurfaceView 对象

GLSurfaceView 可以用来绘制 OpenGL 的图像,内部主要通过 GLSurfaceView.Renderer 来控制的:

public class MyGLSurfaceView extends GLSurfaceView {
    private MyGLRenderer mRenderer;
    public MyGLSurfaceView(Context context) {
        super(context);

        // 创建一个 OpenGL ES 2.0 的上下文
        setEGLContextClientVersion(2);

        mRenderer = new MyGLRenderer();

        // 设置用来绘制图像的 Renderer
        setRenderer(mRenderer);
    }
}

3、构建渲染器

GLSurfaceView.Renderer 才是真正能够使用在 OpenGL ES 中的,包含三个方法可被系统调用:

onSurfaceCreated() – 调用一次以设置视图的OpenGL ES环境。
onDrawFrame() – 调用每次重绘视图。
onSurfaceChanged() – 如果视图的几何图形发生更改,则会调用,例如,当设备的屏幕方向发生更改时。

以下是绘制一个黑色背景的代码:

public class MyGLRenderer implements GLSurfaceView.Renderer {
    @Override
    public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {
        GLES20.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    }

    @Override
    public void onSurfaceChanged(GL10 gl10, int width, int height) {
        GLES20.glViewport(0, 0, width, height);
    }

    @Override
    public void onDrawFrame(GL10 gl10) {
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值