基于android的飞机游戏开发开题报告

时间:2024.5.9

开题报告

(1)研究的目的和意义

Android操作系统最初是由 Andy Rubin制作,最初主要支持手机,在20xx年被搜索巨头Google收购注资,并组建开放手机联盟开发改良随后,逐渐扩展到平板电脑及其他领域上 ,20xx年全球第一步安卓智能手机问世,标志着安卓的重生。而在20xx年11月份的调查,android智能机一跃超过苹果,以全球市场占有率76%,中国90%遥遥领先。在安卓手机中以三星的GALAXY III系列为领头羊,领跑安卓手机最新科技。

当人类步入21世纪,随着科技的日趋发展,智能手机,平板电脑等高端电子产品进入了我们的日常生活,随着3G时代已经慢慢的融入了我们的日常生活,随着社会的进步和科技的发展手机已经从单纯的通讯工具转变为集娱乐,学习,通讯为一体的高端电子产品,随着诺基亚塞班系统的没落,安卓系统迎来了春天。据市场调查,智能手机市场已经形成了二足鼎力的态势,安卓和苹果的IOS作为领军者遥遥领先于windows phone系统,而在20xx年11月份的调查,android智能机一跃超过苹果,以市场占有率76%遥遥领先。同时各种android应用程序已经有了比较明朗的发展前景,尤其以手机游戏这个亮点受到广泛的关注和喜爱,正是由于android拥有广大的用户群,android手机游戏拥有巨大的潜力,它也主宰者手机游戏的未来,此次毕业设计顺应时代发展潮流,依托现在硬件上的优势,以android为平台,旨在玩家打造一款优秀的飞行类小游戏,使玩家身临其景,爱不释手。

在安卓游戏的市场上,使得android手机游戏种类更加丰富多彩,为安卓手机游戏的发展做出贡献。

(2)国内外同类研究的概况

手机游戏种类和资源日益丰富 ,游戏界面越来越华丽,游戏规则日益复杂,已经具备了很强的娱乐性和交互性的复杂形态。

20xx年10月,Andy Rubin等人创建了Android公司,google公司于20xx年8月17日低调收购android以及其团队,Andy Rubin成为Google公司android项目工程部副主任,,在三年后的GoogleI/O大会上谷歌提出android HAL架构图,同年九月,谷歌发布android 1.0,这就是android的最早的版本,由于当时受到硬件技术的局限和3D技术的不完善,以及android没有得到公众的认可,所以当时安卓手机游戏并没有得到良好的发展,没有进入人们的日常生活,仅仅只能做出原始的简单的小游戏,而且玩家也不是很多。

时间来到了20xx年,android操作系统以绝对的优势领跑只能手机界,而基于良好的平台支持和硬件的发展,使得android手机游戏得到了飞速的发展。

1基于良好的硬件制作更好效果的游戏

随着各平台对OpenGL ES支持能力的大力加强,使得开发复杂的3D场景游戏成为可能。更多显示芯片对Android的支持,硬件性能将不再成为制约专业化游戏发展的瓶颈。越来越多在PC、PSP、PS3、XBOX360等各游戏平台占有领先地位的专业游戏公司将向Android等手机平台领域快速渗透,使得游戏的规划更加向专业化方向发展。随

着Android版本的稳定以及游戏产业的蓬勃发展,Gameloft、Gamevil、EA等大牌厂商开始进入Android平台,带来了高端的游戏体验。利用3D技术和专业美工,在PC上制作出完美的主角和场景的模型,然后再移植到android平台上,进行后续开发,植入更好的模式和剧情,让玩家更好的加入到游戏中去。

2利用短距离无线传输新技术,实现联机游戏

