老子雲,道生一,一生二,二生三,三生萬物。也就是所謂的九九歸一,萬變不離其宗,所有在計算上執行的程式,最終都是一條條在cpu上執行的二進位制。計算機的硬體就是道,硬體的效能直接給出算計機的運算能力上限,作業系統就是道生出來的一,執行在系統下的各種編譯環境、sdk就是一生出來的二,在各種開發執行環境下建立起來的各種程式框架、輔助工具,就是二生出來的三,最後我們看到的各種應用和系統,就是三上生出來的萬物。計算機硬體就如同八卦中的乾位,應用系統就如同坤位,這兩者是計算機系統的兩極,硬體效能太好沒有配套的軟體系統也是白搭,同樣軟體應用太過強大,也容易計算機系統的崩潰,所以追求哪個極端都是不對的,我們做系統不可堆硬體,也不可無節制地寫軟體,為了這兩者兩極的協調和平衡,我們就要站在乙個中間的位置,一面充分利用硬體的效能,一面建立更友好的介面給上層系統使用。directx一方面封裝了硬體的呼叫,一方面開放了許多介面給其它系統呼叫,所以directx是硬體和軟體之間乙個紐帶,它的存在給硬體和軟體製造了乙個平衡。
正常的人類主要是靠眼睛來感知世界的,所以無論計算機,還是移動裝置都會有顯示裝置。我們通過在螢幕的影象找到與計算機進行互動,讓計算機完成相關的任務,以及得到相應的計算結果。事實上,在編寫程式的時候,有相當一部分工作的內容是程式介面顯示有關的。因而有關前端的開發技術更新換代是非常頻繁的,各種框架層出不窮,令人眼花繚亂,也讓前端開發人員痛苦不已,剛學會mfc,就來了winform,剛玩熟mⅴc,又流行微服務+mvvm了,剛積累了幾年的pc開發經驗,移動智慧型裝置開發又變成主流了……不過,有一點是肯定的,不管技術再怎麼更新,潮流再怎麼轉變,都是為了生成使用者介面,也就是在螢幕上看到的最終圖形。說到底,都是由顯示卡來成像的,而顯示卡的成像都是directx這樣的底層介面來控制的。
可能大多數的程式設計師都是做應用系統的,而不像圖形程式設計師那樣密切地關注directx這個的圖形介面,況且directx更多的是3d的方面的加速,而我們基本上做的是2d圖形,所以不在意directx也是很正常的。不過,傳統的圖形操作介面,比如windows下的gdi,它的作用就是使用cpu生成位圖,然後寫入到顯示卡的快取中,最後輸出到顯示器上,根據顯示大解析度的不同,cpu生成乙個畫面時,就要迭代生成每個畫素點的顏色,如果是動態的畫面,cpu就要不停地重繪這些畫面,用於其它計算的cpu時間就會減少,從而降低了應用程式的效能。為了提公升桌面應用的效能,微軟弄了乙個基於directx的wpf,wpf是個xaml和c#表示的系統,實際上就是個上層的開發框架,最終這些xml和c#**轉換成directx的資料和命令。還有些建模工具,3d列印軟體,某些帶3d展示的軟體(比如ppt)也是基於directx的圖形介面。
隨著人們生活水平的提高,以及軟硬體技術的不斷發展,平面的東西日亦不能滿足需求。虛擬實境(vr)變得流行,可以想像,未來的電商在商品展示的時候,可能並不是小圖放大這麼簡單,我們可以戴上vr眼鏡,足不出戶就可以達到逛實體店一樣的體驗。當然現在已經存在像unity、ogre、ue、c4d等等這類的工具,但它們僅限於某一具體的領域的開發,比如遊戲、建模、影視創作等。但如果在一般的系統種嵌入3d、vr的應用,顯然這些工具引擎可能是不太全時宜的,我們多少要對這些工具進行一些改造,這就涉及到了基礎圖形的開發。如果是在windows上開發,我們可以將directx作為首選,而且掌握了directx的相關概念後,再去研究opengl這樣的東西,就非常輕鬆了。
學程式為什麼要學英語?
首先,你不會英語也能上手程式設計,但是你為什麼要去學英語呢?人是利益驅動的,看看學英語帶來的好處,就能理解為什麼要去學英語了。獲取高質量的學習資源 絕大多數高質量的計算機學習資源都是英文。國內的多數資源都是 二手 的。無損 及時的資訊獲取 大多數計算機經典圖書原版都是英文,我們所看的中文版都是二手加...
我們為什麼要學php
移動網際網路盛行的時代,市場會孕育新的產物,而每乙個人可以找能自己發展的方向。我們為什麼要學習php呢?一 php語言的優勢 1 跨平台特性 php幾乎支撐所有的操作體系平台,而且支撐apache iis等多種web伺服器。2 支撐普遍的資料庫 可操縱多種支流與非支流的資料庫。3 易學性 php嵌入...
我為什麼要學python?
這是一篇沒有的文字,但不代表沒有顏色沒有活力,沒有感情,我要說的是我自己學習python的經歷。長話短說,我是大專計算機應用技術專業的畢業生。選這個專業的時候就覺得肯定是專門學程式設計的,誰知道很多東西都要學,但是呢,學的又不深。這就導致了我現在找不到工作,看到python很火熱,未來趨勢又很好我就...