出版時(shí)間:2006-10 出版社:兵器工業(yè)出版社 作者:金禾工作室 頁(yè)數(shù):388
Tag標(biāo)簽:無(wú)
內(nèi)容概要
這是一本講述利用Visual C++ .NET進(jìn)行3D程序設(shè)計(jì)的專(zhuān)著。本書(shū)討論如何進(jìn)行基于DirectX的3D程序開(kāi)發(fā)的基本思維、方法和具體過(guò)程。 全書(shū)分為10章,內(nèi)容包括基于DirectX和OpenGL的3D程序,貼圖與坐標(biāo)系,從2D到3D的過(guò)渡思維,鏡像貼圖與坐標(biāo)變換,3ds max模型加載與處理——引入光源、透明、反射、陰影等3D場(chǎng)景效果的VC .NET程序?qū)崿F(xiàn)?! ”緯?shū)完全針對(duì)初學(xué)者——無(wú)須具備程序語(yǔ)言基礎(chǔ),以師徒問(wèn)答、思維引導(dǎo)方式學(xué)用、實(shí)踐結(jié)合,文字輕松、內(nèi)容淺顯并具啟發(fā)性。注重3D思維方法,適合3D程序設(shè)計(jì)愛(ài)好者、3D游戲開(kāi)發(fā)者。 配套光盤(pán)內(nèi)容為書(shū)中部分實(shí)例的源代碼。
書(shū)籍目錄
第1章 第一個(gè)3D程序 1.1 3D空間初體驗(yàn) 1.1.1 視窗 1.1.2 3D世界的坐標(biāo) 1.1.3 右手坐標(biāo)系 1.1.4 左手坐標(biāo)系 1.1.5 Direct3D和OpenGL 1.1.6 采用右手坐標(biāo)系的優(yōu)點(diǎn) 1.2 如何設(shè)定視窗的視野范圍 1.2.1 默認(rèn)值 1.2.2 系統(tǒng)變量 1.2.3 單位的意義 1.2.4 決定視窗與Camera的距離 1.2.5 決定視窗的大小 1.2.6 決定觀察的最遠(yuǎn)距離 1.3 創(chuàng)建第一個(gè)D3D程序 1.3.1 本書(shū)使用的軟件工具 1.3.2 安裝軟件注意事項(xiàng) 1.3.3 開(kāi)始安裝DirectX 9 1.3.4 以EmptyProject建立D3D程序 1.4 D3D基本Framework解說(shuō) 1.4.1 InitApp() 1.4.2 IsDeviceAcceptable() 1.4.3 ModifyDeviceSettings() 1.4.4 OnCreateDevice() 1.4.5 OnResetDevice() 1.4.6 OnFrameMove() 1.4.7 OnFrameRender() 1.4.8 OnLostDevice() 1.4.9 OnDestroyDevice() 1.5 在視窗中加入一個(gè)三角形 1.5.1 介紹3D中的數(shù)據(jù)項(xiàng) 1.5.2 準(zhǔn)備頂點(diǎn)信息 1.5.3 設(shè)定Material 1.5.4 著色狀態(tài)值的設(shè)定 1.5.5 將World Matrix初始化 1.5.6 View Matrix的設(shè)定 1.5.7 Projection Matrix的設(shè)定 1.5.8 建立光源 1.5.9 設(shè)定CullMode 1.5.10 轉(zhuǎn)動(dòng)三角形 1.5.11 畫(huà)出三角形 1.5.12 釋放資源 1.6 D3D名詞解釋 1.6.1 什么是Device 1.6.2 CPU、3D顯卡與效能的關(guān)系 1.6.3 Buffer是一種內(nèi)存嗎 1.6.4 Vertex Buffer和Buffer有什么不同 1.6.5 3D中的顏色值——Color ValueRGBA 1.6.6 Normal Vector與Light Vector 1.6.7 Color Buffer是什么樣的內(nèi)存 1.6.8 Depth Buffer與Z Buffer 1.6.9 Full Screen是全屏幕嗎 第2章 加上貼圖效果 2.1 由三角形到正方形 2.1.1 正方形的組成 2.1.2 介紹Index Buffer 2.1.3 使用Index Buffer建立正方形 2.2 關(guān)于材質(zhì)與貼圖 2.2.1 什么是貼圖 2.2.2 認(rèn)識(shí)貼圖坐標(biāo) 2.2.3 其他貼圖方法 2.3 Texture技巧演練 2.3.1 建立Texture相關(guān)程序代碼 2.3.2 介紹SetTextureStageState()函數(shù) 2.3.3 D3D中Color值的運(yùn)算 2.3.4 Filter與貼圖的關(guān)系 第3章 從平面到立體 3.1 制作每個(gè)面都有貼圖的立方體 3.1.1 立方體共點(diǎn)時(shí)的貼圖問(wèn)題 3.1.2 解決問(wèn)題 3.2 打造一個(gè)六面不同貼圖的立方體 3.2.1 準(zhǔn)備Vertex Buffer 3.2.2 填入Vertex Data 3.2.3 準(zhǔn)備貼圖 第4章 貼圖效果的進(jìn)一步介紹 4.1 建立一片漂亮的地板 4.1.1 建立地板的準(zhǔn)備工作 4.1.2 著手建立地板的程序代碼 4.2 試試各種貼圖方法 4.2.1 Wrap(Repeat)貼圖法 4.2.2 Clamp貼圖法 4.2.3 Mirror貼圖法 4.3 改進(jìn)貼圖品質(zhì) 4.3.1 分辨率不足的問(wèn)題 4.3.2 介紹MipMap貼圖取樣 4.3.3 MipMap與Filter貼圖取樣的比較 第5章 移形換位——坐標(biāo)變換 5.1 空間坐標(biāo)變換 5.1.1 3D空間中旋轉(zhuǎn)的基本概念 5.1.2 投影的坐標(biāo)變換(Projection) 5.1.3 位移的坐標(biāo)變換(Translation) 5.1.4 旋轉(zhuǎn)的坐標(biāo)變換(Rotation) 5.1.5 矩陣具有結(jié)合律 5.1.6 World Matrix 5.1.7 View Matrix 5.1.8 Projection Matrix 5.1.9 位移效果的矩陣函數(shù) 5.1.10 旋轉(zhuǎn)效果的矩陣函數(shù) 5.1.11 World Space與Object Space 5.1.12 矩陣相乘不具備交換律 5.2 給地板施定身法 5.2.1 找出畫(huà)地板前的World Matrix 5.2.2 聲明一個(gè)單位矩陣指定給地板 5.2.3 關(guān)閉PUREDEVICE 5.3 讓Camera自由走動(dòng) 5.3.1 增加Camera移動(dòng)的按鍵控制 5.3.2 聲明變量來(lái)儲(chǔ)存Camera的位置 5.3.3 使用矩陣函數(shù) 5.3.4 使用MatrixStack for Rotating Cube 5.3.5 使用MatrixStack for Camera并加上旋轉(zhuǎn)功能 5.3.6 如何讓Camera繞著自己的坐標(biāo)系旋轉(zhuǎn)和移動(dòng) 第6章 模型加載介紹 6.1 用Vertex Buffer建立模型 6.1.1 建立墻面的Vertex Buffer 6.1.2 正式在OnFrameRender()里畫(huà)出墻面 6.1.3 在OnDestroyDevice()里釋放資源 6.1.4 修改Camera的位置及步伐 6.2 使用3ds max制作含Material的模型 6.2.1 在3ds max中加入轉(zhuǎn)文件程序 6.2.2 如何簡(jiǎn)單制作模型 6.2.3 設(shè)定模型的Material 6.24 將模型Export出去 6.3 在場(chǎng)景中加載3ds max模型 6.3.1 把程序與s3d_model.lib做連結(jié) 6.3.2 在程序中加載含Material的模型 6.4 激活Specular效果 6.4.1 激活Specular的步驟 6.4.2 動(dòng)手開(kāi)啟Specular的光源設(shè)定 6.5 使用3ds max的Texture模型 6.5.1 如何在Max中設(shè)定模型Texture 6.5.2 將含Texture的模型加入場(chǎng)景第7章 激活光源效果 7.1 物體的受光原理 7.1.1 紅花為什么那樣紅 7.1.2 黑色頭發(fā)會(huì)反射黑光嗎 7.2 為3D世界建立光源 7.2.1 光源的種類(lèi) 7.2.2 光源的位置與方向 7.2.3 如何激活光源效果 7.2.4 在場(chǎng)景中加入Point Light 7.2.5 在場(chǎng)景中標(biāo)記光源的位置 7.2.6 在場(chǎng)景中加入Spot Light 7.2.7 在場(chǎng)景中標(biāo)記光源的方向 7.3 制作迷人的舞臺(tái)燈光效果 7.3.1 讓燈光動(dòng)起來(lái) 7.3.2 制作明暗不定的多彩燈光 7.3.3 讓Cube也動(dòng)起來(lái)吧 7.4 頂點(diǎn)數(shù)與光源的關(guān)系 7.4.1 計(jì)算頂點(diǎn)的顏色 7.4.2 增加頂點(diǎn)數(shù)量來(lái)強(qiáng)化光源效果 7.4.3 動(dòng)態(tài)調(diào)整地板頂點(diǎn)數(shù)量的小程序 7.4.4 動(dòng)態(tài)地調(diào)整墻壁的頂點(diǎn)數(shù)量 7.4.5 增加光源開(kāi)關(guān)的機(jī)制 第8章 若隱若現(xiàn)的透明效果 8.1 為透明作準(zhǔn)備 8.1.1 更新模型 8.1.2 使用Material填入Square的顏色 8.1.3 關(guān)于Color Operation的疑惑 8.1.4 使用Texture Factor填入Square的顏色 8.1.5 讓Cube動(dòng)起來(lái) 8.1.6 再?gòu)?fù)制一個(gè)Cube 8.2 正式進(jìn)入透明的殿堂 8.2.1 透明的定義 8.2.2 設(shè)定透明的步驟 8.2.3 為Material Square透明化 8.2.4 為T(mén)exture Factor Square透明化 8.2.5 把Cube也一起透明化吧 8.2.6 Cull Face的設(shè)定 第9章 絢麗的鏡面反射效果 9.1 為反射效果做準(zhǔn)備 9.1.1 更換模型 9.1.2 整理OnFrameRender() 9.2 反射技巧第一步——地板透明化 9.2.1 復(fù)習(xí)透明的步驟 9.2.2 動(dòng)態(tài)控制地板的透明度 9.3 反射技巧第二步——畫(huà)出反射對(duì)象 9.3.1 認(rèn)識(shí)Scale矩陣 9.3.2 利用Scale矩陣做出反射效果 9.3.3 改變反射對(duì)象的旋轉(zhuǎn)方向 9.3.4 畫(huà)出反射的Cube 9.3.5 探討畫(huà)出反射Cube失敗的原因 9.3.6 修正反射部分的光線 9.3.7 畫(huà)出其他反射對(duì)象 9.4 反射技巧第三步——Stencil Buffer 9.4.1 請(qǐng)Stencil Buffer登場(chǎng) 9.4.2 設(shè)定Stencil Buffer內(nèi)存 9.4.3 Clear Stencil Buffer 9.4.4 在Stencil Buffer里做記號(hào) 9.4.5 Stencil Test 9.4.6 將所有地板下的反射對(duì)象都藏起來(lái)吧 第10章 陰影效果 10.1 為陰影做準(zhǔn)備 10.1.1 更換模型 10.1.2 陰影的形成過(guò)程 10.2 為Cube畫(huà)出陰影 10.2.1 設(shè)定投影的變換矩陣 10.2.2 設(shè)定陰影的顏色及透明度 10.2.3 畫(huà)出Cube的陰影 10.3 陰影重疊的問(wèn)題 10.3.1 畫(huà)出其他對(duì)象的陰影 10.3.2 發(fā)現(xiàn)陰影破碎的問(wèn)題 10.4 解決陰影重疊問(wèn)題 10.4.1 向硬件尋找可以使用Stencil Buffer功能組合 10.4.2 使用Stencil Buffer解決陰影破碎問(wèn)題
編輯推薦
與2D圖形圖像畫(huà)面相比,3D畫(huà)面帶給玩家的是更具現(xiàn)實(shí)立體感的世界。于是乎,3D游戲成為主流,而人氣最旺的在線游戲,亦逐漸轉(zhuǎn)向3D化。由于3D程序概念之艱澀難懂,故而本書(shū)舍棄傳統(tǒng)程序設(shè)計(jì)書(shū)籍的論述方式,改為具有啟發(fā)性的對(duì)話過(guò)程。此對(duì)話方式,一來(lái)可以拉近作者與讀者之間的距離,讓讀者在閱讀上無(wú)心理負(fù)擔(dān),再者更可籍由啟發(fā)式的對(duì)話來(lái)加深讀者對(duì)3D程序設(shè)計(jì)的領(lǐng)悟。相信即便是相關(guān)領(lǐng)域的讀者,亦可籍由此書(shū)輕松踏入3D程序設(shè)計(jì)之門(mén),進(jìn)而成為3D領(lǐng)域的佼佼者!
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
3D游戲程序設(shè)計(jì)基礎(chǔ) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版