OpenGL ES之Android平台实现图形绘制二

OpenGl ES Java实现立方体绘制

项目地址

https://github.com/rocky123shine/CubeDemo

项目效果预览

这里写图片描述

这里写图片描述

这里写图片描述

实现步骤复习

OpenGL ES Android 平台实现图形绘制分为散步:
1. 自定义SurfaceView
1.1自定义的SurfaceView 要继承GLSurfaceView 重写构造
1.2在构造中初始化渲染器
1.3自定义渲染器 实现Renderer接口 实现三个方法
1.3.1 onSurfaceCreated
这里设置背景 和 开启深度测试
1.3.2 onSurfaceChanged
这里设置视口和设置透视矩阵和相机
1.3.3 onDrawFrame
这里清楚缓冲和绘制图形
2. 业务逻辑和数据的处理
2.1 初始化
初始化数据和着色器
2.2 提供绘制方法
提供绘制方法
3. 使用自定义SurfaceVew 并且同步生命周期
Activity中setContentView 是我们自定义的SurfaceView
同步Activity和自定义SurfaceView的生命周期

GLSL

本文主要知识点是着色程序的使用

  1. GLSL常用变量
    1.1.Attribute
    1) 只有顶点着色器中会有该修饰符
    2) 他是属性修饰符
    3) 他只能修饰浮点数的标量向量和矩阵变量 不能修饰其他类型 用于浮点型
    1.2. uniform
    1) 一致变量限定符 一致变量:对同一组顶点组成的单个3D物体中所有的顶点都相同的量
    2) 主要用于顶点和片元着色器
    3) 可以修饰所有的基本数据类型
    1.3. varying
    1) 用来传递顶点着色器终点额数据到片元着色器中
    1.4. in 标志数据是输入
    1.5. out 标志数据是输出
    1.6. inout 既可以做输入又可以做输出
  2. GLSL常用函数
    2.1. glCreateProgram
    创建着色程序
    2.2.glAttachShader
    关联着色程序
    2.3.glLinkProgram
    链接着色程序
    2.4.glGetAttribLocation
    获取着色器中除了uniform修饰的变量的id
    2.5.glGetUniformLocation
    获取着色器中uniform修饰的变量的id
    2.6.glUseProgram
    使用着色程序
    2.7.glUniformMatrix4fv
    通过glUniformMatrix4fv给着色程序中uniform修饰的变量赋值
    2.8.glVertexAttribPointer
    给画笔设置定点数据 颜色和定点位置
    2.9.glEnableVertexAttribArray
    开始定点绘制

到此你和Rocky一样 已经可以绘制简单的图形了,不妨clone我的GitHub上的代码 运行实现一下,感受一下简单图形的绘制,接着我们将要学习光照、文理、雾等特效。继续和Rocky一起努力吧,come on!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值