首页 > 其他分享 >为什么Unity里的变体数和UWA工具测出来的不一样

为什么Unity里的变体数和UWA工具测出来的不一样

时间:2024-12-04 11:23:19浏览次数:7  
标签:社区 uwa4d Unity 变体 UWA com

1)为什么Unity里的变体数和UWA工具测出来的不一样
2)使用TextureArray为什么会导致L1 Cache Miss率变高
3)Gfx.PresentFrame耗时异常高
4)AO方案中哪个更适合移动端


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

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

Shader

Q:为什么Unity里的变体数和UWA工具测出来的变体数不一样呢?

 

 

A:shader_feature在编辑器中预览只会保留第一个关键字的变体,所以会少显示很多;但实际进入包体的是UWA AssetBundle工具显示的量。

顺便一提,通过变体收集的方式可以让引擎在打包的时候自动去掉一部分shader_feature关键字导致的变体组合,节省部分内存。

该回答由UWA提供,欢迎大家转至社区交流:
https://answer.uwa4d.com/question/674d1de4682c7e5cd61bf9b3


GPU

Q:做地形的时候用的ID图的方案,将所有的地表贴图做成了TextureArray,Xcode测试性能。发现TextureArray导致Texture L1缓存的Cache Miss率高达77%,且不用就不高了,设备是iPad Air 5。

请问是相邻像素的TextureArray的ID不同导致Cache Miss吗?

 

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


Rendering

Q:部分安卓机型上,某个东西显示出来的时候,Gfx.PresentFrame耗时非常高。

以下是真机测试、多线程渲染下的截图:

 

目前还没找到根本原因,但实验发现:
1. 挂掉出问题的Shader的Clip函数,就不会有问题。
2. 删掉工程内的变体收集器,也不会有问题(新版本和老版本相关的区别就是新收集了一波变体,然后打进了Bundle里)。

目前解决方案就是把变体收集器删了,因为现在就没做Shader预热,所以收集器其实没用到。

请问其本质原因是什么?

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


Rendering

Q:请问以下AO方案中,哪些适合移动端呢?

SSAO、SSDO、HBAO+、GTAO、MXAO、LSAO、VXAO、DeepAO、以及上一年Meta的PSAO。

A:一般动态物体就是烘培AO,也就是单个物体有,静态物体就是LightmapAO也是烘培的,移动端从性能考虑大多还是走烘焙。

只有那些大世界的场景实在是太大才会想各种办法去设计一个GI效果,比如SSAO去凑整个环境的AO效果。

感谢南瓜@UWA问答社区提供了回答

封面图来源于网络


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

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

标签:社区,uwa4d,Unity,变体,UWA,com
From: https://www.cnblogs.com/uwatech/p/18585883

相关文章

  • 【Unity 手枪模型和材质插件】Cyberpunk Handguns (Cyber, Guns) 高质量手枪模型及其
    CyberpunkHandguns(Cyber,Guns)是一款专为Unity开发的插件,提供一系列具有未来科技感的手枪模型和材质,适用于赛博朋克风格的游戏或场景。这个插件为开发者提供了高质量、细节丰富的武器资源,能够帮助游戏快速构建充满未来感的枪械系统。主要特点:高质量的赛博朋克风格手......
  • ComE:Learning Community Embedding with Community Detection and Node Embedding on
    ComE(CommunityEmbedding)LearningCommunityEmbeddingwithCommunityDetectionandNodeEmbeddingonGraphs用社区检测和图上的节点嵌入学习社区嵌入论文来源:CIKM2017https://www.sentic.net/community-embedding.pdf【2017】项目地址:https://github.com/andompesta/Co......
  • Unity正方体积24个顶点与面的对应关系
    最近在开发我的世界类游戏,有用到mesh的uv绑定。将这个材质纹理绑定到一个正方体上,在网上找的代码绑定错误,遂自己研究绑定关系。这是每个面对应的uv数字的索引值usingUnityEngine;publicclassMapTexture:MonoBehaviour{voidStart(){MeshFilterm......
  • Unity-Particle System属性介绍(一)基本属性
    什么是ParticleSystem粒子系统是Unity中用于模拟大量粒子的行为的组件。每个粒子都有一个生命周期,包括出生、运动、颜色变化、大小变化和死亡等。粒子系统可以用来创建烟雾、火焰、水、雨、雪、尘埃、闪电和其他各种视觉效果。开始在项目文件下创建一个Vfx文件夹用于存放我......
  • 【Unity 插件】Visual State Machine 通过图形化的界面帮助开发者设计和管理复杂的状
    VisualStateMachine是一款用于Unity编辑器中的插件,旨在通过图形化的界面帮助开发者设计和管理复杂的状态机逻辑。它为Unity提供了一个直观的拖拽式状态机系统,可以用来控制角色行为、AI、动画、UI交互等各种状态转换。主要特点:图形化界面:使用拖拽式界面来创建和管理......
  • 循环神经网络(RNN)及其变体:概念、结构与应用
    1.循环神经网络(RNN)概念循环神经网络(RecurrentNeuralNetworks,RNNs)是一种专门设计用于处理序列数据的神经网络。它们通过内部状态(或称为隐藏状态)来捕捉时间序列中的依赖关系,从而能够有效地处理具有时间连续性的输入数据,如文本、语音和视频等。作用RNN广泛应用于自然......
  • Unity 设计模式-状态模式(State Pattern)详解
    状态模式(StatePattern)状态模式(StatePattern)是一种行为型设计模式,它允许一个对象在其内部状态发生改变时改变其行为。状态模式将与状态相关的行为封装在独立的状态类中,系统在运行时根据状态的变化来切换不同的行为。通过状态模式,状态转换和行为执行得到了很好的分离,符合面......
  • 第七课 Unity编辑器创建的资源优化_UI篇(UGUI)
    上期我们学习了简单的Scene优化,接下来我们继续编辑器创建资源的UGUI优化UI篇(UGUI)优化UGUI应从哪些方面入手?可以从CPU和GPU两方面考虑,CPU方面,避免触发或减少Canvas的Rebuild和Rebatch,减少Drawcall,减少CPU处理顶点的时间;GPU方面,降低Overdraw,缩小纹理大小。Canvas的Batch构建......
  • 【Unity 水面着色器插件】Stylized Water Toon Shader - Mobile Ready 专为低性能平台
    StylizedWaterToonShader-MobileReady是一款为Unity开发者设计的水面着色器插件,专为低性能平台(如移动设备)优化,提供高质量的卡通风格水面效果。该插件通过简化的渲染方式和丰富的视觉效果,使开发者能够在移动端或其他性能受限的平台上实现流畅的水面表现,适用于多种游戏......
  • 【Unity 特效插件】Trails FX 帮助开发者在游戏中实现物体移动时产生的尾迹效果
    TrailsFX是一款专为Unity开发者设计的特效插件,用于创建动态的尾迹效果(TrailEffects)。这款插件提供了一种快速而高效的方式,帮助开发者在游戏中实现物体移动时产生的尾迹效果,如快速移动的物体、飞行物、粒子效果等。无论是用于角色技能、武器攻击、物体轨迹,还是火焰、光影......