展望未来,android游戏开发在更多层面,更广思路上,更多游戏情结和规则上,利用wifi技术和蓝牙,EDGE,实现玩家联机对战。蓝牙是一种新型,开放且低成本的短距离无线连接技术,课取代短距离的电缆,实现数据的无线传输。EDGE,即增强型数据速率GSM演进技术,它主要在GSM系统中采取了一种性的调制方法,即最先进的多是隙操作和SPSK调制技术。WIFI即无线保真技术,是与蓝牙一样,同属于在办公室和家庭中使用的短距离无线技术。这些通讯能力也是属于硬件方面的展现,同时也是未来安卓手机游戏发展的趋势,玩家通过这些技术,来利用短暂的时间片,和其他玩家来实现互动游戏,而不是一个人枯燥的玩单机游戏,这样给android手机游戏带来了新的挑战和机遇。

(3)研究内容及计划

一款优秀的有机游戏需要用美术技巧,动画理论,实现方式,人机交换以及脚本程序等各个方面共同打造。

1课题内容:基于Android平台的飞机游戏开发的飞机游戏开发 2需求分析:本游戏是主要基于Android系统下开发的应用,

采用java语言和安卓自带的xml布局编写,操作简单,容易上手。游戏由玩家触摸屏幕来控制飞机的移动,即上下左右,子弹为自动发射,没有子弹数的约束,但是有子弹的威力大小,玩家可以控制飞机通过移动,来躲敌机的子弹,一旦触碰敌机或者敌机子弹,即判为任务失败,玩家通过摧毁敌机和最后boss获得分数。系统设计排行榜,自动把高分玩家记载进内置的数据库,玩家一旦摧毁最终boss则判断为通过本关,自动开启下一关,通过特定的关数,会自动解锁新的飞机,新的飞机拥有更好的移动速度,子弹威力,和更多的生命值,使得玩家非常想通过通关开启新的飞机,从而欲罢不能,喜欢上这款游戏。此游戏还融入了很多动作类游戏特有的技术,使得画面流畅、声音震撼。游戏操作简单,易于上手,且火爆的游戏场面,快速、激烈、紧张的游戏节奏会使玩家产生浓厚兴趣。

3系统设计概要

(1)游戏的内容设定:玩家通过点击屏幕来控制飞机,飞机自动发射子弹,当玩家控制的飞机发射子弹碰触到敌方飞机,则敌方飞机坠毁,而我方飞机被敌方飞机子弹触碰,玩家控制的飞机则损失生命,当有限的生命损失殆尽则游戏结束,当玩家打败最终boss后则判断为通关,否则通关失败,当进行第二关时,玩家的生命值刷新,第三关,第四关依旧如此。

(2)过管条件设定:玩家需要在丢失最后一个生命前击败最后boss

(3)游戏结束设定:玩家控制的飞机丢失最后一个生命,即判

断游戏结束

(4)游戏规则设定:

1子弹

飞机能每分钟能自动发射一定的子弹数目,只要出现敌方飞机

玩家控制飞机自动发射现有子弹

2血条或者生命

飞机拥有血条或者生命,根据飞机的生命剩余量,或者飞机 血量的剩余量,来决定是否继续可以战斗,每次被击中或者被敌机撞击后生命数或者血量下降,当生命数或者血量下降到0,则游戏结束。

3碰撞

当敌机与玩家控制飞机图片相互重叠则判为碰撞,玩家控 制飞机损失生命或者血量,并且不能获得摧毁敌机的分数

4敌机被击中

当玩家控制的子弹出现在敌机图片的范围时,敌机则被摧 毁,玩家获得相应的分数

5玩家控制战机被击中

当敌机发射子弹出现在玩家控制战机图片的范围时,玩家 控制战机则损失生命或血量

6子弹重叠(即子弹相互抵消)

当玩家控制战机发射子弹图片与敌机发射子弹相互重叠,则 判断为子弹相互抵消,子弹消失

7通关

当玩家控制飞机在最后一个生命消失殆尽前击杀boss,则判断通关,并且获得额外的击杀boss分数和奖励,比如下关的额外一点生命,过关后跳出界面询问玩家是否继续下面一关。

4研究(开发)方法

自学java基础和android移动平台,采用eclipse&android SDK环境开发,利用以java语言为基础,并且基于android移动开发平台进行软件的开发,开发软件完成后,测试软件,使用黑盒和白盒测试,分别测试软件是否达到里预计的需求,并且检查是否有逻辑上的错误,最后形成毕业论文,做好PPT和准备论文答辩

