注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

东东的博客

江南烟雨,同大家一起分享

 
 
 

日志

 
 

[翻译]Android 3D 游戏开发教程– Part I  

2010-06-17 10:45:05|  分类: android相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这几篇Android 3D游戏开发的文章原文出自一位德国人Martin 在droidnova.com写的文章,有lixinso翻译为中文。

第一部分首先介绍OpenGL相关的术语,并引导你开始3D开发的第一步。

这个关于3D游戏的系列的叫做 Vortex .

这个教程主要focus在3D编程上,其他的东西比如菜单和程序生命周期虽然是代码的一部分,但是在这里不会被提到。

首先开始介绍OpenGL的术语。
      顶点Vertex
顶点是3D空间中的一个点,也是许多对象的基础元素。在OpenGL中你可以生命少至二维坐标(X,Y),多至四维(X,Y,Z,W). w轴是可选的,默认的值是1.0. Z轴也是可选的,默认为0. 在这个系列中,我们将要用到3个主要的坐标X,Y,Z,因为W一般都是被用来作为占位符。vertex的复数是vertices(这对非英语母语的人来说 比较重要,因为这容易产生歧义)。所有的对象都是用vertices作为它们的点,因为点就是vertex。

三角形Triangle
三角形需要三个点才能创建。因此在OpenGL中,我们使用3个顶点来创建一个三角形。

多边形Polygon
多边形是至少有3个连接着的点组成的一个对象。三角形也是一个多边形。

图元Primitives
一个Primitive是一个三维的对象,使用三角形或者多边形创建。形象的说,一个有50000个顶点的非常精细的模型是一个Primitive,同样一个只有500个顶点的低模也叫做一个Primitive。

现在我们可以开始变成了。

创建一个工程交Vortex,activity也是这个名字。我们的工程应该大概是这个样子的:

_UP)5JW_0(88RK@BUPZCPUC

如上图所示,我们已经添加了View。让我们看一下VortexView类。

N9CBO_$U1W@QX7B}]9P11DY

如上所示,我们继承了GLSurfaceView是因为它会帮助我们画3D图像。接下来看VortexRenderer类。一个Renderer包含画一帧所必需的所有东西。 引用自这儿references

Renderer负责OpenGL call来render一个帧。

来看一下这个类。:

CDH7XV~@${099R)JDPH040G

好,我们做了什么?

首先我们实现了GLSurfaceView.Renderer这个接口,主要是实现3个方法:onSurfaceCreated(), onSurfaceChanged() 和 onDrawFrame()。这些方法很容易理解,第一个在surface创建以后调用,第二个是在surface发生改变以后调用,例如从竖屏切换到横 屏的时候,最后一个方法是当任何时候调用一个画图方法的时候。

从11行到13行,我们用浮点数来定义RGB颜色系统中的每一个颜色。

在28行,我们通过glClearColor()方法为底色定义了颜色。底色是在我们能看到的所有东西的后面,所以所有在底色后面的东西都是不可见 的。可以想象这种东西为浓雾,挡住了所有的东西。然后我们将要为之设置距离来show一下它怎么用的。那时候你就一定会明白它是怎么存在的了。

为了让颜色变化可见,我们必须调用glClear()以及颜色缓冲的Mask来清空buffer,然后为我们的底色使用新的底色。
     为了能看到它在起作用,我们这里为MotionEvent创建一个response,使用它来改变颜色。首先在VortexRenderer中来创建一个设置颜色的函数。

3Z6${J{5PQE5XJ1T60Z[NP9

下面是VortexView类中创建的方法来处理MotionEvent。

Q(D'1MDKKF_'PJ]UQD88_DR

我们创建了一个匿名的Runnable对象,这里的run()方法调用renderer中的setColor方法。这有会根据MotionEvent坐标做一些小的计算。

现在我们已经有了一个小小的程序来使用OpenGl来改变我们的背景色了。:)
    在德语中我们叫这种小case为“Mit Kanonen auf Spatzen schie?en”,翻译过来应该是“你在车轮上打死了一只苍蝇”。这说的恰到好处,这只是一个最最最小的例子,要学习OpenGL,你现在要准备更多更多的东西。

这部分最后提一下OpenGL的文档documentation for OpenGL 。这个东西虽然可用想不高,但是它最少是一个文档。

Eclipse工程源代码在这里下载(原地址): Vortex Part I

这里是几个截图:

image


转自:http://blog.csdn.net/lixinso/archive/2010/01/30/5272495.aspx


  评论这张
 
阅读(536)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017