《計算機(jī)圖形學(xué):基于3D圖形開發(fā)技術(shù)》詳細(xì)闡述了與計算機(jī)游戲設(shè)計相關(guān)的基本解決方案及相應(yīng)的數(shù)據(jù)結(jié)構(gòu)和法,主要包括游戲模型、頂點(diǎn)處理機(jī)制、光柵化操作、片元處理和輸出合并、光照著色、參數(shù)曲線和表面、著色器模型、圖像紋理、凹凸貼圖、高級紋理操作、角色動畫以及物理模擬等內(nèi)容。此外,《計算機(jī)圖形學(xué):基于3D圖形開發(fā)技術(shù)》還提供了相應(yīng)代碼以及偽代碼,以幫助讀者進(jìn)一步理解相關(guān)方案的實(shí)現(xiàn)過程。
《計算機(jī)圖形學(xué):基于3D圖形開發(fā)技術(shù)》適合作為高等院校計算機(jī)及相關(guān)專業(yè)的教材,也可作為相關(guān)開發(fā)人員的自學(xué)教材和參考手冊。
大學(xué)的計算機(jī)圖形學(xué)課程主要集中于動畫和實(shí)時渲染,然而很少有教材可完美地體現(xiàn)交互式圖形學(xué)特征,并在理論與實(shí)踐方面做到較好的平衡且篇幅適中。本書涵蓋了計算機(jī)圖形學(xué)中的基礎(chǔ)知識,可在一定程度上滿足上述要求。本書適用于計算機(jī)圖形學(xué)或游戲程序設(shè)計專業(yè)高年級本科課程以及初級研究生課程。
除此之外,本書還適用于游戲開發(fā)人員。此類人員具備圖形 API以及著色器編程經(jīng)驗(yàn),但缺乏一定的 3D圖形學(xué)背景知識。目前,市場上充斥著大量手冊式的程序設(shè)計書籍。對于游戲開發(fā)人員而言,這一類書籍并未提供應(yīng)有的數(shù)學(xué)知識。本書假設(shè)讀者了解諸如向量和矩陣等較為基礎(chǔ)的數(shù)學(xué)內(nèi)容,進(jìn)而將計算機(jī)圖形學(xué)的基礎(chǔ)理論和實(shí)踐經(jīng)驗(yàn)相結(jié)合。
作為交互式圖形學(xué)的核心內(nèi)容, GPU始終在不斷地發(fā)展。為此,本書將圍繞 GPU程序設(shè)計進(jìn)行組織。 GPU可劃分為可編程階段和硬件階段。針對可編程階段,本書將闡述各種算法;對于硬件階段,本書也將對必要知識加以分析。
本書的組織方式和講述內(nèi)容均經(jīng)過精心設(shè)計,以使讀者深入理解交互式圖形學(xué)的核心內(nèi)容。相關(guān)章節(jié)提供了大量的 3D知識,以幫助讀者快速地掌握相對復(fù)雜的知識點(diǎn)。同時,本書還在提示部分講述了理論或技術(shù)細(xì)節(jié),并涵蓋了相應(yīng)的可選章節(jié)(采用星號標(biāo)記)以供讀者閱讀。當(dāng)然,讀者也可忽略這一部分內(nèi)容,且不會對后續(xù)章節(jié)的內(nèi)容產(chǎn)生任何影響。
Direct3D和OpenGL是兩種較為知名的圖形 API,本書將會弱化 API的歸屬特征,并在多處提供對應(yīng)的示例代碼,進(jìn)而使讀者深入理解交互式圖形算法的實(shí)現(xiàn)方式。
本書輔助網(wǎng)站地址為 http://media.korea.ac.kr/book,其中包含 PowerPoint文件格式的教學(xué)備案以及視頻剪輯在內(nèi)的其他輔助資源。特別地,教學(xué)備案中包含了本書的全部圖像。
致謝
本書源自 Nexon Corporation和Korea Creative Content Agency所開發(fā)的項目,來自 Nexon Corporation的眾多人員均對本書的出版有所貢獻(xiàn)。 Jubok Kim在本書的籌備階段即提出了許多中肯建議,并分別對本書的 Alpha和Beta版本作了校對。 Seungwon Han提供了本書所需的 3D模型以及其他藝術(shù)設(shè)計工作。另外, Hyunwoo Ki、Joongwon Gouk、Minsun Song也提供了頗具價值的圖像。
同時,來自 Korea University的相關(guān)人員也對本書的編寫工作給予了大力的支持。例如,本書的視覺內(nèi)容均來自 Seungjik Lee,他在藝術(shù)設(shè)計和程序設(shè)計方面頗具天分。感謝 Nguyen Trung Kien博士,在他的幫助之下,與紋理相關(guān)的 3章內(nèi)容得以順利完成。 Hanyoung Jang博士對著色模型以及物理模擬等相關(guān)章節(jié)也提出了寶貴的意見。在 Kiwon Um的幫助下,筆者對全書章節(jié)進(jìn)行了重新整理。同時,還要感謝來自 3D Interactive Media Lab的學(xué)生們,他們是 Dong-young Kim、Hyun Ju Shin、YoungBeom Kim、EunSeok Han、 GwangHyun Park、Seungho Baek和Junhoo Park。本書內(nèi)容源自 Korea University和Carnegie Mellon University的授課內(nèi)容,在此也要對學(xué)生們的反饋信息表示感謝。
Ewha Womans University的Young J. Kim教授、 Soongsil University的Kyoung-Su教授、 Kwangwoon University的Kang Hoon Lee教授、 University of Florida的Jorg Peters教授以及 Crytek的Dongwook Ha教授閱讀了本書的手稿并提出了諸多寶貴的建議和意見,在此深表謝意。此外,還要感謝本書編輯 ——來自 CRC Press的Li-Ming Leong,在他的大力支持下,本書方得以順利出版。
最后,還要感謝 Kyung-Ok、Jeehee和Jihoon,感謝你們的陪伴,我愛你們。
第1章 游戲模型
1.1 游戲制作流程
1.2 多邊形網(wǎng)格
1.2.1 創(chuàng)建多邊形網(wǎng)格
1.2.2 多邊形網(wǎng)格的表達(dá)方式
1.2.3 表面法線
1.3 模型導(dǎo)出和導(dǎo)入
1.4 坐標(biāo)系統(tǒng)
本章練習(xí)
第2章 頂點(diǎn)處理機(jī)制
2.1 世界轉(zhuǎn)換
2.1.1 仿射轉(zhuǎn)換以及齊次坐標(biāo)
2.1.2 世界矩陣
2.1.3 歐拉轉(zhuǎn)換
2.1.4 表面法線的轉(zhuǎn)換
2.2 視見轉(zhuǎn)換
2.2.1 相機(jī)空間
2.2.2 空間轉(zhuǎn)換和視見矩陣
2.3 逐頂點(diǎn)光照
2.4 投影轉(zhuǎn)換
2.4.1 視見體
2.4.2 投影矩陣
2.4.3 投影矩陣的推導(dǎo)過程
本章練習(xí)
第3章 光柵化操作
3.1 剪裁操作
3.2 透視除法
3.3 背面剔除操作
3.4 再訪坐標(biāo)系統(tǒng)+
3.4.1 3dsMax至OpenGL-翻轉(zhuǎn)坐標(biāo)軸
3.4.2 0penGL至Direct3D-反射
3.4.3 0penGL至Direct3D-頂點(diǎn)重排列
3.5 視口轉(zhuǎn)換
3.6 掃描轉(zhuǎn)換
3.7 應(yīng)用:對象拾取操作
3.7.1 計算世界空間中的光線
3.7.2 光線對象相交測試
本章練習(xí)
第4章 片元處理和輸出合并
4.1 紋理操作
4.1.1 紋理坐標(biāo)
4.1.2 表面參數(shù)化操作
4.1.3 紋理坐標(biāo)與紋素地址
4.2 輸出合并
4.2.1 z緩沖區(qū)機(jī)制
4.2.2 Alpha混合
4.3 z剔除操作
4.3.1 單元(tile)剔除
4.3.2 預(yù)寫Z值
本章練習(xí)
第5章 光照和著色
5.1 Phong光照模型
5.1.1 漫反射
5.1.2 鏡面反射
……
第6章 參數(shù)曲線和表面
第7章 著色器模型
第8章 圖像紋理
第9章 凹凸貼圖
第10章 高級紋理操作
第11章 角色動畫
第12章 物理模擬