5工作进度安排

1阅读文献,大致做好需求分析,理解毕业设计任务书. 时间:2月初-2月中旬

2开题报告,并作开题报告答辩。 时间2月中—3月初

3java语言的学习并且熟悉android移动开发平台。 时间3月初-4月初

4软件编码及测试 时间4月初-5月中旬

5论文的撰写 时间5月中旬-5月末

6答辩PPT以及答辩准备 时间6月初

(4)特色及创新

多样性设计(即游戏性的设计)

◆飞机的子弹威力可以升级

◆飞机的子弹发射形式可以升级(比如单直线可以升级到发 散至三条直线,可以同时打击三条线上的敌人)

◆飞机的多样性,通过一定的关卡,可以解锁不同的战机, 高级战机拥有更好的移动速度和子弹威力,血量

◆当某种能量值蓄满,或者杀敌数达到一定的数量时,可以 发动大招,发动时机由玩家选择

◆boss模式,当打完boss可以获得一定的奖励(奖励生命和道具)

◆敌机也有不同的种类和防御,击毁不同的敌机玩家获得的 分数也会不相同


第二篇:android 游戏开发教程sundy


Sundy高端android视频教程下载地址:/topics/2900036/

首先给大家讲一个笑话吧,祝您生活愉快!

这天早上,夫妻俩又开始吵架了。

妻子抱怨道:“整整一夜没合眼,你打呼噜,狗乱叫!”

丈夫反击道:“那你想怎样,难道让狗打呼噜,我乱叫?”

ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 Android OpenGL ES开发

主讲人:杨丰盛

华章培训网、[]华章培训网版权所有

课程目标

Android书籍 Android应用开发书籍推荐 技术支持(交流平台) 课程计划 课程概述 功能演示 课程需求分析

华章培训

第2页

Android书籍推荐

《Android应用开发揭秘》 Android应用开发揭秘》 应用开发揭秘

国内首本基于Andriod2.0的经典著作 5大专业社区一致鼎力推荐! 入围51CTO20xx年度—— 最受读者喜爱的原创IT技术图书奖。

华章培训

第3页

交流平台

华章培训网 / 博客 / 华章培训

第4页

课程计划

ES开发基础 Android OpenGL ES开发基础 2:Opengl ES概述 3:基本图形绘制 4:3D图形绘制及透视 5:光效 6:材质 7:纹理及纹理映射 8:隧道实例 9:雾气 10:2D文字显示 11:飘动的旗帜 12:蒙板

华章培训

13:离子系统 14:变形 16:曲面映射 17:多重纹理 18:反射-蒙板缓存 19:图像字体 20:反走样 21:缓存及片元测试 22:贝塞尔曲面 23:BLT函数

24:TGA文件 25:多重视口 27:射线拾取 28:地形 29:天空盒 30:帧动画 31:骨骼动画 32:碰撞检测 引擎实现(通过NDK来开 发原生OpenGL ES程序)

15:多级纹理-二次几何体 26:轨迹球

第5页

课程准备

构建Android SDK应用程序开发环境 Eclipse(3.4及其以上版本) Android SDK(1.5以上) ADT(0.9以上)

华章培训

第6页

OpenGL ES概述

主讲人:杨丰盛

华章培训网、[]华章培训网版权所有

课程目标

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

ES概述 OpenGL ES概述

OpenGL与OpenGL ES概述 OpenGL与OpenGL ES区别

OpenGL ES开发框架 ES开发 开发框架

GLSurfaceView Renderer

华章培训

第8页

OpenGL 概述

OpenGL

是由SGI公司开发的一套3D图形软件接口标准,由于具有体系 结构简单合理、使用方便、与操作平台无关等优点,OpenGL迅速成 为一种3D图形接口的工业标准,并陆续在各种平台上得以实现。作为 一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算 环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性 能的三维图形功能。由于许多在计算机界具有领导地位的计算机公司 纷纷采用OpenGL作为三维图形应用程序设计界面,OpenGL应用程序 具有广泛的移植性。因此,OpenGL已成为目前的三维图形开发标准 ,是从事三维图形开发工作的技术人员所必须掌握的开发工具。 (/) 华章培训 第9页

