Android OpenGL ES 2.0 手把手教学(1)- Hello World!

大家好,下面和大学一起学习Android OpenGL ES 2.0的入门Hello World,在我的github上有一个项目OpenGLES2.0SamplesForAndroid,我会不断地编写学习样例,文章和代码同步更新,欢迎关注,链接:https://github.com/kenneycode/OpenGLES2.0SamplesForAndroid

下面开始我们的Hello World之旅,我们将渲染一个三角形,为什么要渲染一个三角形呢?三角形在OpenGL中是很重要的,实际上我们看到的那些复杂图形,它们在OpenGL里都 是通过多个三角形组合而成的,因此我们先来学习如何渲染一个三角形~

要在Android上进行OpenGL渲染,首先要有GL环境,什么是GL环境?后面我会写文章解析,现在只需要知道有这回事就行了。为了简单起见,我们直接使用Android的GLSurfaceView,它就自带了GL环境。

我们在layout中写一个GLSurfaceView然后find出来,这是Android的常规操作,就不多做解释了。然后给GLSurfaceView做一些配置,现在暂时不用管这些配置的用途,后面也会有文章解析~

val glSurfaceView = findViewById<GLSurfaceView>(R.id.glsurfaceview)
// 设置RGBA颜色缓冲、深度缓冲及stencil缓冲大小
// Set the size of RGBA、depth and stencil buffer
glSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 0, 0)
// 设置GL版本,这里设置为2.0
// Set GL version, here I set it to 2.0
glSurfaceView.setEGLContextClientVersion(2)

然后给GLSurfaceView设置Renderer,这个Renderer就是用于做渲染的,可以把GLSurfaceView理解成就是一块画板,具体怎么画,是在Renderer里做的

glSurfaceView.setRenderer(SampleHelloWorld())

我们让SampleHelloWorld实现GLSurfaceView.Renderer接口,将渲染逻辑写在SampleHelloWorld中,共有3个方法需要实现:

class SampleHelloWorld : GLSurfaceView.Renderer {
   

    override fun onDrawFrame(gl: GL10?) {
   
    }

    override fun onSurfaceChanged(gl: GL10?, width
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值