DirectX 11遊戲程式設計學習筆記之1 開場白

2021-07-10 11:27:06 字數 2611 閱讀 6301

本文由哈利

[email protected]

這是我之前的部落格系列「directx9.0c遊戲開發手記之『龍書』第二版學習筆記」的平行版,也可以說是續集。說是平行版,因為這兩個部落格系列因為某種顯而易見的原因,內容是很平行的;而之所以說是續集,是因為前面那個系列可能就此坑掉了……

前面那個系列是關於「龍書」第二版的學習筆記的,而這一系列是關於「龍書」第四版的。「龍書」第四版原名是《introduction to 3d game programming with directx 11》。之所以叫做「龍書」,是因為本書的第一版《introduction to 3d game programming with directx 9.0》的封面上有乙隻噴火龍,儘管這條龍沒有熬過後面版本的directx……

「龍書」封面:

「龍書」第四版封面:

之前我一直學習的是「龍書」第二版,也就是directx 9.0c 遊戲程式設計(更早以前還學習過「龍書」第一版,以及更古老的東西;詳情參見前一系列的「開場白」部分)。不過三天前我突然決定轉戰dx 11了;至於為何轉移戰場,這個說來話長,與我解決不了的幾個程式bug有關,所以猜想可能是由於dx 9畢竟還是有點老了。然後就看了看「龍書」第四版的電子版,然後發現電子版質量不錯,但是有一些錯誤(當然比「龍書」第二版的錯誤少得多了),比如說把函式名字打錯之類的,讓人感覺不太爽,所以我就一咬牙,一狠心,花了將近300 rmb 把原版書給買了下來。買下來後看了看,發現電子版的大部分錯誤沒有了(仍然有個別錯誤,但是不仔細看是發現不了的;這說明我看得是多麼仔細了吧,哈哈!),所以很是欣喜,看來買對啦!

然後此書的附送光碟裡還包含了書中所有的高畫質彩色原版,很爽吧!這書是平裝本(我也不確定有沒有精裝本,如果有的話,可能會彩打),裡面的都是黑白的,所以有一些試圖表現彩色的圖就顯得很滑稽了;另外我發現書上有乙個圖的箭頭方向畫反了,但是彩圖是正確的,太神奇了!

我會在今後的部落格中慢慢將光碟中的內容(**和)分享給大家;不過至於這一期,我想說一些開場性質的話。總體來說,本系列部落格有如下幾個特點:

1、  包含但不限於(大部分時候還是限於的)這幾個方面:書中重點內容的回顧、勘誤和部分習題解答。

2、  所謂的「書中重點內容」,是指非常重要、容易遺忘而且與directx 9.0c部分區別較大的部分。有人說dx 11和dx 9.0c之間的差別不大;在我看來差別還是蠻大的。

3、  我會時不時地與「龍書」第二版的內容進行比較,在對比中進行學習。所以如果看官打算拿此系列部落格作為學習參考的話,推薦大致看一下「龍書」第二版(看到第11章關於紋理對映的部分就行了)。

當然,要學習dx 11遊戲程式設計,必須滿足一些先決條件。我的條件不高,只要滿足以下幾點即可:

1、  精通漢語閱讀。比如說能夠輕鬆地看懂此篇博文。

2、  有高中水平的英語閱讀能力。有一些概念我還是會用原文給出的,因為有些不會翻譯,而且即使翻譯出來了可能也詞不達意。另外,解題的時候我會把原題的題目放上來,而只是稍微進行說明。

3、  有一台屬於自己的電腦,該電腦是win 7系統的(dx 11本身就是為win 7量身打造的),並且顯示卡支援dx 11的特性(這個要求很嚴格,不像dx 9那樣可以打折扣)。要確認後者,其實不難,只需要執行幾款基於dx 11的遊戲就知道了,比如說《蝙蝠俠:阿卡姆之城》(batman: arkham city)推薦配置就包括有支援dx11的顯示卡。

4、  安裝了directx 11的sdk(softwaredevelopment kit,軟體開發包);書中用的貌似是august 2009版的directx sdk,不過我用的是最新的june 2010的版本(所以我沒法直接使用書中的**,而需要進行相應的修改,比如說dxerr.h和dxerr.lib需要分別改為dxerr.h和dxerr.lib,等等;dx的更新總是很快的)。

5、  擁有比較新的microsoft visual studio 版本。書中用的是2010版,而我用的是2013版;大致差不多。並且還要對專案進行相應設定才能夠使用書中的原始碼。具體操作參見書的introduction 部分,在此不再贅述;而且我會將這些操作在今後發布的**資料夾內的readme – dx 11.txt 檔案中進行詳細敘述的,所以列為看官不必擔心。

6、  擁有此書!推薦買實體書,有點厚,但是比較輕!不想買或者買不起的話,可以看看電子版:

「龍書」第四版不完美電子版

7、  能夠不怕困難,堅持到底。這書我到現在看了100多頁,感覺有很多地方比「龍書」第二版還要難(當初「龍書」第二版也把我折磨得很厲害,後來看了淺墨的部落格,再經過一段時間仔細消化琢磨,現在能夠比較理解了;但是現在這本書又給我提出了新的挑戰)。

8、  對於遊戲程式設計有著強烈的願望!這個是最重要的!

可能有人說,dx 11面向win 7及以上系統,用它開發出來的遊戲受眾變窄了;其實這個不用擔心,因為,很顯然等我們做出來遊戲之後,大部分pc遊戲玩家應該都用win 7了;況且用dx 11可以實現很多dx 9很難實現甚至根本實現不了的效果,這不是很棒嗎?

好了,這個開場白就到這裡了,從下期開始我們將進入正題了!咱們不見不散!

DirectX11與遊戲程式設計學習路線自擬

最近學習了龍書 dx11版本 簡要的翻了翻,對於初學者還是有很大的難度。因此,制定了下關於學習遊戲程式設計以及遊戲引擎的路線。學習遊戲引擎之前需要了解一下如何使用遊戲引擎 我打算從unity3d入手,先了解遊戲引擎所具備的功能,對於遊戲引擎有初步的了解。目標 實現demo,可以做出乙個小專案。可以按...

DirectX11渲染過程

網易作業deadline 要涼了555 對directx初始化完成後,就可以進行渲染了。struct vs input 輸入資料的格式 struct vs output 輸出資料的格式 vs output main vs input input 編譯之後生成cso檔案,使用readfiletoblo...

DirectX11 學習筆記(14) 點光源

好久沒有更新部落格了。最近一直在忙一些其他的事情 dx都快忘了 今天繼續更新!上次說到簡單光照,今天我們就學習乙個點光源 影響點光源的因素主要有 範圍,位置,衰減 其中衰減用乙個二次方程來表達 attenuation att0 att1 d att2 d att0 常量修飾符 由於此值未乘以任何值,...