OpenGL ES概述

OpenGL ES

OpenGL ES是专为内嵌和移动设备设计的一个2D/3D轻 量图形库,它是基于OpenGL API设计的。OpenGL ES 1.0 版基于OpenGL 1.3,而OpenGL ES 1.1则是基于OpenGL 1.5的。现在主要由Khronos Group( /)来负责管理OpenGL ES的开 发维护。 Android平台在sdk2.0之前支持 OpenGL ES 1.1,而在2.0以后的 版本则支持OpenGL ES 2.0。

华章培训 第10页

OpenGL与OpenGL ES区别

之所以会推出OpenGL-ES版本,主要是应对嵌入式环境 和应用的要求。 嵌入式设备一般工作于较恶劣的环境,包括:温度、湿度 、振动、冲击、酸碱腐蚀等。例如:中国的酸雨气候就给很多 室外电子设备带来了新的难题,中东地区的风沙也使得美军必 须采用更先进的非IT技术来保护他们的电子设备。 需要人机界面的嵌入式应用,由于受环境受环境因素的影 响,一般不能提供有缘电源,在有限的电能限制下工作,如何 以更低的功耗完成人机交互界面,成为OpenGL必须要面对的 问题,进而推出了OpenGL-ES标准。应该说在高效完成 2D/3D界面的同时,达到了降低功耗的效果。

华章培训 第11页

OpenGL与OpenGL ES区别

特别说明,在OpenGL发展到1.3版本时,OpenGL API 不再采用纯软件的形势进行运算,开始与硬件图形芯片结合, 出现了OpenGL硬加速的实现形式。例如:很多显示芯片厂商 开始推出支持OpenGL硬加速的芯片,并与软件公司合作,实 现OpenGL硬加速。很多PC机的游戏会有加速软件,如实况足 球,但目前这类基于PC加速软件还是通过软件形式进行优化, 球 目 基于PC 件 通过 件形 即优化了3D渲染引擎。OpenGL硬加速的优点在于,使CPU从 繁重的图形运算工作中解脱出来,将运算重点集中于非界面应 用,即嵌入式操作系统中优先级较高,但与界面无关的应用。 GPU(图形处理器)与CPU(中央处理器)的分工合作,带来 的就是高效率。

华章培训 第12页

OpenGL与OpenGL ES区别

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

当然,事物均具有两面性,OpenGL-ES硬加速也有缺点 ,即增加了设备成本。这方面主要取决于其应用是否需要强劲 的性能,即对人机交互界面的更高性能的追求。 OpenGL ES相对OpenGL删减了一切低效能的操作方式, 有高性能的决不留低效能的: 没有double型数据类型,但加入了高性能的定点小数数据 类型; 没有glBegin/glEnd/glVertex,只能用glDrawArrays 等。 没有实时将非压缩图片数据转成压缩贴图的功能,程序必须 直接提供压缩好的贴图;

华章培训 第13页

OpenGL ES 1.x和OpenGL ES 2.x

OpenGL ES 1.x 为固定渲染管线(Fixed_Function )而设计。子版本包括:1.0,1.1。1.0从OpenGL 1.3裁 减而来;1.1从OpenGL_1.5裁减而来。1.1向下兼容1.0。 经研究,

1.1因为更先进,而且相比1.0增加的特性也都很有 用,所以基本上不用考虑1.0了。1.1和1.0的变化不算很大 OpenGL ES 2.x 为可编程渲染管线(Programmable )而设计。目前只有2.0这一个子版本,从OpenGL2.0裁减而 来。和1.x的区别是可以支持vertex和pixel shader,因 此能够实现更多的特效。另外2.0就不再支持1.x里面的固定 管线功能了,也就是说2.x并不向下兼容1.x。

华章培训 第14页

Android OpenGL ES开发框架

ES开发 开发包 OpenGL ES开发包 android.opengl.*; ES视图 OpenGL ES视图 GLSurfaceView Renderer //OpenGL视图 //渲染器

