編輯推薦
XNA+C#=新一代遊戲開發利器,採用實例教學法,在講清基本知識點的基礎上,藉助於豐富的實例加以說明,涵蓋關鍵知識點,提供短小精悍的範例代碼,並輔之以詳細設計步驟和解釋。
隨著遊戲產業的迅猛發展,快速、高效地開發出精彩的3D遊戲已經成為眾多遊戲開發企業的終極夢想。從DirectX到XNA,藉助於C#的優勢,具體的實現細節被封裝,遊戲開發變得不再神秘,所以不管是遊戲開發新手,還是具有C/C++基礎的高級程式設計師,都能輕鬆開發出優秀的遊戲軟體。
內容簡介
使用C#語言可以編寫基於DirectX和微軟最新遊戲開發平台XNA(僅支持C#語言)的3D圖形和3D遊戲程式,其運行速度已接近於C++代碼的運行速度,一些商業遊戲已經使用C#語言創建。用C#語言編寫3D圖形和3D遊戲程式可以降低學習和開發難度,提高開發效率,使開發人員能寫出更安全的代碼。本書目的是使具有C語言基礎的讀者通過本書學習,掌握用C#語言開發基於DirectX和XNA的3D圖形和3D遊戲程式。本書採用實例驅動的方式進行講解,在例子中儘量避免羅列不相關的知識點和無關代碼,使例子代碼短小精悍,容易理解,書中全部例程均給出了詳細設計步驟,並對每一步代碼給出詳細解釋,讀者可按照書中步驟完成例子。
本書可作為學習用C#語言開發3D圖形和3D遊戲程式的入門書,也可作為高校計算機及遊戲等相關專業教師、研究生、本專科學生的教材或參考書,對使用C#語言開發3D圖形和3D遊戲程式的程式設計師也有很好的參考價值。
目錄
第1章 Managed DirectX和XNA
1.1 DirectX
1.2 Managed DirectX
1.3 XNA簡介
1.4 .NET Framework
1.5 事件驅動
1.6 Windows應用程式框架
1.7 可視化程式設計
1.8 解決方案和項目
1.9 鍵盤事件
1.10 事件處理函式參數
1.11 滑鼠事件
1.12 窗體的Paint事件
1.13 常用結構
第2章 3D圖形的數學基礎
2.1 3D坐標系統和坐標
2.2 向量
2.3 矩陣和Matrix結構
2.4 仿射矩陣
2.5 Matrix結構表示3D變換矩陣
第3章 Direct 3D程式框架
3.1 圖形卡和GPU
3.2 Device類
3.3 3D程式基小框架
3.4 從基小框架創建項目
3.5 Transformed Colored結構
3.6 繪製靜止三角形
3.7 繪製點、線和三角形
3.8 VertexBuffer類
3.9 繪製靜止立方體
3.10 背面剔除
3.11 在基本框架中使用控制項
第4章 Direct 3D圖形原理
4.1 世界、觀察和投影變換
4.2 Position Colored結構
4.3 顯示三角形
4.4 使三角形旋轉
4.5 三角形連續旋轉
4.6 顯示立方體
4.7 從不同位置觀察立方體
4.8 使用頂點索引繪製立方體
4.9 模擬地板和牆壁
4.10 旋轉的卒心圓柱
4.11 複雜的變換關係
第5章 燈光和材質
5.1 燈光
5.2 材質和Material結構
5.3 PostionNormal結構和法線
5.4 定向光源照亮三角形
5.5 定向光源照亮立方體
5.6 定向光源照亮卒心圓柱
5.7 點光源
5.8聚光燈光源
5.9 各種光源照射到地板上
5.10 鏡面高光
5.11 材質屬性Emissivre
第6章 紋理
6.1 紋理圖案和坐標
6.2 包含紋理坐標的頂點結構
6.3 為牆壁增加紋理
6.4 紋理定址模式
6.5 光照三角形增加紋理
6.6 為立方體增加紋理
6.7 為空心圓柱增加紋理
6.8 添加背景
6.9 紋理濾波器
6.10 多層紋理
6.11 多級漸進紋理濾波
第7章 Mesh類
7.1 Mesh類預定義的幾何體
7.2 顯示茶壺
7.3 改變觀察點和旋轉茶壺
7.4 增加多個茶壺
7.5 克隆mesh實現紋理
7.6 3D字型
7.7 顯示.x檔案中的3D圖形
7.8 地形圖
7.9 Mesh的最佳化
7.10 Mesh的簡化
7.11 Progressive Mesh類
7.12 將3ds MaX檔案轉換為.x檔案
第8章 透明效果和霧化
8.1 深度測試
8.2 透明物體的繪製原理
8.3 頂點顏色透明
8.4 材質顏色透明
8.5 紋理透明
8.6 有紋理的透明立方休
8.7 多個透明體
8.8 霧化
8.9 頂點霧化
8.10 像素霧化
8.11 基於範圍的霧化
第9章 其他特殊效果
9.1 倒影
9.2 使用TextureFactor來設定頂點顏色
9.3 陰影
9.4 後視鏡
9.5 廣告牌技術
9.6模板測試
第10章可程式流水線入門
10.1 可程式流水線的基本概念
10.2 HLSL基礎
10.3 fx檔案
10.4 Effect類
10.5 使用HLSL程式基本框架
10.6 簡單HLSL渲染
10.7 HLSL光照模型
10.8 HLSL表示環境光
10.9 HLSL定向光源漫反射光
10.10 HLSL表示鏡面高光
10.11 紋理渲染
10.12 effect編輯器的使用
第11章 移植到XNA遊戲框架
11.1 XNA暴本框架
11.2 Basic Effect類
11.3 鍵盤
11.4 用頂點索引繪製圖形
11.5 燈光
11.6 紋理
11.7 .x和.fbx檔案
11.8 HLSL
11.9 SpriteBatch類
11.10 輸出字元串
11.11 滑鼠及按鈕實現
第12章 XNA透明效果和霧化
12.1 深度測試
12.2 將頂點顏色設定為透明
12.3 將材質顏色設定為透明
12.4 紋理透明
12.5 像素霧化
第13章 XNA特殊效果
13.1 倒影
13.2 陰影
13.3 廣告牌技術
13.4 模板測試
13.5 後視鏡
13.6 聲音
第14章 用XNA實現粒子系統
14.1 Point Sprite
14.2 描述粒子的結構
14.3 粒子系統原理
14.4 粒子系統類
14.5 模擬曳光彈
14.6 模擬爆炸
14.7 模擬雪景
14.8 HLSL粒子系統
14.9 SpriteBatch粒子系統
第15章 XNA實現階層動畫
15.1 常用的動畫技術
15.2 階層關係
15.3 .x檔案格式分析
15.4 顯示有階層關係的.x檔案
15.5 逼真的坦克
15.6 蒙皮骨骼動畫
第16章 XNA遊戲實例
16.1 顯示一輛汽車
16.2 汽車停在公路上
16.3 汽車在公路上行駛
16.4 汽車左右移動
16.5 在公路上增加障礙物
16.6 汽車是否碰到障礙物
16.7 完成遊戲
附錄 C#語言入門
書摘插圖
第1章 Managed DirectX和XNA
本章首先介紹DirectX、Managed DirectX和XNA有關知識,然後詳細解釋用C#語言設計3D程式時所用到但一般教科書又很少講到的重要概念,最後列出C#語言3D程式設計中用到的一些結構。本書認為讀者已經掌握了C#語言基本語法,並能夠使用微軟VisualC#2005速成版(簡稱VS 2005)編寫Windows應用程式。如果讀者不具備這方面的技能,請先閱讀附錄,掌握最基本的C#語言語法,然後再學習本章,學習事件驅動有關概念和用VS 2005編寫Windows應用程式的最基本步驟,為學習用C#語言編寫Direct 3D和XNA程式提供必要的基礎。當然,僅靠這些內容就完全掌握C#語言是不可能的,如需進一步學習C#語言,還需要閱讀C#語言的專著。如果讀者對這方面的內容比較熟悉,也可跳過本章1.4節以後的內容,直接閱讀第2章。
……