为什么同一个Camera有两个RenderSingleCamera的耗时

news/2024/10/20 21:08:51

1)为什么同一个Camera有两个RenderSingleCamera的耗时
2)Unity 2022中SBP打包报错问题排查
3)Application.lowMemory在什么时候会生效
4)一般iOS机型要超过其运行内存的多少会容易崩溃


这是第404篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:793972859

Rendering

Q:我们发现项目里有对同一个Camera的两个RenderSingleCamera的耗时,这是合理的吗?且全程RenderPipelineManager.DoRenderLoop_Internal这个函数每帧会执行2次还有可能执行4次的。

因此有以下疑惑:
1. RenderPipelineManager.DoRenderLoop_Internal什么情况下可能每帧执行多次?
2. 两个耗时有何区别
我在RenderDoc里也抓了下帧,确实有重复的Colour Pass,看起来明明已经画了一遍了,然后又画了一遍,Unity的FrameDebug只能看到一次。

A:RenderLoop在堆栈里面看到执行多次的情况通常是有Camera设置了RT作为其RenderTarget。

这两个是URP执行的两个阶段,前面可以看做初始化和Culling阶段,后面是提交Drawcall的阶段,以前在Built-in管线,前面的各种逻辑都是写在Native层的,URP把这个阶段封装了C#,方便开发者自己管理。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/66f8cf8f682c7e5cd61bf8e8


AssetBundle

Q:Unity 2022使用SBP打包总是报错:Assertion failed on expression: 'info.preloadSize == loadInfo.includedObjects.s。

环境:
Unity 2022.3.30f1
SBP 2.01、SBP 2.1.4,使用CompatibilityBuildPipeline打包

问题:
打没有缓存的资源,很容易出报错:

Assertion failed on expression: 'info.preloadSize == loadInfo.includedObjects.size() + loadInfo.referencedObjects.size()'

UnityEditor.Build.Pipeline.CompatibilityBuildPipeline:BuildAssetBundles (string,UnityEditor.AssetBundleBuild[],UnityEditor.BuildAssetBundleOptions,UnityEditor.BuildTarget)

A:结论:同一个包里不允许资源重名(我们所在的版本里资源记录没有路径也没有拓展名)。

下面放两张对比图,跟问题到底错在哪里无关,只是说明下二者的差别。

我尝试通过解包的内容确定出错的根本原因或者表现,但是没有成功。只在中间某个环节推测是重名问题,并进行了一系列测试,确认了这个结论。


2022里有问题的内容列表

 

 


2018里正常的内容列表

 

感谢题主Walker@UWA问答社区提供了回答


Memory

Q:Application.lowMemory这个方法大家有测过吗?如何生效?

A:由于Application.lowMemory仅在内存极其紧张时触发,因此不应该过度依赖这个回调来管理内存,尤其可能比较常见但其实有问题的、在回调中调用RUUA回收Unused资源的做法,不但降低内存的效果有限还会触发卡顿。正确的做法是通过优化资源管理、减少不必要的内存占用等方式来预防内存问题;或调用Resources.UnloadAssets或AB.Unload(True)的方式定向卸载内存。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/66f8cd1a682c7e5cd61bf8e6


Memory

Q:想问下,大家有没有测过iOS机型一般超过其运行内存的多少(比如50%)容易崩溃的数据吗?

A:我们项目测试过,但是有一些项目组反馈证明,即便是4G以上的中高端iOS设备,在内存超过1.8GB时闪退风险会比较高。

针对以上问题,有经验的朋友欢迎转至社区交流:
https://answer.uwa4d.com/question/66f8ce43682c7e5cd61bf8e7

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859

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

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

相关文章

5.软考信息安全工程师

10.15~11.9 上半年考了个低级的信息技术处理员,比较low,这来点稍微高级的,信息安全工程师,目前有些基础,但不多,实践不足嚒,但不管了,直接冲。还剩25天左右,借助chatGPT,B站,软考通。直接大量做题,不会就先学现卖。

.NET 7+Vue 3 开源仓库管理系统 ModernWMS

前言 本系统的设计目标是帮助中小企业乃至大型企业实现仓库操作的自动化与数字化,从而提升工作效率,降低成本,并最终实现业务增长。项目采用 Vue 3 + TS + .NET 7 等前沿框架进行开发,为企业提供一套现代化的仓库管理解决方案。 项目介绍 ModernWMS 是一款开源的简易完整仓…

移动开发(三):使用.NET MAUI打包第一个安卓APK完整过程

之前给大家介绍过使用使用.NET MAUI开发第一个安卓APP,今天给大家介绍如何打包成APK,然后安装到安卓手机正常运行。这里还是沿用之前搭建好的应用程序。 首先确保项目可以正常运行,具体如下图: 一、修改AndroidManifest.xml 配置APP基本信息权限 首先设置AndroidManifest.x…

算法与数据结构——堆排序

堆排序 堆排序(heap sort)是一种基于堆数据结构实现的高效排序算法。我们可以利用已经学过的“建堆操作”和“元素出堆操作”实现堆排序。输入数组并建立小顶堆,此时最小元素位于堆顶。 不断执行出堆操作,依次记录出堆元素,即可得到从小到大排序的序列。以上方法虽然可行,…

ZBrush和3D-Coat各自的优缺点是什么?

zbrush支持的模型面数高英文界面,3d coat支持的模型面数比zbrsh低有中文界 ZBrush优缺点1、ZBrush优点: zbrush是高精度建模poser制作的首选。可搭配雕刻版使用,主要为烘焙高细节的铁图建模。因为是高精度模型,不适用于动画和游戏制作,所以建模师普遍用它来制作贴图,辅助…

24. 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3: 输入:head = [1] 输出:[1] 解题思…

Z函数(扩展KMP)

Z函数学习,Z数组和E数组的构建扩展KMP(Z函数) Z数组 简单理解 \(Z[i]\) 表示字符串从i出发,与整体相比有多长的公共前缀 a a a b a a c 7 2 1 0 2 1 0可以先理解马拉车再来看 首先,设置两个类似的东西,关键点 \(c\) 和最右边界 \(r\) ,表示 \(Z[c]\) 是目前所有 \(Z\) 中…

2024北森题库(含答案)

"2024北森题库(含答案)"揭示了这是一份针对教育和考试领域的资源,特别是与北森题库相关的练习题目和解答。北森题库通常指的是由北森公司提供的各类考试模拟题集,涵盖了诸多考试科目,如公务员考试、事业单位招聘、教师资格证考试等。这份资料对于备考者来说是一…