OpenGL ES学习第四篇:先来试一个简单的渲染方式[通俗易懂]

OpenGL ES学习第四篇:先来试一个简单的渲染方式[通俗易懂]本文你可以了解到 – 定义一个渲染器基类 – 使用Android封装好的EGL环境(GLSurfaceView)来渲染上篇文章中制作好的三角形纹理

OpenGL ES学习第四篇:先来试一个简单的渲染方式

本文你可以了解到

  • 定义一个渲染器基类
  • 使用Android封装好的EGL环境(GLSurfaceView)来渲染上篇文章中制作好的三角形纹理

OpenGL ES绘制分为三步

  • 定义纹理
  • 定义渲染器
  • 定义EGL环境

1. 定义一个渲染器

class SampleRenderer(private val texture: ITexture) : GLSurfaceView.Renderer {

    override fun onSurfaceCreated(gl: GL10?, config: EGLConfig?) {
        GLES20.glClearColor(0f, 0f, 0f, 0f)
        texture.surfaceCreated()
    }

    override fun onSurfaceChanged(gl: GL10?, width: Int, height: Int) {
        GLES20.glViewport(0, 0, width, height)
        texture.surfaceChanged(width, height)
    }

    override fun onDrawFrame(gl: GL10?) {
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT)
        texture.updateTexImage();
    }

    fun release() {
        texture.surfaceDestroyed()
    }
}

渲染器内容比较简单,主要是在生命周期内回调纹理的生命周期方法,其中release方法目前无法嵌入到生命周期中,请暂时忽略

2. 使用GLSurfaceView通过渲染器,将三角形渲染出来

定义一个Activity页面,layout文件中只有一个GLSurfaceView

<android.opengl.GLSurfaceView android:id="@+id/glSurfaceview" android:layout_width="match_parent" android:layout_height="match_parent" />

在Activity页面中,启动渲染

binding.glSurfaceview.setEGLContextClientVersion(2)
renderer = SampleRenderer(TriangleTexture())
binding.glSurfaceview.setRenderer(renderer)
binding.glSurfaceview.renderMode = GLSurfaceView.RENDERMODE_WHEN_DIRTY

,,,,就结束了,简单的吧

image.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13498.html

(0)

相关推荐

  • Python安装方法

    Python安装方法Python是一种高级语言,可以用于处理大量数据,进行机器学习、人工智能等领域的开发。Python的学习门槛低,易于入门是其广受欢迎的一个原因。Python虽然是跨平台的语言,但在不同平台上安装的方法可能会有所不同。本文将对Python在不同平台上的安装进行详细介绍。

    2024-07-07
    42
  • 技术分享 | 一次有趣的 MySQL 客户端命令用法的探索

    技术分享 | 一次有趣的 MySQL 客户端命令用法的探索作者:陈怡 前言 这篇文章简单介绍一下运维中经常用到的“MySQL客户端”的一些小技巧。这些小技巧非专业 DBA 基本不会用到,专业的 DBA 必备。希望我的分享你们也能用到。 MySQL 客户端的…

    2022-12-27
    140
  • JSP+Servlet+C3P0+Mysql实现的网上蛋糕店

    JSP+Servlet+C3P0+Mysql实现的网上蛋糕店本文存在 "视频版本" ,请知悉 项目简介 项目来源于: "https://gitee.com/PositiveMumu/CakesShop/tree/master&qu

    2023-02-10
    154
  • 使用Python连接数据库

    使用Python连接数据库在计算机科学领域,数据库是存储数据的地方。如果你需要一个可以永久存储数据的地方,那么数据库是你最好的选择。而使用Python连接数据库有多种不同的方法和工具。

    2024-07-07
    45
  • mac配置tomcat环境变量_终端安装过程

    mac配置tomcat环境变量_终端安装过程Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。Tomc

    2022-12-30
    172
  • 如何在Python中显示中文

    如何在Python中显示中文Python是一种流行的、易学易用的编程语言,许多人使用Python构建自己的应用程序或开发工具。在编程的过程中,有时候需要在Python中显示中文,而不是仅支持英文输出。然而,如果你不了解如何在Python中正确地显示中文,可能会遇到一些奇怪的问题。本文将介绍如何在Python中正确地显示中文。

    2024-07-07
    47
  • 粒子群算法[亲测有效]

    粒子群算法[亲测有效]粒子群算法(Particle Swarm Optimization,PSO),属于进化算法的一种,该算法最初是受到飞鸟集群活动的规律性启发,进而

    2023-06-27
    136
  • Python Listappend:如何向列表添加元素

    Python Listappend:如何向列表添加元素Python list是一种非常重要的数据结构,它同样是Python中最常用的数据结构之一。有时我们需要在list尾部添加一个元素。为了实现这一目标,Python提供了一种函数叫list.append(),它可以在list的尾部添加元素。

    2024-01-18
    103

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注