首先理解下繪圖過程:
無非是把數(shù)據(jù)從系統(tǒng)內(nèi)存中復制到圖形卡,然后繪制出圖形

繪圖過程
OpenGL設計模式
OpenGL是按照客戶機-服務器模式設計
客戶端:
- 負責發(fā)送OpenGL命令
-
CPU上面存儲的代碼,比如OpenGLApi,C和C++代碼
服務端:
- 負責接收OpenGL命令并執(zhí)行相應的操作
- 調(diào)用的是
GPU芯片

客戶端-服務器
進一步闡述
-
客戶端是存儲在
CPU儲存器中的,并且在應用程序中執(zhí)行或者在主系統(tǒng)內(nèi)存中驅(qū)動程序中執(zhí)行。驅(qū)動程序會將渲染命令和數(shù)組組合起來,發(fā)送給服務器執(zhí)行! -
服務器和客戶端在
功能上也是異步的??蛻舳瞬粩嗟陌褦?shù)據(jù)塊和命令塊組合在?起輸送到緩沖區(qū),然后緩沖區(qū)就會發(fā)送到服務器執(zhí)行 -
管線停滯:在以下兩種情況會發(fā)生
1)服務器停?工作等待客戶機
2)客戶機停?工作來等待服務器做好接受更多的命令和準備
不同角度理解:
軟件:
客戶端:我們編寫的程序
服務端:計算機圖形硬件制造商提供的OpenGL的實現(xiàn)個人計算機:
客戶端:CPU、內(nèi)存等硬件,以及用戶編寫的OpenGL程序
服務端:OpenGL驅(qū)動程序、顯示設備(實際上就是圖形加速卡上的硬件和內(nèi)存)