最通俗的安卓OpenGL教学01——OpenGL的简单使用

快过年了,提前跟大家说一声 “中秋快乐!”哈哈哈。。。

今天开始,我要写个关于OpenGL教学的系列文章,目的是想整理一下工作中接触到的OpenGL知识,同时也想把一些简单的入门知识分享给大家,方便大家入门。如果你不小心读到它,产生了些许疑问或者发现了文章中错误,再或者想与我有更多沟通交流的,都可以联系我。

简介:OpenGL(Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。 这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。学好了OpenGL ,就可以在那些支持OpenGL的机器上正常使用这些接口,在屏幕上看到绘制的结果。

正式开始,在安卓开发中,最简单的openGL使用就3步:

  • 继承GLSurfaceView
  • 实现接口 GLSurfaceView.Renderer
  • 布局中引用

来,敲代码,这里以实现绘制一屏红色为例。

1.继承GLSurfaceView

自定义一个View,新建一个类,继承GLSurfaceView,在构造方法里调用GLSurfaceView的setRenderer方法。

package com.york.media.opengl.egl;

import android.content.Context;
import android.opengl.GLSurfaceView;
import android.util.AttributeSet;

/**
 * author : York
 * date   : 2020/12/17 21:57
 * desc   : 最简单的OpenGL使用方法
 */
public class YGLSurfaceView extends GLSurfaceView {
    public YGLSurfaceView(Context context) {
        super(context);
    }

    public YGLSurfaceView(Context context, AttributeSet attrs) {
        super(context, attrs);
        //1.自定义的 Render,在 Render中实现绘制
        YGLRender yGLRender = new YGLRender();
        //2.调用 GLSurfaceView的setRenderer方法
        setRenderer(yGLRender);
    }
}

2.实现 GLSurfaceView.Renderer 接口

自定义一个 Render,实现GLSurfaceView.Renderer接口,然后在 Render中完成绘制。

package com.york.media.opengl.egl;

import android.opengl.GLES20;
import android.opengl.GLSurfaceView;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

/**
 * author : York
 * date   : 2020/12/17 21:58
 * desc   : Render中使用红色清屏
 */
public class YGLRender implements GLSurfaceView.Renderer {

    public YGLRender() {
    }

    @Override
    public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {

    }

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

    @Override
    public void onDrawFrame(GL10 gl10) {
        //使用红色清屏
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
        GLES20.glClearColor(1f,0f,0f,1f);
    }
}

布局中引用自定义的GLSurfaceView

最后,在布局中引用自定义的GLSurfaceView,就可以显示出红色了。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.york.media.opengl.egl.YGLSurfaceView
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

效果是这样的:

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Python的OpenGL库是一个用于渲染图形和实现3D图形应用的强大工具。如果你是一个初学者,以下是一些学习OpenGL的指南: 1. 学习基本的计算机图形学概念:在深入学习OpenGL之前,了解一些基本的计算机图形学概念是很重要的。你可以学习像坐标系、向量、矩阵变换等基础知识。 2. 学习Python语言基础:作为一个初学者,你需要先掌握Python的基本语法和编程概念。这将帮助你更好地理解和使用OpenGL库。 3. 安装OpenGL库:在开始之前,你需要确保你的计算机上已经安装了OpenGL库。你可以使用pip来安装PyOpenGL库。 4. 学习OpenGL的核心知识:一旦你准备好了,可以开始学习OpenGL的核心知识,如顶点缓冲对象(VBO)、着色器(programs)、着色器语言(GLSL)等。掌握这些基本概念对于理解和使用OpenGL非常重要。 5. 编写简单OpenGL程序:接下来,你可以开始编写一些简单OpenGL程序来实践所学的知识。你可以从简单的绘制一些基本图形开始,然后逐渐扩展到更复杂的场景和效果。 6. 学习OpenGL的高级特性:一旦你熟悉了OpenGL的基本知识,你可以探索一些更高级的主题,如光照、纹理映射、深度测试、投影等。这将帮助你创建更逼真和交互式的3D图形应用。 7. 参考文档和教程:除了上述的自学方法外,你还可以参考一些优秀的OpenGL文档和教程。一些推荐的资源包括OpenGL官方文档、PyOpenGL官方文档、学习OpenGL的在线教程等。 记住,学习OpenGL需要时间和实践。通过不断地编写代码和实验,你将逐渐掌握OpenGL的技能并创建出令人惊叹的图形应用。祝你好运!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值