剖析虛幻渲染體系-開篇說明

0嚮往0發表於2020-08-16

 

前言

筆者的部落格園博文斷更很久了,上一篇文章是去年10月,有關UE的PBR材質製作。斷更的原因有二:一是潛心研讀UE底層原始碼,做二次開發;二是工作壓力和KPI考核較緊,人在江湖身不由己,生計為先。

眾所皆知,虛幻引擎(Unreal Engine)是當今世界上最流行最知名的商業引擎之一,並且在幾年前開放了原始碼,前兩年隨著PUBGM而起,在移動端發力,漸漸成為遊戲研發廠商的首選(反觀某U以賣原始碼為榮,以高昂的學費開班授課為賺錢之道,結果移動端也被UE反超,實在是目光短淺所致)。毫不誇張地說,UE是濃縮了實時渲染界幾十年來的精華和瑰寶。研究UE的人也數不勝數,並有逐年增加之勢。

在此背景下,筆者認為更有撰寫文章剖析UE渲染體系的必要性。

筆者從2019年年中接觸UE以來,也有一年多了。在這段時間裡,潛心研究UE而無法自拔,從最初熟悉編輯器的使用,再到光照系統、材質系統、延遲渲染管線、後處理、光線追蹤等功能模組,再到近期的底層原始碼研讀和二次開發。這期間歷經了很多思考、摸索、探索,踩過不少坑,當然更多的是收穫、感悟和總結,於是萌生了撰寫這個系列文章的念頭,以饗同行,以師新人。

本想將此係列文章發表到知乎,因為知乎的使用者基數大,利於傳播,也利於圈粉,筆者也夢想有朝一日成為知乎大V,成為技術網紅。

截止2020年8月中旬,筆者之前的數篇技術文章瀏覽量達數萬,但粉絲只有區區數十。難道這是傳說中的叫好不叫座?

然而,靜下來思索,寫文章的最終目的還是在於分享和教學,而不是圈粉,加上部落格園的頁面乾淨純粹,不夾雜任何廣告,在商業化和物慾橫流的當今,確實是一股清流。此外,良好地支援Markdown和\(\LaTeX\)等語法(如支援數學公式,支援目錄,支援跳轉等等),這些特點正與筆者的初衷和設想不謀而合,既有偏好,也有情懷,不為商業低頭,舍它其誰?

能看到自己的文章幫助到很多人,看到他們為發揚圖形學技術而前仆後繼,後浪推前浪,這是圈粉所不能帶來的滿足和快樂感。這些想法讓筆者更加堅定了繼續將文章發表在部落格園的決心。

當然,按慣例事先宣告,這不是UE的入門教程,要求讀者具備以下計算機專業技能:

  • 良好的計算機語言(如C++、C#等)基礎。
  • 良好的計算機圖形學基礎。
  • 掌握UE的使用。
  • 掌握UE的材質、光照、後處理等模組。
  • 掌握Shader程式設計基礎。

如果讀者不具備以上技能,或者對UE不熟悉,建議先從閱讀UE的官方文件,熟悉UE後再閱讀此係列文章。

 

內容綱目

本系列文章以UnrealEngine 4.25.3版本的原始碼為基礎,分析它在PC平臺延遲渲染管線的渲染體系和特性。

本系列文章將分很多篇章,每篇都將是長篇大論。由於筆者本就工作繁忙,只能抽取業餘時間一邊研讀UE原始碼,一邊參考眾多文獻,一邊撰寫,更新頻率不會很快,短則數週,長則數月,但求有足夠動力和精力維繼下去,盡力不太監。

由於UE太過龐大,單單渲染模組涉及的體系和知識點眾多,預計每篇數萬字,整個系列的總字數將達到數十萬字,即便抽出大部分業餘時間,也需要耗費長達1~2年才能完成

言歸正傳,本系列文章初定了以下章目:

  • 剖析虛幻渲染體系(01)- 總覽和基礎
  • 剖析虛幻渲染體系(02)- 多執行緒渲染
  • 剖析虛幻渲染體系(03)- 渲染機制
  • 剖析虛幻渲染體系(04)- 延遲渲染管線
  • 剖析虛幻渲染體系(05)- BasePass和LightingPass
  • 剖析虛幻渲染體系(06)- Shader體系
  • 剖析虛幻渲染體系(07)- 材質體系
  • 剖析虛幻渲染體系(08)- 後處理
  • 剖析虛幻渲染體系(09)- RHI
  • 剖析虛幻渲染體系(10)- RDG
  • 剖析虛幻渲染體系(11)- 實時光線追蹤
  • 剖析虛幻渲染體系(12)- 特殊渲染技術
  • 剖析虛幻渲染體系(13)- 優化技術
  • 剖析虛幻渲染體系(14)- 實用工具合集

以上章目可能有變動,有增有刪有改,但總的宗旨在於先總後分、先上而下、由外入裡,層層遞進,逐步揭開UE龐大且複雜的渲染體系的神祕面紗。

感興趣的讀者可以收藏這篇說明頁面連結,以便能夠及時查閱到更新。

 

特別說明

本系列文章為筆者原創,只發表在部落格園上,歡迎分享本文連結,但未經同意,不允許轉載!

 

參考文獻

相關文章