一、概述
在正式開始學(xué)習(xí)D3D11之前,我們必需首先學(xué)習(xí)必要的基礎(chǔ)知識。
在這篇文章中,我們將介紹一下Direct3D中常用的一些基本類型和基本繪圖概念。
 
二、基本繪圖概念和基本類型介紹
2.1 Direct3D概述
Direct3D是一種底層繪圖API,它可以讓我們可以通過3D硬件加速繪制3D世界。從本質(zhì)上講,Direct3D提供的是一組軟件接口,我們可以通過這組接口來控制繪圖硬件。例如,要命令繪圖設(shè)備清空渲染目標(biāo)(例如屏幕),我們可以調(diào)用Direct3D的ID3D11DeviceContext::ClearRenderTargetView方法來完成這一工作。Direct3D層位于應(yīng)用程序和繪圖硬件之間,這樣我們就不必?fù)?dān)心3D硬件的實(shí)現(xiàn)細(xì)節(jié),只要設(shè)備支持Direct3D11,我們就可以通過Direct3D11的API來控制3D硬件了。
支持Direct3D11的設(shè)備必須支持Direct3D11規(guī)定的整個(gè)功能集合以及少數(shù)的額外附加功能。在Direct3D9中,設(shè)備可以只支持Direct3D9的部分功能;所以,當(dāng)一個(gè)Direct3D9應(yīng)用程序要使用某一特性時(shí),應(yīng)用程序就必須先檢查硬件是否支持該特性。如果要調(diào)用的是一個(gè)不為硬件支持Direct3D函數(shù),那應(yīng)用程序就會出錯(cuò)。而在Direct3D11中,不需要再做這種設(shè)備功能檢查,因?yàn)镈irect3D11強(qiáng)制要求設(shè)備實(shí)現(xiàn)Direct3D11規(guī)定的所有功能特性。
 
2.2 COM接口
組件對象模型(COM