美文网首页
SRP Batching & GPU Instance

SRP Batching & GPU Instance

作者: 烂醉花间dlitf | 来源:发表于2021-07-27 21:06 被阅读0次

SRP Batching

将属性写在 UnityPerMaterial 中,就可以对 相同 材质的物体进行 DrawCall 合并。

3 个球,一个 Call
使用 MaterialPropertyBlock 对属性进行更改之后,不再合并。
5 个球,5 个 Call
如果在合并过程中插进来一个其他材质的物体,那么会打破合并,下图粉色球是第二种材质,打破了其他三个球的合并。
中间那次 SPR Batch 是粉色球
解决方法一种是将粉色球向前移动或者向后移动,保证它的深度不会在另外三个球之间;第二种是修改任意一个材质的 Queue,让其偏移 1。

GPU Instance

GPU Instance 也可以将属性写在 UnityPerMaterial 中,并且 SRP Batching 优先级比 GPU Instance 高,所以如果没有通过 MaterialPropertyBlock 修改属性的话,会优先使用 SRP Batching。如果属性写在自定义名称中,则不会启用 SRP Batching。
GPU Instance 有两种用法。一是直接修改个别物体的属性,比如基色、Cutoff 阈值等,如项目中的 PerObjectWithUnlitShader.cs。效果如下:

5 个球,1 个 Call

二是使用 Graphics.DrawMeshInstanced 一次性绘制出许多只有些许不同的物体,如项目中的 DrawMesh.cs。效果如下:

512 个球

参考

https://catlikecoding.com/unity/tutorials/custom-srp/draw-calls/
https://docs.unity3d.com/Manual/GPUInstancing.html
Unlit.shader in URP

项目链接

https://gitee.com/zhangqrr/CustomRP/tree/master/

image

相关文章

  • SRP Batching & GPU Instance

    SRP Batching 将属性写在 UnityPerMaterial 中,就可以对 相同 材质的物体进行 Dra...

  • TensorFlow Serving | GPU & Batch

    概述 为了更快的响应用户请求,可以在 GPU 服务器上部署 Serving,也可以通过配置 Batching 相关...

  • [unity]GPU Instance学习

    前言 我们之前研究过为什么Unity的UI可以合批,是因为使用了相同的材质进行渲染,UI上不同图片渲染是通过...

  • unity的合批

    unity的合批有两种:静态合批(Static batching)和动态合批(Dynamic batching)。...

  • AWS EC2 服务建立云端Deep Learning开发环境

    1. AWS EC2 的建立 AMI 选择 GPU Instance 选择 目前只有g2.2xlarge是最廉价的...

  • 2018年面试题总结

    1.ui中的batching一个红色一个蓝色怎么合并它们? batching:批处理 打图集,合并材质 2.2个...

  • 序列模型的分批策略,bucketing

    Comprehensive Hands-on Guide to Sequence Model batching s...

  • 设计模式 - 设计原则

    SOLID 单一职责原则(SRP) SRP(Simple Responsibility Principle):A ...

  • Mini-batching

    Mini-batching 是一个一次训练数据集的一小部分,而不是整个训练集的技术。它可以使内存较小、不能同时训练...

  • Batching和Instancing

    通常引擎一般会提供3种合批的方式: 静态合并,动态合并,实例化那么3种合批的方法到底有什么区别呢,我们需要在何时使...

网友评论

      本文标题:SRP Batching & GPU Instance

      本文链接:https://www.haomeiwen.com/subject/sbaomltx.html