华章培训

第15页

Android OpenGL ES开发框架

Renderer接 Renderer接口

onSurfaceCreated(GL10 gl, EGLConfig config) onSurfaceChanged(GL10 gl, int width, int height) onDrawFrame(GL10 gl)

华章培训

第16页

小结

OpenGL

OpenGL ES

onSurfaceCreated GLSurfaceView Renderer onSurfaceChanged onDrawFrame

华章培训

第17页

作业

思考? 思考? 如何在OpenGL ES开发框架上绘制图形?并为图 形添加颜色和进行变换操作?

华章培训

第18页

基本图形的绘制

主讲人:杨丰盛

华章培训网、[]华章培训网版权所有

课程目标

通过OpenGL来完成2D多 形的绘制。 通过OpenGL来完成2D多边形的绘制。 OpenGL 2D 坐标系、点、线、三角形、四边形、顶点数组 、

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

为多边形添加颜色。 添加颜色。

颜色数组、着色模式

变换操作。 换操作

平移、旋转、缩放

华章培训

第20页

2D多边形

坐标系、点、顶点 标系、

3D图像的最小单位称为 点(point) 或者 顶点 (vertex)。它们代表三维空间中的一个点并用来建造更复杂 的物体。多边形就是由点构成,而物体是由多个多边形组成。 尽管通常OpenGL支持多种多边形,但OpenGL ES只支持三边 形(即三角形)。

华章培训

第21页

2D多边形

三角形 三角形

由不在同一直线上的三条线段首尾顺次连接所组成的封闭 图形叫做三角形。 (0,1,0)//上顶点 (0,0,0)//直角处顶点 (1,0,0)//右边顶点

华章培训

第22页

2D多边形

在OpenGL中绘制2D多边形常用的函数以及常量: OpenGL中绘制2D多 2D 用的函数以及常量: 常量

glEnableClientState/glDisableClientState:状态开关 glVertexPointer:设置顶点数据 glDrawArrays:绘制函数

GL_VERTEX_ARRAY:顶点数组

GL_BYTE/GL_SHORT/GL_FIXED/GL_FLOAT:顶点数据的类型 GL_LINES:线

GL_TRIANGLES:三角形 GL_TRIANGLE_STRIP:三角形带

华章培训

第23页

颜色

OpenGL ES只支持RGBA颜色模式,即我们通过定义红, 绿,蓝以及alpha元素来定义颜色, alpha值定义了颜色之 后物体的透视(明)程度。 颜色数组 和顶点数组一样,由每一个顶点的颜色数据组成。 着色模式 在OpenGL ES中,我们可以为整体物体设计一个单一的 颜色,称之为“单一着色”; 也可以用多种颜色混合渲染, 而颜色之间过渡很平滑,称之为“平滑着色”。

华章培训 第24页

颜色

常用函数及常量 用函数及常量

glColor4f:设置单一颜色 glColorPointer:设置颜色数组

GL_COLOR_ARRAY:颜色数组(通过状态开关函数

glDisableClientState 来操作)

GL_COLOR_BUFFER_BIT:颜色缓存

华章培训

第25页

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

变换

ES有三种不同类型的变 的变换 它们分别是: OpenGL ES有三种不同类型的变换,它们分别是:

转移(Translate):在3D空间中移动物体 旋转(Rotate):绕X, Y, 或者 Z 轴进行旋转 缩放(Scale):改变物体的大小

华章培训

第26页

变换

常用函数及常量 用函数及常量

glTranslatef:平移 glRotatef:旋转 glScalef:缩放

华章培训

第27页

小结

点、线 图形元件 三角形 顶点数组 单一着色 2D图形 颜色 平滑着色 平移 变换 旋转 缩放

华章培训 第28页

作业

思考? 思考? 如何绘制3D图形呢?比如:立方体。 在3D空间中,当多个相同物体在同一直线上时,前面的物体 是否要遮挡后面的物体呢?如何才能让观察者看得更逼真呢? 华章培训

第29页

光效

主讲人:杨丰盛

