第5章 利用OpenGL绘制三维图形解析.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 利用OpenGL绘制三维图形 本章学习目标 重点: 多线程管理 3D图形绘制框架 渲染管线 难点: 渲染管线 随着手机功能的强大,越来越多的应用程序中加入了三维图形的绘制。利用Android平台下的OpenGL ES图形函数库,可以非常容易的绘制出令人满意的三维画面。 5.1 三维图形基础 画面以每秒至少24幅画面显现的时候,我们就感觉画面动起来了。其中,每一幅画面,我们称为一帧。 渲染一帧三维画面 显示在屏幕 5.1 三维图形基础 图形顶点 顶点变换与光照 纹理采样 alpha测试、深度测试 渲染目标到缓存 渲染一帧三维画面的基本流程。 5.1 三维图形基础 利用子线程来进行渲染工作。 主线程 子线程 启动窗口 启动子线程 响应用户 初始化设备 渲染画面 搭建三维程序 在Android手机上面创建一个三维图形绘制项目,利用子线程来进行三维图形的具体绘制工作,并且初始化硬件设备。 5.2 绘制三维图形 设置立方体顶点数据 x y z int vertices[] = { // 前面 -length/2, -length/2, length/2, length/2, -length/2, length/2, -length/2, length/2, length/2, length/2, length/2, length/2, …… 5.2 绘制三维图形 调用顶点数据进行绘制 gl.glColor4f(1,1,1,1); gl.glNormal3f(0,0,1); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP,0,4); 5.2 绘制三维图形 5.2 绘制三维图形 通过变换矩阵实现顶点的平移、旋转和缩放等三种基本变换。 旋转矩阵 void GL10.glRotatef(float angle, float x, float y, float z) 5.2 绘制三维图形 平移矩阵 void gl.glTranslatef(float x, float y, float z) 5.2 绘制三维图形 绕着y轴旋转的效果 5.2 绘制三维图形 纹理贴图 所谓纹理,其实就是图片;所谓贴图,就是把图片贴在物体上。图片的形状是矩形,因此,需要把图片4个顶点对应到立方体某个面的4个顶点 5.2 绘制三维图形 纹理贴图的效果 5.2 绘制三维图形 光照效果 所谓光照就是把光的颜色值按照某种计算方式进行运算后,得到的真实照射在物体表面的光线颜色值。按照光照的计算方式,光照效果可以分为环境光、漫反射和镜面反射。 还需要设置物体表面的材质,所谓材质就是判定光线照射在物体表面,被吸收了多少?又被反射了多少?最后被反射的光线颜色值再叠加到物体表面的纹理颜色值,就是物体表面真实的色彩了。 绘制两个立方体 绘制两个立方体,分别绕着x轴和y轴进行旋转。 利用GLCube类,实例化两个立方体。 利用平移矩阵,各自移开一定的距离。 然后利用分别给每个立方体实例应用旋转矩阵。采用系统时间作为旋转角度值。 本章小结 本章主要介绍了Android平台下的三维图形编程的相关知识。三维图形编程在手机应用程序开发中有着比较重要的地位,特别是在手机游戏开发中。本章对Android平台下的OpenGL图形函数库进行了一些简单的介绍:用户可以据此绘制三维图形。

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档