出版時(shí)間:2009-5 出版社:水利水電出版社 作者:曾凡喜 等編著 頁(yè)數(shù):291
前言
記得我2005年初學(xué)習(xí)Direct3D時(shí),國(guó)內(nèi)沒(méi)有一本介紹實(shí)時(shí)圖形渲染技術(shù)的中文書(shū)籍,那時(shí)僅靠著閱讀。Direct×SDK幫助文檔學(xué)習(xí)Dieect×和3D圖形相關(guān)知識(shí),整個(gè)過(guò)程是有些困難的。誠(chéng)然,要深入了解Dieect3D,不參考閱讀Direct×SDK幫助文檔是不行的。但對(duì)于初學(xué)者來(lái)說(shuō),不能不說(shuō)這提高了學(xué)習(xí)者的門(mén)檻。因?yàn)樗笞x者具備較強(qiáng)的英文閱讀能力和較深的程序理解能力。如果讀者不具備這方面的條件,難免會(huì)對(duì)這些幫助文檔望而生畏。于是便產(chǎn)生了編寫(xiě)一本有關(guān)Direct×技術(shù)的中文書(shū)籍的想法。游戲產(chǎn)業(yè)是近幾年較為火爆的IT產(chǎn)業(yè)之一,也帶動(dòng)游戲編程成為了編程領(lǐng)域的熱點(diǎn),越來(lái)越多的人參與到這個(gè)行業(yè)中,也促進(jìn)了相關(guān)中文書(shū)籍的誕生,但大多數(shù)書(shū)籍都不適合初學(xué)者。有的書(shū)是從國(guó)外翻譯過(guò)來(lái)的,翻譯過(guò)程中造成了語(yǔ)句不通順、文字習(xí)慣不符合國(guó)內(nèi)讀者的閱讀習(xí)慣等。有的書(shū)本講得太難太深入,讓初學(xué)者望而生畏。因此,編寫(xiě)一本符合初學(xué)者要求,內(nèi)容較為淺顯的書(shū)籍應(yīng)該是非常必要且具有市場(chǎng)價(jià)值的。筆者在編寫(xiě)本書(shū)的過(guò)程中,突出了以下特點(diǎn):(1)內(nèi)容全面,適合入門(mén)。學(xué)習(xí)Direct3D編程不同子其他編程,要求具備的相關(guān)基礎(chǔ)知識(shí)有計(jì)算機(jī)圖形學(xué)、線性代數(shù)等。因此本書(shū)不僅系統(tǒng)地講述了Direct×接口和函數(shù)的使用,還簡(jiǎn)單剖析了其背后隱含的3D數(shù)學(xué)和圖形學(xué)原理。另外,本書(shū)對(duì)Direct×接口介紹十分詳細(xì),基礎(chǔ)部分的內(nèi)容不亞于幫助文檔。因此,本書(shū)非常適合初學(xué)者學(xué)習(xí)。(2)注重實(shí)踐,實(shí)例豐富。部分重要的程序代碼在書(shū)中列出,既突出了代碼的重要性,又沒(méi)有縮減整本書(shū)的文字量。讀者可以對(duì)照程序代碼看書(shū),有利于加深對(duì)Direct3D的理解和掌握。本書(shū)主要由曾凡喜編寫(xiě),另外參加本書(shū)部分編寫(xiě)工作的還有周煒、潘運(yùn)亮、林曉珊、黃卓、李鑫、王克杰、莊東填、張晉寶、林麗、王小青、趙應(yīng)丁、郝思嘉、李俊峰、童劍等。由于作者水平有限,再加上時(shí)間倉(cāng)促,書(shū)中疏漏甚至錯(cuò)誤之處在所難免,懇請(qǐng)廣大讀者批評(píng)指正。
內(nèi)容概要
本書(shū)不僅系統(tǒng)地講述了DirectX接口和函數(shù)的使用,而且簡(jiǎn)單剖析了其背后隱含的3D數(shù)學(xué)和圖形學(xué)原理,并對(duì)DirectX接口介紹得十分詳細(xì),基礎(chǔ)部分的內(nèi)容不亞于幫助文檔。 注重實(shí)踐,實(shí)例豐富。部分重要的程序代碼在書(shū)中列出,既突出了代碼的重要性,又沒(méi)有縮減整本書(shū)的文字量。讀者可以對(duì)照程序代碼看書(shū),有利于加深對(duì)Direct3D的理解和掌握。 本書(shū)非常適合初學(xué)者或有一定基礎(chǔ)的讀者學(xué)習(xí)Direct3D實(shí)時(shí)渲染技術(shù)時(shí)使用。 本書(shū)提供實(shí)例的完整源代碼,讀者可以從中國(guó)水利水電出版社網(wǎng)站或萬(wàn)水書(shū)苑上免費(fèi)下載,網(wǎng)址為:http://www.waterpub.com.cn/softdown/和http://www.wsbookshow.com。
書(shū)籍目錄
叢書(shū)序前言第1章 Windows程序設(shè)計(jì)基礎(chǔ) 1.1 一個(gè)完整的Windows應(yīng)用程序 1.2 C++面向?qū)ο笤O(shè)計(jì)語(yǔ)言簡(jiǎn)介第2章 計(jì)算機(jī)圖形學(xué)中的3D數(shù)學(xué) 2.1 向量及其運(yùn)算 2.2 矩陣及矩陣變換 2.3 3D編程中的四元數(shù) 第3章 Direct3D設(shè)備及D3D程序框架 3.1 Direct3D和COM簡(jiǎn)介 3.2 初始化Direct3D設(shè)備 3.3 建立D3D程序框架第4章 從頂點(diǎn)到幾何體 4.1 靈活頂點(diǎn)格式和頂點(diǎn)緩沖 4.2 繪制多邊形 4.3 程序?qū)嵗獔A柱體渲染cylinder 4.4 使用索引緩沖第5章 幾何變換與圖形渲染管道 5.1 幾何變換 5.2 程序?qū)嵗? 5.3 圖形渲染管道第6章 顏色與光照 6.1 Direct3D中的顏色表示與頂點(diǎn)顏色 6.2 材質(zhì)與燈光 6.3 光照程序?qū)嵗?章 紋理 7.1 紋理基礎(chǔ) 7.2 高級(jí)紋理技術(shù)第8章 風(fēng)格模型 8.1 網(wǎng)格模型基礎(chǔ) 8.2 程序?qū)嵗獎(jiǎng)?chuàng)建一個(gè)Mesh 8.3 X文件格式分析 8.4 網(wǎng)格模型類(lèi)的封裝第9章 Alpha混合與Alpha測(cè)試 9.1 Alpha混合 9.2 Alpha測(cè)試第10章 深度測(cè)試和霧化 10.1 深度測(cè)試及其使用 10.2 霧化方法 10.3 本章小結(jié)第11章 文本顯示及文本顯示內(nèi)核第12章 LOD地形繪制 第13章 粒子系統(tǒng)及粒子內(nèi)核封裝第14章 ASM著色器參考文獻(xiàn)
章節(jié)摘錄
插圖:這個(gè)函數(shù)是系統(tǒng)默認(rèn)的消息處理函數(shù),也就是說(shuō),窗口程序的消息處理函數(shù)處理的只是我們感興趣的消息,即上面的case語(yǔ)句,對(duì)于其他的消息還是使用系統(tǒng)默認(rèn)的消息處理函數(shù)。消息處理函數(shù)是要在窗口主程序中登記的,登記為自定義的消息處理函數(shù)之后,系統(tǒng)的消息就由它來(lái)處理了。所以,在本函數(shù)的最后要使用該默認(rèn)函數(shù),否則其他的消息本程序就無(wú)法處理了。比如一般在WM PAINT中處理繪圖, 當(dāng)關(guān)閉一個(gè)程序時(shí),系統(tǒng)通常會(huì)發(fā)送一個(gè)WM DESTROY消息給應(yīng)用程序。1.2 C++面向?qū)ο笤O(shè)計(jì)語(yǔ)言簡(jiǎn)介C++就是使用面向?qū)ο螅∣bject-Oriented,OO)思想提升了的C語(yǔ)言(盡管許多人都認(rèn)為C++和C語(yǔ)言是兩門(mén)不同的語(yǔ)言,但我仍然趨向于認(rèn)為C++是C語(yǔ)言的擴(kuò)展和升級(jí)),主要在以下幾個(gè)方面進(jìn)行了升級(jí):類(lèi)的封裝。繼承。多態(tài)。類(lèi)是將數(shù)據(jù)和函數(shù)組合起來(lái)的一種方式。通常,使用C語(yǔ)言編程時(shí),用數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)結(jié)構(gòu),用函數(shù)來(lái)處理這些數(shù)據(jù),然而,使用C++時(shí),數(shù)據(jù)和處理數(shù)據(jù)的函數(shù)都封裝在一個(gè)類(lèi)中,這樣做的好處是什么呢?這樣可以將封裝好的類(lèi)看成有屬性且具有某種行為的對(duì)象。這是一種更抽象更貼近實(shí)際情況的思考方式。C++的另一項(xiàng)特性是繼承。創(chuàng)建類(lèi)后,便可以指定類(lèi)對(duì)象之間的關(guān)系,在一個(gè)類(lèi)的基礎(chǔ)上派生出另一個(gè)類(lèi)?,F(xiàn)實(shí)世界本來(lái)就是這樣的,例如有一種名為Student的類(lèi),它具有一些內(nèi)部屬性和特定的行為,如名字、性別等都可以成為它的屬性;它可以具有一些行為(如去參加考試等)。但在這里,Student是一個(gè)通用概念,比如小學(xué)生和大學(xué)生的行為顯然是不一樣的,而且小學(xué)生和大學(xué)生都具有他們特定的屬性(比如小學(xué)生具有過(guò)兒童節(jié)的特權(quán),大學(xué)生就沒(méi)有這個(gè)權(quán)利了。)這時(shí),就需要從Student類(lèi)派生出兩種新類(lèi),分別為L(zhǎng)Student(小學(xué)生)和HStudent(大學(xué)生)。圖1.1描述了Student、LStudent和HSmdem之間的關(guān)系。明白這兩個(gè)新類(lèi)是如何從Student類(lèi)派生出來(lái)的嗎?LStudent和HStudent擁有Student所擁有的所有屬性、方法和行為,但它們又具有自身特有的屬性和方法。這就是繼承的基本概念:可以在已有類(lèi)的基礎(chǔ)上創(chuàng)建出更復(fù)雜的類(lèi)。另外,還有多重繼承,它讓你能夠以多個(gè)類(lèi)為基礎(chǔ),創(chuàng)建出新的類(lèi)。C++和面向?qū)ο缶幊套钪匾囊稽c(diǎn)是多態(tài)(Polymorphism),其含義是“多種形式”。在C++語(yǔ)境下,多態(tài)指的是根據(jù)不同的環(huán)境,函數(shù)和運(yùn)算符有不同的功能。例如,在C語(yǔ)言中,表達(dá)式a+b表示將a和b相加,在這里a和b必須是內(nèi)置類(lèi)型變量,如int、float、char、short等。也就是在C語(yǔ)言中,不能定義一個(gè)新類(lèi)型,然后將這種類(lèi)型的變量a和b相加。然而在C++中,完全可以重載+、-、*、/等運(yùn)算符,根據(jù)數(shù)據(jù)的類(lèi)型執(zhí)行不同的運(yùn)算。
編輯推薦
《Direct3D實(shí)時(shí)渲染技術(shù)》非常適合初學(xué)者或有一定基礎(chǔ)的讀者學(xué)習(xí)Direct3D實(shí)時(shí)渲染技術(shù)時(shí)使用。美術(shù)基礎(chǔ)+項(xiàng)目創(chuàng)意+程序設(shè)計(jì)+產(chǎn)品實(shí)訓(xùn)模擬公司實(shí)戰(zhàn)制作流程,運(yùn)用“項(xiàng)目帶學(xué)”的理念,做到所學(xué)知識(shí)與職場(chǎng)生涯無(wú)縫鏈接。
圖書(shū)封面
評(píng)論、評(píng)分、閱讀與下載
Direct3D實(shí)時(shí)渲染技術(shù) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版