• Android OpenGL ES 入门系列(一) --- 了解OpenGL ES的前世今生


     

    转载请注明出处

    本文出自Hansion的博客

    OpenGL ES (OpenGL for Embedded Systems)

            是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,主要用来开发3D图形应用

    Android支持以下几个版本的OpenGL ES API:

            OpenGL ES 1.0和1.1      支持Android 1.0及更高版本

            OpenGL ES 2.0               支持Android 2.2(API级别8)及更高版本

            OpenGL ES 3.0               支持Android 4.3(API级别18)及更高版本

            OpenGL ES 3.1               支持Android 5.1(API级别21)及更高版本

    注意不要将OpenGL ES 1.x API调用与OpenGL ES 2.0方法混合使用,因为其API不可互换。

     

     

    在Android框架中有两个基础类:GLSurfaceView和GLSurfaceView.Renderer,它们允许您使用OpenGL ES API创建和操作图形。

    GLSurfaceView:

            是一个可以使用OpenGL API调用来绘制和操作对象的View,功能上类似于SurfaceView。

            可以通过创建一个GLSurfaceView的实例并添加渲染器来使用它。

    GLSurfaceView.Renderer:

            该接口定义了在GLSurfaceView中绘制图形所需的方法。

            必须提供单独的类实现此接口,并使用GLSurfaceView.setRenderer()将其附加到GLSurfaceView实例。

            它必须实现以下几个方法:

                    onSurfaceCreated(): 系统会在创建GLSurfaceView时调用一次该方法。我们在此方法中做一些只需执行一次的操作,如设置OpenGL环境参数或初始化OpenGL图形对象。

                    onDrawFrame(): 系统在每次重绘GLSurfaceView时调用此方法。此方法用于绘制(和重新绘制)图形对象。

                    onSurfaceChanged(): 当GLSurfaceView的大小或设备屏幕方向发生变化时,系统调用此方法。例如,当设备从纵向变为横向时,系统调用此方法。

    在Android上Opengl是通过Vertex Shader (定点着色器)和 Fragment Shader (片段着色器)这两种定点着色器程序来实现图片的加载和渲染的

    顶点着色器的作用是为每一个顶点生成坐标,因此每个顶点都要运行一遍顶点着色器程序,一旦顶点坐标计算出来之后,OpenGL就能够使用这些顶点来组成点,线,和三角形。所有任意的图形都是由这三种基本元素来描述的。

    片段着色器的作用是为点,线或者三角形的每一个顶点的片段(Fragment)生成渲染后的最终颜色。片段就是一个小的单色矩形区域,可以简单的认为是屏幕上的一个像素点。

    OpenGL坐标原点在屏幕中央,左右坐标范围为[-1,1]

     

     

    参考:

     OpenGL ES官方资料

  • 相关阅读:
    泛型
    BigInteger和BigDecimal大数相加问题
    集合(Collection,set,list,map)
    [转]如何从MySQL官方Yum仓库安装MySQL5.6
    CentOS Linux使用crontab运行定时任务详解
    [转]Mysql自动备份并保存近15天记录脚本
    centos6.5 mysql安装+远程访问+备份恢复+基本操作+卸载
    vsftpd安装
    [转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡
    [转]apache的源码安装详细过程全纪录
  • 原文地址:https://www.cnblogs.com/hansion/p/8192229.html
Copyright © 2020-2023  润新知