在unity5中减少Draw Calls(SetPass Calls)

在Unity5中,减少Draw Calls和SetPass Calls是优化游戏性能的重要手段之一。本文将介绍如何通过以下两种方法来减少Draw Calls和SetPass Calls:

  1. 合并网格
  2. 使用材质批处理

合并网格

合并网格是将多个网格合并为一个网格的过程。这样可以减少Draw Calls和SetPass Calls,因为每个网格都需要一个Draw Call和一个SetPass Call。合并网格可以将多个网格合并为一个网格,从而减少Draw Calls和SetPass Calls的数量。

示例1:合并静态物体的网格

以下是合并静态物体的网格的示例:

  1. 选择要合并的静态物体。
  2. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Renderer”组件。
  3. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Filter”组件。
  4. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Combine Utility”组件。
  5. 在“Mesh Combine Utility”组件中,单击“Combine”按钮。
  6. 在“Mesh Combine Utility”组件中,单击“Apply”按钮。

示例2:合并动态物体的网格

以下是合并动态物体的网格的示例:

  1. 创建一个空的游戏对象。
  2. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Renderer”组件。
  3. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Filter”组件。
  4. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Combine Utility”组件。
  5. 在“Mesh Combine Utility”组件中,单击“Combine”按钮。
  6. 在“Mesh Combine Utility”组件中,单击“Apply”按钮。
  7. 在“Mesh Combine Utility”组件中,将“Combine On Late Update”属性设置为“True”。

使用材质批处理

材质批处理是将多个使用相同材质的物体合并为一个批次的过程。这样可以减少SetPass Calls的数量,因为每个材质都需要一个SetPass Call。使用材质批处理可以将多个使用相同材质的物体合并为一个批次,从而减少SetPass Calls的数量。

示例1:使用材质批处理

以下是使用材质批处理的示例:

  1. 创建一个材质。
  2. 将材质应用于多个物体。
  3. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Renderer”组件。
  4. 在“Mesh Renderer”组件中,将“Material”属性设置为创建的材质。
  5. 在“Mesh Renderer”组件中,将“Static”属性设置为“True”。
  6. 在“Mesh Renderer”组件中,将“Batching Static”属性设置为“True”。

示例2:使用动态合并

以下是使用动态合并的示例:

  1. 创建一个材质。
  2. 将材质应用于多个物体。
  3. 在Inspector窗口中,单击“Add Component”按钮,然后选择“Mesh Renderer”组件。
  4. 在“Mesh Renderer”组件中,将“Material”属性设置为创建的材质。
  5. 在“Mesh Renderer”组件中,将“Static”属性设置为“False”。
  6. 在“Mesh Renderer”组件中,将“Batching Dynamic”属性设置为“True”。

总结

在Unity5中,减少Draw Calls和SetPass Calls是优化游戏性能的重要手段之一。本文介绍了两种方法来减少Draw Calls和SetPass Calls:合并网格和使用材质批处理。合并网格可以将多个网格合并为一个网格,从而减少Draw Calls和SetPass Calls的数量。使用材质批处理可以将多个使用相同材质的物体合并为一个批次,从而减少SetPass Calls的数量。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在unity5中减少Draw Calls(SetPass Calls) - Python技术站

(0)
上一篇 2023年5月5日
下一篇 2023年5月5日

相关文章

  • MySQL 8.0.0开发里程碑版发布!

    MySQL 8.0.0开发里程碑版发布攻略 MySQL 8.0.0开发里程碑版是MySQL数据库的一个重要版本,它引入了许多新功能和改进。本攻略将详细介绍如何安装和配置MySQL 8.0.0开发里程碑版,并提供两个示例说明。 步骤1:下载MySQL 8.0.0开发里程碑版 首先,你需要从MySQL官方网站下载MySQL 8.0.0开发里程碑版的安装包。你可以…

    other 2023年7月29日
    00
  • PostgreSQL数据库字符串拼接、大小写转换以及substring详解

    PostgreSQL数据库字符串拼接、大小写转换以及substring详解 在本攻略中,我们将详细讲解如何在PostgreSQL数据库中进行字符串拼接、大小写转换以及使用substring函数。我们将提供两个示例来说明这些操作的用法。 字符串拼接 在PostgreSQL中,可以使用||操作符进行字符串拼接。下面是一个示例: SELECT ‘Hello’ ||…

    other 2023年8月18日
    00
  • ie8/9下Activex控件无法加载的两种解决方法

    下面我将为大家详细讲解“ie8/9下Activex控件无法加载的两种解决方法”。 原因分析 在IE8/9浏览器下,Activex控件无法正常加载的问题主要有以下两个原因: 安全设置过高导致浏览器屏蔽了Activex控件。 IE8/9只能使用针对32位操作系统的Activex控件,而无法使用64位Activex控件。 解决方法 方法一:修改IE浏览器的安全设置…

    other 2023年6月25日
    00
  • VS2019开发简单的C/C++动态链接库并进行调用的实现

    下面我将详细讲解如何使用VS2019开发简单的C/C++动态链接库并进行调用的完整攻略,包含以下步骤: 步骤一:创建动态链接库项目 打开Visual Studio 2019,选择 创建新项目。 在 新建项目 弹出框中,选择 Windows桌面向导 面板,选择 动态链接库 (.dll) 项目类型。 为项目命名并选择保存位置,点击 创建。 步骤二:编写动态链接库…

    other 2023年6月26日
    00
  • 域名必备知识 域名名词解释大全

    域名必备知识 域名名词解释大全 1. 域名解析(Domain Name Resolution) 域名解析是将域名转换为IP地址的过程。当用户在浏览器中输入一个域名时,浏览器会向域名解析服务器发送请求,解析服务器会返回与该域名对应的IP地址,然后浏览器才能通过IP地址找到对应的网站。 示例说明: 假设用户在浏览器中输入了域名\”www.example.com\…

    other 2023年8月5日
    00
  • Android学习之使用SharedPreferences存储应用程序数据

    让我来为你详细讲解 “Android学习之使用SharedPreferences存储应用程序数据” 的完整攻略。 什么是SharedPreferences? SharedPreferences是Android中的一个轻量级存储类,用来保存应用程序的配置信息或者一些简单的数据。 SharedPreferences本质上是一个基于XML文件存储键值对的数据结构,…

    other 2023年6月25日
    00
  • php-php:获取独立数组的key

    以下是关于“PHP:获取独立数组的key”的完整攻略,包括获取独立数组key的定义、获取独立数组key的方法、示例说明和注意事项。 获取独立数组key的定义 在PHP中,独立数组是指数组中的每个元素都一个唯一的key,这个key可以是数字或字符串获取独立数组的key是指获取数组中每个元素的key值。 获取独立数组key的方法 在PHP中,可以使用以下方法获取…

    other 2023年5月8日
    00
  • 部署vmware-vcsa 6.5

    下面是“部署vmware-vcsa 6.5的完整攻略”,包括准备工作、安装vCenter Server Appliance和配置vCenter Server等方面。 准备工作 在部署vmware-vcsa 6.5之前,需要进行以下准备工作: 确认硬件和软件要求; 下载vCenter Server Appliance安装文件; 确认网络设置; 确认DNS设置;…

    other 2023年5月6日
    00
合作推广
合作推广
分享本页
返回顶部