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