一种通过C#脚本在Unity中配置和执行渲染的方法
RenderPipeLine
RenderPipeline.PNG
ForwardShading 原理:每个作用于物体的像素光单独计算一次,drawCall随着物体与光照数量增加而成倍增加 优点:不受硬件限制 缺点:光照计算开销成倍增加随着光源和物体数量增加。 每个物体接受光照数量有限。
DeferredShading 原理:物体颜色、法线、材质等信息先渲染到G-Buffer中,光照最后单独渲染,避免每个物体多个光照批次的问题 优点:作用于每个物体光照数量不再受到限制,光照计算不随着物体增加而增加 缺点:移动设备需要支持OpenGL3.0。 不支持MSAA。 半透明物体仍然使用前向渲染。
CommandBuffer 用于拓展Unity渲染管线。 包含一系列渲染命令,比如设置渲染目标,绘制网格等,并可以设置为在摄像机期间的各个点执行渲染。
LWRP对性能改进 DrawCall->SRP Batcher 填充率->NewShading 内存带宽->NewRender
LWRP特性 1.精简优化过的渲染管线: 聚焦于性能、针对移动和XR平台 2.Single-Pass ForwardRendering: 高性能和高一致性的PBR 新Shader库 一次渲染多个实时光 可插入ScriptableRenderPasses 3.基于C#源码: 渲染过程可读 4.图形功能课定制化 增加、修改、删除、学习
光照 1.实时光照: 按照每个物体进行光照剔除 在一个批次进行渲染 针对每个物体限制:一盏主方向光、四盏附加光 每个相机16盏可见光 2.给予物理的光照衰减: 只受强度控制,不受范围影响
相关资料: 官方LWRP讲解 https://www.bilibili.com/video/av38056528 LWRP管线剖析 https://blog.csdn.net/qq_37043683/article/details/80989492 民间文档https://blog.csdn.net/weixin_42163773/article/details/84317223