华章培训网、[]华章培训网版权所有

课程目标

阴影模型 GL_FLAT(恒定)、 GL_SMOOTH(光滑) 光效三要素 光效三要素 环境元素(ambient component) 散射元素(diffuse component) 高光元素(specular component) 光源的属性 位置、方向、角度 顶点法线 顶点法线

华章培训 第31页

阴影模型

GL_FLAT将指定三角形上的每个像素都同等对待。多边 形上的每个像素都具有相同的颜色,阴影等。在这种方式下, 物体看上去极为不真实。 GL_SMOOTH模式,它使用了一种平滑快速的阴影算法, 称为Gouraud算法。OpenGL ES Gouraud 。OpenGL ES默认为GL_SMOOTH模式。 GL_SMOOTH 。

华章培训

第32页

光效三要素

在 OpenGL ES中,光由三个元素组成,分别是环境元素(ambient component), 散射元素(diffuse component)和 高光元素( specular component)。我们使用颜色来设定光线元素。我们可以指定各 光线元素的颜色和相对强度,比如:明亮的白色光定义为白色 ({1.0, 1.0, 1.0, 1.0}),而暗白色可能定义为灰色 ({0.3, 0.3, 0.3 1.0})。 你还可以通过改变红,绿,蓝元素的百分比来调整色偏。

华章培训

第33页

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

环境光

环境光没有明显的光源。其光线折射于许多物体,因此无法确 定其来源。环境元素平均作用于场景中的所有物体的所有面。 //环境光的颜色 FloatBuffer light0Ambient = FloatBuffer.wrap(new float[]{0.1f, 0.1f, 0.1f, 1.0f}); //设置环境光 gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_AMBIENT, light0Ambient);

华章培训 第34页

散射光

在OpenGL ES中可以设定的第二个光线元素是 散射元素( diffuse component)。在现实世界里,散射光线是诸如穿 透光纤或从一堵白墙反射的光线。散射光线是发散的,因而参 数较柔和的光,一般不会像直射光一样产生光斑。散射元素定 义了比较平均的定向光源,在物体面向光线的一面具有光泽。 FloatBuffer light0Diffuse = FloatBuffer.wrap(new float[]{0.7f, 0.7f, 0.7f, 1.0f}); gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, light0Diffuse);

华章培训 第35页

高光

高光元素定义了光线直接照射并反射到观察者从而形成了物体上的“ 热点”或光泽。光点的大小取决于一些因素,但是如果你看到如上图 黄球所示一个区域明显的光斑,那通常就是来自于一个或多个光源的 高光部分。这种类型的光是十分直接的,它们会以热点和光晕的形式 反射到观察者的眼中。如果你想产生聚光灯的效果,那么应该设置一 个很大的高光元素值及很小的散射和环境元素值(还需要定义其他一 些参数,等下会有介绍)。 FloatBuffer light0Specular = FloatBuffer.wrap(new float[]{0.7f, 0.7f, 0.7f, 1.0f}); gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_SPECULAR, light0Specular);

华章培训 第36页

光源的属性

位置(GL_POSITION):3D空间中光源的位置。 方向(GL_SPOT_DIRECTION):由x,y,z向量来确定光线的方向。 角度(GL_SPOT_CUTOFF):指定 GL_SPOT_CUTOFF 值时,它定义了中 心线两边的角度,所以如果你指定截止角时,它必须小于180度。如果你的定 义为45度,那么实际上你创建了一个总角度为90度的点光源。这意味着你可 设定的 GL_SPOT_CUTOFF 的最大值为 180度。

华章培训

第37页

顶点法线

法线:一个垂直于指定多边形表面的向量(或直线)。

使用 GL_SMOOTH 渲染,所以OpenGL ES需要知道顶点法线 顶点法线 顶点法 (vertex normal) 而不是表面法线,一个复杂的物体顶 点很多,所以计算量也就很大。

华章培训

第38页

设置顶点法线

//允许设置法线数组 gl.glEnableClientState(GL10.GL_NORMAL_ARRAY); //设置法线数组 gl.glNormalPointer(GL10.GL_FLOAT, 0, normals);

