


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、DirectX 程序設(shè)計課程期末復習資料第一章3D游戲開發(fā)的數(shù)學基礎(chǔ)本章包含的全部知識點:點和向量直線與平面 矩陣與坐標變換 坐標系章節(jié)重點:矩陣和坐標變換第二章Windows編程基礎(chǔ) 本章包含的全部知識點:基本概念介紹Win dows程序結(jié)構(gòu)Win32程序開發(fā)實例第三章 DirectX 快速入門本章包含的全部知識點:DirectX 概述Direct3D 底層結(jié)構(gòu)概述DirectX9.0 的配置和安裝章節(jié)重點:DirectX9.0 的配置和安裝第四章 DirectX 程序框架本章包含的全部知識點:Win32+C+Direct3D 的基礎(chǔ)框架DXUT 匡架章節(jié)重點:Win32+C+Direct3
2、D 的基礎(chǔ)框架 第五章 文本顯示 本章包含的全部知識點:文本繪制流程Win32程序框架實現(xiàn)DXUT程序框架實現(xiàn)章節(jié)重點:Win32 程序框架實現(xiàn)第六章 基本圖形的繪制 本章包含的全部知識點: 圖元靈活頂點格式( FVF) 使用頂點緩存繪制圖形 索引緩存顏色表示法渲染狀態(tài)繪制準備D3DX幾何物體實例設(shè)計與實現(xiàn) 章節(jié)重點:頂點緩存索引緩存 第七章 變 換 本章包含的全部知識點: 攝像機 頂點變換 光柵化實例 章節(jié)重點:頂點變換 第八章 3D 數(shù)學基礎(chǔ)補充 本章包含的全部知識點: 常見坐標系 向量矩陣線性變換章節(jié)重點:線性變換 第九章 光照和材質(zhì) 本章包含的全部知識點: 真實感圖形基本概念 Dire
3、ct3D 中的光照 Direct3D 中的材質(zhì) 光照和材質(zhì)例子 章節(jié)重點:Direct3D 中的光照Direct3D 中的材質(zhì) 第十章 紋理映射 本章包含的全部知識點: 紋理貼圖 紋理坐標 紋理尋址模式 紋理過濾紋理混合狀態(tài)紋理實例解析 章節(jié)重點:紋理尋址模式紋理過濾 第十一章 深度測試和反走樣 本章包含的全部知識點: 深度緩存與深度測試 圖形反走樣 深度測試實例章節(jié)重點: 深度緩存與深度測試第十二章 網(wǎng)格( 一) 本章包含的全部知識點:ID3DXMesh 子集和屬性緩存 繪制 鄰接信息 優(yōu)化 屬性表 創(chuàng)建一個 Mesh 例子 章節(jié)重點:子集和屬性緩存 創(chuàng)建一個 Mesh第十三章 網(wǎng)格( 二)
4、本章包含的全部知識點:X文件格式解析讀取 X 文件漸進網(wǎng)格 漸進網(wǎng)格例子章節(jié)重點:深度緩存與深度測試 第十四章 混合和模板 本章包含的全部知識點:混合因子混合計算Alpha 來源Alpha 混合實例 模板章節(jié)重點:Alpha 混合實例 第十五章 著色器入門 本章包含的全部知識點:著色器概述HLSL的變量HLSL的函數(shù)HLSL基本語法在 Direct3D 中使用 HLSL章節(jié)重點:Alpha 混合實例 第十六章 頂點著色器本章包含的全部知識點: 頂點著色器概述 頂點聲明 使用頂點著色器 頂點著色器實例第十七章 像素著色器 本章包含的全部知識點: 像素著色器概述 使用像素著色器HLSL米樣器對象多
5、重紋理例子程序、客觀部分:(單項選擇、多項選擇、不定項選擇、判斷)一)、選擇部分1. D3DPRESENT_PARAME參數(shù)很多,關(guān)于其中參數(shù)之一 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 提供的創(chuàng)建旋轉(zhuǎn)矩陣的函數(shù)的是(A. D3DXMatrixRotarionXB. D3DXMatrixRotarionYC.D3DXMatrixRotarionZD. D3DXMatrixRotX E. D3DXMatrixRotY考核知識點 : 變換5. 以下屬于 Direct3D 提供的簡化紋理過濾的過程的是( ABCD )A. 最近點采樣 B. 線性過濾 C. 各向異性過濾 D.mipmap 過濾 考核知識點 : 紋理過濾6. D3DPRESENT_PARAME
7、參數(shù)很多,下面理解正確的是( ABCD )A.Windowed取值FALSE則渲染全屏B. BackBufferCount表示后備緩沖的數(shù)目C. SwapEffect 表示交換緩沖類型D. BackBufferFormat表示后備緩沖的格式考核知識點 : D3DPRESENT_PARAMETERS7. 以下屬于 Direct3D 中提供的標準光源的是( ABC )A. 點光源 B. 方向光源 C. 聚焦光源 D. 多點光源 考核知識點 : 光源8. 關(guān)于靈活頂點格式下列說法正確的是(ABD )A. D3DFVF_DIFFUS表示頂點數(shù)據(jù)中包含的是漫反射顏色值;B. D3DFVF_SPECULA
8、Rg示頂點數(shù)據(jù)中包含的是鏡面反射下的顏色值C. D3DFVF_XYZRHWfe示頂點數(shù)據(jù)中包含的是未經(jīng)過坐標變換的頂點坐標D. D3DFVF_XYZ 頂點數(shù)據(jù)中包含未經(jīng)坐標變換的頂點坐標考核知識點 : 靈活頂點格式解析:C項應(yīng)該是經(jīng)過坐標變換后的頂點坐標9. 關(guān)于頂點 Alpha 描述正確的是( AB )A. 如果在程序中直接指定每個頂點的顏色,直接給出每個頂點顏色的 Alpha 值。B. 渲染對象中每個像素的 Alpha 值由該對象的 Alpha 值和著色模式?jīng)Q定。C. 高洛德著色模式,所有像素的 Alpha 值都等于該多邊形的第一個頂點的Alpha 值。D. 平面著色模式,每個多邊形上的像
9、素的 Alpha 值由它的各個頂點的 Alpha 值進行線性插值得到。考核知識點 : 頂點 Alpha解析: C 項應(yīng)該是 平面著色模式,所有像素的 Alpha 值都等于該多邊形的第一 個頂點的Alpha值。D項應(yīng)該是高洛德著色模式,每個多邊形上的像素的Alpha值由它的各個頂點的 Alpha 值進行線性插值得到。(二)、判斷部分1. Direct3D 將給每個采樣器對象連接一個唯一的紋理階段 (stage) ,在應(yīng)用程 序中找出與采樣器對象相關(guān)聯(lián)的階段, 并設(shè)置相應(yīng)的紋理和采樣器狀態(tài)給該 階段。 ( 正確 )考核知識點 : 紋理2. 一個 Direct3D 對象只能創(chuàng)建一個 Direct3D
10、 設(shè)備對象。 ( 錯誤 )考核知識點 : Direct3D 設(shè)備對象考核知識點解釋一個 Direct3D 對象可以創(chuàng)建多個 Direct3D 設(shè)備對象。3. 由于 Direct3D 設(shè)備對象是由 Direct3D 對象創(chuàng)建的,因此應(yīng)先釋放 Direct3D 設(shè)備對象。(正確)考核知識點 : Direct3D 對象及設(shè)備對象4. D3DFVF_XYZ頂點數(shù)據(jù)中包含未經(jīng)坐標變換的頂點坐標,不能與D3DFVF_XYZR同時使用。(正確)考核知識點:靈活頂點格式5. D3DFVF_XYZ頂點數(shù)據(jù)中包含未經(jīng)坐標變換的頂點坐標,可以與D3DFVF_XYZR同時使用。(錯誤)考核知識點 : 靈活頂點格式考核
11、知識點解釋D3DFVF_XYZK點數(shù)據(jù)中包含未經(jīng)坐標變換的頂點坐標,不可以與D3DFVF_XYZRI同時使用。6. D3DFVF_XYZRHW點數(shù)據(jù)中包含經(jīng)過坐標變換的頂點坐標,不能與D3DFVF_XY和 D3DFVF_NORM同時使用。(正確)考核知識點:靈活頂點格式7. Direct3D 創(chuàng)建的場景和對象都是由簡單的 “圖元”按照一定的方式排列組合 而成的,Direct3D中的所有圖元都是一維或二維對象,包括單個的點和直線及復雜的多邊形。(正確)考核知識點 : 圖元8. 在索引緩存中定位頂點也就是在頂點緩存中定位頂點。(正確)考核知識點 : 頂點緩存索引緩存二、主觀部分:(一) 、填空部分
12、1) 像素著色器的輸入僅有顏色和紋理坐標兩種語義??己酥R點 : 像素著色器2) 像素著色器的工作是在頂點著色器之后,后者的輸出將為前者提供輸入。 考核知識點 : 像素著色器3) D3DFVF_DIFFUS表示頂點數(shù)據(jù)中包含的是漫反射顏色值;考核知識點 : 靈活頂點格式4) D3DFVF_SPECULA示頂點數(shù)據(jù)中包含的是鏡面反射下的顏色值;考核知識點 : 靈活頂點格式5) D3DFVF_XYZRI表示頂點數(shù)據(jù)中包含的是經(jīng)過坐標變換的頂點坐標考核知識點 : 靈活頂點格式6) Direct3DCreate9 函數(shù)創(chuàng)建一個 Direct3D 對象并獲得指向 Direct3D 對象接 口的指針,且參
13、數(shù)必須設(shè)置為 D3D_SDK_VERSIQN考核知識點 : Direct3D 對象7) DXUT(The DirectX Utility Library)是建立在 Direct3D9 和 Direct3D10上的一個程序框架,其目標是建立一個強大而容易使用的 Direct3D 游戲開 發(fā)框架,它簡化了 Win32和Direct3D API的使用??己酥R點 : DXUT8) 創(chuàng)建 DirectX 設(shè)備對象的函數(shù)為 CreateDevice ??己酥R點 : 設(shè)備對象9) Direct3D 圖形程序通過調(diào)用 IDirect3DDevice9:SetRenderState() 函數(shù)來 設(shè)置渲染狀態(tài)
14、??己酥R點 : 設(shè)置渲染狀態(tài)10) g_pd3dDevice-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_FL這行代碼完成的功能是( 設(shè)置著色模式為平面著色模式)??己酥R點 : 設(shè)置著色模式11) g_pd3dDevice-SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOUR這UD) 行代碼完成的功能是( 設(shè)置著色模式為高洛德著色模式)??己酥R點 : 設(shè)置著色模式(二) 、名詞解釋1 、請你給出創(chuàng)建頂點聲明,并獲得 IDirect3DVertexDeclaration9 接口指針的 方法??己酥R點 : 頂點聲明考核
15、知識點解釋HRESULT IDirect3DDevice9:CreateVertexDeclaration(CONST D3DVERTEXELEMENT9* pVertexElements, /要創(chuàng)建的頂點聲明IDirect3DVertexDeclaration9* ppDecl/ 返 回 創(chuàng) 建 的IDirect3DVertexDeclaration9 接/ 口指針 );2、請你給出環(huán)境光 (ambient light) 的概念,并說明如何設(shè)置渲染狀態(tài)為整個場 景添加環(huán)境光??己酥R點 : 環(huán)境光考核知識點解釋環(huán)境光 (ambient light)由光源發(fā)出經(jīng)環(huán)境多次散射而無法確定其方向的光
16、,即好像是來自四面八方的光;室內(nèi)成分大,室外成分少,沒有位置或方向上的特征,只有顏色亮度 值,不會衰減;通過設(shè)置渲染狀態(tài)為整個場景添加環(huán)境光:g_device-SetRenderState(D3DRS_AMBIENT,D3DCOLOR_X#);3、請你給出鏡面反射光的概念,并說明如何設(shè)置渲染狀態(tài)??己酥R點 : 鏡面反射光考核知識點解釋鏡面光來自特定方向并被反射到特定方向; 在默認狀態(tài)下, Direct3D 不對物體進行鏡面反射計算,需設(shè)置相關(guān)的渲染狀態(tài):g_device-SetRenderState(D3DRS_SPECULARENABLE,TRUE);如果需要進行漫反射或鏡面反射運算,那么
17、在頂點緩沖器中必須包含頂點的 法向量信息;4、請給出設(shè)置像素著色器的函數(shù)原型及調(diào)用示例代碼??己酥R點 : 像素著色器考核知識點解釋HRESULT IDirect3DDevice9:SetPixelShader(IDirect3DPixelShader9* pShader );這個方法只接受一個參數(shù), 通過它傳遞一個我們要使用的指向像素著色器的 指針。示例代碼如下:Device-SetPixelShader(MultiTexPS);5、銷毀像素著色器接口函數(shù)原型考核知識點 : 像素著色器考核知識點解釋 d3d:Release(MultiTexPS);6、在 Direct3D 的一個場景中,最多
18、可設(shè)置幾個光源,設(shè)置函數(shù)形式。 考核知識點 : 光源考核知識點解釋最多可設(shè)置 8 個光源HRESULT SetLight(DWORD Index,CONST D3DLight9 *pLight ) ;7、光照程序一般步驟??己酥R點 : 光照考核知識點解釋(1) 創(chuàng)建光源、設(shè)置其位置及相關(guān)屬性; SetLight 函數(shù)將光源設(shè)置到渲染管 道流水線中; LightEnable 函數(shù)激活光源;(2) SetRenderState 打開渲染管道流水線的光照開關(guān);(3) 創(chuàng)建材質(zhì),設(shè)置物體的材質(zhì)屬性, SetMaterial 設(shè)定材質(zhì);8、請給出點列表圖元的含義,并說明其應(yīng)用。考核知識點 : 圖元考核
19、知識點解釋點列表是一個對每點獨立進行渲染的頂點集合。程序可以在 3D 場景中使用 它模擬星空視野,或作為多邊形表面的點化線。9、請給出線段列表圖元的含義,并說明其應(yīng)用??己酥R點 : 圖元考核知識點解釋線段列表是一系列的獨立線段,用于為 3D 場景加入冰雹或大雨等效果,線 段列表中頂點的數(shù)量必須是大于等于 2 的偶數(shù)。10、請給出線段條帶圖元的含義,并說明其應(yīng)用??己酥R點 : 圖元考核知識點解釋線段條帶是一個由相互鏈接的線段組合成的造型, 程序可以用它產(chǎn)生不封閉的多邊形;11、請給出三角形列表圖元的含義,并說明其應(yīng)用??己酥R點 : 圖元考核知識點解釋三角形列表是一系列獨立的三角形,它們之間
20、可能靠的很近,也可能不是, 頂點總數(shù)必須能被 3 整除;使用三角形列表建立一個由離散面片組成的物體; 如建立力場墻的一種方法是指定一個由互相不相連的小三角形組成的大型 列表;然后將一個可以發(fā)散光線的材質(zhì)和紋理應(yīng)用到這個三角形列表上12、請給出三角形條帶圖元的含義,并說明其應(yīng)用。考核知識點 : 圖元考核知識點解釋三角形條帶是一連串相鄰接的三角形。 3D 場景中大部分物體都是由三角條帶組成的。13、請給出三角形扇圖元的含義,并說明其應(yīng)用??己酥R點 : 圖元考核知識點解釋三角形扇和三角形條帶類似,但其所有三角形共享一個頂點。 3D 場景中曲面的描述14、請給出 Direct3D 中設(shè)置渲染狀態(tài)的函
21、數(shù)原型,并解釋其參數(shù)含義。 考核知識點 : 渲染狀態(tài)考核知識點解釋Direct3D 圖形程序通過調(diào)用 IDirect3DDevice9:SetRenderState() 函數(shù)來 設(shè)置渲染狀態(tài)。枚舉類型D3DRENDERSTATET列PE出所有可能的渲染狀態(tài); 使用 SetRenderState() 設(shè)置:HRESULT IDirect3DDevice9:SetRenderState(D3DRENDERSTATETYPE State,/ 更改的渲染狀態(tài)DWORD Value );/ 新的狀態(tài)值15、請你解釋平面著色模式的含義??己酥R點 : 著色模式考核知識點解釋Direct3D 繪制流水線使用
22、多邊形第一個頂點的材質(zhì)顏色作為整個多邊形的 顏色來渲染該多邊形;如果多邊形不共面,被平面著色方式渲染的三維物體 在多邊形之間將具有可視的清晰邊緣;平面著色是最快的著色方式。16、請你解釋高洛德著模式的含義??己酥R點 : 著色模式考核知識點解釋它使用頂點法線和光照參數(shù)為每個頂點計算顏色, 然后穿越多邊形的表面進 行插值,插值以線性方式完成, 高洛德著色使物體的表面看上去彎曲而平滑。17、可編程管線渲染一個球體的步驟。考核知識點 : 著色模式考核知識點解釋1)找到用于渲染該球體的 VertexShader 和 PixelShader ;2)將 參 數(shù)傳 遞給 VertexShader , Ver
23、texShader 的 輸 出 再 傳 遞給PixelShader ;3)繪制該球體;18、請說明怎樣對多級漸進紋理過濾器進行設(shè)置 , 并具體解釋 Filter 的取值。 考核知識點 : 多級漸進紋理過濾考核知識點解釋Device-SetSamplerState(0,D3DSAMP_MIPFILTER,Filter);D3DTEXF_N0N禁用多級漸進紋理過濾;D3DTEXF_P0INT就會只使用與圖元大小最匹配的一級紋理;D3DTEXF_LINEARDirect3D 就將與圖元大小最匹配的兩級紋理以線性方式混 合。19、請你給出物體表面材質(zhì)的定義方式,并解釋每個參數(shù)的概念??己酥R點 : 材
24、質(zhì)考核知識點解釋typedef strcut D3DMATERIAL9D3DC0L0RVALUE Diffuse; / 慢射光的反射屬性D3DC0L0RVALUE Ambient;/ 環(huán)境光的反射屬性D3DC0L0RVALUE Specular;/ 鏡面光的反射屬性D3DC0L0RVALUE Emissive;/ 自發(fā)光的反射屬性float Power;/ 鏡面光的高光強度D3DMATERIAL9,*LPD3DMATERIAL9;(三) 、簡答1、著色器代碼編譯后, 獲得一個 IDirect3DVertexShader9 接口的指針, 它代表 一個頂點著色器,具體方法,及其調(diào)用過程。考核知識點
25、 : 著色器考核知識點解釋HRESULT IDirect3DDevice9:CreateVertexShader(const DW0RD* pFunction,IDirect3DVertexShader9*ppShader );其中,輸入?yún)?shù) pFunction 指向編譯成功的著色器代碼段,輸出參數(shù) ppShader 指向最終生成的頂點著色器。假設(shè)變量 shader 是一個包含已編譯的著色器代碼的 ID3DXBuffer 指針,如果要 獲得一個 IDirect3DVertexShader9 接口,可以這樣寫: IDirect3DVertexShader9* NewShader = 0;hr=D
26、evice-CreateVertexShader( (DW0RD*)shader-GetBufferPointer(),&Ne wShader);2、如何測定像素著色器的支持。 考核知識點 : 像素著色器考核知識點解釋可用對 SetDeviceCaps 的調(diào)用來測定像素著色器的支持。Caps結(jié)構(gòu)包括一個叫做PixelShaderVersion 的DWOF成員,其值對主版本號和 子版本號進行編碼,解釋這個值的含義的最佳方法是用D3DPS_VERSION:D3DCAPS8 Caps;M_pD3D-GetDeviceCaps(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,&Ca
27、ps); 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三個參數(shù)的含義。考核知識點 : D3DPRESENT_PARAMETERS考核知識點解釋typedef struct _D3DPRESENT_PARAMETE
28、RS_/ 全屏幕式后備緩沖的/ 全屏幕式后備緩沖的UINTBackBufferWidth;寬度UINTBackBufferHeight;高度D3DFORMATBackBufferFormat;/ 后備緩沖的格式UINTBackBufferCount;/ 后備緩沖的數(shù)目D3DMULTISAMPLE_TYPE MultiSampleType; / 全屏抗鋸齒類型DWORDMultiSampleQuality;/ 全屏抗鋸齒質(zhì)量等級D3DSWAPEFFECT SwapEffect;/ 交換緩沖類型HWNDhDeviceWindow;BOOLWindowed;/ 全屏或窗口BOOLEnableAuto
29、DepthStencil;/ 激活深度緩沖D3DFORMATAutoDepthStencilFormat;/ 深度緩沖格式DWORDFlags;UINTFullScreen_RefreshRateInHz;/ 顯示 器刷新UINTPresentationInterval;/ 圖像最大刷新速度 D3DPRESENT_PARAMETERS;? BackBufferFormat 后備緩沖的格式,DX9只支持16位和32位的后備 緩沖格式,如D3DFMT_R5G6B5示后備緩沖的格式為每個像素 16位,紅 色5位、綠色6位、藍色5位,也可設(shè)置為 D3DFMT_UNKNOW這時使用 桌面的格式。? Sw
30、apEffect 交換緩沖支持的效果類型,它是D3DSWAPEFFEC舉類型, 此處設(shè)定為D3DSWAPEFFECT_DISCA即后備緩存的內(nèi)容被復制到屏幕上 后,后備緩存的內(nèi)容失效,可以丟棄。? Windowed如果為FALSE表示渲染全屏,若為 TRUE則渲染窗口。4、基于 win32 基本框架,繪制文本的函數(shù)原型及調(diào)用??己酥R點 : 繪制文本考核知識點解釋在Render函數(shù)中通過 DrawText函數(shù)控制文本顯示,該函數(shù)是 LPD3DXFON類的 成員函數(shù),其函數(shù)原型如下:INT DrawText( LPD3DXSPRITpESprite,LPctstrpString,INT Coun
31、t,LPRECTpRect,DWORD Format,D3DCOLOR Col)or;此處的調(diào)用為 :g_pFont-DrawText(NULL, strText,-1, &clientRect,DT_SINGLELINE|DT_NOCLIP|DT_CENTER|DT_VCENTER,0xffffffff );5、頂點緩存中的頂點可以包含頂點坐標、顏色、法線方向、紋理坐標等屬性, 具體包含哪些屬性,可以使用靈活頂點格式( Flexible Vertex Format,F(xiàn)VF)進行描述;請解釋下面部分FVF描述符:D3DFVF_DIFFUSE, D3DFVF_NORMAL,D3DFVF_XYZ,
32、D3DFVF_XYZRHW,D3DFVF_SPECULAR.考核知識點 : 靈活頂點格式考核知識點解釋D3DFVF_DIFFUSE:頂點數(shù)據(jù)中包含漫反射顏色值;D3DFVF_N0RM頂點數(shù)據(jù)中包含法線向量,不能和D3DFVF_XYZR同時使用;D3DFVF_XYZ: 頂 點 數(shù)據(jù) 中 包 含 未經(jīng)坐標變換的頂 點 坐標, 不 能與D3DFVF_XYZRI同時使用;D3DFVF_XYZRHW:點數(shù)據(jù)中包含經(jīng)過坐標變換的頂點坐標,不能與D3DFVF_XY和 D3DFVF_N0RM同時使用;D3DFVF_PSIZES點信息指明繪制點的大小;D3DFVF_SPECUL頂點數(shù)據(jù)中鏡面反射效果下的顏色值;
33、6、請給出創(chuàng)建頂點緩存的函數(shù)原型,并解釋其參數(shù)含義。考核知識點 : 頂點緩存考核知識點解釋創(chuàng)建頂點緩存的函數(shù) IDirect3DDevice9:CreateVertexBuffer() 聲明如下:HRESULT IDirect3DDevice9:CreateVertexBuffer (UINT Length, / 分配給緩存的字節(jié)大?。籇W0RD Usa,ge / 指定關(guān)于怎樣使用緩存的額外信息;DW0RD FVF/, 存儲在緩存中的靈活頂點格式;D3DP00L Pool, / 緩存放置在哪一個內(nèi)存池中;IDirect3DVertexBuffer9 * ppVertexBuffer,/ 返回創(chuàng)
34、建好的頂點緩存 的指針;HANDLE* pSharedHandle );/ 沒有使用;設(shè)置為 0;7、訪問頂點緩存數(shù)據(jù)時需要對其訪問區(qū)域加鎖,請給出加鎖函數(shù)原型并解釋其 參數(shù)含義??己酥R點 : 頂點緩存訪問考核知識點解釋HRESULT IDirect3DVertexBuffer9:Lock(UINT OffsetToLock,/ 偏移量,以字節(jié)為單位,從緩存開始位置到鎖定開始 位置的距離UINT SizeToLock, / 鎖定的字節(jié)數(shù)BYTE* ppbDate,/ 返回的指向鎖定內(nèi)存開始位置的指針DWORD Flags );/ 標記描述如何鎖定內(nèi)存8、請給出創(chuàng)建索引緩存的函數(shù)原型,并解釋其
35、參數(shù)含義??己酥R點 : 索引緩存考核知識點解釋 創(chuàng)建索引緩存的函數(shù)如下: HRESULT IDirect3DDevice9:CreateIndexBuffer(UINT Length, / 分配給緩存的字節(jié)大小;DWORD Usa,ge / 指定關(guān)于怎樣使用緩存的額外信息;D3DF0RMAT Forma/指定索引大小,使用 D3DFMT_INDEX為16位索 引,D3DFMT_INDEX3為32位索引,但并非所有設(shè)備都支持32位索引D3DP00L Pool,IDirect3DIndexBuffer9* ppIndexBuffer, / 返回創(chuàng)建好的索引緩存 的指針HANDLE* pShare
36、dHandle );9、請給出使用帶有索引緩存的模型繪制的函數(shù)原型,并解釋其參數(shù)含義。 考核知識點 : 索引緩存考核知識點解釋使用函數(shù) IDirect3DDevice9:DrawIndexedPrimitive 繪制帶索引模型: HRESULT IDirect3DDevice9:DrawIndexedPrimitive(D3DPRIMITIVETYPE Type, / 要繪制的圖元類型INT BaseVertexIndex, / 為索引增加一個基數(shù),用頂點數(shù)目度量UINT MinIndex,/ 允許被引用的最小索引值UINT NumVertices,/ 本次調(diào)用中將被引用的頂點總數(shù)UINT S
37、tartIndex,索引點/ 索引緩存中的某個位置, 表示開始渲染的開始UINT PrimitiveCount );/ 繪制圖元總數(shù)10、創(chuàng)建一個ID3DXMes對象,然后從X文件中讀取集合信息數(shù)據(jù)填入到這個對象 中。 請給出讀取函數(shù)的定義 ,及相關(guān)參數(shù)的含義??己酥R點:ID3DXMesh對象考核知識點解釋HRESULT D3DXLoadMeshFromX(LPCSTR pFilename, /X 文件名DWORD Options, / 創(chuàng)建標志LPDIRECT3DDEVICE9 pDevice, / 與創(chuàng)建 Mesh有關(guān)的設(shè)備LPD3DXBUFFER* ppAdjacency, / 返回包
38、含 DWORDID3DXBuffer 類型/的指針,描述Mesh的鄰接信息LPD3DXBUFFER* ppMaterials, / 返回包含 D3DXMATERI結(jié)構(gòu)的數(shù)組/ 的ID3DXBuffer指針,存儲了 Mesh的材質(zhì)數(shù)據(jù)LPD3DXBUFFER* ppEffectInstances, / 返回一個包含D3DXEFFECTINSTA結(jié)CE/構(gòu)的數(shù)組的ID3DXBuffer類型指針PDWORD pNumMaterials,/返回Mesh的材質(zhì)數(shù)LPD3DXMESH * ppMesh /返回填充了 X文件幾何信息的ID3DXMesh對象);(五)、程序題1 、 下面是 Alpha 紋理實
39、例程序片段,請將程序補充完整 考核知識點 : Alpha 紋理示例程序及答案HRESULT InitializeD3D( HWND hWnd)/ 省略部分代碼g_pd3dDevice-SetRe nderState(D3DRS_CULLMODE,D3DCULL_NONE);/啟用Alpha混合g_pd3dDevice-SetRe nderState( D3DRS_ALPHABLENDENABLE ,true);/設(shè)置源混合因子g_pd3dDevice-SetRe nderState( D3DRS_SRCBLEND _ 3DBLEND_SRCALPHA);/設(shè)置目標混合因子g_pd3dDevic
40、e-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-SetTextureStageState(O,D3DTSS_ALPHAOP,D3DTOP_MODULATE);g_pd3dDevice-SetTextureStageState(0
41、,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);g_pd3dDevice-SetTextureStageState(0,D3DTSS_ALPHAARG2,D3DTA_DIFFUSE);/設(shè)置紋理過濾方式g_pd3dDevice-SetSamplerState(0, D3DSAMP MAGFILTER ,D3DTEXF_POINT);/省略部分代碼2、下面是移動線框正方體的程序片段,完成設(shè)置觀察矩陣及投影矩陣的片段, 請將程序補充完整??己酥R點:變換示例程序及答案/ Positi on and aim the camera.D3DXVECTOR3 position(0.0f,
42、 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(D3DTS_VIEW, &V );/ Set the projectio n matrix.D3DXMATRIX proj;D3DXMatrixPerspectiveFovLH(&proj,D3DX_PI * 0.5f,(float)Width / (floa
43、t)Height,1.0f,1000.0f);Device-SetTransform( D3DTS PROJECTION_ &proj ); 3、下面是模擬箱子擋住茶壺,進行深度測試的程序片段,請將程序補充完整。 考核知識點:深度測試示例程序及答案bool Setup()/此處省略部分代碼/ 設(shè)置 Texture Filter States.Device-SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);Device-SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);Device
44、-SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR); /激活深度測試、設(shè)置深度測試函數(shù)Device-SetRe nderState( D3DRS_ZENABLE .TRUE):Device-SetRe nderState( 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
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國8寸袖珍折疊自行車數(shù)據(jù)監(jiān)測研究報告
- 2019-2025年軍隊文職人員招聘之軍隊文職管理學自我檢測試卷B卷附答案
- 2019-2025年軍隊文職人員招聘之軍隊文職管理學與服務(wù)過關(guān)檢測試卷A卷附答案
- 康德三診物理試題及答案
- 保安文化測試試題及答案
- 小學生人際交往故事征文
- 企業(yè)虛擬專用網(wǎng)絡(luò)服務(wù)協(xié)議
- 《統(tǒng)計學的數(shù)據(jù)處理基礎(chǔ):初三數(shù)學教案》
- 產(chǎn)品銷量排行表-電商銷售統(tǒng)計
- 遼寧省朝陽市建平縣2024-2025學年八年級上學期期末生物學試題(含答案)
- 2025人教版(2024)小學美術(shù)一年級下冊教學計劃、教學設(shè)計及教學反思(附目錄)
- 2025年江西工業(yè)貿(mào)易職業(yè)技術(shù)學院單招職業(yè)技能測試題庫帶答案
- 中交項目標準化手冊-第一冊工地建設(shè)
- 天文小報(流星與彗星)
- 公安機關(guān)業(yè)務(wù)技術(shù)用房和辦公用房規(guī)劃設(shè)計規(guī)范
- 校園華爾茲教案-2021-2022學年高中體育與健康人教版必修全一冊(表格式)
- L阿拉伯糖與排毒課件
- 《沖壓工藝與模具設(shè)計》知識點 (2)
- T∕CACM 1064-2018 針刀醫(yī)學臨床 通用要求
- LED投光燈產(chǎn)品說明書
- 研發(fā)費用明細表模板
評論
0/150
提交評論