首先得聲明我這篇文章只有很少的篇幅介紹龍書,其實我是想寫點東西給那些看完龍書的人,。 這是我接觸3D圖形編程的第一本書,,接觸3d圖形編程前,我看的是《Windows 游戲編程大師技巧》,,只看了前幾章,當時我急著想去學3D的酷玩意兒,,立刻就沒耐心看GDI,,DirectDraw。轉(zhuǎn)投Direct3D門下,,入門書當然是這本龍書了,。對我來說龍書最棒的地方在于,它除了開始的數(shù)學基礎章節(jié)外,,每一章都能詳細地引導讀者去實現(xiàn)一個簡單的3D特性,,從畫三角形到攝像機,到簡單的粒子系統(tǒng),,地形,,甚至到shader。Luna無疑是睿智而狡猾的,,他知道初學者往往耐心不夠,,所以他總是適時地丟出個胡蘿卜,讓讀者保持著繼續(xù)的動力,。這一點是我在《Windows 游戲編程大師技巧》沒看到的,。(見鬼,誰愛去學畫線那點破玩意...這里完全是個人情感,,我沒看完后者,,所以沒資格評價)但是Luna忽視了一點,就是學完了龍書該做什么,?他或許沒想到有很多投身于游戲編程的孩子都是像我這樣,,眼高手低而且懶于探索,愛看現(xiàn)成內(nèi)容的,。起初的他們編程基礎不扎實(1年編程經(jīng)驗),,完全不了解圖形學(就龍書那點,而且多半只是照葫蘆畫了個瓢,還是不懂原理),。于是這些孩子后來的日子就苦了,。 由于他缺乏埋頭苦干的品質(zhì),于是他們只能上網(wǎng)尋找高人指點如何走下面的路,,接著他苦苦尋找該如何理解和實現(xiàn)更高深的內(nèi)容,,去看DirectX Sampler里晦澀的代碼,雖然很多知識對當時缺乏實際代碼經(jīng)驗的他實在有點難,,在這樣茫茫然然浪費了許多時光之后,,他找到一本還可以的英文書,里面雖然內(nèi)容不深,,但是一步一步教著去實現(xiàn)了簡單的Demo,,里面包含了蹩腳的封裝,難堪的場景管理,,但對他來說還是可以夠到的,,于是他終于東拼西湊地寫出了第一個屬于自己的Demo。他看到了自己的不足,,但還不知道如何改進,,他覺得這個學習之旅越來越難,懶惰催促著他該放棄了,。但他的內(nèi)心不愿放棄這個童年的夢想,,于是他甚至逼迫自己翻譯了另一本英文書籍,他又能看懂更多了,?;蛟S是冥冥中的必然,他看到了Ogre,,在經(jīng)歷的那么多晦澀的代碼后,,學習Ogre已經(jīng)不再是那么難了,他在同學的幫助下熟悉了部分Ogre,,寫了更多的代碼,,看了更多的代碼。終于,,他發(fā)現(xiàn)曾經(jīng)如同天書的RTR,,現(xiàn)在閃爍著金色的光芒,而他發(fā)現(xiàn)自己圖形的基礎實在太差了,,而且對圖形引擎的細節(jié)還是一知半解(游戲引擎更別說了),。于是他便開始閱讀ogre的源碼,并納為己用...... 我不知道還有沒有像我這樣的笨蛋,但現(xiàn)在回頭想想,自己當初如果能有個人來指點一二,并且沉下心,多寫代碼,今天我能走的更遠,。下面就是推薦學習的路線: 0.耐下性子,,認真學習數(shù)據(jù)結(jié)構(gòu)與算法,,至少要學到圖。這是我當年沒有好好做而如今最后悔的步驟,,推薦書無所謂,,嚴蔚敏的也行,allen weiss的最好,,但最重要的是不是光去理解,,而是自己去實現(xiàn),你會發(fā)現(xiàn)后者比前者難的多,。 1.DirectX的龍書,,我推薦看清華大學翻譯的這個,首先段菲翻譯的的確很不錯,,有些地方譯者還加了自己的話和推薦的書外閱讀,,雖然有些鏈接失效了,但這是原版沒有的(準確的說是翁云兵先生翻譯的版本里沒有的,,原文我沒看過),。其次,處于尊重版權(quán),,我也推薦去買這本書,而不是下電子版,,相信我,,對于初學者來說,這本書在你學習3d編程的一兩年內(nèi),,你還是能在從中學到知識的,。 2.實現(xiàn)龍書,我不是說把他的例子抄一遍,。這時候你需要做的是,,把龍書的代碼推掉,利用龍書的所有內(nèi)容,,重新自己寫一個小的demo,,可以就是一個小場景漫游,但是希望你開動想象力,,多寫點邏輯,,多寫點獨特的非圖形的東西,不要覺得這很難,,其實隨便想一個簡單的東西都有夠你寫的,,推薦看這篇文章,你會發(fā)現(xiàn)靈感有時候沒那么難出現(xiàn): http://www./?p=15451 3.這個時候,,如果上述步驟你都完成了,,恭喜你,你已經(jīng)不再是初級菜鳥了,首先,,你需要去買RTR(Real-Time Rendering英文版 ,,淘寶上影印80),然后,,程序設計上我推薦買一本大話設計模式,,把其中簡單的模式看一下,看不懂的就別看,。接著,,推薦你閱讀clayman大人很有名的一篇博客: http://www.cnblogs.com/clayman/archive/2009/05/17/1459001.html 然后去選擇一個方向去閱讀文中推薦的書籍,我推薦是地形和動畫,,因為這兩個方向的書我看過,。。,?!禦eal Time 3D Terrain Engines Using C++ And DX9》網(wǎng)上有我翻譯的中文版,雖然代碼的確需要花一定的時間去理解(作為demo,,代碼寫的不錯,,可以算一個小的圖形引擎了),不過場景管理還是圖形里相當核心的一塊,,所以讀還是有好處的,,不過我的建議也是讀完4到9章和附錄就可以實際編碼了。而后者《Character Animation With Direct3D》代碼淺顯易懂,,而且人物動畫絕對是當今次世代的一個大頭,,我雖然沒有全看完,但還是相信這本書絕對很值得一讀,。讀完后最后重構(gòu)你之前寫的demo吧,,并且加入這兩本書的特性。 4. 你將從菜鳥學院畢業(yè)了,,現(xiàn)在的你對圖形已經(jīng)不再一竅不通,,對程序結(jié)構(gòu)也不再那么陌生。下面我終于要向你推薦Ogre了,,你將很愉悅的略讀一下《Pro OGRE 3D Programming》,,到此你當初寫demo時的許多難題在這里或許能引擎共鳴,然后你將很輕松地閱讀ogre的官網(wǎng)的初中級教程,,如今的你手握一個文檔詳細,,社區(qū)活躍的圖形引擎,接著拿著他重新去寫一個小游戲吧,,要求還是一樣,,盡可能多地利用所學知識,。 是的,我還想寫第5條,,但我忍住了,,因為曾經(jīng)有個笨蛋經(jīng)過或跳過了上述幾個階段后,學到了甚至更多的東西,,最重要的是如今他不再需要有人來指點,,便可以確定自己該走哪一條路,雖然他不一定看不到旅途的終點,,但已然能夠嘹望到前方的光明,。所以我相信,你也能:) ps:希望大家有經(jīng)濟能力的還是購買正版書籍,,亞馬遜沒那么麻煩,,而且淘寶上其實有很多代購的。
|