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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GDI与DirectX对比

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

原理對(duì)比: GDI和DX在原理和框架設(shè)計(jì)上是完全不同的,有幾個(gè)重要的方面決定了它們是沒法結(jié)合。
1.現(xiàn)代的2D庫(包括GDI)都基于畫布來操作,或者叫位圖區(qū)域,而3D庫的操作對(duì)象只是場(chǎng)景和3D物體,沒有畫布概念,你在顯示器上看到的只是渲染流水線中的最后一個(gè)環(huán)節(jié)(光柵化)而已。
2.計(jì)算單元的設(shè)計(jì)理念不同。CPU是通用指令,能干所有事,包括3D運(yùn)算,只是效率低而已;GPU只有有限的專用指令,它的目的是通過并行方式執(zhí)行大量的重復(fù)運(yùn)算,且浮點(diǎn)運(yùn)算是強(qiáng)項(xiàng),在像素運(yùn)算效率上比CPU高幾個(gè)數(shù)量級(jí),但它并不通用。
3.動(dòng)態(tài)計(jì)算。2D運(yùn)算中有大量的文字字型生成、圖像特效計(jì)算過程,這些動(dòng)態(tài)計(jì)算只能由CPU承擔(dān),硬件能加速的部分只局限于圖像的混合,換句話說,只有靜態(tài)圖像數(shù)據(jù)才能硬件加速。MMX指令雖然能起到加速作用,但性能提升幅度相比GPU來說簡(jiǎn)直不值一提。
4.內(nèi)存。GPU運(yùn)算只能在顯存中進(jìn)行,CPU運(yùn)算只能在系統(tǒng)內(nèi)存中進(jìn)行,當(dāng)兩種內(nèi)存的數(shù)據(jù)需要互相傳輸時(shí),內(nèi)存間的IO次數(shù)和傳輸量必須嚴(yán)格控制,過大的數(shù)據(jù)吞吐將嚴(yán)重影響硬件加速性能。對(duì)于3D應(yīng)用來說,CPU的功能通常是構(gòu)造并傳遞流水線指令、加載各種靜態(tài)圖片(紋理)、響應(yīng)鍵盤鼠標(biāo)游戲外設(shè)消息,這里面數(shù)據(jù)吞吐量最大的就是圖片,游戲中通常在關(guān)口開始階段就把所有紋理一次性加載到顯存,而且在運(yùn)行過程中很少或者幾乎沒有動(dòng)態(tài)計(jì)算過程(比如文字處理)。

從上面可以看出,GDI/DX的差別到底有多大,為什么UI系統(tǒng)和游戲很少被融合,因?yàn)樾枨蟛煌?#xff0c;尤其是第三點(diǎn),UI中需要大量的動(dòng)態(tài)計(jì)算,游戲恰好相反,必須盡可能減少動(dòng)態(tài)計(jì)算。不是想融合就能融合的。 CPU與Gpu ?GDI與OpenGL與DirectX之間的區(qū)別 總結(jié):

????從總體上來說,dx和gdi設(shè)計(jì)的出發(fā)點(diǎn)不同,dx主要是為gpu來設(shè)計(jì)的,他需要強(qiáng)烈的硬件支持,并且,它非常針對(duì)游戲設(shè)計(jì),因?yàn)橛螒蚝推胀ǖ?d客戶端對(duì)于CPU來說的計(jì)算量差異很大,所以,游戲一方面需要硬件支持,另外又符合某種(如顯卡)所擅長的計(jì)算模式;而gdi是為廣譜設(shè)計(jì)的,2d客戶端可以用,游戲也可用,只不過游戲運(yùn)行起來會(huì)很卡,因?yàn)閏pu不適應(yīng)游戲場(chǎng)景這種計(jì)算,gdi沒有充分利用gpu,于是有了dx。

????dx需要相應(yīng)的軟件和硬件來支持,否則不能運(yùn)行,而gdi則兼容絕大部分硬件,我所知道的還沒有不支持gdi操作的,即使是沒有安裝顯卡驅(qū)動(dòng),一樣可以輸出圖形,這可以在未安裝顯卡驅(qū)動(dòng)的顯示器上看到;

????dx在用戶模式下分解繪圖操作,從而直接交給gpu去繪制,這樣,gpu不能踢回(踢回見windows圖形編程一書第二章)dx傳過來的繪制操作,因?yàn)槭虑耙呀?jīng)確定好顯卡驅(qū)動(dòng)可以做哪些繪制了;而gdi則是以商量的形式和顯卡驅(qū)動(dòng)交互,顯卡驅(qū)動(dòng)在繁忙的時(shí)候可以踢回gre(同見windows圖形編程)發(fā)送的請(qǐng)求,有g(shù)re來分解gdi繪圖操作。

????最后,就目前來說,gdi的一些底層實(shí)現(xiàn),已經(jīng)慢慢轉(zhuǎn)向dx來加速了,所以二者的交集也在越來越大。

總結(jié)

以上是生活随笔為你收集整理的GDI与DirectX对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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