出版時(shí)間:2010-9 出版社:機(jī)械工業(yè)出版社 作者:王德才 頁數(shù):281
Tag標(biāo)簽:無
前言
DirectX最初是微軟為了彌補(bǔ)Windows 3.1對圖形、聲音處理能力不足的缺陷,開發(fā)的一個(gè)附加工具包,主要用于在Windows平臺上開發(fā)游戲。自從DirectX 1.0發(fā)布以來,DirectX的版本不斷升級、功能逐漸完善,很快就成為對多媒體系統(tǒng)各個(gè)方面都有決定性影響的開發(fā)接口。目前DirectX主要由負(fù)責(zé)三維圖形和動畫開發(fā)的DirectX Graphics、負(fù)責(zé)音頻開發(fā)的DirectX Audio以及支持各種輸入設(shè)備的DirectX Input三部分組成,這三部分各自又包含眾多功能組件。 在DirectX的所有功能組件中,負(fù)責(zé)3D圖形和動畫開發(fā)的Direct3D是最重要、最復(fù)雜、也是更新最快的組件。隨著Direct3D版本的不斷升級,其功能也越來越強(qiáng)大,圖形硬件對Direct3D的支持也越來越好。往往在新版本的Direct3D剛剛發(fā)布后,硬件廠商就會生產(chǎn)出支持最新版本Direct3D功能的顯卡。 現(xiàn)在DirectX已經(jīng)不僅僅是一個(gè)用于游戲以及高性能多媒體應(yīng)用程序開發(fā)的附加工具包,而是整體Windows系統(tǒng)的圖形基礎(chǔ),成為Windows系統(tǒng)自身的重要組成部分。在最新的Windows Vista以及Windows 7操作系統(tǒng)中,使用Direct3D作為底層的圖形引擎,而放棄了自從Windows 3.1以來一直使用的GDI/GDI+。甚至最新的圖形界面開發(fā)技術(shù)WPF在底層也是基于Direct3D開發(fā)的,Direct3D也逐漸成為用戶界面開發(fā)技術(shù)的底層基礎(chǔ)。因此DirectX編程已經(jīng)不僅僅是游戲以及高性能多媒體應(yīng)用開發(fā)人員所必須具備的技能,而成為所有Windows開發(fā)人員需要了解的技術(shù)基礎(chǔ)。 本書主要面向首次接觸DirectX的初級開發(fā)人員和在校師生。由于DirectX編程相對比較復(fù)雜,為了使本書能夠成為一本適合DirectX開發(fā)入門的優(yōu)秀圖書,在本書的寫作過程中,作者有意突出了以下特點(diǎn)。
內(nèi)容概要
本書系統(tǒng)全面地介紹了DirectX編程的各個(gè)方面,主要內(nèi)容包括:學(xué)習(xí)DirectX之前必須掌握的基礎(chǔ)知識、DirectX與相關(guān)圖形技術(shù)以及Windows系統(tǒng)本身的關(guān)系、Direct3D三維圖形和動畫開發(fā)、DirectX Audio音頻開發(fā)、DirectInput輸入處理以及DXUT程序框架等內(nèi)容。此外,每章都提供了精心設(shè)計(jì)的示例程序和課后練習(xí),以及相應(yīng)的源代碼和多媒體課件。本書非常適合作為高等院校相關(guān)專業(yè)的教材。對于希望進(jìn)入DirectX游戲開發(fā)領(lǐng)域的人員,本書是一本非常好的自學(xué)教材。對于希望了解新一代Windows操作系統(tǒng)(Windows Vista和Windows7)圖形引擎,以及新一代圖形界面開發(fā)技術(shù)(WPF)底層基礎(chǔ)的開發(fā)人員,本書也是一本優(yōu)秀的參考用書。
書籍目錄
前言 第1章 DirectX與游戲編程簡介 1.1 DirectX介紹 1.2 OpenGL、XNA與WPF 1.2.1 OpenGL 1.2.2 XNA 1.2.3 WPF 1.3 DirectX功能組件 1.3.1 DirectX Graphics 1.3.2 DirectX Audio 1.3.3 DirectX Input 1.3.4 其他組件 1.4 DirectX與游戲開發(fā) 1.5 DirectX安裝與配置 1.5.1 系統(tǒng)配置要求 1.5.2 DirectX安裝 1.5.3 選擇調(diào)試庫和發(fā)布庫 1.5.4 在Visual Studio IDE中配置 DirectX 1.5.5 瀏覽DirectX SDK示例程序 1.6 小結(jié) 練習(xí) 第2章 預(yù)備知識 2.1 數(shù)學(xué)基礎(chǔ) 2.1.1 向量 2.1.2 矩陣 2.1.3 平面 2.2 Win32 API編程基礎(chǔ) 2.2.1 開發(fā)Win32 API程序的基本步驟 2.2.2 Win32 API程序解析 2.3 COM使用基礎(chǔ) 2.3.1 COM對象概述 2.3.2 創(chuàng)建COM對象 2.3.3 使用COM接口 2.3.4 管理COM對象的生命期 2.4 小結(jié) 練習(xí) ……第3章 Direct3D編程入門 第4章 基本圖元和文本繪制 第5章 頂點(diǎn)坐標(biāo)變換 第6章 光照 第7章 紋理映射 第8章 Direct3D渲染技巧 第9章 網(wǎng)格模型 第10章 點(diǎn)精靈與粒子系統(tǒng) 第11章 基本虛擬場景構(gòu)造 第12章 HLSL高級著色語言 第13章 著色器和效果 第14章 DirectX Audio音頻編程 第15章 DirectInput與場景交互 第16章 DXUT程序框架 附錄A Direct3D 10與Direct3D 11介紹 參考文獻(xiàn)
章節(jié)摘錄
插圖:地面模擬的一個(gè)重要內(nèi)容是獲取高程數(shù)據(jù),高程數(shù)據(jù)通常以文件的形式保存。使用高度圖文件保存地形高程數(shù)據(jù)是一種常見的方法。高度圖有多種可能的圖形表示形式,其中最常見的有兩種。第一種是每個(gè)像素只包含亮度值的黑白圖像(可以是bmp、jpg、tga等文件格式);第二種是灰度圖,這種高度圖通常保存為.raw格式的文件,這種文件逐個(gè)字節(jié)地保存灰度值。為了得到地形的高程數(shù)據(jù),首先需要讀取高度圖文件,將高度圖中保存的高程數(shù)據(jù)讀取到相應(yīng)的內(nèi)存中,以方便構(gòu)造地形網(wǎng)格時(shí)使用。使用第二種高度圖獲取高程數(shù)據(jù),比第一種高度圖要復(fù)雜一些,缺點(diǎn)是無法知道圖形的二維尺寸。下面重點(diǎn)介紹如何使用第一種高度圖獲取地形的高程值。第一種高度圖是一種二維圖像文件,圖像中每個(gè)像素的位置對應(yīng)于實(shí)際地形上的一個(gè)位置。每個(gè)像素的值代表對應(yīng)位置的高程數(shù)據(jù):越亮的像素,對應(yīng)位置的高度越高。因?yàn)檫@種高度圖的文件格式可能有多種,需要針對不同的圖像格式讀取文件內(nèi)容。然而,除了.bmp文件之外,直接讀取圖像文件不是一件輕松的事情。為了簡化編程工作,可首先利用D3Dx提供的D3DXCreateTextureFromFileEx()函數(shù),根據(jù)圖形文件創(chuàng)建相應(yīng)的Direct3D紋理對象,然后從紋理對象中讀取每個(gè)像素。這樣讀取不同格式文件的復(fù)雜工作實(shí)際上就由D3DXcreate-TextureFiomFileEx()函數(shù)代勞了,從而可以不用關(guān)心文件的具體格式。CFerrain類將讀取高度圖文件的操作封裝到私有成員函數(shù)ReadHightDataFrom exFile()中,該函數(shù)的實(shí)現(xiàn)代碼如下。
編輯推薦
《DirectX游戲編程基礎(chǔ)教程》:數(shù)字媒體專業(yè)規(guī)劃教材
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載