【NPR】非真實感渲染實驗室
寫在前面
前幾天在知乎看到一個問題——關於非實感圖形學或者風格化渲染有哪些好的書或者paper,我剛好接觸過一些就去裏面回答了一下。答完以後突然想在Unity裏搞一個這種集錦,把一些簡單的NPR論文或者教程在Unity裏實現一下。於是這兩天就做了一下。
我把這個項目放到了GitHub(https://github.com/candycat1992/NPR_Lab)上,有興趣的同學能夠去看一下。
項目鏈接:https://github.com/candycat1992/NPR_Lab
實現了哪些NPR
就這兩天的工作,我主要挑選的是關於卡通渲染一些最早的論文,比如1998年的A Non-Photorealistic Lighting Model for Automatic Technical Illustration,這篇是最早提出在卡通渲染使用色調來模擬插畫風格的文章。
因為Unity封裝的太好了,一些論文中的效果我沒有在Unity裏做出來,等到Unity更新之後開放很多其它功能的時候我會更新。
這個項目不出意外的話我會一直更新的。假設大家一些希望看到的NPR效果能夠跟我說。有時間的話我會嘗試去實現。
每次更新項目,假設加入了新的渲染效果。我也會在項目的README裏註明。比如,在我寫這篇文章的時候,我一共實現了五個簡單的NPR:
Antialiased Cel Shading
Related Scene: AntialiasedCelShadingScene
Reference: http://prideout.net/blog/?p=22
Tone Based Shading
Related Scene: ToneBasedShadingScene
Reference: Gooch A, Gooch B, Shirley P, et al. A non-photorealistic lighting model for automatic technical illustration[C]//Proceedings of the 25th annual conference on Computer graphics and interactive techniques. ACM, 1998: 447-452.
Stylized Highlights
Related Scene: StylizedHighlightsScene
Reference: Anjyo K, Hiramitsu K. Stylized highlights for cartoon rendering and animation[J]. Computer Graphics and Applications, IEEE, 2003, 23(4): 54-61.
Pencil Sketch Shading
Related Scene: PencilSketchShadingScene
Reference: Lake A, Marshall C, Harris M, et al. Stylized rendering techniques for scalable real-time 3D animation[C]//Proceedings of the 1st international symposium on Non-photorealistic animation and rendering. ACM, 2000: 13-2
Hatching
Related Scene: HatchingScene
Reference: Praun E, Hoppe H, Webb M, et al. Real-time hatching[C]//Proceedings of the 28th annual conference on Computer graphics and interactive techniques. ACM, 2001: 581.
背後的原理
這些實驗大部分都是參考了論文。少數是基於一些教程。
它們大多數僅僅使用到了shader。在項目的README裏。我給出了每種效果參考的資料以及在項目中的場景名字。我本來打算每種效果都寫一篇博文來講一下原理,但近期在寫書並且還有實驗室方面的工作要做,時間沒那麽充裕,因此更新會慢。但就眼下實現的幾種效果來說。大家都能夠從論文中找到實現原理,並且shader也都不復雜。
寫在最後
這個項目也是純屬興趣,假設大家有不論什麽意見和建議歡迎給我留言。假設發現我的實現有誤。也一定要告訴我。
最後,希望大家能夠hava fun~
【NPR】非真實感渲染實驗室