Direct3D實(shí)時(shí)渲染技術(shù)

出版時(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格式下載


用戶(hù)評(píng)論 (總計(jì)0條)

 
 

 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7