專業商用3D遊戲引擎大揭秘-Panda3D.C++.Python

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

內容簡介

Panda3D是世界十大開放原始碼遊戲引擎中,功能最完整、效能最穩定、商業化限制最少的一款。目前,迪士尼仍在使用,世界各地的業界人員也以開放、共用全部原始程式碼方式不斷促進這款遊戲引擎的持續發展。在競爭激烈的國外遊戲引擎市場中,Panda3D始終引人注目,技術領先。

本書為讀者深入、完整掌握遊戲引擎C++、Python核心,書附程式中有80多段示範效果,為Windows、Linux、Mac作業系統中的C++、Python遊戲引擎開發者提供價值無窮的資源。作者結合深入的專業知識及多年的實作開發經驗,重點針對市場、讀者技術實作需求撰寫此書,相信讀者能夠輕鬆掌握Panda3D的使用技巧,簡單快速地步入3D應用程式開發新天地。

作者

劉暉

上海嘉趣多媒體科技有限公司CEO。西安交通大學電腦軟體博士,上海交通大學電腦軟體博士後,RHCE。曾先後擔任東華大學副教授、上海三零衛士資訊安全有限公司企業部副CTO、中國科學院上海高等研究院科技處專案主管等職。目前致力於3D產業的科技、服務、商貿活動,同時支援3D遊戲引擎的可持續、開放原始碼、免費、商業化運作。塑造並追求「時尚歡樂美好趣味」的企業文化。

林欣

東華大學資訊學院教師、上海嘉趣多媒體科技有限公司兼職培訓師。西安電子科技大學圖形影像處理碩士。曾先後就職于西安交通大學、東華大學。目前關注3D產業的技術普及推廣活動,積極推動3D遊戲引擎的共用發展。崇尚科技美化生活。

李強

上海嘉趣多媒體科技有限公司副總經理。畢業于西安電子科技大學。曾先後就職於陝西省機械設備進出口公司和中興通訊股份有限公司。愛好旅遊、文學和羽毛球運動,足跡遍及40多個國家和國內大江南北。目前致力於3D產業的科技、服務、商貿活動,積極支援3D遊戲引擎技術與資源分享。崇尚自由、多彩、率性、現代的數字生活。

目錄

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 小結

序/導讀

前言

當英文討論區上還在招募志願者整理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 按鈕、核取按鈕、單選按鈕、交談視窗、輸入框、框架、標籤、選單、捲動列表、進度指示器、滑桿、捲軸、捲

試閱

當英文討論區上還在招募志願者整理C++ 文件、偵錯C++ 實例時,中文讀者已經可以「先天下之閱而閱」,深入Panda3D 遊戲引擎C++/Python 核心內幕,了解、學習、使用、分析、訂製、擴充這款娛樂巨頭麾下的開放原始碼商業化遊戲引擎了。

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789863794493
    • 分級
    • 普通級
    • 頁數
    • 1008
    • 商品規格
    • 23*17
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide