DirectX和OpenGL是圖像應用的編程接口,這些接口用于渲染二維或三維圖形。這些接口架起了上層應用程序和底層GPU溝通的橋梁。一個應用程序向這些接口發送渲染命令,而這些接口會依次向顯卡驅動發送渲染命令,這些顯卡驅動是真正知道如何和GPU通信的角色,正是它們把DirectX和OpenGL的函數調用翻譯成了GPU能夠聽懂的語言,同時它們也負責把紋理等數據轉換成GPU所支持的格式。一個比喻是,顯卡驅動就是顯卡的操作系統。
我們的應用程序運行在CPU上,應用程序可以通過調用DirectX或OpenGL的圖形接口將渲染所需的數據,如頂點數據,紋理數據,材質參數等數據存儲在顯存中的特定區域,隨后,開發者可以通過圖像編程接口發出渲染命令,這些渲染命令也被稱為Draw Call,它們將會被顯卡驅動翻譯成GPU能夠理解的代碼,進行真正的繪制。
顯卡除了有圖像處理單元GPU外,還擁有自己的內存,這個內存通常被稱為顯存,GPU可以在顯存中存儲用于圖像顯示的屏幕緩沖,深度緩沖等。
因為顯卡驅動的存在,幾乎所有的GPU既可以和DirectX合作,也可以和OpenGL一起工作。從顯卡的角度出發,實際上它只需要和顯卡驅動打交道就可以了。因此,一個顯卡制造商為了讓他們的顯卡可以同時和OpenGL,DirectX合作,就必須提供支持OpenGL和DirectX接口的顯卡驅動。