一起來寫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
※深入淺出基於物理的渲染一