SRP Batch

发布时间 2024-01-03 15:43:55作者: mc宇少

SRP Batch是SRP提供的批处理方法。

SRP Batch不会减少DrawCall的数量,而是使其更精简。它在GPU上缓存了材质属性,因此不必再每次绘制调用时都将其发送出去。这样既减少了需要传达的数据量,又减少了每个绘图调用CPU需要完成的工作。

但这仅在着色器遵守用于uniform数据的严格结构时才有效:

所有材质属性(Properties块)都需要在具体的存储缓冲区内定义,而不是在全局级别上定义。这是通过将_BaseColor声明包装在带有UnityPerMaterial名称的cbuffer块(有些设备不支持)中来完成的。这就像一个结构声明,需要以分号终止。它通过将_BaseColor放入特定的常量内存缓冲区中来隔离它,尽管它仍可在全局级别访问。

 效果:

 

 FrameDebugger: