Imagination 公司技術產品管理高級總監 Kristof Beets 分享了對光線追蹤技術的觀點以及 Imagination 的光線追蹤 IP。
我是Kristof Beets,擔任Imagination公司的技術產品管理高級總監。我在IP開發領域工作了20多年,致力于GPU技術,其中涉及從通用游戲到高端游戲的所有GPU技術。在這段時間里我負責過開發者技術支持、Demo開發以及業務拓展。
我一直致力于移動端GPU領域,并在Imagination公司從事相關技術工作,可追溯到2014年我們Plato Boards成立開始光線追蹤技術的開發。我現在負責高能效IP的開發,將光線追蹤技術推廣到各種市場和平臺。
Imagination作為一家IP開發公司已經超過35年了,在此期間我們一直處于圖形技術的前沿。我們目前專注于移動、嵌入式和云計算領域,研究如何通過智能硬件設計為新平臺帶來最佳游戲體驗。
光線追蹤是什么?
我們有很多博客和白皮書討論了光線追蹤技術,但從根本上講光線追蹤是建立在現實的基礎上的:光線來自于光源,這些光線在物體表面反射并且相互作用(吸收、改變顏色、改變方向),最終這些光線會以某種特定顏色被眼睛所看到。整個過程產生了我們可以看到的視覺效果。你可以想象成從光源到我們希望的成像,正常情況下這個過程是顛倒過來的:我們的眼睛先看到光線,產生反射。目前較有效的方法是混合渲染,我們渲染大部分的傳統場景,同時使用光線追蹤技術查詢要在處理的3D場景像素。
開啟光線追蹤,獲得精細的光照效果
基本上對于反射曲面,你運行著色器,著色器是根據視角方向發射光線的,并在3D場景中查找對象發射到該像素中的內容。從根本上講光線追蹤將空間查詢(spatial query)作為一種新功能添加到GPU中,這非常適合現實場景中的很多效果。光線是檢查你能否看到(直接或反射)一束光,從而確定該像素是亮的或陰影以及前面提到的反射。
如今GPU的關鍵在于對于著色器要非常的靈活,如果與通用處理器單元(GPU)形式的計算結合使用則更加的靈活。GPU一直都是這樣的特點,將半固定功能的硬件與完全可編程的著色器混合使用從而獲得最佳的靈活性和效率。 在圖形中光線、陰影和反射一直很流行。從無陰影到斑駁陰影,再到體積模塊以及更復雜的過濾器和多分辨率查找,我們經歷了很長一段時間。現在,我們使用了如此強大的計算性能和帶寬,以至于成本非常高。而使用真正的光線追蹤以達到好的光線效果會更快,成本更低,且質量一定比著色器更好。 在我們的光線追蹤等級白皮書中對光線追蹤的使用有詳細介紹。Imagination從一開始就考慮電池供電設備的效率,所以我們的重點一直是光線追蹤L4和L5高效解決方案。基本來說,我們完全從著色器(L2和L3的解決方案僅能夠實現部分功能)上卸載了光線追蹤,并且在照射物體時使用相干性排序來提高內存訪問和執行效率。我們追蹤和處理成束的光線而不是分散的光線,如果所有光線都朝著不同的方向發射是非常低效的。
不光滑表面隱藏相干性示例
偽造的光線追蹤效果
我們討論了一些關于陰影的技巧示例(例如無陰影、一些簡單的斑點、模塊、更復雜的陰影貼圖),雖然這些技術變得更復雜,但隨著你需要更高的畫面質量,它們的缺點也越來越明顯。
對于反射也可以這樣做:無發射,偽造的模糊紋理查找,預烘焙立方體貼圖,動態立方體貼圖,甚至是部分軟件光線追蹤,比如屏幕空間反射。使用這種方法,你可以在屏幕空間內執行最少數量的光線追蹤,使用方向向量和深度信息來反射附近的對象物體(但并不適用屏幕上的所有對象)。
Imagination推出的硬件級光線追蹤IP
我們在2015年就已經將光線追蹤單元集成到GPU中,比如我們的Plato硬件平臺。這意味著著色器發出光線,專用的單元會采集許多光線并查找相干性。我們將沿相似方向的光線綁定在一起,然后對這些光纖束進行統一處理。我們訪問一個BVH(邊界卷層次結構)單元模塊,首先檢查光纖束是否與3D場景相交(基本上是一個非常大的邊界框)。如果光線與3D場景相交,我們就沿著盒體的層次結構向下處理;整個場景就會分割成更小的盒體單元,然后我們再檢查這個盒體的層次結構。
如果我們的光線束與盒體相交,我們將深入到盒體的層次結構中,直到最終該光束沒有任何阻礙。如果直到光束不會擊中盒體內的任何地方,我們可以通過快速排除場景內的大部分空間來節省時間和精力。當我們在某個點上看到越來越小的盒體時,我們會切換到實際的三角形幾何體,然后我們從盒體光線測試轉換到三角形光線測試。當然這是我們要找的光線實際交點,然后我們將其返回著色器碼進行處理。
集成到游戲引擎中是很簡單的,因為基本上發出光線是標準著色器代碼的一部分,比如UE4引擎已經支持這一特性。我們還需要捕獲場景信息并創建BVH,這同樣是API的一部分,有點像幾何處理。游戲引擎通過API將幾何圖形提交給GPU和驅動程序進行處理。
我們提供的獨特性功能是相干性,例如光束處理與我們分塊渲染(Tile Based Rendering)類似,后者我們也將像素分組在一起然后在芯片上處理。所以,從概念上看,分塊渲染和具有相干性排序的BVH處理L4光線追蹤解決方案非常相似,但是在帶寬和處理效率上有很大的不同,游戲引擎的性能會更高,效果更好。
為移動平臺打造
當然,光線追蹤也總是有區別的,但問題是光線仿造的效果成本更高以至于使用專用的硬件功率更大、帶寬更高,處理效率也降低。這點對于移動設備和PC端沒有什么不同。使用純粹的著色器圖形技術已經不再是正確的選擇,而我們的L4方案其效率已超過了PC端,就像我們20多年前創建的分塊延遲渲染技術(TBDR)所帶來的效果一樣,如今它已經成為渲染的行業標準(IMR也不再適用)。
通過增加相干性聚集處理的效率,我們可以減少計算反射和光線相互作用的時間。這也減少了接口調用的次數,這意味著我們可以在低功耗的硬件上運行。
對于移動平臺,我們總是希望用更少成本做更多的事,因為移動設備的功耗和帶寬都是有限的。我們很高興使用人工智能和神經網絡來幫助處理圖形技術。很幸運,我們為此開發了專用的加速器,并且能夠與開發者合作利用這些單元實現最佳的效果,針對他們所用的硬件平臺改進圖形和光線追蹤效果。
當然,我們還會不斷創新。
與硬件的兼容性
我們始終專注于行業標準,因此我們的硬件會將DirectX和Vulkan所需和期望的標準考慮在內,硬件開發者不需要為使用我們做什么,當然他們也沒有為其他廠商做什么。而與其他廠商不同的是,我們以更低的功耗和帶寬成本來實現,為開發者其他任務留下更多的著色器時間。
提升的空間
工藝技術的演化遇到了瓶頸,例如我們實現了更高密度以及3nm和5nm的晶體管,但是帶寬和功率的增長速率并不相同,我們必須拿出解決方案在最有效的處理邏輯上執行工作負載,比如哪些放在CPU和GPU來處理,哪些交給AI引擎來處理。我們也會看到更多的加速器誕生,比如我們的光線追蹤引擎,可以提供更高的處理效率,管理更多異構的處理資源。帶寬和數據流是很寶貴的,與相干性和分塊渲染一樣,我們一直在尋找將關鍵數據保留在芯片上避免使用外部功耗較高的DDR內存或HBM內存(功耗更高)。
我們一直希望用更低的功耗來實現更高的FPS,用更低的處理帶寬和更低的功率實現更高的質量,這意味著我們所做的每個部分都要效率最大化。
原文標題:為移動端打造,Imagination的硬件光線追蹤到底有何不同?
文章出處:【微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
gpu
+關注
關注
28文章
4760瀏覽量
129131 -
人工智能
+關注
關注
1792文章
47497瀏覽量
239210 -
電池
+關注
關注
84文章
10648瀏覽量
130505 -
光線追蹤
+關注
關注
0文章
183瀏覽量
21503
原文標題:為移動端打造,Imagination的硬件光線追蹤到底有何不同?
文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論