这是一个有关于Unity-Custom SRP的基础系列教程。
该教程涉及到一个简单的渲染管线的搭建,各种光照和阴影的计算与着色,DrawCall和几种Batching的方式,复杂的多贴图及相关遮罩,多相机的渲染和堆叠相机的解决方案,一个简洁的后处理系统包括了Bloom、ColorGrading、ToneMapping、FXAA的简单实现等等…对于了解Unity的渲染流程和CPU-GPU沟通协作方式有着很好的帮助。
本文主要取自Catlike Coding的系列教程,并根据自己的理解和习惯对部分代码结构进行了简单的重构和细节上的调整,之后有时间应该会对原文中介绍不够详细或没有介绍到的一些常见技术和实现另外开贴。
同时我也有一篇关于原文的翻译帖正在慢慢更新中,想要一步一步去理解和实现的可以在下边找到译文的链接,喜欢阅读原作的也可以去Catlike Coding的小屋里学习。
文末给出了给予我很大帮助的链接。
在代码中做了很详细的注释,就不过多叙述(主要是懒),直接上代码链接了。
(本系列教程使用的是Unity 2021.3.1f1c1 版本)
工程链接
Unity-CustomSRP[GitHub]
- 2022.5.15 更新基于ShellMethods/Z-Bias/VertexNormal的三种顶点法描边
- 2022.5.16 更新基于后处理+Sobel算子的描边
- 2022.5.17 更新基于后处理+图像深度检测的描边
- 2022.5.19 添加了Cel-Shading卡通着色+高光+边缘光
- 2022.5.20 更新了Cel-Shading表面阴影部分的融合方式,代码整理并更改了一些参数
- 2022.5.22 更新眼球跟随相机的shader实现(简化了计算模型)、添加动骨插件给头发加了点动态效果
- 2022.5.23 更新卡通渲染到URP管线、添加一个草地场景
- 2022.5.31 更新基于SDF阴影的采集方法(无合适贴图资源…)
译文链接(更新中)
Unity3D CustomSRP[译]
相关参考资料
- Catlike Coding
- Candy Cat-《UnityShader入门精要》 冯乐乐
- HLSL 文档
- Unity官方手册
- CG 文档
- 线性代数的本质
- 《3D数学基础:图形与游戏开发》