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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Direct3D基础——Direct3D概述

發布時間:2023/12/14 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Direct3D基础——Direct3D概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

Direct3D是一套底層圖形API,借助該API我們可以利用硬件加速功能來實現3D場景的繪制,Direct3D可以視為應用程序和底層設備的交互。下圖展示了Direct3D和硬件之間的交互關系:

圖中Direct3D部分是一套已經定義好的,由Direct3D提供給應用程序和開發人員的接口函數,這些接口代表了當前Direct3D支持的所有功能。

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

在上述的圖中,Direct3D和硬件設備之間有一個環節:HAL(硬件抽象層),因為市面上的圖形卡的種類太多了,Direct3D無法直接和硬件設備進行交互,例如:同樣的一個清屏操作,不同的圖形卡之間的操作可能大不一樣。所以Direct3D就需要設備的制造商來實現一個HAL。

HAL是一個指示設備完成某些操作的設備相關的代碼集,簡單地說:HAL是代碼集

基于HAL,Direct3D就可以不必關心底層硬件,其規范的指定便可以獨立于硬件設備。

總結:設備制造商將自己硬件所支持的所支持的全部功能,都是實現到HAL里面。那些Direct3D支持但是設備不支持的功能就無法在HAL中實現。也就是說:調用一個沒有在HAL中實現的Direct3D函數,就會調用失敗(除非他是一種頂點處理運算,并且用戶已經指定了軟件頂點運算處理方式,這點暫時我也不太明白,有時間請教大神之后,再來補充吧)。

所以當你使用僅僅為少數的硬件實現的Direct3D功能的時候,務必要驗證自己的硬件是否支持該功能。

REF設備

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

注意:REF設備僅僅應用于開發階段,它與DirectX SDK綁定在一起,無法發布給最終的用戶,此外,REF設備的速度十分的緩慢,在測試以外的場合十分不適用。

D3DDEVTYPE

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

這些設備非常重要,因為我們在創建設備的時候,需要指定使用哪一種設備類型。

COM(組件對象模型)

COM(組件對象模型)是一項使得DirectX獨立于編程語言并具備向下兼容特性的技術,我們常稱COM對象為接口,可將其視為一個C++的類來使用。

關于COM組件,我們應該銘記以下:

1、我們僅僅需要知道的是:如何通過某個特定的函數或者COM接口的方法來獲取指向一COM接口的指針。

2、創建COM接口時,不可以使用C++的關鍵字new。

3、使用完一個接口,應該調用接口相應的Release方法,而不是C++的關鍵字delete

4、所有的COM接口都繼承自IUnknown,該接口提供了Release方法,使COM對象能夠對其掌控的內存進行管理。

5、COM接口都有一個前綴“I”

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

總結

以上是生活随笔為你收集整理的Direct3D基础——Direct3D概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。