Version: 6000.3
语言: 中文
GPU实例化
为预构建材质启用GPU实例化

GPU实例化简介

GPU 实例化是一种绘制调用优化方法,它使用单个绘制调用来渲染多个游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
使用相同的meshUnity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表
和材料。当您绘制在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
,例如,树木或灌木丛。

GPU 实例化是 GPU 的内置功能。网格的每个副本称为一个实例。每个实例可以具有不同的属性,例如颜色或比例。

GPU 实例化的性能优势取决于平台和 GPU。对于每个绘制调用,Unity 必须从不同的内存位置收集、组合和上传属性,因此性能开销可能大于好处。移动平台上的性能优势优于桌面平台。

渲染管线兼容性

GPU 实例化与所有 Unity 渲染管线兼容。如果您使用 Universal渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
(URP) 或高清渲染管线 (HDRP),GPU 实例化适用于自定义着色器在 GPU 上运行的程序。更多信息
请参阅术语表
仅当禁用可编写脚本的渲染管线(SRP)批处理程序使着色器与SRP批处理程序不兼容时。

有关您可以使用的绘制调用优化方法(而不是 GPU 实例化)的信息,请参阅选择优化绘制调用的方法

间接照明兼容性

GPU 实例化支持以下类型的游戏对象:

  • 从中获取光照的动态游戏对象光源探针光探针存储有关光线如何穿过场景中空间的信息。在给定空间中排列的光源探针集合可以改善移动对象的光照和该空间内的静态LOD场景。更多信息
    请参阅术语表
    .
  • 从中获取光照的静态游戏对象光照贴图(lightmaps一种预渲染的纹理,包含光源对场景中静态对象的效果。光照贴图覆盖在场景几何体之上,以创建光照效果。更多信息
    请参阅术语表
    ,如果它们在静态编辑器标志中启用了 Contribute GI,并且它们烘焙到相同的光照贴图纹理。
  • 使用光照探针代理体积(Light Probe Proxy Volume)一个组件,允许您对无法使用烘焙光照贴图的大型动态游戏对象(例如,大型粒子系统或蒙皮网格体)使用更多光照信息。更多信息
    请参阅术语表
    (LPPV)。必须为包含所有实例的整个空间烘焙 LPPV。

着色器和网格体兼容性

如果使用预构建材质,则以下网格体是兼容的:

  • 场景中的网格渲染器组件。皮肤网格体渲染器(Mesh Renderer一个网格体组件,用于从网格体过滤器中获取几何体,并将其渲染到对象的变换组件定义的位置。更多信息
    请参阅术语表
    不支持组件。
  • 你使用在预构建材质中支持GPU实例化的API在脚本中渲染的网格体,例如Graphics.RenderMeshInstanced

以下着色器支持 GPU 实例化:

  • 大多数预制材料。兼容的着色器具有 启用GPU实例化(Enable GPU Instancing) 属性。
  • Shader Graph材质(如果使用URP或HDRP)。

要创建支持 GPU 实例化的自定义着色器,请参阅以下内容:

其他资源

GPU实例化
为预构建材质启用GPU实例化