unity静态批处理

news2024/10/20 20:54:53

unity静态批处理

      • 静态批处理
      • 要求和兼容性
        • 渲染管线兼容性
      • 使用静态批处理
      • 在构建时进行静态批处理
        • 在构建时执行静态批处理的步骤:
      • 在运行时进行静态批处理
      • 性能影响

静态批处理

静态批处理是一种绘制调用批处理方法,它将不移动的网格组合在一起,以减少绘制调用。它将组合后的网格转换为世界空间,并为它们构建一个共享的顶点和索引缓冲区。然后,对于可见的网格,Unity 执行一系列简单的绘制调用,几乎没有状态变化。静态批处理不会减少绘制调用的数量,而是减少它们之间的渲染状态变化。

静态批处理比动态批处理更高效,因为静态批处理不会在 CPU 上变换顶点。有关静态批处理的性能影响的更多信息,请参阅性能影响。

要求和兼容性

该部分包含有关静态批处理的渲染管线兼容性的信息。

渲染管线兼容性
功能内置渲染管线通用渲染管线 (URP)高清渲染管线 (HDRP)自定义可编程渲染管线 (SRP)
静态批处理

使用静态批处理

Unity 可以在构建时和运行时执行静态批处理。一般来说,如果 GameObjects 在构建应用程序之前就存在于场景中,建议使用编辑器在构建时批处理。如果在运行时创建 GameObjects 及其网格,则使用运行时 API。

当使用运行时 API 时,可以更改静态批次根对象的变换属性。这意味着你可以移动、旋转或缩放组成静态批次的整个网格组合,但不能更改单个网格的变换属性。

要使用静态批处理,GameObjects 必须符合静态批处理的条件。除了常见使用信息中描述的标准外,还需要确保:

  • GameObject 是活动的。
  • GameObject 具有启用的 Mesh Filter 组件。
  • Mesh Filter 组件引用一个 Mesh。
  • Mesh 启用了读/写。
  • Mesh 的顶点数大于 0。
  • Mesh 没有与其他 Mesh 组合过。
  • GameObject 具有启用的 Mesh Renderer 组件。
  • Mesh Renderer 组件未使用具有 DisableBatching 标签设置为 true 的材质。

有关静态批处理性能影响的信息,请参阅性能影响部分。

在构建时进行静态批处理

你可以在编辑器中启用构建时的静态批处理。

在构建时执行静态批处理的步骤:
  1. 转到 Edit > Project Settings > Player
  2. Other Settings 中启用 Static Batching
  3. 在场景视图或层级中选择要批处理的 GameObject,并在检视器中查看。
    • 提示:可以同时选择多个 GameObject,以便为它们全部启用静态批处理。
  4. 在 GameObject 的 Static Editor Flags 中启用 Batching Static

如果满足常见使用信息中描述的条件,Unity 将自动将指定的静态网格批处理为同一个绘制调用。
在这里插入图片描述

注意:如果在构建时执行静态批处理,Unity 在运行时不会使用任何 CPU 资源来生成静态批次的网格数据。

在运行时进行静态批处理

要在运行时批处理静态网格,Unity 提供了 StaticBatchingUtility 类。静态方法 StaticBatchingUtility.Combine 将传入的 GameObjects 组合并为静态批处理做准备。这对于在运行时程序生成的网格特别有用。

与构建时的静态批处理不同,运行时批处理不需要启用静态批处理玩家设置。有关如何使用此 API 的信息,请参阅 StaticBatchingUtility

性能影响

使用静态批处理需要额外的 CPU 内存来存储组合的几何体。如果多个 GameObject 使用相同的网格,Unity 会为每个 GameObject 创建该网格的副本,并将每个副本插入到组合网格中。这意味着相同的几何体在组合网格中会多次出现。无论你使用编辑器还是运行时 API 准备 GameObjects 进行静态批处理,Unity 都会这样做。如果你希望保持较小的内存占用,可能需要牺牲渲染性能,并避免对某些 GameObjects 使用静态批处理。例如,在密集森林环境中将树木标记为静态可能会对内存产生严重影响。

注意:静态批处理对顶点数量有上限。每个静态批次最多可以包含 64000 个顶点。如果超过此数量,Unity 会创建另一个批次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2219561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【HarmonyOS NEXT】权限申请及应用设置页跳转

关键词:鸿蒙、程序访问控制、定位、应用详情页、startability、want 在app开发过程中,常进行系统权限的申请以提供设备访问或个性化功能(如扫一扫、城市定位、剪贴板等),从而保障应用功能的完整性,那么本期…

mov 转 mp4

1. 下载 ffmpeg 下载链接 Tags GyanD/codexffmpeg GitHub 下载 windos 精简版 解压 (里面的mov文件和mp4文件是我后面自己加的) 2. 转换 转换命令 ffmpeg -i 5.mov -c:v libx264 -c:a aac 5.mp4 其中 5.mov 是源文件路径 5.mp4是目标路径 使用lib…

计算机毕业设计 零食批发商仓库管理系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

智发展 智飞跃 亚信安全与新华三深化战略合作

