freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

多媒體技術(shù)之directx編程入門(更新版)

  

【正文】 。 void* operator new(size_t s)。 FLOAT _44。 FLOAT _24。世界變換觀察變換投影變換裁剪與視口縮放頂點(diǎn)光柵器變換引擎圖1313 Direct3D的變換引擎下面依次對(duì)這些變換加以介紹,這需要首先介紹Direct3D中的矩陣定義和變換方法。 // 成功返回D3D_OK(= 0)例如:CUSTOMVERTEX* pVertices。例如:g_pd3dDeviceCreateVertexBuffer( 100 * sizeof (CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, amp。 或:struct CUSTOMVERTEX { // 含位置齊次坐標(biāo)和顏色的自定義頂點(diǎn)結(jié)構(gòu) FLOAT x, y, z, rhw。例如: struct CUSTOMVERTEX { // 含位置、法向量和顏色的自定義頂點(diǎn)結(jié)構(gòu) D3DXVECTOR3 position。l 定義頂點(diǎn)結(jié)構(gòu)Direct3D使用一種FVF(Flexible Vertex Format可變頂點(diǎn)格式)結(jié)構(gòu)來(lái)定義頂點(diǎn),以滿足用戶的不同需要。例如:g_pd3dDeviceSetRenderState( D3DRS_CULLMODE, D3DCULL_NONE )。 // 未知格式 = TRUE。 // 全屏?xí)r的屏幕刷新率,對(duì)窗口模式必須為0UINT PresentationInterval。 // 多樣本類型,一般取為 // D3DMULTISAMPLE_NONE(= 0) DWORD MultiSampleQuality。圖1311 Direct3D編程的基本過程下面介紹的是初始化Direct3D的內(nèi)容,包括創(chuàng)建Direct3D對(duì)象、創(chuàng)建Direct3D設(shè)備和設(shè)置Direct3D設(shè)備的渲染(render著色)狀態(tài)等。當(dāng)前,Direct3D有兩種主要的設(shè)備類型:n HAL設(shè)備(hal device) —— 具有硬件加速的光柵化(rasterization),可同時(shí)使用硬件和軟件的頂點(diǎn)處理進(jìn)行著色(shading)。因此,現(xiàn)在的Direct3D是DirectX Graphics的唯一模塊,具有DirectX(二、三維)圖形的全部功能。在左上角的“配置”欄中,選中“所有配置”項(xiàng);再選左邊的路徑“配置屬性/鏈接器/輸入”,在右邊的“附加依賴項(xiàng)”欄中, (在多個(gè)庫(kù)文件之間,用空格分隔)。l 設(shè)置包含和庫(kù)路徑在Visual Studio 2005中文版的IDE中,選“工具/選項(xiàng)”菜單項(xiàng),打開“選項(xiàng)”對(duì)話框(參見圖135)。u Direct3D Retained Mode(保留模式)—— Direct3D的保留模式是一種高層API,建立在Direct3D立即模式之上,使用起來(lái)方便容易,但是效率不高,適合于初學(xué)者。n DirectX Media(媒體)—— 是一個(gè)用于流媒體應(yīng)用的外部API集合。在下一代DirectX中,DirectPlay可能會(huì)被Xbox Live代替。在下一代DirectX中,DirectSound的功能將由XACT(Microsoft CrossPlatform Audio Creation Tool微軟跨平臺(tái)音頻生成工具)來(lái)代替。不論是保留模式還是立即模式,Direct3D都是建立在DirectDraw之上的。 組成DirectX由多個(gè)(COM組件)模塊組成,而且隨著版本的演化,這些模塊也在不斷地增減、合并和改變。n 10——?:DirectX不會(huì)有第10版了,因?yàn)槲④浌疽褜irectX的功能集成進(jìn)其新一代操作系統(tǒng)Windows Vista中,而不再將其作為一個(gè)額外的模塊了。它還支持許多新的圖形特性,~、動(dòng)態(tài)/高分辨率紋理、新3D擴(kuò)展方法等(、);n ——2002年12月24日:添加許多新特性到DirectX Graphics和DirectShow中,例如將DirectDraw的功能并入到Direct3D之中,引入裁剪測(cè)試、位移貼圖和多元紋理,支持128位浮點(diǎn)著色精度和根據(jù)顯示器自動(dòng)調(diào)整γ值等。所以當(dāng)時(shí)的Windows并不是一個(gè)可以開發(fā)和運(yùn)行高效多媒體程序(如3D游戲)的理想環(huán)境,逼迫PC游戲開發(fā)商只好繞開Windows而仍舊開發(fā)DOS下的游戲。DurectX自從推出以來(lái),就始終處在快速發(fā)展的過程之中。DurectX是Windows的一種多媒體API,它在保持設(shè)備無(wú)關(guān)性的同時(shí),可以讓應(yīng)用程序直接控制多媒體設(shè)備,從而能充分利用硬件的功能,因此可獲得最高的性能。不過Windows的與設(shè)備無(wú)關(guān)的設(shè)計(jì)思想,雖然使得Windows向程序員提供了一個(gè)獨(dú)立于硬件的軟件開發(fā)優(yōu)秀平臺(tái),但它不讓應(yīng)用程序直接操作顯卡和聲卡等多媒體硬件,這樣就降低了多媒體應(yīng)用程序(特別是計(jì)算機(jī)游戲)的運(yùn)行效率,例如限制了動(dòng)畫的幀率、不提供混音功能等。被集成在Windows XP中銷售,該版本添加了從DirectShow分離出的DMO(DirectX Media Objects媒體對(duì)象)組件模塊。它們都包含了()托管(Managed)DirectX,將原來(lái)DirectX多個(gè)分離的COM模塊集成到了一個(gè)容易使用的單一CLR文件之中。但是現(xiàn)在很少有這樣的PSD可用,因此新版本的DirectX是嚴(yán)重依賴于硬件的。保留模式API的發(fā)展停滯不前,而立即模式API的發(fā)展卻日新月異??捎糜陂_發(fā)播放和捕捉波形音頻的高性能立體與三維(DirectSound 3D)音頻應(yīng)用程序。在最新的DirectX版本中,微軟公司反對(duì)(deprecate)使用DirectPlay,而建議改用Windows Sockets和Windows Firewall API來(lái)代替。從DirectShow分出的,其功能類似于DirectShow的過濾器。u DirectX Video Acceleration(視頻加速DXVA)—— 利用硬件加速二維視頻的解碼操作。安裝程序會(huì)將DirectX SDK的幫助文檔,也安裝到Visual Studio 2005的幫助系統(tǒng)內(nèi),位于其“目錄/DirectX SDK ((December 2006)”目錄之中,包含“DirectX SDK ((December 2006) C++”和“DirectX SDK ((December 2006) Managed”兩個(gè)幫助子目錄。l 設(shè)置鏈接庫(kù)先創(chuàng)建一個(gè)DirectX應(yīng)用程序的MFC單文檔項(xiàng)目(如DxTest),再在VS05的IDE中,選“項(xiàng)目/屬性”,打開“DxTest屬性頁(yè)”對(duì)話框。 Direct3D編程簡(jiǎn)介Direct3D(直接三維)是DirectX的核心模塊,新版本的Direct3D中還包含原來(lái)DirectDraw模塊的2D功能。圖1310為Direct3D的設(shè)備架構(gòu)(architecture)。如果進(jìn)行MFC編程,則可以省略創(chuàng)建窗口這一步,而直接使用視圖類所代表的客戶區(qū)窗口。 // 后臺(tái)緩沖區(qū)計(jì)數(shù),可取為0~3,取0時(shí)等價(jià)于1D3DMULTISAMPLE_TYPE MultiSampleType。 // 表現(xiàn)標(biāo)志D3DPRESENTFLAG常數(shù)之一,可取為0 UINT FullScreen_RefreshRateInHz。 // 放棄交換效果 = D3DFMT_UNKNOWN。其中,設(shè)備狀態(tài)State,可取D3DRENDERSTATETYPE枚舉的任意值,如D3DRS_ZENABLE(允許Z緩沖)、D3DRS_FILLMODE(填充模式)、D3DRS_SHADEMODE(陰影模式)、 D3DRS_ALPHATESTENABLE(允許α測(cè)試)、D3DRS_CULLMODE(剔除模式)、D3DRS_FOGENABLE(允許霧化)、D3DRS_LIGHTING(光照)、D3DRS_DITHERENABLE(允許抖動(dòng))、……。因此,必須先定義自己的頂點(diǎn)結(jié)構(gòu)并創(chuàng)建頂點(diǎn)緩沖區(qū),然后在鎖定頂點(diǎn)緩沖區(qū)后,再通過給頂點(diǎn)緩沖區(qū)中的各頂點(diǎn)結(jié)構(gòu)賦值來(lái)構(gòu)造幾何對(duì)象,最后解鎖頂點(diǎn)緩沖區(qū)。而顏色一般采用DWORD的typedef定義類型D3DCOLOR。 // 紋理坐標(biāo)}。其中,內(nèi)存池類型D3DPOOL枚舉的定義為:typedef enum D3DPOOL { // 內(nèi)存池類型枚舉 D3DPOOL_DEFAULT = 0, // AGP存儲(chǔ)器或顯存 D3DPOOL_MANAGED = 1, // AGP存儲(chǔ)器或顯存,且在系統(tǒng)內(nèi)存中還有一份拷貝 D3DPOOL_SYSTEMMEM = 2, // 系統(tǒng)內(nèi)存 D3DPOOL_SCRATCH = 3, // 系統(tǒng)內(nèi)存中的臨時(shí)池 D3DPOOL_FORCE_DWORD = 0x7fffffff // 未使用(強(qiáng)制該枚舉被編譯成32位)} D3DPOOL。HRESULT Unlock()。參見圖1313。 FLOAT _23。 FLOAT _43。 _D3DXMATRIXA16( FLOAT _11, FLOAT _12, FLOAT _13, FLOAT _14, FLOAT _21, FLOAT _22, FLOAT _23, FLOAT _24, FLOAT _31, FLOAT _32, FLOAT _33, FLOAT _34, FLOAT _41, FLOAT _42, FLOAT _43, FLOAT _44 )。} _D3DXMATRIXA16。如:D3DTS_VIEW(= 2,觀察變換)、D3DTS_PROJECTION(= 3,投影變換)、D3DTS_TEXTURE0~7(= 16~23,紋理變換)、D3DTS_WORLD(= 256,世界變換)等。下面是Direct3D提供的若干世界矩陣變換的全局函數(shù):D3DXMATRIX * D3DXMatrixTranslation( // 平移變換 D3DXMATRIX * pOut, // 原/結(jié)果矩陣 FLOAT x, // x偏移量 FLOAT y, // y偏移量 FLOAT z // z偏移量)。matWorld, m_fPitch )。 // 定義觀察矩陣結(jié)構(gòu)D3DXVECTOR3 eye(2, 3, 3)。 // 獲取觀察變換矩陣g_pd3dDeviceSetTransform( D3DTS_VIEW, amp。Direct3D提供了下列6個(gè)全局函數(shù)來(lái)創(chuàng)建投影矩陣:n 創(chuàng)建左手系透視投影矩陣——D3DXMatrixPerspectiveLH;n 創(chuàng)建右手系透視投影矩陣——D3DXMatrixPerspectiveRH;n 創(chuàng)建基于視野的左手系透視投影矩陣——D3DXMatrixPerspectiveFovLH;n 創(chuàng)建基于視野的右手系透視投影矩陣——D3DXMatrixPerspectiveFovRH;n 創(chuàng)建定制的左手系透視投影矩陣——D3DXMatrixPerspectiveOffCenterLH。matProj )。 // 視口矩形的高度圖1319 顯示表面與視口(結(jié)構(gòu)) float MinZ。 光照、材質(zhì)與紋理幾何對(duì)象只有形狀和大小,而真實(shí)的物體還有材質(zhì)、紋理、重量、剛度、彈性等等其他物理特性,我們這里只討論影響其外觀的材質(zhì)和紋理。圖1320 直接光的種類聚光外角φ內(nèi)角θ光照區(qū)方向光點(diǎn)光直接光(direct light)則有固定的方向,會(huì)產(chǎn)生陰影,只能照亮一定范圍內(nèi)物體的朝光表面。 // 光的方向(非0矢量),點(diǎn)光時(shí)被忽略 float Range。其中:光類型枚舉D3DLIGHTTYPE定義為:typedef enum D3DLIGHTTYPE { // 光類型枚舉 D3DLIGHT_POINT = 1, // 點(diǎn)光 D3DLIGHT_SPOT = 2, // 聚光 D3DLIGHT_DIRECTIONAL = 3, // 方向光 D3DLIGHT_FORCE_DWORD = 0x7fffffff, // 強(qiáng)制此枚舉類型的值為雙字} D3DLIGHTTYPE。 } D3DVECTOR。 // 定義燈光結(jié)構(gòu)變量ZeroMemory(amp。 = 。 // 無(wú)衰減 = 。 // 環(huán)境反射光線的顏色 D3DCOLORVALUE Specular。例如:D3DMATERIAL9 mat。 = 。 = 。紋理中單個(gè)的顏色值,稱為紋理元素(texel = texture element)。來(lái)從一個(gè)圖像文件來(lái)產(chǎn)生紋理,它所支持的圖像文件格式有:BMP、DDS、DIB、HDR、JPG、PFM、PNG、PPM和TGA,但是不支持GIF格式。Direct3D的紋理功能非常強(qiáng)大,相關(guān)的結(jié)構(gòu)、函數(shù)、接口和方法有大幾十個(gè),涉及到紋理的坐標(biāo)、渲染模式、提交模式、凹凸映射、過濾、混合、透明處理、動(dòng)畫等等方方面面。這可以通過調(diào)用IDirect3DDevice9接口的Clear方法來(lái)完成:HRESULT Clear( // 成功返回D3D_OK(= 0) DWORD Count, // 需清除的矩形數(shù)目,若pRects為NULL,則必須為0 CONST D3DRECT * pRects, // 指向?qū)⒈磺宄匦蚊枋鼋Y(jié)構(gòu)的常數(shù)指針,// 為NULL時(shí),清除整個(gè)顯示表面 DWORD Flags, // 指明要清除的表面類型 D3DCOLOR Color, // 背景色 float Z, // 清除的深度信息,取值范圍:(最近)~ (最遠(yuǎn)) DWORD Stencil // 新的模板值,在清除非模板表面時(shí)為0)。0xff)8)|((b)amp。而場(chǎng)景及其圖元,是用頂點(diǎn)緩沖區(qū)中的內(nèi)容來(lái)表
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1