- DirectX 12 3D 游戲開發實戰
- (美)弗蘭克·D.盧娜
- 939字
- 2020-08-31 09:21:01
前 言
Direct3D 12是一款為運行在現代圖形硬件上的各種Windows 10平臺(Windows桌面版、手機版和Xbox One)編寫高性能3D圖形應用程序的渲染庫。Direct3D也是一種底層庫,這也就意味著此種應用程序接口(API)與其下層控制的圖形硬件模塊關系更為緊密[1]。Direct3D的主要用戶大多來自游戲產業,他們駕馭Direct3D來構建更加高端的渲染引擎。同時,它亦應用于如醫藥產業、科學可視化以及虛擬建筑漫游等行業,用來實現高性能的3D圖形交互功能。另外,由于當今每一部新的個人電腦都已配備了現代圖形設備,因此,非3D應用也開始逐步把計算密集型的工作移交至顯卡來執行,以充分發揮其中GPU(Graphics Processing Unit,圖形處理器)的計算能力。這就是眾所周知的GPU通用計算(general purpose GPU computing)技術。對此,Direct3D也提供了用于編寫GPU通用計算程序的計算著色器API。盡管Direct3D 12程序通常以原生的C++語言進行編寫,但SharpDX團隊正在致力于.NET包裝器版的開發,因此,用戶也可以從托管應用程序中來訪問這一強大的3D圖形API。
本書圍繞交互式計算機圖形學這個主題展開,關注于通過Direct3D 12來進行游戲的開發。讀者將從中學到Direct3D的基礎知識以及著色器編程的方法。閱讀完本書之后,讀者就可以繼續學習更加高級的圖形技術了。本書共分為3個主要部分。第一部分講解了本書后續要用到的數學知識。第二部分展示如何用Direct3D來實現基本繪圖任務,例如初始化Direct3D,定義3D幾何圖形,設置攝像機,光照,紋理,混合技術,模板技術,曲面細分技術,創建頂點、像素、幾何圖形以及計算著色器。第三部分則主要是利用Direct3D來實現各種有趣的技術與特效,例如動畫角色網格、拾取技術、環境貼圖、法線貼圖、陰影貼圖以及環境光遮蔽技術。
初學者最好按先后順序通讀全書。書中章節是按照由淺入深、逐步遞進的順序組織而成的。這樣一來,讀者便不會因過陡的學習曲線而如墮煙海。一般來講,特定篇章中所用的技術與概念往往在之前的章節中有所交代。因此,讀者最好在掌握了欲學習章節之前的所有內容后再繼續前行。當然,有一定經驗的讀者可直接挑選感興趣的部分進行閱讀。
最后,部分讀者可能會不禁琢磨:讀完本書之后,究竟能夠開發出何種類型的游戲來呢?這里對此給出的解釋是:您最好親自粗略地閱覽此書,看看其中大概都在講些什么內容。據此,基于本書所講的技術知識再結合自己的聰明才智,至于能夠開發出哪類游戲作品,想必這答案讀者也就自會了然于胸了。