// 开启颜色材质 gl.glEnable(GL10.GL_COLOR_MATERIAL);

华章培训

第39页

小结

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

GL_FLAT 阴影模型 GL_SMOOTH

环境元素

光效

散射元素

位置

高光元素 顶点法线

方向

角度

华章培训 第40页

作业 思考? 思考?

物体的表面效果实际上是由场景中的光和多边形的材质决定 的,我们如何为一个3D空间中的物体设置材质呢? 材质又由什么样的元素构成呢?

华章培训

第41页

课程目标

(复习)光的三要素:环境光,散射光和高光。 复习)光的三要素: 三要素 什么是颜色? 什么是颜色? 指定材质 指定材质 glMaterialf\glMaterialfv、GL_FRONT_AND_BACK 材质三 材质三元素 环境元素、散射元素、高光元素 自发光

华章培训

第42页

光效三要素

在 OpenGL ES中,光由三个元素组成,分别是环境元素( ambient component), 散射元素(diffuse component)和 高光元素(specular component)。

华章培训

第43页

颜色

什么是颜色?

我们看得见的光被称为 光的可见频谱 。根据不同的波 长我们可以感知到不同的颜色。在可见光谱的一端是低波长高 频率的紫色和蓝色,而在另一端是低频率高波长的橘色和红色 。电磁波在这个范围之外,因此不是“可见光”,我们只关心 可见光谱。

华章培训

第44页

OpenGL 材质

材质

我们通常通过定义材质的反射光来定义OpenGL ES中的 材质,正如现实世界中一样。如果一个材质定义为反射红光, 那么在正常的白光下,它将显示红色。 在OpenGL中 (至少在使用光滑着色处理和光效时),材 质是没有颜色的。OpenGL具有分别定义材质是怎样反射 OpenGL光效三要素(环境,散射和高光)的能力。另外,它 还具有指定材质 自发光(emissive) 属性的能力,关于这 点我们稍后再讨论。

华章培训

第45页

指定材质

指定材质 要在OpenGL创建一个材质,我们需要一次或多次调用 glMaterialf() 或者 glMaterialfv()。于各属性或元素需要分别通过 这些调用了指定,所以我们通常必须多次调客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

用这些函数以完全 定义材质。所有未定义的元素或属性默认值为0,或者以颜色 来说为黑色。 传递给 glMaterialf() 或者 glMaterialfv() 的第一个参数总是 用于指定是否材质影响多边形的前,后或两者的GL_ENUM。在 OpenGL ES中第一个参数只能为GL_FRONT_AND_BACK。第二 个参数是指示正在设定材质的哪个元素或属性的 GL_ENUM。

华章培训 第46页

环境元素和散射元素

环境元素和散射元素 环境元素和散射元素 素和散射元 当讨论OpenGL的材质时,我们需要同时讨论环境光和散 射光,这是因为这两个元素是一起工作从而决定物体被感知的 颜色的。 环境元素(GL_AMBIENT) 散射元素(GL_DIFFUSE) 环境元素和散射元素( GL_AMBIENT_AND_DIFFUSE)

华章培训

第47页

高光元素

高光元素 光元素 还可以单独设置场景中高光元素的反射方式,从而控制高 光“热点”的亮度。一个叫 GL_SHININESS的参数与材质的 高光元素一起定义了高光热点的大小。如果你设定了材质的 GL_SPECULAR 值,你还应该定义其反光度。反光度越高,高 应 其反光度。反光度 光反射越小,所以默认值 0.0 几乎完全淹没了散射光。 高光使三角形边缘突出,高光通常在我们的游戏中经常使用的 低面片的物体上表现不佳。在常规OpenGL中,有一个称为 着 色器(shader) 的机制可以用来为低面片物体产生较为理想 的结果,但是只有OpenGL ES 2.0,有shader功能。

华章培训 第48页

自发光