10月16日,亚信安全与新华三集团共同宣布,双方正式签署战略合作协议,双方将基于各自在硬件及软件安全领域的能力和优势,在产品、解决方案、市场拓展等多个领域深入合作,赋能千行百业数字化转型与变革。 亚信安全CEO马红…

跨域问题及常用的5种解决方案

1.什么是跨域问题? 跨域问题通常指的是在浏览器中由于同源策略的限制而产生的问题。同源策略(Same-origin policy)是浏览器的一种安全措施,它要求请求的域名、协议和端口必须与提供资源的网站相同。当一个网页尝试访问另一个来源…

【算法】C++中的二分查找

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

wifi、热点密码破解 - python

乐子脚本,有点小慢,试过多线程,系统 wifi 连接太慢了,需要时间确认,多线程的话系统根本反应不过来。 也就可以试试破解别人的热点,一般都是 123456 这样的傻鸟口令 # coding:utf-8 import pywifi from pyw…

初识git · 基本操作

目录 前言: 基本操作 检查是否存在git 初始化仓库 认识三个区域 添加文件 查看.git文件 修改文件 版本回退 撤销操作 删除文件 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/suppor…

Qt-多线程

1. Qt 多线程概述 Qt 默认只有一个主线程,该线程既要处理窗口移动,又要处理各种运算。 当要处理的运算比较复杂时,窗口就无法移动,所以在处理程序时在很多情况下都需要使用多线程来完成。 示例:移动窗口和复杂循环 …

八股面试2(自用)

mysql存储引擎 存储引擎:定义数据的存储方式,以及数据读取的实现逻辑 在以前数据库5.5默认MyISAM引擎,之后默认InnoDB引擎 MyISAM引擎的数据和索引是分开存储的,InnoDb将索引和文件存储在同一个文件。 MyISAM不支持事务&#…

SPOOLing技术详解,结合实际场景让你了解什么是假脱机技术。

SPOOLing技术 ​ 在手工操作阶段,主机直接从I/O设备获取数据,但是由于设备速度很慢,主机速度很快。人机速度矛盾明显,主机需要浪费很多时间来等待设备。 什么是脱机技术,脱机技术可以解决什么问题? 所谓脱…

大数据测试:Charles修改响应数据

上一篇大数据测试:Fiddler修改响应数据-CSDN博客 ,有同学反馈有没有Charles的方式修改响应数据,本篇就是Charles修改数据操作步骤,相比较fiddler,Charles相对简单,便捷,我很喜欢 1、背景&…

【笔记】【YOLOv10图像识别】自动识别图片、视频、摄像头、电脑桌面中的花朵学习踩坑

(一)启动 创建环境python3.9 打开此环境终端 (后面的语句操作几乎都在这个终端执行) 输入up主提供的语句:pip install -r requirements.txt 1.下载pytorch网络连接超时 pytorch网址: Start Locally | P…

java -jar 命令自动重启 Java 项目

一、java -jar 方式运行项目 重启Java项目通常意味着你需要先停止当前运行的Java进程,然后再次启动它。下面是在CentOS上执行这些步骤的一种常见方法: 停止Java进程 找到Java进程的PID: 使用ps命令配合grep来查找运行中的Java进程的PID&#…

【Java SE 】封装 的特性 和 static 详解

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 封装的概念 1.1 一个例子 2. 访问权限控制符 3. 包的概念 3.1 import 导入 3.2 常见的包 4. static 静态成员 4.1 static 使用情况 4.2 static 修…

> Invalid revision: 3.22.1-g37088a8-dirty

Android项目使用cmake 3.22.1,编译时报错: > Invalid revision: 3.22.1-g37088a8-dirty解决方法一: 升级Gradle版本和AGP的版本; 建议使用AS推荐的版本: 目前可运行的版本配置: AS:Jel…

champ模型部署指南

一、介绍 champ是由阿里巴巴、复旦大学和南京大学的研究人员共同提出的一种基于3D的将人物图片转换为视频动画的模型,该方法结合了3D参数化模型(特别是SMPL模型)和潜在扩散模型,能够精确地捕捉和再现人体的3D形状和动态,同时保持动画的时间一…

读书读到NOBEL

最近在读陈逸鹤的《程序员的自我修养》这本书,里面有这么一段话: “远古时代的人们只能创造出用于猎捕的长矛,而今天借助来自各行各业人 们的智慧,我们可以制造出高铁、大型飞机,并探索宇宙。但要更进一步解决人类所面…

2024_E_100_连续字母长度

连续字母长度 题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。 输入描述 第一行有一个子串(1<长度<100)&#xff0c;只包含大写字母。 第二行为…

GPT-4o canvas不是对cursor的颠覆,而是人与AI交互的新探索

谈一下Openai新发布的canvas。 关于这个产品的介绍不多说了&#xff0c;网上已经有很多&#xff0c;主要谈下我对它以及相似竞品的比较&#xff0c;以及我的一些看法。 1、vs Claude Artifacts&#xff1a;是chatbot编程方面直接竞品&#xff0c;不过现阶段还是有很大的区别。…