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 遊戲引擎進行資產整合有很清楚的說明。
導讀
當英文討論區上還在招募志願者整理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 中執行第一個程式...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。