日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Direct3D基础——Direct3D概述

發(fā)布時(shí)間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Direct3D基础——Direct3D概述 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

概述

Direct3D是一套底層圖形API,借助該API我們可以利用硬件加速功能來(lái)實(shí)現(xiàn)3D場(chǎng)景的繪制,Direct3D可以視為應(yīng)用程序和底層設(shè)備的交互。下圖展示了Direct3D和硬件之間的交互關(guān)系:

圖中Direct3D部分是一套已經(jīng)定義好的,由Direct3D提供給應(yīng)用程序和開(kāi)發(fā)人員的接口函數(shù),這些接口代表了當(dāng)前Direct3D支持的所有功能。

注意:有些功能Direct3D支持,但是硬件設(shè)備卻未必支持。

在上述的圖中,Direct3D和硬件設(shè)備之間有一個(gè)環(huán)節(jié):HAL(硬件抽象層),因?yàn)槭忻嫔系膱D形卡的種類太多了,Direct3D無(wú)法直接和硬件設(shè)備進(jìn)行交互,例如:同樣的一個(gè)清屏操作,不同的圖形卡之間的操作可能大不一樣。所以Direct3D就需要設(shè)備的制造商來(lái)實(shí)現(xiàn)一個(gè)HAL。

HAL是一個(gè)指示設(shè)備完成某些操作的設(shè)備相關(guān)的代碼集,簡(jiǎn)單地說(shuō):HAL是代碼集

基于HAL,Direct3D就可以不必關(guān)心底層硬件,其規(guī)范的指定便可以獨(dú)立于硬件設(shè)備。

總結(jié):設(shè)備制造商將自己硬件所支持的所支持的全部功能,都是實(shí)現(xiàn)到HAL里面。那些Direct3D支持但是設(shè)備不支持的功能就無(wú)法在HAL中實(shí)現(xiàn)。也就是說(shuō):調(diào)用一個(gè)沒(méi)有在HAL中實(shí)現(xiàn)的Direct3D函數(shù),就會(huì)調(diào)用失敗(除非他是一種頂點(diǎn)處理運(yùn)算,并且用戶已經(jīng)指定了軟件頂點(diǎn)運(yùn)算處理方式,這點(diǎn)暫時(shí)我也不太明白,有時(shí)間請(qǐng)教大神之后,再來(lái)補(bǔ)充吧)。

所以當(dāng)你使用僅僅為少數(shù)的硬件實(shí)現(xiàn)的Direct3D功能的時(shí)候,務(wù)必要驗(yàn)證自己的硬件是否支持該功能。

REF設(shè)備

有時(shí)候Direct3D提供的而某些功能,本地的硬件不支持,但是還需要去使用這些功能,為了滿足這些功能,Direct3D提供參考光柵設(shè)備,也就是REF設(shè)備,它能以軟件的運(yùn)行方式完全支持Direct3D API,借助REF設(shè)備您可以使用當(dāng)前硬件不支持的功能,并對(duì)這些功能進(jìn)行測(cè)試。

注意:REF設(shè)備僅僅應(yīng)用于開(kāi)發(fā)階段,它與DirectX SDK綁定在一起,無(wú)法發(fā)布給最終的用戶,此外,REF設(shè)備的速度十分的緩慢,在測(cè)試以外的場(chǎng)合十分不適用。

D3DDEVTYPE

在代碼程序中,HAL設(shè)備用值D3DDEVTYPE_HAL來(lái)指定,該值是D3DDEVTYPR枚舉類型的成員之一。類似的:REF設(shè)備用值D3DDEVTYPR_REF來(lái)指定,該值也是D3DDEVTYPE,枚舉成員之一。

這些設(shè)備非常重要,因?yàn)槲覀冊(cè)趧?chuàng)建設(shè)備的時(shí)候,需要指定使用哪一種設(shè)備類型。

COM(組件對(duì)象模型)

COM(組件對(duì)象模型)是一項(xiàng)使得DirectX獨(dú)立于編程語(yǔ)言并具備向下兼容特性的技術(shù),我們常稱COM對(duì)象為接口,可將其視為一個(gè)C++的類來(lái)使用。

關(guān)于COM組件,我們應(yīng)該銘記以下:

1、我們僅僅需要知道的是:如何通過(guò)某個(gè)特定的函數(shù)或者COM接口的方法來(lái)獲取指向一COM接口的指針。

2、創(chuàng)建COM接口時(shí),不可以使用C++的關(guān)鍵字new。

3、使用完一個(gè)接口,應(yīng)該調(diào)用接口相應(yīng)的Release方法,而不是C++的關(guān)鍵字delete

4、所有的COM接口都繼承自IUnknown,該接口提供了Release方法,使COM對(duì)象能夠?qū)ζ湔瓶氐膬?nèi)存進(jìn)行管理。

5、COM接口都有一個(gè)前綴“I”

下面是:DirectX9.03D庫(kù)的下載地址:鏈接:https://pan.baidu.com/s/1028NylXtE6T3Y7MSVEs2GQ 密碼:rp5x

總結(jié)

以上是生活随笔為你收集整理的Direct3D基础——Direct3D概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。