通过设定自发光元素,使得材质看上去会发射我们指定的 颜色。它并不是真正在发光。例如,其周边物体并不会被发射 的光线影响。如果你希望一个物体像灯泡一样发光照亮其他物 体,你需要将自发光元素和与物体同一位置处的实际光源结合 起来。但是自发光元素可以使物体漂亮地发光。 自发光元素影响整个材质, 因此 GL_EMISSION的值将与 落入物体指定区域的任何类 型的光相叠加。

华章培训 第49页

小结

颜色 环境元素

材质的属性 glMaterialf\glMaterialfv

散射元素

高光元素

自发光

华章培训

第50页

作业

思考? 思考?

还有什么方式可以为多边形定义颜色或者创建材质? 可以通过哪几种方式来将纹理映射到多边形上去?

华章培训

第51页

感谢您对华章培训网的支持!

http://www. hztraining.com

客服QQ:874511079 2676949886 android开发联盟:/

Sundy高端android视频教程下载地址:/topics/2900036/

1

客服QQ:874511079 2676949886 android开发联盟:/

更多相关推荐:
游戏设计开题报告

一、选题的目的、意义和实用价值随着人们生活质量的不断提高以及个人电脑和网络的普及,人们的业余生活质量要求也在不断提高,选择一款好玩,精美,画面和音质,品质优良的休闲游戏已经成为一种流行的休闲方式。可以说在人们的…

扫雷游戏毕业设计开题报告

更多资料尽在大学生部落大学生第一门户社区毕业论文设计开题报告更多资料尽在大学生部落大学生第一门户社区更多资料尽在大学生部落大学生第一门户社区更多资料尽在大学生部落大学生第一门户社区更多资料尽在大学生部落大学生第...

徐鹏 网络游戏 开题报告

本科毕业论文设计开题报告题目关于数字化出版的浅思考二级学院四川文理学院专业计算机科学与技术影视艺术与技术方向班级20xx级2班学号20xx111501学生姓名徐鹏指导教师吴海霞20xx年11月17日四川文理学院...

毕业设计塔防游戏开题报告

手机游戏最终防线的开发与设计一综述开题报告据市场调研机构IDC发布的20xx第三季度统计数据显示目前全球Android智能手机出货量总计达到了136亿部消费者每天激活将近130多万台Android设备Andro...

俄罗斯方块游戏开题报告

届毕业设计开题报告题目基于C的网上汽车租赁管理系统的设计与实验专业姓名班级09通信Y1指导教师查志琴起止日期20xx120xx620xx年01月01日师的指导下由学生填写经导师签署意见及系部审核后生效

体育游戏 开题报告

毕业设计论文开题报告题目应用现状调查研究姓名万邦耀学号09110811系别体育科学学院专业指导教师卢玲20xx年6月22日毕业设计论文开题报告5阶段进度计划

扫雷游戏设计开题报告

淮阴工学院毕业设计论文开题报告学生姓名专业设计论文题目指导教师2月27日刘源学号1071303115计算机科学与技术信息安全扫雷游戏设计与实现王留洋20xx年毕业设计论文开题报告毕业设计论文开题报告毕业设计论文...

打飞机小游戏开题报告

毕业设计开题报告

游戏专业中国象棋开题报告

石家庄科技信息职业学院毕业设计论文开题报告题目学生姓名学号专业指导教师中国象棋人机对决软件技术游戏方向年月日毕业设计论文开题报告1结合毕业设计论文课题情况根据所查阅的文献资料每人撰写600字左右的文献综述随着计...

五子棋开题报告

本科毕业设计论文开题报告题目五子棋游戏的设计和开发学院部信息科学与技术学院专业软件工程学生姓名青龙学号20xx10413132年级07指导教师黄爱明职称讲师20xx年2月23日

基于C#连连看游戏开题报告

毕业设计论文开题报告题目基于C的连连看游戏开发专业名称电子信息工程班级学号08820xx08学生姓名曹丛指导教师廖远填表日期20xx年01月04一选题的依据及意义连连看游戏是一种桌面益智小游戏它简单易上手好玩还...

20xx 届毕业设计--开题报告

二级学院计算机信息工程学院班级10计一学生刘思宇学号10030115指导教师唐土生职称讲师

游戏开题报告(40篇)