計算機圖形學,GPU,OpenGL,Unity3D什麼關係?

時間 2021-05-05 20:01:49

1樓:Ritsuka ding

基本概念

GPU 圖形硬體,圖形處理器。和CPU差別在於計算單元是CPU的上百倍,不過計算功能更為有限,可以想象成適合對大量浮點數非同步運算的晶元。

視訊記憶體,GPU可以快速讀取的一種記憶體。

OpenGL,圖形程式設計的介面,也就是圖形API。DX同理。

Unity3D,遊戲引擎,內部包含渲染模組可以讓使用者能夠更簡單的與Opengl互動。

1,不管是ray-tracing還是光柵化渲染,場景內容是一樣的,無非就是一堆位置座標,字串資訊,以及貼圖資訊。

2,這些資訊需要先用CPU講硬碟裡的內容轉移到記憶體,然後經過CPU的一定處理後(比如角色移動)用Opengl介面轉交給視訊記憶體。然後通過GPU來處理視訊記憶體內容。

這部分深入理解的話可以參考一下計算機圖形學的歷史。

20-30年以前,顯示卡是不具備3D處理功能的。當時的開發者需要完全自己從頭寫彙編來實現3D。當時的顯示卡只是將視訊記憶體中的內容轉交給顯示器。

後來,出現了Voodoo卡,也就是專門用來計算3D資料的卡,當時需要既有一塊Voodoo也要有一塊顯示卡,也就是需要先把資料交給Voodoo卡運算出結果,然後結果再輸給顯示卡。

再後來,顯示卡廠商開始在顯示卡中加入3D運算晶元,也就是GPU了,後來就越來越強大。然而當時的運算方式比現在更有限,都是固定好的計算方式。並且沒家廠商的SDK也都不一樣。

再後來,opengl/DX成為了行業標準,出現了可程式設計的介面,也就是shader。逐步從Vertex shader進化出pixel shader,geometry shader,也就成了今天這個樣子。

歷史程序證明了把3D運算放到顯示卡裡是合理的選擇。

說了這些,答案也就顯而易見了。

比方說遊戲程式用C寫,那麼C用到的記憶體都只是記憶體,通過opengl分配的才是快取。shader中用的都是視訊記憶體。具體布局檢視相關文件就好了。

4,渲染只是遊戲引擎的一部分,不是全部,所以Unity3D是對OpenGL的封裝這點來說,對Opengl封裝只是Unity3D的一小部分。

遊戲圖形繪製主要差別在於實時渲染。實時渲染需要以降低精確度為代價來加速運算。

拿Blender來說比較合適,Blender既有raytracing,也有實時渲染(eevee),如果題主對這方面感興趣的話,個人覺得倒是可以從blender下手試試。畢竟blender功能特別全,還開源。

如果只是想專注看遊戲渲染的部分,可以先參考下開源的ogre。

2樓:pipeline

opengl是規範,是契約,而gpu是opengl這個規範的具體物理實現。它們都可以看成是硬體域的東西。

Unity那是另外一回事了。

3樓:我自己

以打架為例。

圖形學是各種搏擊理論,團戰意識。

Gpu是啤酒瓶,鋼管,辣椒水。。。

Opengl可以看成具體某一招一式,直刺格擋翻滾之類的。

最後unity3d可以看成請來的打手,你要告訴他打誰,什麼時候打,甚至怎麼打

4樓:Pickle Pee

計算機圖形學: 演算法 - 如何把物品繪製在螢幕上。

GPU: 硬體 - 圖形處理器

OpenGL: API - 用來渲染2d或3d圖形。

Unity3D: 工具 - 跨平台的遊戲開發引擎,也可以用來開發一般的手機應用或桌面應用。

對計算機專業而言,計算機圖形學是否重要?

已登出 重要,但不是必要。計算機圖形學,核心學的是矩陣運算。而矩陣運算是演算法中一項非常重要的必修課。我已工作十年,薪資也過了百萬,月薪截圖如下。現在回想對於程式設計師來說演算法還是最重要的,或者說你想更進一步演算法是必不可少的,我已經30 現在最喜歡的就是看大學教材,這裡順便吐槽下,中國大學本科教...

opengl 現代計算機圖形學中,為什麼攝像機不考慮roll旋轉?

楊鼎超 1 不考慮 roll,應該是大部分場景用不到 roll 吧,除了開飛機這種場景,其他大部分的如第一三人稱視角,場景漫遊等都用不到 roll 2 如果要考慮 roll 的話,可以更改 up 向量,Opengl裡預設傳的是 0,1,0 可以改為其他值 3 關於 LookAt 矩陣的推導見下 視點...

計算機圖形學畢業生怎麼這麼少啊?

阿三 因為市場太小。大廠有多少?崗位有多少?咱就說小廠有需求需要找圖形學方面的嗎?乙個技術不都是一把梭。而且你乙個研究生畢業會去10幾k的公司嗎?還有圖形學文獻什麼的太稀缺了,應用方向也太多。跟計算機沾邊的哪點不會涉及到圖形學?當然,我相信入坑的人會越來越多。畢竟市場有回溫趨勢 tpzhang 圖形...