【翻譯】【西川善司】3D圖形的概念和渲染管線(5回完)

來源:互聯網
上載者:User
http://www.opengpu.org/forum.php?mod=viewthread&tid=7550&extra=page%3D1 

 

本文取自西川善司的3D圖形技術連載,全99回
本貼為9~13回,爭取每1~2天更新一回吧。半年更新完。
也希望大家能支援。

翻譯 Trace
校對&註解 千裡馬肝

 

3D圖形的概念和渲染管線(Render Pipeline)

前面介紹了3D圖形曆史,接下來要解說的是3D圖形的處理流程。

3D圖形管線的流程圖

圖1是3D圖形的流程模型。這個雖然是對應DirectX 10/SM4的GPU流程模型,不過部分流程會根據GPU的不同,有時會有更細緻的處理,有時也會做一些簡略,這點敬請諒解。

首先,介紹一下3D圖形的處理為什麼會變成這樣的根本原因。會變成這個樣子,是由於在漫長又短暫的即時3D圖形曆史中,這個部分需要進行最順暢的處理,更重要的是因為這樣設計GPU會更容易實現的原因。這個流程不管是在Direct3D還是在OpenGL裡都沒有太大的差異。


圖1 GPU內部的渲染流程

CPU負責的3D圖形處理部分 = 遊戲引擎?

圖1的[1]和[2]的部分,主要是在CPU裡進行的處理。

配置3D物體或是移動後再設定,因為這兩種很類似,所以把這些在系統中處理的部分全部稱作[遊戲引擎]。
    
在遊戲引擎中,遵從鍵盤輸入、滑鼠輸入、遊戲控制輸入讓3D角色移動,或是進行開槍擊中敵人的命中時的碰撞檢測,根據碰撞的結果,雖然要進行把3D角色們擊飛的物理類比,但這些是遊戲邏輯的部分,某種意味上,是和[1][2]相同的部分。

另外,在[2]中如果有對應DirectX 10/SM4.0的GPU,要是能利用Geometry Shader,那麼也可以在GPU上進行了,例如關於particle或billboard這樣的point sprite,把建立和銷毀用Geometry Shader來處理,就可以實現讓GPU介入的處理。雖然如此,一般的3D遊戲處理中,這部分還是由CPU來處理的部分。

Vertex Pipeline和Vertex Shader的座標系是什嗎?

圖中紅線的[3][4][5][6]的部分,是進行頂點相關處理的頂點管線。

通常從這裡開始是在GPU內部進行處理的部分。但是,為了簡化內部邏輯以降低成本,所以要讓圖形機能整合,就是所謂的[統一晶片集],把這個頂點管線轉移到CPU的(模擬)系統也是存在的。

那麼,直到稍早之前,很多時候把這個頂點管線稱為[幾何體處理]。所謂幾何體(Geometry)就是是[幾何學]。在高中,雖然就會在數學或是[代數•幾何]的課程中,學到[向量(Vector)運算]和[線性映射(Linear Map)或線性變換(Linear Transformation)],不過這就是那個世界的事了。說句閑話,NVIDIA的GPU,GeForce系列的名字是由「Geometric Force(幾何學的力量)」的縮寫所造的名詞,可以說有著[G-Force重力]的雙關語。

把話題轉回來,說回3D圖形上的[3次元向量]的概念,簡單而言想成是[三次元空間上的”方向”]就可以了。這些”方向”被x,y,z的3個軸的座標值來表示,以這些”方向”為基準的被稱之為[座標系]。

「局部座標系」,如果具體的描述就是對於某個3D角色來說,設定為基準的座標系,3D角色的方向就是這個3D角色的基準座標系,通過處理[朝向是哪裡],控制的人會很輕鬆,所以利用了局部座標系這個概念。

對了,一般的3D角色上雖然有很多是帶有手臂和腳,考慮到那些手腳在關節處彎曲的情況,如果用關節為基準的局部座標系進行控制會更容易理解,但是這樣考慮的話,就要把局部座標系做成多層的結構,最終的處理會變得不容易理解。

接下來,支配3D全域空間的整體座標系就很有必要了,這就是[全局座標系]。在處理3D圖形的頂點管線中的頂點單位時,從局部座標系向全局座標系的變換會多次發生。

這樣產生的頂點要根據shader程式進行座標系的變換處理,就是[3][頂點著色語言][Vertex Shader]。通過著色器編程,就可以進行獨特而特殊的座標系變換。

 

圖2 座標系的概念圖 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.