前言
笔者的博客园博文断更很久了,上一篇文章是去年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)- 光源和阴影
- 剖析虚幻渲染体系(06)- UE5特辑Part 1(特性和Nanite)
- 剖析虚幻渲染体系(06)- UE5特辑Part 2(Lumen和其它)
- 剖析虚幻渲染体系(07)- 后处理(此篇需登录博客园方可打开,原因未知)
- 剖析虚幻渲染体系(08)- Shader体系
- 剖析虚幻渲染体系(09)- 材质体系
- 剖析虚幻渲染体系(10)- RHI
- 剖析虚幻渲染体系(11)- RDG
- 剖析虚幻渲染体系(12)- 移动端专题Part 1(UE移动端渲染分析)
- 剖析虚幻渲染体系(12)- 移动端专题Part 2(GPU架构和机制)
- 剖析虚幻渲染体系(12)- 移动端专题Part 3(渲染优化)
- 剖析虚幻渲染体系(13)- RHI补充篇:现代图形API之奥义与指南
- 剖析虚幻渲染体系(14)- 实时光线追踪
- 剖析虚幻渲染体系(15)- 特殊渲染技术
- 剖析虚幻渲染体系(16)- 优化技术
- 剖析虚幻渲染体系(17)- 实用工具合集
以上章目可能有变动,有增有删有改,但总的宗旨在于先总后分、先上而下、由外入里,层层递进,逐步揭开UE庞大且复杂的渲染体系的神秘面纱。
感兴趣的读者可以收藏这篇说明页面链接,以便能够及时查阅到更新。
应不少同学的要求,创建了UE技术交流QQ群,有兴趣的同学扫描下面的二维码加入。
团队招员
博主所在的团队正在用UE4开发一种全新的沉浸式体验的产品,急需各路贤士加入,共谋宏图大业。目前急招以下职位:
- UE逻辑开发。
- UE引擎程序。
- UE图形渲染。
- TA(技术向、美术向)。
要求:
- 扎实的技术基础。
- 高度的技术热情。
- 良好的自驱力。
- 良好的沟通协作能力。
- 有UE使用经验或移动端开发经验更佳。
有意向或想了解更多的请添加博主微信:81079389(注明博客园求职),或者发简历到博主邮箱:81079389#qq.com(#换成@)。
静待各路英雄豪杰相会。
特别说明
本系列文章为笔者原创,只发表在博客园上,欢迎分享本文链接,但未经同意,不允许转载!