OpenGL入门学习——写给想用计算机画图的朋友.doc_第1页
OpenGL入门学习——写给想用计算机画图的朋友.doc_第2页
OpenGL入门学习——写给想用计算机画图的朋友.doc_第3页
OpenGL入门学习——写给想用计算机画图的朋友.doc_第4页
OpenGL入门学习——写给想用计算机画图的朋友.doc_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OpenGL入门学习写给想用计算机画图的朋友OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。 2、强大的可移植性。 3、高性能的图形渲染。总之,OpenGL是一个很NB的图形软件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。说起编程作图,大概还有很多人想起TC的#include吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。2、强大的可移植性。微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL的基本命令都做到了硬件无关,甚至是平台无关。3、高性能的图形渲染。OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。总之,OpenGL是一个很NB的图形软件接口。至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。OpenGL官方网站(英文)下面我将对Windows下的OpenGL编程进行简单介绍。 学习OpenGL前的准备工作 第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C+ Builder,Dev-C+等,它们都是支持OpenGL的。但这里我们选择Visual Studio 2005作为学习OpenGL的环境。 第二步,安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。Windows环境下的GLUT下载地址:(大小约为150k)/resources/libraries/glut/glutdlls37beta.zip无法从以上地址下载的话请使用下面的连接:/upfile/200607311626279.zipWindows环境下安装GLUT的步骤:1、将下载的压缩包解开,将得到5个文件2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VCPlatformSDKincludegl文件夹”)。把解压得到的glut.h放到这个文件夹。3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VClib”文件夹)。4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:WindowsSystem32)第三步,建立一个OpenGL工程这里以VisualStudio2005为例。选择File-New-Project,然后选择Win32 Console Application,选择一个名字,然后按OK。在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。然后向该工程添加一个代码文件,取名为“OpenGL.c”,注意用.c来作为文件结尾。搞定了,就跟平时的工程没什么两样的。 第一个OpenGL程序一个简单的OpenGL程序如下:(注意,如果需要编译并运行,需要正确安装GLUT,安装方法如上所述)#include void myDisplay(void)glClear(GL_COLOR_BUFFER_BIT);glRectf(-0.5f, -0.5f, 0.5f, 0.5f);glFlush();int main(int argc, char *argv)glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow(第一个OpenGL程序);glutDisplayFunc(&myDisplay);glutMainLoop();return 0;该程序的作用是在一个黑色的窗口中央画一个白色的矩形。下面对各行语句进行说明。 怎么样?代码还不算长吧?首先,需要包含头文件#include,这是GLUT的头文件。本来OpenGL程序一般还要包含和,但GLUT的头文件中已经自动将这两个文件包含了,不必再次包含。然后看main函数。int main(int argc, char *argv),这个是带命令行参数的main函数,各位应该见过吧?没见过的同志们请多翻翻书,等弄明白了再往下看。注意main函数中的各语句,除了最后的return之外,其余全部以glut开头。这种以glut开头的函数都是GLUT工具包所提供的函数,下面对用到的几个函数进行介绍。1、glutInit,对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了。2、glutInitDisplayMode,设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色)。GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)。更多信息,请自己Google。当然以后的教程也会有一些讲解。3、glutInitWindowPosition,这个简单,设置窗口在屏幕中的位置。4、glutInitWindowSize,这个也简单,设置窗口的大小。5、glutCreateWindow,根据前面设置的信息创建窗口。参数将被作为窗口的标题。注意:窗口被创建后,并不立即显示到屏幕上。需要调用glutMainLoop才能看到窗口。6、glutDisplayFunc,设置一个函数,当需要进行画图时,这个函数就会被调用。(这个说法不够准确,但准确的说法可能初学者不太好理解,暂时这样说吧)。7、glutMainLoop,进行一个消息循环。(这个可能初学者也不太明白,现在只需要知道这个函数可以显示窗口,并且等待窗口关闭后才会返回,这就足够了。)在glutDisplayFunc函数中,我们设置了“当需要画图时,请调用myDisplay函数”。于是myDisplay函数就用来画图。观察myDisplay中的三个函数调用,发现它们都以gl开头。这种以gl开头的函数都是OpenGL的标准函数,下面对用到的函数进行介绍。1、glClear,清除。GL_COLOR_BUFFER_BIT表示清除颜色,glClear函数还可以清除其它的东西,但这里不作介绍。2、glRectf,画一个矩形。四个参数分别表示了位于对角线上的两个点的横、纵坐标。3、glFlush,保证前面的OpenGL命令立即执行(而不是让它们在缓冲区中等待)。其作用跟fflush(stdout)类似。 大家可以按照上面的叙述,自己设置编译器,下载GLUT,并亲手编译示例代码。祝大家成功以后有空我会陆续放出后面一点的教程。声明:我本人也是OpenGL菜鸟,大家可不要指望我可以教大家写个“星际争霸”什么的。当然也欢迎有此能力的朋友能给我们上一上课了。 关于计算机图形学的学习一定要记住,不要指望通过一本教材就学会计算机图形学,它比你想象的要复杂的多。1 引言 计算机图形学是用计算机来画东西的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科。在法国,图形图象是一门课程。 如何学习计算机图形学呢?除了计算机图形学的基础知识以外,你还需要有以下的知识,你懂的越多,当然做的越好。 * 英语, 你一定要把英语学好,如果你想学习计算机图形学的话,尽量看英文的书籍和资料 * 数学, 计算机图形学里面的数学用的比较多,我们可以列举一些常用的: 高等数学,数值分析,微分几何,拓扑,概率, 插值理论,(偏)微分方程 * 物理, 如果你要进行基于物理的建模,一些物理理论是要学习的: 力学(运动学,动力学,流体力学),光学,有限元 * 编程语言: C或C+是计算机图形学最通用的普通话, * 数据结构: 你需要数据结构来描述你的图形对象,除了通用的链表、树等数据结构外,图形学还有自己特殊的数据结构 * 其他类别: 有的时候你需要其他学科的知识,根据你的需要去学习吧 上面列举的不是你必须学习的东西,而是计算机图形学可能会用到的东西,一定要记住,不要指望通过一本教材就学会计算机图形学,它比你想象的要复杂的多。 2 图形学的问题 每个学科都有自己学科的特定问题,图形学要解决的是如何画出图来,得到需要的效果,当然这是图形学最大的一个问题。 在开始学习计算机图形学的时候,找一本简单的书看,对计算机图形学有个大概的认识,你就可以开始图形学之旅了: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 1.4, Fourth Edition OpenGL SuperBible (3rd Edition) 是比较好的学习计算机图形学的入门教材,在练中去学,一开始就去啃Foley的Computer Graphics: Principles and Practice, Second Edition in C 不是好主意,会看的一头雾水,一本什么都讲的书的结果往往是什么都没讲清楚。 当你把OpenGL的基本内容掌握之后,你对图形学就有了大概的了解了 那么下面你可以来学习一下计算机图形学的数据结构和算法,下面的书比较适合Joseph ORourke 的Computational Geometry in C,书里面有C的源代码,讲述简单,清晰,适合程序员学习 总的来说,计算机图形学涉及到2大部分:建模和渲染 2.1建模 你想画一个东西,首先要有它的几何模型,那么这个几何模型从什么地方来呢?下面的书很不错的: Gerald Farin 的Curves and Surfaces for CAGD: A Practical Guide 这本书就有一点的难度了,呵呵,要努力看啊 这本书算是CAGD (计算机辅助几何设计)的经典图书,CAGD方面的全貌,还有2本很好的讲述曲面的书Bezier和Nurbs的书Les A. Piegl, Wayne Tiller 的The Nurbs Book 书里面有NURBS曲线、曲面的程序伪代码,很容易改成C的,书讲的通俗、易懂,但是你要有耐心看的:) 曲线与曲面的数学 这本书是法国人写的中文翻译版,里面还有Bezie本人写的序J,翻译的很不错的,看了你就掌握Bezier曲面技术了 /另外一些你想知道的事情:其他的造型方式-开始 注意:在后面会有这样的章节,标明 /另外一些你想知道的事情:其他的造型方式-开始 /另外一些你想知道的事情:其他的造型方式-结束 里面是我认为的一些高级话题,跳过他们不影响你学习计算机图形学,但是要学好就要注意了,呵呵 还有其他的一些造型技术,比如: 隐式曲面(Implicit Surface)的造型: 就是用函数形式为F( x ,y ,z ) = 0的曲面进行造型,这样的造型技术适合描述动物器官一样的肉乎乎的东西。有2本书推荐大家 Jules Bloomenthal编辑的Introduction to Implicit Surfaces,是一本专著,讲述了Implicit Surface建模型(Modeling),面片化(Polygonization),渲染(Rendering)的问题 Luiz Velho 的 Implicit Objects Computer Graphics 也是一本专著,讲述个更新的一些进展细分曲面(Subdivision Surface)造型当用NURBS做造型的时候,曲面拼接是复杂的问题,在动画的时候,可能产生撕裂或者褶皱,Subdivision Surface用来解决这个问题 Joe Warren的Subdivision Methods for Geometric Design: A Constructive Approach就是这方面的专著 从实际物体中得到造型,现在的技术可以用三维扫描仪得到物体表面的点,然后根据这些点把物体的表面计算出来,称为重建(Reconstruction),因为这些技术之在文章中论述,所以我们省略对它的描述 /另外一些你想知道的事情:其他的造型方式-结束下面还是一个高级话题:) /另外一些你想知道的事情:光有造型是不够的!-开始在你的几何模型做好之后,有一些问题需要对这个模型进一步处理,得到适合的模型,当面片很多的时候,或者模型很复杂的时候,需要对几何模型进行简化,才可以满足一些实时绘制的需要,这个技术叫做层次细节(LOD-Level of Detail)。下面的书就是讲这个的: David Luebke编著的 Level of Detail for 3D Graphics /另外一些你想知道的事情:光有造型是不够的!-结束 2.2渲染 有了模型,怎么把这个几何模型画出来呢?这个步骤就是渲染啦 如果你看了上面的OpenGL的书,那么你就知道一些渲染的知识了,但是别高兴的太早,OpenGL使用的是局部光照模型(Local Illumination Model),不要被这个词吓住了 Local illumination Model指的是在做渲染的时候只考虑光源和物体之间的相互作用,不考虑物体和物体之间的影响,所以OpenGL不支持阴影,一个(半)透明物体的效果.,这些需要考虑物体之间的影响才可以实现。 /另外一些你想知道的事情:OpenGL可以实现阴影-开始 OpenGL本身不支持,但是通过一些方法可以实现的:),用Google搜索一下 Shadow Volume, OpenGL就找到答案啦 /另外一些你想知道的事情:OpenGL可以实现阴影-结束 Global Illumination Model 这类模型考虑的就比较全啦。现在关于Global Illumination的技术有3大类,具体的技术就不在这里介绍了,如果想了解,可以联系我,大家一起讨论: 光线追踪(Ray Tracing) 关于Ray Tracing的好书有2本: Andrew Glassner 的An Introduction to Ray tracing Glasser是图形界的名人,这本书也是Ray Tracing的经典 R. Keith Morley, Peter Shirley 的Realistic Ray Tracing, Second Edition 这本书第一版是伪代码,第二版是C代码。它的结构不是很清楚,虎头蛇尾的感觉。 辐射度(Radiosity) 关于Radiosity的好书有4本: Michael Cohen 的Radiosity and Realistic Image Synthesis , Cohen获得SIGGRAPH 1998计算机图形学成就奖,他把Radiosity变成实际可用,现在Cohen在MSR图形http: //cohen/CohenSmallBW2.jpg Francois X. Sillion的Radiosity and Global Illumination , Sillion是法国人,他的主要研究方向是Radiosity,这本书写的很不错的,非常清晰 Philip Dutre 的新书Advanced Global Illumination ,看起来还不错,刚拿到手,还没看,呵呵,所以不好评价 Ian Ashdown的Radiosity: A Programmers Perspective 有源代码的书啊! 就凭这个,得给5* Photon mapping 这个我也不知道怎么翻译,呵呵。这个技术出现的比较晚,一本好书! Henrik Wann Jensen的Realistic Image Synthesis Using Photon Mapping Henrik Wann Jensen是Photon mapping技术的发明者 3.3这些也是图形学吗? 图形和图象的区别模糊了:( 除了上面讲的经典的计算机图形学,还有下面的一些东西,它们也叫计算机图形学吗?是的! 3.3.1非真实性图形学(Non-Photorealistic Graphics) 真实性不是计算机图形学的唯一要求,比如:你给我画一个卡通效果的图出来,或者我要用计算机画水彩画怎么办?或者:把图象用文字拼出来怎么做?,解决这些问题要用到非真实性图形学, 好书继续推荐! Bruce Gooch, Amy Ashurst Gooch的 Non-Photorealistic Rendering 3.3.2体图形学(Volume Graphics) 用CT机做很多切片(比如头骨),那么能通过这些切片得到3D的头骨吗?Volume Graphics就是解决这样的问题的 Min Chen 编著的Volume Graphics 上面的2个图形学技术就和图象的界限不明显了,实际上他们是图形图象的综合4 .还有其他的书吗? 还有一些好书啊,呵呵,好书看不完的:),继续放送: Graphics Gems I V,一大帮子人写的书,包括研究人员,程序员 有计算机图形学的各种数据结构,编程技巧 Tomas Akenine-Moller 等人编著的Real-Time Rendering (2nd Edition) 许多最新的计算机图形学进展 David Ebert等人的Texturing & Modeling: A Procedural Approach, Third Edition 讲述如何通过程序实现纹理、山、地形等图形学要素 F. Kenton Musgrave号称分形狂(Fractal Mania) Ken Perlin就是Perlin噪声的发明者,用过3d软件的人对Perlin Noise不会陌生的 关于图形学的特定对象,有特定的专题图书, Evan Pipho Focus On 3D Models,对于图形学的常用模型格式,进行了讲解 Trent Polack的 Focus On 3D Terrain Programming ,讲地形的 Donald H. House 的Cloth Modeling and Animation ,讲布料的 Nik Lever的Real-time 3D Character Animation with Visual C+ ,讲角色动画的 还有:) Richard Parent的 Computer Animation: Algorithms and Techniques,当然是讲动画的啦,呵呵。 David H. Eberly的3D Game Engine Design : A Practical Approach to Real-Time Computer Graphics ,有代码的啊!呵呵:) 最后,没事情的时候,看看下面的书吧 Alan H. Watt, 3D Computer Graphics (3rd Edition) James D. Foley等人的 Computer Graphics: Principles and Practice in C (2nd Edition) ,这本圣经没事的时候再看吧,呵呵 累了:( 不说了,上面的书差不多了,还有一些shader的书,我不了解,以后会补上的:) 5.从哪里找到这些书啊?还有什么资源啊? 我保证,上面的书在 都可以买到:) 别打我OpenGL学习资源来自网络上的推荐,未一一验证,如果网址有任何问题请告诉ITHao.COM,邮箱: ,谢谢 重点推荐::opengl的官方网站,内容丰富,学习opengl知识的百宝箱,圣地。重点推荐:/: NeHe网站的opengl教程,讲解的非常详细,非常适合初学者,把上面的教程看完,应该对opengl有初步的认识。/products/software/opengl/:sgi公司的opengl主页。/Terry/OpenGL/Introduction.html#Introduction:tulane大学opengl教程 /reference/opengl-bluebook-1.0/bk02.html:opengl参考手册(reference manual)/nate/opengl.html:Nate Robin的教程,不同的视角,和演示,比nehe来的直观,适合对opengl的初步了解。/reference/list.asp?categoryid=31GameDev的opengl主页,有很多技术帖子,相当不错。http:/www.mevis.de/opengl/opengl.html:opengl index 对所有的opengl命令的详细解释。http:/www.codecolony.de/opengl.htm:codecolony 的opengl教程基本上就是这些,初学者把nehe的教程学完,再作深入的学习,是一个不错的选择。关于怎么学习API (OpenGL/Direct3D等) 针对初学者 API是工具,不是本质,OpenGL/Direct3D的本质是图形学,而不是OpenGL/Direct3D的本身,API的本身只是一些Interface而已.最近很多人在问,我该如何学习OpenGL?我学完了OpenGL了,该怎么用? 我想在回答这些类似的问题以前先和大家谈谈怎么学习API的方法,或许谈完了,我就不需要回答了。 首先,我认为API是工具,不是本质,OpenGL/Direct3D的本质是图形学,而不是OpenGL/Direct3D的本身,API的本身只是一些Interface而已.如果你明白图形学的原理.那么你很容易这些接口的作用,以及为什么要有这些接口的存在.所以,我要说的第一点是:你要学习3D编程,不是学会了OpenGL/Direct3D就可以了。甚至会不会这些API都不是那么的重要(虽然这么说,或许很多人不太赞同).最重要的,最根本的是,你要明白这些API背后的图形学的原理-因为那才是根本中的根本. 下面我来介绍我对API学习的看法. 我认为API的学习有两种方法:一是正向学习.二是反向学习. 一:正向学习,所谓的正向学习,就是学习API的本身.我觉得这种方法是一种Brute Force行为.不是很好.我们只要看看API的特性,有那些部分.就可以了。比如学习Direct3D的时候,我们要知道它如何初始化,以及它和操作系统的结合.它在Direct3D8里引入了VS/PS.最后就是创建一个Direct3D应用的步骤和方法.这些就足够了。要不然.Direct3D那么多的函数,每一个都会要了我的命. 正向学习的第二个作用就是你在熟悉了图形学和大概了解了API后,有空就来看看API的细节,然后思索一下API里提供的一些特性对你的程序有什么作用.比如Direct3D里的Two Side Stencil.OpenGL里的TextureCombine等。 二:逆向学习.这是根本的方法,到了这一步,你就可以真正的算是图形学入门了。这要求你要有一定的图形学基础.比如,你现在开始做一个demo.你预计你的demo里有一堆眩眩的效果,当然你也要明白你的这些眩眩的效果要怎么实现的.然后你去找API里对应的功能,我想如果你的想法正常,一般的功能在Direct3D/OpenGL里应该都会有的.当然你也会碰到你想要的功能在这些API里没有,但是这不重要,重要的是你又学到新东西了-这个特性在XX API里不支持_. 通常我是采用先正向,再逆向,同时再进行正向学习的方法.希望以上的建议,对各位初学者有一定的帮助. 如何建立一支强力的手机游戏开发团队如何建立一支强力的手机游戏开发团队的问题:STEP.1 找一名经验丰富的策划做LEADER;STEP.2 招聘;STEP.3 办公室和设备呵呵,现在有很多公司要开始开发手机游戏,那以下这篇文章值的大家看看,说不定有些益处,我想对从事手机游戏开发行业的人来说,也是一个很好的文章,可以找到自己的定位,这样的公司,这样的团队要什么样的人!(在Baidu里找的)各位,今天我们来谈谈如何建立一支强力的手机游戏开发团队的问题。 STEP.1 找一名经验丰富的策划做LEADER 一般来说,策划在游戏开发团队中的作用很难界定,因为他并不想画图的艺术家或编码的科学家那样有明显的标签,也不像写故事的剧作家那样有明显的工作成果,所以长期以来,在我国的游戏业界很有些人将策划与办公室助理划上等号。其实这种错误是因为对游戏开发工作本身缺乏了解,和我们国家并没有成熟的游戏人才培养氛围,使得大量滥竽充数的伪策划充斥业内,才造成了如今这种劣币淘汰良币的事实。 一个真正的策划是什么都要通的,市场、技术情报、沟通、美术、音乐、程序、编剧、管理流程、宣传、软硬件器材都要考量,虽然不见得全要精通,但游戏策划事实上相当于一部电影的导演。 正因为策划的工作范围涉及了如此广泛的方面,所以策划对于聘用什么样的人才最是要心中有数,若非如此,自然不能对游戏开发的各个环节了如指掌,也不能对游戏的质量予以把握,出来的产品会是什么样子,恐怕只有上帝知道。 同时,为了能彻底的贯彻策划意图,将停留在幻想阶段的策划案变成实实在在的游戏,必须要给予LEADER必要的权力,只有这样才能做到上令下行,才能将游戏在保证质量的前提下制作出来。 本来很多优秀的策划案就是因为策划的意图不能贯彻执行最终都变成了一纸空谈,这是游戏开发公司必须要重视的问题。 STEP.2 招聘开始了 有了一名经验丰富的策划后,不要犹豫,派他去找人吧! JAVA游戏由于目前的功能有限,所以一般的开发团队主要是需要程序、美工这两种人才。目前市场上的主流机型,比如NOKIA、MOTO等都支持J2ME语言,所以程序员也要以此为主要技能,同时游戏编程与普通的软件编程也有很大区别,计算机图形学和各种优化图像大小的算法多少也有要懂些,如果有实际的开发经验,并且热爱游戏的话,那就太完美了。 SYMBIAN游戏主要使用C+语言编程,其他条件与J2ME程序员相同。 美工方面主要要求是掌握点阵图的画法。软件以PHOTOSHOP为主,对色彩构成必须很了解,手绘技能由于手机游戏要求的图都是很小尺寸的图形,所以不是很重要。别的方面还是那句话如果有实际的开发经验,并且热爱游戏的话,那就太完美了。 目前业内手机游戏方面的有经验人才薪资都被炒的虚高,所以我认为如果没有迫切压力的话,不妨试着从新手培养,只要坚持热爱游戏和心态踏实这两点原则,不难在短时间内培养出优秀的人才,国内著名的手机游戏开发论坛上并不缺乏这类人的身影,何况还可以通过和NOKIA等厂商在各个大学中开办的培训专业里挑选。而美工方面由于近年动漫市场的火爆比找程序员更容易,夸张点说随时都能抓出一大把技艺高超的艺术家来。 其他人员,如配乐、测试等可以等发展达到一定程度后再委以专人负责,初期可以由其他部门人员负责。 薪资上,刚毕业的新人试用期一律以3K/M为基准,有过实际开发经验的则按情况而论,估计在6-8K左右。 STEP.3 办公室和设备 电脑基本配置如下: CPU: Intel Celeron4 2.4G 主板: 技嘉 GA-8I845PE-RZ 内存: Hy 256M DDR400 硬盘: 希捷 酷鱼7200.7/ST380011A 显卡: 小影霸 G8520D 显示器: 优派 E70f 键盘: Microsoft 光学灵动鲨套装 Basic Optical Desktop 机箱: 华康 107(空箱) 电源: 航嘉 BS2000+ 手写笔: WACOM 价格总计:4500元左右 其中程序员所用的电脑不需要手写笔,可以改为增加一条256M内存。 还需要购买几部市场主流的手机用于测试,相应的通讯工具如蓝牙、IRC等设备也必须齐备。 另外就是最好有单独的办公室,将游戏开发部门同其他部门员工分隔开来,避免相互之间的影响。 一个完整的手机游戏开发团队最重要的资产就是人,在此我们得感谢互联网将我们带进了这个资讯发达得世界,得此助力,所需要得一切人才基本上都能在网上找到。当将这些人装到一个办公室之后,如何扬长避短,人尽其用,发挥出最大潜能,制作出世界一流的手机游戏则是管理者最为重要的问题。 游戏开发要掌握的知识初探要看开发什么游戏了,开发2D RPG,则不需要那么多知识,C+,DIRECTX,数据结构和计算机图形常识,RPG游戏制作流程及常识,会用MFC或VB来开发地图脚本编辑器,最后加上一些算法,A*,ALPHA BLENDING,斜45度地图技术等就可以了。游戏开发所需知识 数学基础:高等数学、线性代数、离散数学、数值分析等; 编程语言:c/c+、汇编(pascal、java可选); 编程工具:vc+6.0、delphi; 操作系统:windows api,系统工作原理; 硬件基础:计算机工作原理,特殊硬件优化; 图形基础:计算机图形学,图形快速显示算法,抖动算法; 多媒体:波形文件回放,音频设备控制,视频图像的解码及播放; 压缩加密:声音、图像压缩解压缩算法,加密算法; 游戏sdk:opengl,directx; 其它知识:人工智能,脚本算法,遗传算法,模糊逻辑,物理建模(uml),软件工程,编译原理。 日本游戏培训课程: 第一年:c语言,游戏设计,文章构成,windows开发,计算机系统导论,程序算法,游戏开发工具使用,情报数学,windows基础; 第二年:c+语言,windows程序游戏设计,cg数学,java,playstation程序开发,可视化程序开发,数据通信,数据库入门; 第三年:游戏开发演习,游戏理论,directx研究,vb游戏制作,java游戏制作,playstation研究; 游戏设计工具: 调试器: ollydbg(免费); 十六进制编辑: hex workshop; 安装工具: install shield professioal midi音乐: cakewalk; 声效音乐: cooledit(或sound forge); 3d建模: 3dmax(或maya); 2d图形程序: paint shop pro(或painter); 2d画图程序: coreldraw; 2d图像处理: photoshop; c/c+编译器: vc+6.0; 要看开发什么游戏了,开发2D RPG,则不需要那么多知识,C+,DIRECTX,数据结构和计算机图形常识,RPG游戏制作流程及常识,会用MFC或VB来开发地图脚本编辑器,最后加上一些算法,A*,ALPHA BLENDING,斜45度地图技术等就可以了如果你想编游戏,而又有很多不清楚的问题,那请看这个: 1 语言编程:c/c+ 2 编程基础一定要好:数据结构,c/c+语言 2 IDE集中开发环境:visual studio .net 2003 3 游戏开发SDK用DirectX9 4 Win32 api开始的时候不能学的太多 5 可以不用MFC(如果你c+基础好,MFC学起来很简单) 6 编网络游戏,使用winsock,通讯协议用TCP 7 多下载源代码,观看之 8 数学上的要求(其它基础文化课类似):不需要了解算法的来历、推导等,但一定要知道它们是干什么用的以及如何用 9 学习STL,必须C+要过关!否则会很难学。首先要学会如何用STL,再想深入的话,学习STL的内部代码。STL首先从list,vector学起。 这里有一些经典推荐书籍介绍: 微型计算机原理及应用(第三版) 编著:郑学坚 周斌 清华大学出版社 这是一本大学计算机基础教材,虽然内容不是很新鲜,但基础部分和汇编部分还是不错的,并且价格方面,嘿嘿,借也可以借到,拥有这本书的学生真是太多了。 C程序设计(第二版) 作者:谭浩强 清华大学出版社 这本书不用我说,大家也都知道,流传最广泛的C语言教材了。如果看好了此书,C的功底一定不错! 数据结构(C语言版) 编著:严蔚敏 吴伟民 清华大学出版社 又是一本大学经典教材,想对程序有深入了解,数据结构不可不看,学了他,你才能打开专业之门。 C+编程思想(第二版) 作者:Bruce Eckel 机械工业出版社 嘿嘿嘿,又是经典之作,想学C+和OO,看他,绝对没错,不用买别的C+入门书籍了!绝对经典。 The C+ Standard Library-A Tutorial and Reference 作者:Nicolai M. Josuttis 具有了一定的C+功底,该是看他的时候了,STL可是前人的思想精华。这本书主要讲述如何使用STL.(我只有这本书的电子版) 设计模式 作者:Erich Gamma等著 机械工业出版社 初级游戏开发指南 本文试图帮助那些想实现自己的游戏,但又没什么编程经验的人。事实上,在这里我将假定您根本不懂编程,我主要针对游戏开发的编程与设计进行阐述,而不会涉及设计艺术。我也不大算对这个行业展开长篇赘论(毕竟到处可以找到大量的资源),但我将指出在制作你自己的游戏时需要注意的某些事情。作者:Dave Astle译者:R1. 作者简介 从1984年开始,Dave Astle就做着游戏开发工作。日间,他是ROI System,Inc的一名软件工程师,夜间,引领Myopic Rhino游戏开发小组。只要有时间,他就会帮助GameD成为最好的游戏开发资源网站。当然,他也需要偶尔的休息。2. 译者序3. 正文 很多刚接触开发或没什么编程经验的人经常会问:我该如何开始游戏编程。即便直到现在,我也只是帮助回答我所知道一个又一个的基本问题。然而,最近这种类似问题太多了,多的有些难以接受了,所以,我决定还是把所有建议写下来,分享给大家吧。 本文试图帮助那些想实现自己的游戏,但又没什么编程经验的人。事实上,在这里我将假定您根本不懂编程,我主要针对游戏开发的编程与设计进行阐述,而不会涉及设计艺术。我也不大算对这个行业展开长篇赘论(毕竟到处可以找到大量的资源),但我将指出在制作你自己的游戏时需要注意的某些事情。最后,这里展示的途径不是唯一的也不一定是最好的只是指出了该怎样制作游戏的学习途径,但对我和另外一些人来说,它已经足够好了。 选择一门语言 首先,你应该选择一门编程语言,可能会有很多选择:Basic,Pascal,C,C+,Java等等,并且还会有许多许多争论:对于一个新手来说,到底应该(最好)使用哪种语言呢?对于若干流行语言的讨论,可以看John Hattan的精彩文章“What Language Do I Use?”(/reference/design/features/whatlang)。我会建议使用C/C+,可能有人会说“对于新手来说太深奥了吧”,起码我就是从C+开始的,所以对大家也应该没有问题。另外,C/C+应用很广泛,所以你可以找到大量的资源及帮助。先学C还是C+并不关键,毕竟只要学了一门,另一门也会触类旁通。然而,如果你决定先学习C+的话,还是应该在学习面向对象编程前首先要了解并掌握面向过程的开发。(也就是说,学习使用类前,你完全可以不用它们而很好进行开发) 如果采用C/C+的话,可能发觉深入会越发的困难,当然,重新开始再选择学习一门更为简单的语言,如Basic或者Pascal,也未尝不可,但我还是要告诉你,只要坚持下去,找到所需的资源,逐步深入,C/C+开发也会越来越得心应手。 接着你应该会问“那我该如何学习C/C+呢?”,很高兴你会这么问。最好的办法是上一个培训班(课),有老师或助教回答你的问题,能使你迅速提高,而留下的作业也会确认你是否真的掌握了你所学的知识点。(译者注:呵呵,在国内很难碰到这么好的教师吧) 如果上培训班对你来说不现实的话,那最好的办法就是找一些好的书籍。不要过于专注“精通”之类的书籍,否则,最后你可能会买上一大摞。我的建议是到最近的图书市场,在那里花些时间来浏览那些关于C/C+介绍(入门)的书籍,直到你确定你能读懂并能从那本书学到一些东西。然后,等你需要一些高级编程的书籍,或者是一本参考时,由于你对于这门语言有了些许了解,那时你就会知道你更需要什么。我们的“books section”中给了一些建议,地址为:/columns/books/。 在此,我还想费些口舌来提醒众多的编程新手,尤其是那些年轻人:没有钱买书或者干其他的事情。首先,你可以找到很多编程资源,其中包括本地库文件,还有Macmillan Computer出版物,通过/personal可以找到成千上百的编程书籍。但是,其次,如果你真的想成为一名出色的程序员,有时脑筋不得不转个弯儿,使用任何东西(合法的;)都意味着你不得不数数口袋里的钞票然后掏出来。 通过Web完全可以找到大量的C/C+学习指南,但我觉得这些指南最好作为你学习书籍的补充,而不是作为单独的资源使用。 选择合适的编译器 你写的程序或者说是源代码,被存储为文本文件,你完全可以使用Notepad来写一个C/C+程序,但你还是需要“某些东西”来把源代码转化成可执行文件。在C/C+中,这个“某些东西”指的就是编译器。编译器有很多,有些还是免费的,选择一个适合你的很重要,免费的更方便你去尝试,并选择一个你觉得最好的。然而,免费也通常意味着功能不全或者支持不够。幸运的是,大多数商业编译器也有入门及学术版本(introductory or academic versions),这样你就会花更少的钱而获得全部功能,唯一的限制是:你不能把用它编译的程序发布出去(毕竟在某段时间你不会发布)。 最后,你选择的编译器应该取决于你的花费及开发所处于的操作系统或平台。如果打算在Windows下开发,强烈建议使用Microsoft Visual C+,它拥有一个强大的开发环境,使得开发变得更容易,并且毫无疑问开发Windows应用程序也没有其他更适合的编译器。(译者注:应该是针对C+而言,不过使用BC或者其他编译器的肯定不同意,但我也推荐使用VC,因为开发资料确实很多,虽然我也不太会:))如果你是学生,那太好了,你会以不错的折价得到一个拷贝,如果在DOS下编程,最好赌注DJGPP(/djgpp),它是免费的。(译者注:的确真的确实非常好奇地问“DOS下开发的人还有么?”) 目标平台 尽管你最终可能发布到若干不同平台下,但你还是需要一种来重点学习。一旦学习一门语言,在进入开发前(包括图形开发),你可能需要使用一个非GUI的操作系统,如DOS或者UNIX,这会避免一些前置问题(the overhead involved with),例如,Windows编程中,你就可以仅专注于语言的学习,(而不用担心界面部分)。 一旦你准备好开始游戏编程了,你还是应该确定你的目标平台。还是让我们看看更多的(需要注意的)重要环节吧: Windows:如果你想在游戏行业中做的很专业,或者更多的人能玩你的游戏,那就选择Windows吧。重要的是你的用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论