一起來寫Unity渲染管線吧!零 開篇

題圖?Unity 2018

可編程渲染管線(Scriptable Rendering Pipeline)是Unity 2018推出的全新功能,旨在將Unity的所有渲染細節通過腳本的形式完全暴露給遊戲開發者。使用可編程渲染管線,遊戲開發者就可以完全自定義遊戲中每一個像素的每一個繪製過程,沒有東西隱藏在代碼下。

在這個系列文章中,作者將從零開始,一步步實現一個自己的渲染管線的搭建過程。對於每一步都會有一個或者多個案例來展示其中的運行原理。本文的大部分內容都是作者親自實踐和整理,難免會有錯誤,還請廣大讀者朋友不吝指正!

面向讀者

本系列文章面向的讀者為具有一定C++/C#編程經驗,具有一定Shader開發能力,並且打算開始學習渲染管線的開發者朋友們。作者在這篇文章里不會講太多的C#使用和Shader開發知識,也不會講一些基本的圖形數學知識(線性代數、離散數學這種),以上幾個話題都有很多優秀的書籍可以參考。

事實上,作者也是剛剛開始接觸C#,之前的學習一直都是使用C++在進行編程,因此對於C#語言也是一邊學一邊就用起來了。如果在程序設計中有任何不對之處,也希望讀者朋友們能夠指正。

如果讀者在閱讀過程中覺得有表述不清的地方,也可以一起交流學習,也許表述不清的那些地方深究就又會學到一個新的知識點呢。

目錄

(目錄內容僅供參考,在實際操作的過程中可能會有刪改)

第一部分:入門篇

第一節:進入渲染管線的世界

1.1 可編程渲染管線介紹

1.2 搭建最基本的管線

1.3 繪製物體!

第二節:為場景打光

2.1 平行光照

2.2 處理多種光源(前向渲染)

2.3 固定光源和可變光源數量的渲染方式

2.4 豐富我們的場景表現

第三節:陰影繪製

3.1 太陽光陰影

3.2 點光源和射燈陰影

第四節:預烘培信息

4.1 Lightmap

4.2 Reflection Probe(CubeMap)

第五節:多階段管線

5.1 透明材質

5.2 管線整理和第一部分小結

(後續內容敬請期待)


推薦閱讀:

《Real Time Rendering》之Vertex Blending/Skinning
深入淺出基於物理的渲染一

TAG:Unity遊戲引擎 | 實時渲染 | 計算機圖形學 |