Panda3D是世界十大開放原始碼遊戲引擎中,功能最完整、效能最穩定、商業化限制最少的一款。目前,迪士尼仍在使用,世界各地的業界人員也以開放、共用全部原始程式碼方式不斷促進這款遊戲引擎的持續發展。在競爭激烈的國外遊戲引擎市場中,Panda3D始終引人注目,技術領先。
本書為讀者深入、完整掌握遊戲引擎C++、Python核心,書附程式中有80多段示範效果,為Windows、Linux、Mac作業系統中的C++、Python遊戲引擎開發者提供價值無窮的資源。作者結合深入的專業知識及多年的實作開發經驗,重點針對市場、讀者技術實作需求撰寫此書,相信讀者能夠輕鬆掌握Panda3D的使用技巧,簡單快速地步入3D應用程式開發新天地。
作者序
前言
當英文討論區上還在招募志願者整理C++ 文件、偵錯C++ 實例時,中文讀者已經可以「先天下之閱而閱」,深入Panda3D 遊戲引擎C++/Python 核心內幕,了解、學習、使用、分析、訂製、擴充這款娛樂巨頭麾下的開放原始碼商業化遊戲引擎了。
Panda3D 遊戲引擎是US News 排名中電腦第一的美國著名學府「卡內基美隆大學」為娛樂巨頭「華特迪士尼」研發的產品。目前,迪士尼仍然使用這款遊戲引擎,而卡內基美隆娛樂技術中心也不斷以開放原始碼方式吸引在校學生及世界各地的業界人員共同促進這款遊戲引擎的持續發展。因此,如果讀者靜下心來掌握Panda3D 遊戲引擎,無疑會使自己能夠駕馭的3D 技術與娛樂巨頭的3D 技術並肩,具世界第一的水準。更重要的是,讀者可以毫無遺漏地獲得全部原始程式碼!
Panda3D 遊戲引擎是所具有名開放原始碼遊戲引擎中最為完整、商業化運作幾乎沒有限制的一款,是一個無比豐富的金礦。既可以直接拿來開發各種3D 應用,又可以作為產品原型系統進行客戶訂製。目前,除了官方網站上的英文資源外,主要圖書包含Panda3D 1.6 Game Engine Beginner's Guide(《Panda3D 1.6遊戲引擎初學指南》) 及Panda3D 1.7 Game Developer's Cookbook(《Panda3D 1.7 遊戲引擎開發者實作》)兩本,分別於2011年2月、3月出版。而本書是第一本關於Panda3D遊戲引擎的中文圖書。
Panda3D 遊戲引擎支援Unix、Linux、Windows、Mac 等作業系統,採用C++ 開發,與Python 指令碼語言進行了有效綁定。因此,開發者既可以使用C++,也可以使用Python;既可以選用Unix/Linux 作業系統,也可以選用Windows 作業系統。為了滿足開發者多元化的需求,本書選用Panda3D 1.7.x 版本,相關開發實例可執行於Windows、Fedora(Linux) 作業系統, 推薦的開發環境是Windows
+ Visual Studio C++ 2008、Fedora + Eclipse、Fedora + g++、Windows +
Eclipse PyDev(Python)、Fedora + Eclipse PyDev(Python)。當然,如果開發者喜歡Ubuntu、Debian、Mac OS X,除了需要自行安裝適當設定以外,有關開發指南同樣有效。本書推薦使用Autodesk 3ds Max 2010、Autodesk Maya 2009、Blender 處理遊戲資產,對如何與Panda3D 遊戲引擎進行資產整合有很清楚的說明。
儘管3D 遊戲引擎有關大量的理論知識和數學方法,但是本書主要偏重於程式設計實作和應用程式開發。全書共分22章。
第 1 章歸納了目前較受關注遊戲的遊戲引擎特徵,介紹了遊戲引擎發展歷程,比較了開放原始碼遊戲引擎整體差距、商業化運作案例,提供了遊戲引擎成本及受益計算方法,歸納了遊戲引擎選擇尺度,深入分析了十大開放原始碼遊戲引擎,解釋了軟體許可證方面的限制,最後指導讀者在Windows 及Fedora 上安裝Panda3D 遊戲引擎。
第 2 章指導讀者安裝、熟悉 Panda3D 遊戲引擎開發環境。選定的整合編譯環境是Linux 中Eclipse C/C++ 的Helios 版及Eclipse & PyDev 1.6.3,Windows 中Visual Studio 2008 及Eclipse & PyDev 1.6.3。在介紹了安裝過程後,讀者能夠根據說明步驟偵錯Python、C++ 版「你好,大熊貓」程式。編譯過程與方法適用於全書所有實例。
第 3 章完整介紹了遊戲引擎的設定變數,舉例說明了透過設定檔、程式存取處理變數的方法。同時說明了遊戲引擎附帶工具集,重點學習使用Pview。
第 4 章說明了 Egg 模型檔案定義語法、骨架及變形動畫約定結構,示範了引擎附帶的場景瀏覽器,歸納了導演工具滑鼠快速鍵語義,舉例介紹了匯入、轉換、管理Autodesk Maya、Autodesk 3ds Max、Blender 遊戲資產的方法。主要有關了遊戲程式設計以外的工作流程。
第 5 章深入解釋遊戲引擎場景處理設計理念、重要類別的繼承關係及函數功能,透過「合唱團」場景說明場景樹狀結構的靈活性,注重介紹了共同抽象基礎類別PandaNode、節點類別NodePath、視窗框架類別WindowFramework、引擎框架類別PandaFramework、視窗屬性類別WindowProperties、Python 啟動類別ShowBase,有關場景屬性調整、場景檢索、預留位置節點多層次管理等功能。開發實戰主題為太陽系程式。
第 6 章圍繞模型、地形、角色展開。介紹了檔案命名跨平台相容處理、環境變數動態管理及設定。重點是角色靜態模型與動畫模型的綁定、控制、管理,支援自動處理,也支援自訂處理。不同動畫效果可以透過4 種方式進行混合,各頁框動畫之間允許進行平滑內插。Character 是一種特殊的動畫角色,多用於實現具有關節的組合物件。遊戲引擎支援透過高度場影像自動產生地形,提供兩個示範實例。開發實戰主題為角色控制、關節處理。
第 7 章集中討論繪製屬性。引擎允許使用點光源、定向燈、環境燈以及聚光燈 4種類型的燈。材質主要模擬環境色散、漫反射、鏡面反射、發射率。景深測試能夠繪製透明、立體陰影。霧產生指數型、線性、指數平方型3 種繪製效果。透明測試多用於實現鏤空效果。色彩寫入隱藏繪製影像時結合透明通道產生3D 或RGB 色彩過濾效果。抗走樣模式採用設定檔、圖形卡屬性等參數設定,提供多種品質效能選擇。借助重新配色或顏色調節,繪製過程中可以即時控制物體表面、頂點顏色。前後表面揀選控制繪製表面指向,以此呈現蠟版、陰影、內部等視覺效果。燈光緩變支援以HDR 色調對映或卡通著色方法實現獨特的燈光繪製特效。蠟版緩衝器是一種靈活的繪製資料處理模版,經過設計,繪製將輸出奇特的效果。另外,遊戲引擎提供公告牌、指南針、貼花、燈光組合、顯示邊界等繪製效果。開發實戰主題為迪斯可燈光、無底洞。
第 8 章處理各種紋理,有關 1D、2D、3D( 立方體 ) 紋理,支援 JPG、PNG、TIF、BMP 以及具有變頻解碼(Mipmaps) 能力的DDS 檔案。紋理的主要特性是尺寸、自動填充、換行模式、篩檢程式。在執行過程中,開發者需要對各種紋理進行載入、取代、動態產生、管理、轉換,多採用紋理池、紋理層實現。特殊的紋理效果可透過多紋理機制完成,經過調節色彩紋理、法線、光澤、發光等屬性,產生調節、貼花、混合、凹凸對映、高度視差、光澤、發光。進階紋理技術包含自動紋理、投影紋理、3D 紋理、球體對映、立方體對映、動畫紋理、視訊紋理。開發實戰主題為凹凸貼圖、紋理交換。
第 9 章有關商業化擴充的重點主題著色器。遊戲引擎支援 Nvidia 與微軟一起制定的著色器語言Cg,包含頂點著色器、幾何著色器、片段著色器( 像素著色器)。著色器輸入類型覆蓋Cg 語言約定,同時加以擴充,允許訂製、註冊新的類型。遊戲引擎內部支援模型空間、遊戲世界空間、視線空間、API 視線空間、剪裁空間、API 剪裁空間之間進行有效轉換。著色器有時與相機、鏡頭狀態密切相關,遊戲引擎支援透視鏡、正交鏡頭、魚眼鏡、球鏡、矩陣鏡、磁柱鏡。透視鏡控制參數最多,包含焦點、視野、近平面距離、遠平面距離、膠卷尺寸、焦距長度、長寬32比。偵錯時,可以使用體外體驗OOBE 模式。提供了6 個著色器開發程式。開發實戰主題為卡通著色、發光濾鏡。
第 10 章介紹將繪製、動畫、音訊、互動等元件組合為幕,進一步建構自動執行的串列情節、平行情節的技術。是遊戲關卡的基本技術,有關全域時脈、事件。比較重要的幕包含內插幕、內插函數幕、彈道曲線幕、聲音幕、運動路徑幕、粒子幕。除此之外,還可以採用非同步工作、事件處理自主組織遊戲組件。它們都支援多執行緒機制。開發實戰主題為小行星、旋轉木馬、電視機中的茶壺。
第 11 章偏重介紹了 OpenAL、FMOD、Miles 中的前兩種開放原始碼音訊函數庫。音訊處理相對簡單,僅有關音訊系統的結構、循環控制、音訊管理員、DSP效果、3D 效果以及Python 音訊自動化幕等內容。開發實戰主題為播放多媒體、扭曲、螢火蟲。
第 12 章說明遊戲引擎附帶的進階互動功能。為了便於國際化整合,引擎支援ISO8859、UTF-8 及Unicode 字元集,提供互相轉換函數,允許根據字形檔及Egg 檔案選擇字型,透過文字節點、影像文字、螢幕文字、螢幕影像等元件進行顯示、模型產生、樣式調整。基本互動元件包含C++ 中的PGui 按鈕、文字輸入、滑桿、框架、捲軸、進度指示器,以及Python 中的DirectGUI 按鈕、核取按鈕、單選按鈕、交談視窗、輸入框、框架、標籤、選單、捲動列表、進度指示器、滑桿、捲軸、捲動框架。開發實戰主題為音樂盒。
第 13 章深入遊戲引擎內部建構,討論了頂點、幾何形體的儲存;3D 模型的產生、細節調整、讀取、存檔;邊界的計算、擴充、相交檢查;矩陣基本運算;紋理影像記憶體處理等內容。開發實戰主題為動態建構立方體模型。
第 14 章剖析了繪製處理過程。有關繪製的基本流程,流程的整合性,流程的擴充性,流程功能模組的劃分。由圖形管線、圖形引擎、圖形狀態監控、圖形輸出、顯示區域,圖形上下文、影像篩檢程式共同實現。繪製輸出可以進一步用於動態紋理、篩檢程式以產生特殊效果。遊戲引擎支援3D 顯示( 左右眼不同視覺體驗)。開發實戰主題為影子處理、Python 篩檢程式。
第 15 章說明如何透過力場產生粒子,某一時刻在特定空間按一定規律運動形成爆炸、煙霧、氣泡、水泡、浮雲等實體模擬效果。實際由粒子繪製器、粒子發射器、粒子工廠實現。遊戲引擎帶有粒子面板,可以設計、偵錯各種粒子檔案,包含塵土飛揚、雲蒸霧繞、噴泉、煙霧、煙圈、火炬等實例。開發實戰主題為分形樹。
第 16 章重點介紹碰撞檢測,可以透過自訂的球體或多邊形進行檢測,也可以對所有幾何形體進行檢測。碰撞形體實際類型包含碰撞球、管線、逆置球、平面、多邊形、射線、直線、分段、 物線、地板網格、雙球體、盒等。碰撞類型分為from類別檢測、into 類別檢測。碰撞事件由碰撞處理器佇列、碰撞處理器事件、碰撞實體處理器、碰撞推處理器、實體碰撞處理器、流式碰撞推處理器、地面碰撞處理器、重力碰撞處理器組成,適於不同碰撞場合。發生碰撞後,能夠處理的事宜主要包含取得有關形體的指標及對應節點,設定取得碰撞相對時間,設定取得有關物體的碰撞點、可穿越深度、碰撞法線等。碰撞隱藏有助最佳化碰撞檢查檢測。引擎也能夠處理高速運動物體。開發實戰主題為漫遊者。
第 17 章重點說明物理系統。支援內建物理系統、ODE、NVIDIA PhysX 以及Bullet( 針對1.8 版本以上)。多用於模擬物體速率、加速度、動力、力場、摩擦、撞擊;實現角色自動行進;模擬機動物體執行;處理水、浪等流動物體;展現服裝、織物質感等效果。開發實戰主題為迷宮滾球。
第 18 章介紹透過人工智慧、有限狀態機控制非玩家角色的方法。允許非玩家角色實現尋找、逃離、追逐、逃避、遊逛、羊群、避障、路徑追蹤等自動督導行為,也允許完成最短尋徑。FSM 是Python 專用的方法,以狀態機模型式的狀態移轉、狀態輸入過濾等方式定義遊戲狀態切換。開發實戰主題為國際象棋。
第 19 章集中補充了很多進階開發雜項。有關鍵盤、滑鼠、流等級網路 API、物件等級網路API、多媒體檔案套件的子檔案、流檔案、加密檔案、更新處理、偵錯記錄檔、開發整合環境偵錯、跨語言子類別衍生、指令碼語言程式質詢等內容。開發實戰主題為透過滑鼠和鍵盤控制FPS 相機。
第 20 章討論 1.7 版本以後新增的分散式應用功能,透過包裝、分散式部署、瀏覽器外掛程式等機制,支援網頁遊戲或獨立的分散式應用。考慮安全問題,允許使用數位簽章、資料來源認證等方式加以保護。開發實戰主題為運動軌跡。
第 21 章介紹了效能監測的工具及方法。發現效能瓶頸是一個非常複雜的話題,甚至比設計、開發程式更富有挑戰性。
第 22 章說明遊戲引擎原始程式碼編譯方法及主要步驟,適合進階開發者深入使用。
全書由劉暉、林欣、李強、陳小東、王學光參與撰寫。由劉暉、林欣負責統校全書。實例開發由劉暉、林欣、陳小東負責完成。
另外,本書使用的開放原始碼軟體許可證已經放在DVD 光碟對應軟體目錄之中,讀者進一步開發時務必遵守相關許可證約定。本書使用的插圖或自行製作,或來自網際網路。來自網際網路的部分插圖主要是由於與遊戲引擎機制原理、輸出結果有關,作者沒有參與有關遊戲運作、宣傳、評論等商業活動。特此宣告。
由於作者水準有限,時間緊迫,書中難免有不足之處,懇請讀者批評指正。
如果說Panda3D 是一座活躍的金礦,現在,本書已經繪製出一幅完整的金礦地圖。讓我們一起去採擷寶藏吧。
( 截止發稿時,Panda3D 遊戲引擎簡體中文支援網站第一版也已經開發完畢,正在加緊內測、準備上線,爭取第一時間奉獻給大家,與讀者們、開發者、技術同好、遊戲廠商深入地交流互動,請造訪www.panda3d.org.cn。)__
前言
當英文討論區上還在招募志願者整理C++ 文件、偵錯C++ 實例時,中文讀者已經可以「先天下之閱而閱」,深入Panda3D 遊戲引擎C++/Python 核心內幕,了解、學習、使用、分析、訂製、擴充這款娛樂巨頭麾下的開放原始碼商業化遊戲引擎了。
Panda3D 遊戲引擎是US News 排名中電腦第一的美國著名學府「卡內基美隆大學」為娛樂巨頭「華特迪士尼」研發的產品。目前,迪士尼仍然使用這款遊戲引擎,而卡內基美隆娛樂技術中心也不斷以開放原始碼方式吸引在校學生及世界各地的業界人員共同促進這款遊戲引擎的持續發展。因此,如果讀者靜下...
目錄
01遊戲引擎大比拼
1.1 國內熱門網路遊戲引擎類型統計
1.2 PANDA3D 的前世今生
1.3 遊戲引擎的發展
1.3.1 抽象硬體
1.3.2 軟體抽象
1.4 開放原始碼遊戲引擎整體比較
1.5 知名遊戲引擎及代表遊戲
1.6 遊戲引擎的成本與收益
1.7 選擇遊戲引擎的尺度
1.8 十大開放原始碼遊戲引擎深入比較
1.9 開放原始碼遊戲引擎授權比較
1.10 安裝PANDA3D
1.10.1 WINDOWS 中的安裝
1.10.2 LINUX 中的安裝
1.11 小結
02 遊戲引擎的開發環境
2.1 選擇開發環境
2.2 安裝ECLIPSE CDT & PYDEV 1.6.3
2.3 在PYTHON 中執行第一個程式
2.4 在LINUX C++ 中執行第一個程式
2.5 在VISUAL C++ 中執行第一個程式
2.6 小結
03 設定PANDA3D 遊戲引擎
3.1 PANDA3D 設定檔
3.2 PANDA3D 1.7 設定變數清單
3.3 用C++ 存取設定變數
3.4 用PYTHON 存取設定變數
3.5 附帶工具
3.6 用PVIEW 檢視模型
3.7 小結
04 管理遊戲資產
4.1 EGG 檔案格式
4.2 動畫模型的約定結構
4.3 場景瀏覽器
4.4 導演工具快速鍵
4.5 管理AUTODESK 3DS MAX 資產
4.6 管理AUTODESK MAYA 資產
4.7 管理LINUX+BLENDER 資產
4.8 BAM 與EGG 模型
4.9 示範資源
4.10 小結
05 場景處理
5.1 場景節點公共基礎類別
5.2 節點類別NODEPATH
5.3 場景預設節點及場景基本處理
5.4 場景的主要狀態
5.5 檢索場景
5.6 場景層次化管理技巧
5.7 遊戲引擎視窗及框架
5.8 用PYTHON 處理場景
5.9 開發實戰——C++ 版太陽系
5.10 小結
06 模型、地形與角色
6.1 模型載入及載入路徑
6.2 載入角色及動畫
6.3 以框為基礎的動畫的公共介面及控制
6.4 角色與動畫的自動綁定
6.5 播放動畫
6.6 動畫的混合
6.7 角色的多個組成部分
6.8 用PYTHON 處理模型與角色
6.9 地形
6.10 用PYTHON 處理地形
6.11 細節節點
6.12 開發實戰——C++ 版拳擊機器人
6.13 開發實戰——C++ 版看看抓抓
6.14 小結
07 繪製特性與效果
7.1 繪製屬性概覽
7.2 燈光
7.3 材質
7.4 景深緩衝器
7.5 霧
7.6 ALPHA 測試
7.7 色彩寫入隱藏
7.8 反鋸齒
7.9 重新配色
7.10 前後表面揀選
7.11 燈光漸變
7.12 輔助位平面
7.13 模版測試及寫入
7.14 繪製效果
7.15 指南針效果
7.16 公告欄效果
7.17 開發實戰——C++ 版迪斯可燈光
7.18 開發實戰——C++ 版無底洞
7.19 小結
08 紋理
8.1 基本紋理
8.2 紋理尺寸
8.3 換行模式
8.4 紋理篩檢程式
8.5 紋理取代
8.6 多紋理
8.7 多紋理的模式
8.8 紋理組合
8.9 紋理轉換
8.10 自動紋理
8.11 投影紋理
8.12 環境對映
8.13 3D 紋理
8.14 立方體對映
8.15 動畫紋理
8.16 視訊紋理
8.17 透明與混合
8.18 紋理管理
8.19 紋理壓縮
8.20 開發實戰——C++ 版凹凸貼圖
8.21 開發實戰——C++ 版紋理交換
8.22 小結
09 著色器
9.1 著色器概覽
9.2 著色器輸入
9.3 著色器空間座標
9.4 著色器產生器
9.5 相機控制
9.6 鏡頭與視野
9.7 著色器實戰——初始程式
9.8 著色器實戰——變形與變色
9.9 著色器實戰——GPU 互動控制
9.10 著色器實戰——燈光漫遊初始程式
9.11 著色器實戰——CG 燈光漫遊程式
9.12 著色器實戰——可衰減的CG 燈光漫遊
9.13 開發實戰——C++ 版卡通著色
9.14 開發實戰——C++ 版發光濾鏡
9.15 小結
10 幕與情節的自動處理
10.1 全域時脈
10.2 幕與幕管理員
10.3 幕的自動內插
10.4 角色的混合效果
10.5 情節
10.6 幕的本質
10.7 符合重力規律的彈道曲線幕
10.8 函數幕
10.9 非同步工作
10.10 工作鏈
10.11 多執行緒
10.12 事件
10.13 C++ 程式主循環
10.14 PYTHON 程式主循環
10.15 開發實戰——C++ 版小行星
10.16 開發實戰——C++ 版旋轉木馬
10.17 開發實戰——C++ 版電視機中的茶壺
10.18 小結
11 音訊
11.1 音訊系統的結構
11.2 循環控制
11.3 音訊管理員
11.4 DSP 音訊效果
11.5 3D 音訊效果
11.6 音訊自動化幕
11.7 開發實戰——C++ 版播放多媒體
11.8 開發實戰——C++ 版場景扭曲
11.9 開發實戰——C++ 版螢火蟲
11.10 小結
12 進階互動元件
12.1 文字字元集
12.2 字型
12.3 文字節點
12.4 文字節點PYTHON 擴充
12.5 段落屬性多樣化
12.6 C++ 互動元件公有基礎類別
12.7 C++ 互動元件
12.8 PYTHON 互動元件
12.9 按鈕
12.10 核取按鈕
12.11 選項按鈕
12.12 交談視窗
12.13 輸入框
12.14 框架
12.15 選單
12.16 捲動列表
12.17 進度指示器
12.18 滑桿
12.19 捲軸
12.20 捲動框架
12.21 開發實戰——C++ 版音樂盒
12.22 小結
13 遊戲引擎內部建構
13.1 頂點資料的組成
13.2 頂點資料的格式
13.3 簡單幾何形體
13.4 幾何形體
13.5 幾何形體節點
13.6 幾何形體邊界
13.7 矩陣
13.8 自行定義頂點資料格式
13.9 產生頂點資料
13.10 產生簡單幾何形體
13.11 設定場景
13.12 讀取幾何形體
13.13 修改幾何形體
13.14 網格繪製器
13.15 頂點資料讀寫器
13.16 修改紋理影像
13.17 儲存模型
13.18 開發實戰——C++ 版立方體控制
13.19 小結
14 繪製的處理過程
14.1 實現繪製過程的主要類別
14.2 圖形管線
14.3 圖形輸出視窗與緩衝器
14.4 顯示區域
14.5 2D 顯示區域
14.6 圖形引擎
14.7 圖形狀態監控
14.8 管理圖形輸出物件
14.9 繪製次序
14.10 繪製產生的紋理
14.11 PYTHON 篩檢程式動態管理
14.12 動態立方體環境對映
14.13 繪製產生紋理的低層API
14.14 立體顯示區域
14.15 多通道繪製
14.16 開發實戰——C++ 版影子處理
14.17 開發實戰——PYTHON 篩檢程式
14.18 小結
15 粒子
15.1 粒子繪製器
15.2 粒子發射器
15.3 粒子工廠
15.4 各種粒子
15.5 粒子系統
15.6 PYTHON 粒子面板
15.7 力場與力場節點
15.8 粒子實戰——塵土飛揚
15.9 粒子實戰——雲蒸霧繞
15.10 粒子實戰——噴泉
15.11 粒子實戰——煙霧
15.12 粒子實戰——煙圈
15.13 粒子實戰——火炬
15.14 在PYTHON 中使用粒子
15.15 在C++ 中產生粒子
15.16 開發實戰——C++ 版分枝樹
15.17 小結
16 碰撞檢測
16.1 碰撞形體
16.2 碰撞處理器
16.3 碰撞實體
16.4 碰撞檢查器
16.5 碰撞隱藏
16.6 高速移動的物體
16.7 碰撞檢測實戰——碰撞推處理器
16.8 碰撞檢測實戰——碰撞處理器事件
16.9 碰撞檢測實戰——碰撞隱藏及碰撞射線
16.10 碰撞檢測實戰——點擊3D物體
16.11 開發實戰——C++ 版漫遊者
16.12 小結
17 物理系統
17.1 啟動物理系統
17.2 力場
17.3 ODE 的基本特徵
17.4 ODE 的遊戲世界、物體與品質
17.5 ODE 關節
17.6 ODE 碰撞檢測
17.7 NVIDIA PHYSX 的基本特徵
17.8 開發實戰——C++ 版迷宮滾球
17.9 小結
18 人工智慧與有限狀態機
18.1 系統基本特徵
18.2 人工智慧實戰——尋找
18.3 人工智慧實戰——逃離
18.4 人工智慧實戰——追逐
18.5 人工智慧實戰——逃避
18.6 人工智慧實戰——遊逛
18.7 人工智慧實戰——羊群
18.8 人工智慧實戰——避障
18.9 人工智慧實戰——路徑追蹤
18.10 人工智慧實戰——最短尋徑
18.11 在C++ 中實現AI
18.12 人工智慧C++ 類別
18.13 PYTHON 有限狀態機
18.14 帶輸入的FSM
18.15 FSM 技巧
18.16 開發實戰——C++ 版國際象棋
18.17 小結
19 進階開發其它
19.1 鍵盤
19.2 滑鼠
19.3 資料封包協定基礎類別
19.4 建立客戶- 伺服器連接
19.5 傳遞資料封包
19.6 下載檔案
19.7 分散式網路物件
19.8 多媒體檔案套件
19.9 更新
19.10 非標準檔案源
19.11 跨語言衍生子類別
19.12 偵錯記錄檔
19.13 指令碼語言程式質詢
19.14 開發實戰——C++ 版建構FPS相機
19.15 小結
20 分散式應用
20.1 以P3D 檔案為基礎的分散式應用
20.2 以WEB 為基礎的分散式應用
20.3 分散式應用程式的數位簽章
20.4 設定分散式應用
20.5 自安裝的分散式應用
20.6 PANDA3D 執行函數庫軟體套件
20.7 PANDA3D 執行函數庫軟體套件組成
20.8 建構系統套件宿主機
20.9 系統更新
20.10 進階指令稿技術——檢測外掛程式
20.11 進階物件標籤及外掛程式執行視窗標籤
20.12 進階指令稿技術——外掛程式的通告與回呼
20.13 進階指令稿技術——全域啟動物件
20.14 進階指令稿技術——源安全及執行安全
20.15 系統套件安裝類別
20.16 開發實戰——C++ 版運動軌跡
20.17 小結
21 效能最佳化
21.1 框速測量與場景分析
21.2 效能測量
21.3 效能測量機制分析
21.4 剛體組合器
21.5 效能最佳化問題分析——網格過多
21.6 效能最佳化問題分析——文字過頻
21.7 效能最佳化問題分析——著色器指令過長
21.8 效能最佳化問題分析——幾何形體過多
21.9 效能最佳化問題分析——PYTHON 計算過難
21.10 效能最佳化問題分析——其他問題簡述
21.11 小結
22 編譯遊戲引擎原始程式碼
22.1 原始程式碼編譯的基本相依
22.2 原始程式碼編譯的目錄結構及相依
22.3 原始程式碼編譯的設定變數
22.4 UNIX 及LINUX 系統原始程式碼編譯基本步驟
22.5 WINDOWS 與CYGWIN 組合環境原始程式碼編譯基本步驟
22.6 WINDOWS 非CYGWIN 環境原始程式碼編譯基本步驟
22.7 測試PPREMAKE 編譯結果
22.8 編譯PYTHON 介面的步驟細節
22.9 快速編譯原始程式碼的方法
22.10 小結
參考文獻
01遊戲引擎大比拼
1.1 國內熱門網路遊戲引擎類型統計
1.2 PANDA3D 的前世今生
1.3 遊戲引擎的發展
1.3.1 抽象硬體
1.3.2 軟體抽象
1.4 開放原始碼遊戲引擎整體比較
1.5 知名遊戲引擎及代表遊戲
1.6 遊戲引擎的成本與收益
1.7 選擇遊戲引擎的尺度
1.8 十大開放原始碼遊戲引擎深入比較
1.9 開放原始碼遊戲引擎授權比較
1.10 安裝PANDA3D
1.10.1 WINDOWS 中的安裝
1.10.2 LINUX 中的安裝
1.11 小結
02 遊戲引擎的開發環境
2.1 選擇開發環境
2.2 安裝ECLIPSE CDT & PYDEV 1.6.3
2.3 在PYTHON 中執行第一個程式...
商品資料
出版社:佳魁資訊股份有限公司出版日期:2014-08-29ISBN/ISSN:9789865712907 語言:繁體中文For input string: ""
裝訂方式:平裝頁數:1008頁
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。