


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、DirectX 程序設計課程期末復習資料第一章3D游戲開發的數學基礎本章包含的全部知識點:點和向量直線與平面 矩陣與坐標變換 坐標系章節重點:矩陣和坐標變換第二章Windows編程基礎 本章包含的全部知識點:基本概念介紹Win dows程序結構Win32程序開發實例第三章 DirectX 快速入門本章包含的全部知識點:DirectX 概述Direct3D 底層結構概述DirectX9.0 的配置和安裝章節重點:DirectX9.0 的配置和安裝第四章 DirectX 程序框架本章包含的全部知識點:Win32+C+Direct3D 的基礎框架DXUT 匡架章節重點:Win32+C+Direct3
2、D 的基礎框架 第五章 文本顯示 本章包含的全部知識點:文本繪制流程Win32程序框架實現DXUT程序框架實現章節重點:Win32 程序框架實現第六章 基本圖形的繪制 本章包含的全部知識點: 圖元靈活頂點格式( FVF) 使用頂點緩存繪制圖形 索引緩存顏色表示法渲染狀態繪制準備D3DX幾何物體實例設計與實現 章節重點:頂點緩存索引緩存 第七章 變 換 本章包含的全部知識點: 攝像機 頂點變換 光柵化實例 章節重點:頂點變換 第八章 3D 數學基礎補充 本章包含的全部知識點: 常見坐標系 向量矩陣線性變換章節重點:線性變換 第九章 光照和材質 本章包含的全部知識點: 真實感圖形基本概念 Dire
3、ct3D 中的光照 Direct3D 中的材質 光照和材質例子 章節重點:Direct3D 中的光照Direct3D 中的材質 第十章 紋理映射 本章包含的全部知識點: 紋理貼圖 紋理坐標 紋理尋址模式 紋理過濾紋理混合狀態紋理實例解析 章節重點:紋理尋址模式紋理過濾 第十一章 深度測試和反走樣 本章包含的全部知識點: 深度緩存與深度測試 圖形反走樣 深度測試實例章節重點: 深度緩存與深度測試第十二章 網格( 一) 本章包含的全部知識點:ID3DXMesh 子集和屬性緩存 繪制 鄰接信息 優化 屬性表 創建一個 Mesh 例子 章節重點:子集和屬性緩存 創建一個 Mesh第十三章 網格( 二)
4、本章包含的全部知識點:X文件格式解析讀取 X 文件漸進網格 漸進網格例子章節重點:深度緩存與深度測試 第十四章 混合和模板 本章包含的全部知識點:混合因子混合計算Alpha 來源Alpha 混合實例 模板章節重點:Alpha 混合實例 第十五章 著色器入門 本章包含的全部知識點:著色器概述HLSL的變量HLSL的函數HLSL基本語法在 Direct3D 中使用 HLSL章節重點:Alpha 混合實例 第十六章 頂點著色器本章包含的全部知識點: 頂點著色器概述 頂點聲明 使用頂點著色器 頂點著色器實例第十七章 像素著色器 本章包含的全部知識點: 像素著色器概述 使用像素著色器HLSL米樣器對象多
5、重紋理例子程序、客觀部分:(單項選擇、多項選擇、不定項選擇、判斷)一)、選擇部分1. D3DPRESENT_PARAME參數很多,關于其中參數之一 windowed的理解正確的是( ABD )C. intA. 取值FALSE則渲染全屏B.取值TRUE則渲染窗口型 D.BOOL 類型 E.double 類型考核知識點 : D3DPRESENT_PARAMETERS2. 以下屬于 Direct 3D 定義的圖元類型的有( ABCDA. 點列表 B. 線段條帶C. 三角形列表D. 三角形條帶E .四邊形列表考核知識點 : 圖元AB3. 以下屬于 Direct 3D 提供的著色模式的是(A. 平面著色
6、模式B. 高洛德法著色模式C.漸變著色模式D .單顏色著色模式考核知識點 : 著色模式ABC )4. 下面屬于 Direct3D 提供的創建旋轉矩陣的函數的是(A. D3DXMatrixRotarionXB. D3DXMatrixRotarionYC.D3DXMatrixRotarionZD. D3DXMatrixRotX E. D3DXMatrixRotY考核知識點 : 變換5. 以下屬于 Direct3D 提供的簡化紋理過濾的過程的是( ABCD )A. 最近點采樣 B. 線性過濾 C. 各向異性過濾 D.mipmap 過濾 考核知識點 : 紋理過濾6. D3DPRESENT_PARAME
7、參數很多,下面理解正確的是( ABCD )A.Windowed取值FALSE則渲染全屏B. BackBufferCount表示后備緩沖的數目C. SwapEffect 表示交換緩沖類型D. BackBufferFormat表示后備緩沖的格式考核知識點 : D3DPRESENT_PARAMETERS7. 以下屬于 Direct3D 中提供的標準光源的是( ABC )A. 點光源 B. 方向光源 C. 聚焦光源 D. 多點光源 考核知識點 : 光源8. 關于靈活頂點格式下列說法正確的是(ABD )A. D3DFVF_DIFFUS表示頂點數據中包含的是漫反射顏色值;B. D3DFVF_SPECULA
8、Rg示頂點數據中包含的是鏡面反射下的顏色值C. D3DFVF_XYZRHWfe示頂點數據中包含的是未經過坐標變換的頂點坐標D. D3DFVF_XYZ 頂點數據中包含未經坐標變換的頂點坐標考核知識點 : 靈活頂點格式解析:C項應該是經過坐標變換后的頂點坐標9. 關于頂點 Alpha 描述正確的是( AB )A. 如果在程序中直接指定每個頂點的顏色,直接給出每個頂點顏色的 Alpha 值。B. 渲染對象中每個像素的 Alpha 值由該對象的 Alpha 值和著色模式決定。C. 高洛德著色模式,所有像素的 Alpha 值都等于該多邊形的第一個頂點的Alpha 值。D. 平面著色模式,每個多邊形上的像
9、素的 Alpha 值由它的各個頂點的 Alpha 值進行線性插值得到。考核知識點 : 頂點 Alpha解析: C 項應該是 平面著色模式,所有像素的 Alpha 值都等于該多邊形的第一 個頂點的Alpha值。D項應該是高洛德著色模式,每個多邊形上的像素的Alpha值由它的各個頂點的 Alpha 值進行線性插值得到。(二)、判斷部分1. Direct3D 將給每個采樣器對象連接一個唯一的紋理階段 (stage) ,在應用程 序中找出與采樣器對象相關聯的階段, 并設置相應的紋理和采樣器狀態給該 階段。 ( 正確 )考核知識點 : 紋理2. 一個 Direct3D 對象只能創建一個 Direct3D
10、 設備對象。 ( 錯誤 )考核知識點 : Direct3D 設備對象考核知識點解釋一個 Direct3D 對象可以創建多個 Direct3D 設備對象。3. 由于 Direct3D 設備對象是由 Direct3D 對象創建的,因此應先釋放 Direct3D 設備對象。(正確)考核知識點 : Direct3D 對象及設備對象4. D3DFVF_XYZ頂點數據中包含未經坐標變換的頂點坐標,不能與D3DFVF_XYZR同時使用。(正確)考核知識點:靈活頂點格式5. D3DFVF_XYZ頂點數據中包含未經坐標變換的頂點坐標,可以與D3DFVF_XYZR同時使用。(錯誤)考核知識點 : 靈活頂點格式考核
11、知識點解釋D3DFVF_XYZK點數據中包含未經坐標變換的頂點坐標,不可以與D3DFVF_XYZRI同時使用。6. D3DFVF_XYZRHW點數據中包含經過坐標變換的頂點坐標,不能與D3DFVF_XY和 D3DFVF_NORM同時使用。(正確)考核知識點:靈活頂點格式7. Direct3D 創建的場景和對象都是由簡單的 “圖元”按照一定的方式排列組合 而成的,Direct3D中的所有圖元都是一維或二維對象,包括單個的點和直線及復雜的多邊形。(正確)考核知識點 : 圖元8. 在索引緩存中定位頂點也就是在頂點緩存中定位頂點。(正確)考核知識點 : 頂點緩存索引緩存二、主觀部分:(一) 、填空部分
12、1) 像素著色器的輸入僅有顏色和紋理坐標兩種語義。考核知識點 : 像素著色器2) 像素著色器的工作是在頂點著色器之后,后者的輸出將為前者提供輸入。 考核知識點 : 像素著色器3) D3DFVF_DIFFUS表示頂點數據中包含的是漫反射顏色值;考核知識點 : 靈活頂點格式4) D3DFVF_SPECULA示頂點數據中包含的是鏡面反射下的顏色值;考核知識點 : 靈活頂點格式5) D3DFVF_XYZRI表示頂點數據中包含的是經過坐標變換的頂點坐標考核知識點 : 靈活頂點格式6) Direct3DCreate9 函數創建一個 Direct3D 對象并獲得指向 Direct3D 對象接 口的指針,且參
13、數必須設置為 D3D_SDK_VERSIQN考核知識點 : Direct3D 對象7) DXUT(The DirectX Utility Library)是建立在 Direct3D9 和 Direct3D10上的一個程序框架,其目標是建立一個強大而容易使用的 Direct3D 游戲開 發框架,它簡化了 Win32和Direct3D API的使用。考核知識點 : DXUT8) 創建 DirectX 設備對象的函數為 CreateDevice 。考核知識點 : 設備對象9) Direct3D 圖形程序通過調用 IDirect3DDevice9:SetRenderState() 函數來 設置渲染狀態
14、。考核知識點 : 設置渲染狀態10) g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_FL這行代碼完成的功能是( 設置著色模式為平面著色模式)。考核知識點 : 設置著色模式11) g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOUR這UD) 行代碼完成的功能是( 設置著色模式為高洛德著色模式)。考核知識點 : 設置著色模式(二) 、名詞解釋1 、請你給出創建頂點聲明,并獲得 IDirect3DVertexDeclaration9 接口指針的 方法。考核知識點
15、: 頂點聲明考核知識點解釋HRESULT IDirect3DDevice9:CreateVertexDeclaration(CONST D3DVERTEXELEMENT9* pVertexElements, /要創建的頂點聲明IDirect3DVertexDeclaration9* ppDecl/ 返 回 創 建 的IDirect3DVertexDeclaration9 接/ 口指針 );2、請你給出環境光 (ambient light) 的概念,并說明如何設置渲染狀態為整個場 景添加環境光。考核知識點 : 環境光考核知識點解釋環境光 (ambient light)由光源發出經環境多次散射而無
16、法確定其方向的光,即好像是來自四面八方的光;室內成分大,室外成分少,沒有位置或方向上的特征,只有顏色亮度 值,不會衰減;通過設置渲染狀態為整個場景添加環境光:g_device->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_X#);3、請你給出鏡面反射光的概念,并說明如何設置渲染狀態。考核知識點 : 鏡面反射光考核知識點解釋鏡面光來自特定方向并被反射到特定方向; 在默認狀態下, Direct3D 不對物體進行鏡面反射計算,需設置相關的渲染狀態:g_device->SetRenderState(D3DRS_SPECULARENABLE,TRUE);如果需
17、要進行漫反射或鏡面反射運算,那么在頂點緩沖器中必須包含頂點的 法向量信息;4、請給出設置像素著色器的函數原型及調用示例代碼。考核知識點 : 像素著色器考核知識點解釋HRESULT IDirect3DDevice9:SetPixelShader(IDirect3DPixelShader9* pShader );這個方法只接受一個參數, 通過它傳遞一個我們要使用的指向像素著色器的 指針。示例代碼如下:Device->SetPixelShader(MultiTexPS);5、銷毀像素著色器接口函數原型考核知識點 : 像素著色器考核知識點解釋 d3d:Release<IDirect3DPi
18、xelShader9*>(MultiTexPS);6、在 Direct3D 的一個場景中,最多可設置幾個光源,設置函數形式。 考核知識點 : 光源考核知識點解釋最多可設置 8 個光源HRESULT SetLight(DWORD Index,CONST D3DLight9 *pLight ) ;7、光照程序一般步驟。考核知識點 : 光照考核知識點解釋(1) 創建光源、設置其位置及相關屬性; SetLight 函數將光源設置到渲染管 道流水線中; LightEnable 函數激活光源;(2) SetRenderState 打開渲染管道流水線的光照開關;(3) 創建材質,設置物體的材質屬性,
19、SetMaterial 設定材質;8、請給出點列表圖元的含義,并說明其應用。考核知識點 : 圖元考核知識點解釋點列表是一個對每點獨立進行渲染的頂點集合。程序可以在 3D 場景中使用 它模擬星空視野,或作為多邊形表面的點化線。9、請給出線段列表圖元的含義,并說明其應用。考核知識點 : 圖元考核知識點解釋線段列表是一系列的獨立線段,用于為 3D 場景加入冰雹或大雨等效果,線 段列表中頂點的數量必須是大于等于 2 的偶數。10、請給出線段條帶圖元的含義,并說明其應用。考核知識點 : 圖元考核知識點解釋線段條帶是一個由相互鏈接的線段組合成的造型, 程序可以用它產生不封閉的多邊形;11、請給出三角形列表
20、圖元的含義,并說明其應用。考核知識點 : 圖元考核知識點解釋三角形列表是一系列獨立的三角形,它們之間可能靠的很近,也可能不是, 頂點總數必須能被 3 整除;使用三角形列表建立一個由離散面片組成的物體; 如建立力場墻的一種方法是指定一個由互相不相連的小三角形組成的大型 列表;然后將一個可以發散光線的材質和紋理應用到這個三角形列表上12、請給出三角形條帶圖元的含義,并說明其應用。考核知識點 : 圖元考核知識點解釋三角形條帶是一連串相鄰接的三角形。 3D 場景中大部分物體都是由三角條帶組成的。13、請給出三角形扇圖元的含義,并說明其應用。考核知識點 : 圖元考核知識點解釋三角形扇和三角形條帶類似,但
21、其所有三角形共享一個頂點。 3D 場景中曲面的描述14、請給出 Direct3D 中設置渲染狀態的函數原型,并解釋其參數含義。 考核知識點 : 渲染狀態考核知識點解釋Direct3D 圖形程序通過調用 IDirect3DDevice9:SetRenderState() 函數來 設置渲染狀態。枚舉類型D3DRENDERSTATET列PE出所有可能的渲染狀態; 使用 SetRenderState() 設置:HRESULT IDirect3DDevice9:SetRenderState(D3DRENDERSTATETYPE State,/ 更改的渲染狀態DWORD Value );/ 新的狀態值15
22、、請你解釋平面著色模式的含義。考核知識點 : 著色模式考核知識點解釋Direct3D 繪制流水線使用多邊形第一個頂點的材質顏色作為整個多邊形的 顏色來渲染該多邊形;如果多邊形不共面,被平面著色方式渲染的三維物體 在多邊形之間將具有可視的清晰邊緣;平面著色是最快的著色方式。16、請你解釋高洛德著模式的含義。考核知識點 : 著色模式考核知識點解釋它使用頂點法線和光照參數為每個頂點計算顏色, 然后穿越多邊形的表面進 行插值,插值以線性方式完成, 高洛德著色使物體的表面看上去彎曲而平滑。17、可編程管線渲染一個球體的步驟。考核知識點 : 著色模式考核知識點解釋1)找到用于渲染該球體的 VertexSh
23、ader 和 PixelShader ;2)將 參 數傳 遞給 VertexShader ,VertexShader 的 輸出 再傳 遞給PixelShader ;3)繪制該球體;18、請說明怎樣對多級漸進紋理過濾器進行設置 , 并具體解釋 Filter 的取值。 考核知識點 : 多級漸進紋理過濾考核知識點解釋Device->SetSamplerState(0,D3DSAMP_MIPFILTER,Filter);D3DTEXF_N0N禁用多級漸進紋理過濾;D3DTEXF_P0INT就會只使用與圖元大小最匹配的一級紋理;D3DTEXF_LINEARDirect3D 就將與圖元大小最匹配的兩
24、級紋理以線性方式混 合。19、請你給出物體表面材質的定義方式,并解釋每個參數的概念。考核知識點 : 材質考核知識點解釋typedef strcut D3DMATERIAL9D3DC0L0RVALUE Diffuse; / 慢射光的反射屬性D3DC0L0RVALUE Ambient;/ 環境光的反射屬性D3DC0L0RVALUE Specular;/ 鏡面光的反射屬性D3DC0L0RVALUE Emissive;/ 自發光的反射屬性float Power;/ 鏡面光的高光強度D3DMATERIAL9,*LPD3DMATERIAL9;(三) 、簡答1、著色器代碼編譯后, 獲得一個 IDirect3
25、DVertexShader9 接口的指針, 它代表 一個頂點著色器,具體方法,及其調用過程。考核知識點 : 著色器考核知識點解釋HRESULT IDirect3DDevice9:CreateVertexShader(const DW0RD* pFunction,IDirect3DVertexShader9*ppShader );其中,輸入參數 pFunction 指向編譯成功的著色器代碼段,輸出參數 ppShader 指向最終生成的頂點著色器。假設變量 shader 是一個包含已編譯的著色器代碼的 ID3DXBuffer 指針,如果要 獲得一個 IDirect3DVertexShader9 接
26、口,可以這樣寫: IDirect3DVertexShader9* NewShader = 0;hr=Device->CreateVertexShader( (DW0RD*)shader->GetBufferPointer(),&Ne wShader);2、如何測定像素著色器的支持。 考核知識點 : 像素著色器考核知識點解釋可用對 SetDeviceCaps 的調用來測定像素著色器的支持。Caps結構包括一個叫做PixelShaderVersion 的DWOF成員,其值對主版本號和 子版本號進行編碼,解釋這個值的含義的最佳方法是用D3DPS_VERSION:D3DCAPS8
27、Caps;M_pD3D->GetDeviceCaps(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,&Caps); If(Caps.PixelShaderVersion = D3DPS_VERSION(1,1)If(Failed(EasyCreateWindowed(m_hWnd,D3DDEVTYPE_HAL,D3DCREATE_HARDWARE_VERTEXPROCESSING)Return FALSE;3、請給出 D3DPRESENT_PARAMETCR定義,并解釋 BackBufferFormat,SwapEffect,Windowed三個參數的含義。
28、考核知識點 : D3DPRESENT_PARAMETERS考核知識點解釋typedef struct _D3DPRESENT_PARAMETERS_/ 全屏幕式后備緩沖的/ 全屏幕式后備緩沖的UINTBackBufferWidth;寬度UINTBackBufferHeight;高度D3DFORMATBackBufferFormat;/ 后備緩沖的格式UINTBackBufferCount;/ 后備緩沖的數目D3DMULTISAMPLE_TYPE MultiSampleType; / 全屏抗鋸齒類型DWORDMultiSampleQuality;/ 全屏抗鋸齒質量等級D3DSWAPEFFECT
29、SwapEffect;/ 交換緩沖類型HWNDhDeviceWindow;BOOLWindowed;/ 全屏或窗口BOOLEnableAutoDepthStencil;/ 激活深度緩沖D3DFORMATAutoDepthStencilFormat;/ 深度緩沖格式DWORDFlags;UINTFullScreen_RefreshRateInHz;/ 顯示 器刷新UINTPresentationInterval;/ 圖像最大刷新速度 D3DPRESENT_PARAMETERS;? BackBufferFormat 后備緩沖的格式,DX9只支持16位和32位的后備 緩沖格式,如D3DFMT_R5G
30、6B5示后備緩沖的格式為每個像素 16位,紅 色5位、綠色6位、藍色5位,也可設置為 D3DFMT_UNKNOW這時使用 桌面的格式。? SwapEffect 交換緩沖支持的效果類型,它是D3DSWAPEFFEC舉類型, 此處設定為D3DSWAPEFFECT_DISCA即后備緩存的內容被復制到屏幕上 后,后備緩存的內容失效,可以丟棄。? Windowed如果為FALSE表示渲染全屏,若為 TRUE則渲染窗口。4、基于 win32 基本框架,繪制文本的函數原型及調用。考核知識點 : 繪制文本考核知識點解釋在Render函數中通過 DrawText函數控制文本顯示,該函數是 LPD3DXFON類的
31、 成員函數,其函數原型如下:INT DrawText( LPD3DXSPRITpESprite,LPctstrpString,INT Count,LPRECTpRect,DWORD Format,D3DCOLOR Col)or;此處的調用為 :g_pFont->DrawText(NULL, strText,-1, &clientRect,DT_SINGLELINE|DT_NOCLIP|DT_CENTER|DT_VCENTER,0xffffffff );5、頂點緩存中的頂點可以包含頂點坐標、顏色、法線方向、紋理坐標等屬性, 具體包含哪些屬性,可以使用靈活頂點格式( Flexible
32、 Vertex Format,FVF)進行描述;請解釋下面部分FVF描述符:D3DFVF_DIFFUSE, D3DFVF_NORMAL,D3DFVF_XYZ,D3DFVF_XYZRHW,D3DFVF_SPECULAR.考核知識點 : 靈活頂點格式考核知識點解釋D3DFVF_DIFFUSE:頂點數據中包含漫反射顏色值;D3DFVF_N0RM頂點數據中包含法線向量,不能和D3DFVF_XYZR同時使用;D3DFVF_XYZ: 頂點數據中包含未經坐標變換的頂點坐標, 不能與D3DFVF_XYZRI同時使用;D3DFVF_XYZRHW:點數據中包含經過坐標變換的頂點坐標,不能與D3DFVF_XY和 D
33、3DFVF_N0RM同時使用;D3DFVF_PSIZES點信息指明繪制點的大小;D3DFVF_SPECUL頂點數據中鏡面反射效果下的顏色值;6、請給出創建頂點緩存的函數原型,并解釋其參數含義。考核知識點 : 頂點緩存考核知識點解釋創建頂點緩存的函數 IDirect3DDevice9:CreateVertexBuffer() 聲明如下:HRESULT IDirect3DDevice9:CreateVertexBuffer (UINT Length, / 分配給緩存的字節大小;DW0RD Usa,ge / 指定關于怎樣使用緩存的額外信息;DW0RD FVF/, 存儲在緩存中的靈活頂點格式;D3DP
34、00L Pool, / 緩存放置在哪一個內存池中;IDirect3DVertexBuffer9 * ppVertexBuffer,/ 返回創建好的頂點緩存 的指針;HANDLE* pSharedHandle );/ 沒有使用;設置為 0;7、訪問頂點緩存數據時需要對其訪問區域加鎖,請給出加鎖函數原型并解釋其 參數含義。考核知識點 : 頂點緩存訪問考核知識點解釋HRESULT IDirect3DVertexBuffer9:Lock(UINT OffsetToLock,/ 偏移量,以字節為單位,從緩存開始位置到鎖定開始 位置的距離UINT SizeToLock, / 鎖定的字節數BYTE* ppb
35、Date,/ 返回的指向鎖定內存開始位置的指針DWORD Flags );/ 標記描述如何鎖定內存8、請給出創建索引緩存的函數原型,并解釋其參數含義。考核知識點 : 索引緩存考核知識點解釋 創建索引緩存的函數如下: HRESULT IDirect3DDevice9:CreateIndexBuffer(UINT Length, / 分配給緩存的字節大小;DWORD Usa,ge / 指定關于怎樣使用緩存的額外信息;D3DF0RMAT Forma/指定索引大小,使用 D3DFMT_INDEX為16位索 引,D3DFMT_INDEX3為32位索引,但并非所有設備都支持32位索引D3DP00L Poo
36、l,IDirect3DIndexBuffer9* ppIndexBuffer, / 返回創建好的索引緩存 的指針HANDLE* pSharedHandle );9、請給出使用帶有索引緩存的模型繪制的函數原型,并解釋其參數含義。 考核知識點 : 索引緩存考核知識點解釋使用函數 IDirect3DDevice9:DrawIndexedPrimitive 繪制帶索引模型: HRESULT IDirect3DDevice9:DrawIndexedPrimitive(D3DPRIMITIVETYPE Type, / 要繪制的圖元類型INT BaseVertexIndex, /為索引增加一個基數,用頂點數
37、目度量UINT MinIndex,/允許被引用的最小索引值UINT NumVertices,/ 本次調用中將被引用的頂點總數UINT StartIndex,索引點/ 索引緩存中的某個位置, 表示開始渲染的開始UINT PrimitiveCount );/ 繪制圖元總數10、創建一個ID3DXMes對象,然后從X文件中讀取集合信息數據填入到這個對象 中。 請給出讀取函數的定義 ,及相關參數的含義。考核知識點:ID3DXMesh對象考核知識點解釋HRESULT D3DXLoadMeshFromX(LPCSTR pFilename, /X 文件名DWORD Options, / 創建標志LPDIRE
38、CT3DDEVICE9 pDevice, / 與創建 Mesh有關的設備LPD3DXBUFFER* ppAdjacency, / 返回包含 DWORDID3DXBuffer 類型/的指針,描述Mesh的鄰接信息LPD3DXBUFFER* ppMaterials, / 返回包含 D3DXMATERI結構的數組/ 的ID3DXBuffer指針,存儲了 Mesh的材質數據LPD3DXBUFFER* ppEffectInstances, /返回一個包含D3DXEFFECTINSTA結CE/構的數組的ID3DXBuffer類型指針PDWORD pNumMaterials,/返回Mesh的材質數LPD3D
39、XMESH * ppMesh /返回填充了 X文件幾何信息的ID3DXMesh對象);(五)、程序題1 、 下面是 Alpha 紋理實例程序片段,請將程序補充完整 考核知識點 : Alpha 紋理示例程序及答案HRESULT InitializeD3D( HWND hWnd)/ 省略部分代碼g_pd3dDevice->SetRe nderState(D3DRS_CULLMODE,D3DCULL_NONE);/啟用Alpha混合g_pd3dDevice->SetRe nderState( D3DRS_ALPHABLENDENABLE ,true);/設置源混合因子g_pd3dDevi
40、ce->SetRe nderState( D3DRS_SRCBLEND _ 3DBLEND_SRCALPHA);/設置目標混合因子g_pd3dDevice->SetRenderState( D3DRS DESTBLEND ,D3DBLEND INVS RCALPHA);g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECT ARG1);g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);g_pd3dDevice
41、->SetTextureStageState(O,D3DTSS_ALPHAOP,D3DTOP_MODULATE);g_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);g_pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_DIFFUSE);/設置紋理過濾方式g_pd3dDevice->SetSamplerState(0, D3DSAMP MAGFILTER ,D3DTEXF_POINT);/省略部分代碼2、下面是移動線框正
42、方體的程序片段,完成設置觀察矩陣及投影矩陣的片段, 請將程序補充完整。考核知識點:變換示例程序及答案/ Positi on and aim the camera.D3DXVECTOR3 position(0.0f, O.Of, -5.0f);D3DXVECTOR3 target(0.0f, 0.0f, 0.0f);D3DXVECTOR3 up(0.0f, 1.0f, 0.0f);D3DXMATRIX V;D3DXMatrixLookAtLH(&V, & position , & target, &up );Device->SetTra nsform(D3D
43、TS_VIEW, &V );/ Set the projectio n matrix.D3DXMATRIX proj;D3DXMatrixPerspectiveFovLH(&proj,D3DX_PI * 0.5f,(float)Width / (float)Height,1.0f,1000.0f);Device->SetTransform( D3DTS PROJECTION_ &proj ); 3、下面是模擬箱子擋住茶壺,進行深度測試的程序片段,請將程序補充完整。 考核知識點:深度測試示例程序及答案bool Setup()/此處省略部分代碼/ 設置 Texture
44、 Filter States.Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR); /激活深度測試、設置深度測試函數Device->SetRe nderState( D3DRS_ZENABLE .TRUE):Device->SetRe nderSta
45、te( D3DRS_ZFUNC _D3DCMP_LESS);/此處省略部分代碼 LRESULT WINAPI MsgProc(HWND hWnd,UINT msg,WPARAM wPara m,L PARAM IParam)switch ( msg )case WM_KEYUP:switch (wParam)/此處省略部分代碼case VK_ESCAPE:Clea nu p();PostQuitMessage(O);break;case 49:/開啟深度測試g_pd3dDevice->SetRenderState( D3DRS ZENABLE ,TRUE);break;case 50:/關閉深度測試g_pd3dDevice->SetRenderState(D3DRS ZENABLE, FALSE );break;break;return DefWi ndowProc(hWnd,msg,wParam,IParam);4、下面是一程序片段,實現從” Tiger.x ”文件中讀取Mesh相關信息。請將程序補充完整。考核知識點:X文件示例程序及答案HRESULT Ini tGeometry()L
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司白天集體活動方案
- 公司登山活動方案
- 公司聚餐嗨活動方案
- 公司美食大賽活動方案
- 公司肉孜節慰問活動方案
- 公司晚上團建策劃方案
- 公司無煙宣傳活動方案
- 公司節氣活動方案
- 公司法制教育活動方案
- 公司自我推廣活動方案
- 戶外田園早教課程設計
- 兒科危重癥護理習題題庫含答案
- DL∕T 5138-2014 電力工程數字攝影測量規程
- DL∕T 550-2014 地區電網調度控制系統技術規范
- 2022-2023學年湖北省隨州市曾都區人教PEP版五年級下冊期末學業質量監測英語試卷
- 鋼結構施工合同范本
- 2024年內蒙古錫林郭勒盟事業單位人才引進歷年【重點基礎提升】模擬試題(共500題)附帶答案詳解
- 建設工程監理安全資料臺帳建筑施工
- 浙江省溫州市鹿城區2023-2024學年八年級下學期科學期末質量檢測綜合模擬卷
- 大樹吊裝專項施工方案
- (XX)XX縣2021年度變更調查技術設計書
評論
0/150
提交評論