《 DirectX 9.0 3D游戏开发编程基础》书评

来源:互联网 发布:mac全灭怎么拖出飞机 编辑:程序博客网 时间:2024/05/29 08:29

 

 

我还是愿意尊它为龙书

文章来自豆瓣,Captain 

http://book.douban.com/review/4504528/

 

 首先得声明我这篇文章只有很少的篇幅介绍龙书,其实我是想写点东西给那些看完龙书的人。 
   这是我接触3D图形编程的第一本书,接触3d图形编程前,我看的是《Windows 游戏编程大师技巧》,只看了前几章,当时我急着想去学3D的酷玩意儿,立刻就没耐心看GDI,DirectDraw。转投Direct3D门下,入门书当然是这本龙书了。对我来说龙书最棒的地方在于,它除了开始的数学基础章节外,每一章都能详细地引导读者去实现一个简单的3D特性,从画三角形到摄像机,到简单的粒子系统,地形,甚至到shader。Luna无疑是睿智而狡猾的,他知道初学者往往耐心不够,所以他总是适时地丢出个胡萝卜,让读者保持着继续的动力。这一点是我在《Windows 游戏编程大师技巧》没看到的。(见鬼,谁爱去学画线那点破玩意...这里完全是个人情感,我没看完后者,所以没资格评价) 
   但是Luna忽视了一点,就是学完了龙书该做什么?他或许没想到有很多投身于游戏编程的孩子都是像我这样,眼高手低而且懒于探索,爱看现成内容的。起初的他们编程基础不扎实(1年编程经验),完全不了解图形学(就龙书那点,而且多半只是照葫芦画了个瓢,还是不懂原理)。于是这些孩子后来的日子就苦了。 
   由于他缺乏埋头苦干的品质,于是他们只能上网寻找高人指点如何走下面的路,接着他苦苦寻找该如何理解和实现更高深的内容,去看DirectX Sampler里晦涩的代码,虽然很多知识对当时缺乏实际代码经验的他实在有点难,在这样茫茫然然浪费了许多时光之后,他找到一本还可以的英文书,里面虽然内容不深,但是一步一步教着去实现了简单的Demo,里面包含了蹩脚的封装,难堪的场景管理,但对他来说还是可以够到的,于是他终于东拼西凑地写出了第一个属于自己的Demo。他看到了自己的不足,但还不知道如何改进,他觉得这个学习之旅越来越难,懒惰催促着他该放弃了。但他的内心不愿放弃这个童年的梦想,于是他甚至逼迫自己翻译了另一本英文书籍,他又能看懂更多了。或许是冥冥中的必然,他看到了Ogre,在经历的那么多晦涩的代码后,学习Ogre已经不再是那么难了,他在同学的帮助下熟悉了部分Ogre,写了更多的代码,看了更多的代码。终于,他发现曾经如同天书的RTR,现在闪烁着金色的光芒,而他发现自己图形的基础实在太差了,而且对图形引擎的细节还是一知半解(游戏引擎更别说了)。于是他便开始阅读ogre的源码,并纳为己用...... 
   我不知道还有没有像我这样的笨蛋,但现在回头想想,自己当初如果能有个人来指点一二,并且沉下心,多写代码,今天我能走的更远。下面就是推荐学习的路线: 
  0.耐下性子,认真学习数据结构与算法,至少要学到图。这是我当年没有好好做而如今最后悔的步骤,推荐书无所谓,严蔚敏的也行,allen weiss的最好,但最重要的是不是光去理解,而是自己去实现,你会发现后者比前者难的多。 
  1.DirectX的龙书,我推荐看清华大学翻译的这个,首先段菲翻译的的确很不错,有些地方译者还加了自己的话和推荐的书外阅读,虽然有些链接失效了,但这是原版没有的(准确的说是翁云兵先生翻译的版本里没有的,原文我没看过)。其次,处于尊重版权,我也推荐去买这本书,而不是下电子版,相信我,对于初学者来说,这本书在你学习3d编程的一两年内,你还是能在从中学到知识的。 
  2.实现龙书,我不是说把他的例子抄一遍。这时候你需要做的是,把龙书的代码推掉,利用龙书的所有内容,重新自己写一个小的demo,可以就是一个小场景漫游,但是希望你开动想象力,多写点逻辑,多写点独特的非图形的东西,不要觉得这很难,其实随便想一个简单的东西都有够你写的,推荐看这篇文章,你会发现灵感有时候没那么难出现:http://www.gamelook.com.cn/?p=15451 
  3.这个时候,如果上述步骤你都完成了,恭喜你,你已经不再是初级菜鸟了,首先,你需要去买RTR(Real-Time Rendering英文版 ,淘宝上影印80),然后,程序设计上我推荐买一本大话设计模式,把其中简单的模式看一下,看不懂的就别看(那说明你还没到那水平,或者说还没遇到过这个模式能解决的问题)。接着,推荐你阅读clayman大人很有名的一篇博客:http://www.cnblogs.com/clayman/archive/2009/05/17/1459001.html 
  然后去选择一个方向去阅读文中推荐的书籍,我推荐是地形和动画,因为这两个方向的书我看过。。。《Real Time 3D Terrain Engines Using C++ And DX9》网上有我翻译的中文版,虽然代码的确需要花一定的时间去理解(作为demo,代码写的不错,可以算一个小的图形引擎了),不过场景管理还是图形里相当核心的一块,所以读还是有好处的,不过我的建议也是读完4到9章和附录就可以实际编码了。而后者《Character Animation With Direct3D》代码浅显易懂,而且人物动画绝对是当今次世代的一个大头,我虽然没有全看完,但还是相信这本书绝对很值得一读。读完后最后重构你之前写的demo吧,并且加入这两本书的特性。 
  4 你将从菜鸟学院毕业了,现在的你对图形已经不再一窍不通,对程序结构也不再那么陌生。下面我终于要向你推荐Ogre了,你将很愉悦的略读一下《Pro OGRE 3D Programming》,(打工仔一帮人翻译了中文版),到此你当初写demo时的许多难题在这里或许能引擎共鸣,然后你将很轻松地阅读ogre的官网的初中级教程,如今的你手握一个文档详细,社区活跃的图形引擎,接着拿着他重新去写一个小游戏吧,要求还是一样,尽可能多地利用所学知识。 
   是的,我还想写第5条,但我忍住了,因为曾经有个笨蛋经过或跳过了上述几个阶段后,学到了甚至更多的东西,最重要的是如今他不再需要有人来指点,便可以确定自己该走哪一条路,虽然他不一定看不到旅途的终点,但已然能够嘹望到前方的光明。所以我相信,你也能:) 
  ps:希望大家有经济能力的还是购买正版书籍,亚马逊没那么麻烦,而且淘宝上其实有很多代购的。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 2个月小宝宝便秘怎么办 3个月小宝宝便秘怎么办 微信客户不说话怎么办 一岁半宝宝便秘肛裂怎么办 网恋现在都不说话了怎么办 宝宝便秘四天了怎么办 月子里小孩吐奶怎么办 月子里的小孩吐奶怎么办 婴儿吃多了吐奶怎么办 20个月孩子便秘怎么办 一岁宝宝肛裂怎么办 婴儿吃饱了吐奶怎么办 23天新生儿吐奶怎么办 婴儿吐奶舌苔白怎么办 宝宝吐奶酸臭味怎么办? 1周岁吐奶有酸味怎么办 十多天的宝宝吐奶怎么办 未满月婴儿吐奶怎么办 2个月宝宝溢奶怎么办 四岁宝宝说话结巴怎么办 小孩说话结巴打顿怎么办 2岁宝宝突然说话结巴怎么办 2岁宝宝突然结巴怎么办 幼儿舌头起泡牙龈出血怎么办 小孩长得太快怎么办 脑出血压着神经不会说话怎么办 四岁宝宝说话有点口吃怎么办 三岁宝宝有点口吃怎么办 3岁宝宝有点口吃怎么办 三岁宝宝说话有点口吃怎么办 六岁说话重复第一个字怎么办 宝贝烧到39.5度怎么办 宝贝39度不退烧怎么办 两岁多小儿突然变得口吃怎么办 百度两周岁宝宝口吃怎么办 2岁宝宝偶尔结巴怎么办 两岁宝宝说话磕巴怎么办 宝宝两岁结巴了怎么办 人多说话就紧张怎么办 小孩拉尿不叫人怎么办 2岁宝宝说话有点结巴怎么办