首页 > 其他分享 >WorldSpace下的合批策略与ScreenSpace有什么区别

WorldSpace下的合批策略与ScreenSpace有什么区别

时间:2024-05-28 11:24:58浏览次数:31  
标签:动画 社区 合批 ScreenSpace WorldSpace UWA uwa4d

1)WorldSpace下的合批策略与ScreenSpace有什么区别
2)在iOS上用Metal取代OpenGL的多么
3)在动画蓝图中将两个或多个动画同时融合到同一个网格
4)Mipmap如何限定层级


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

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

UI

Q:WorldSpace下渲染Prefab做的HUD,如果只显示同一张图片,可以合批,如果再显示一个TextMeshPro, 直接全部都不能合批了。

【UGUI疑问】WorldSpace下的合批策略与ScreenSpace有区别吗?

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


iOS

Q:苹果官方早就宣布放弃OpenGL了, 所以这年头用Unity开发iOS的用Metal取代OpenGL的多么?

A:苹果的软硬件统一要求非常严格,为了支持新的iOS系统和手机、包括方便渲染性能分析调试的话,现在应该普遍都是用Metal的了。

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


Animation

Q:需要明确的是,当我按下游戏手柄或控制器上的按钮X时,会播放按钮X的动画。如果我按下按钮Y并仍然按住按钮X,我希望看到两个按钮的动画同时播放,而不仅仅是一个动画。

我正在使用一个装配好的手柄和控制器网格,带有动画蓝图,使用状态机来调用和播放动画。

我已经在AnimGraph中尝试了几乎所有不同的混合节点。但是,只播放动画一(混合权重1)或动画二(混合权重2)。如果我设法将两个动画混合在一起(混合权重0.5),则会播放按钮x和y的动画,但只播放动画的一半。

 

请问,有没有办法在动画蓝图中将两个或多个动画同时融合到同一个网格(不同的骨骼)上?

A:使用Layered blend per bone,并在细节面板的图层设置中为每个混合姿势设置一个关节。

这样你就有了每个关节的Alpha值,并且动画可以与其他动画一起用于单个关节。

复现:

 

在ABP中用Layered blend per bone来组合不同的动作,上面的是主动作,下面是要叠加的动作。

 

在Layer Setup中设置受控制的关节名称。

 视频链接:https://uwa-ducument-img.oss-cn-beijing.aliyuncs.com/Blog/TechSharing_387/4.mp4

这样就可以两个动作叠加在一起了。

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


Memory

Q:请问Mipmap如何限定层级?

比如一张1024x1024纹理,共有Mipmap0~10,但是项目只用到Mipmap0~2,如何省略掉3~10?

A1:用Texture2D.minimumMipmapLevel试试。

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

A2:Texture Streaming理论上可以让你更节约一点点。

感谢王林@UWA问答社区提供了回答

A3:用mipCount这个参数试试。

new Texture2D(width:256, height:256, textureFormat:TextureFormat.ARGB32, mipCount:3, linear:true)

感谢给个30K的资深titleba求求了@UWA问答社区提供了回答

封面图来源于网络


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

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

标签:动画,社区,合批,ScreenSpace,WorldSpace,UWA,uwa4d
From: https://www.cnblogs.com/uwatech/p/18217519

相关文章

  • Unity性能优化——合批(Batching)的限制与失败原因汇总
    Unity中Batching大致可以分为StaticBatching,DynamicBatching,SRPBatching与GPUInstancing四大类,但在使用时我们经常会遇到合批失败的情况,这里汇总了四大类的合批使用限制与合批失败的关键错误信息.StaticBatching的限制额外的内存开销64000个顶点限制影响......
  • 最新Unity DOTS Instancing合批:如何针对单个渲染实体修改材质参数
    最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大规模战斗控制的时候,有10000+的小兵在战斗......
  • Unity GPU Instancing合批_如何基于单个的实体修改材质参数
    前言最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大规模战斗控制的时候,有10000+的小兵......
  • DOTS Instancing合批:如何针对单个渲染实体修改材质参数
    DOTSInstancing合批:如何针对单个渲染实体修改材质参数   最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去......
  • 最新Unity DOTS Instancing合批:如何针对单个渲染实体修改材质参数
    最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画,我们是将角色的所有动画数据Baker到一个纹理里面,通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点,材质参数AnimTime记录当前过去的动画时间。但是在做大规模战斗控制的时候,有10000+的小兵在战斗......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(一
    前言为啥要合批减少DC什么是自定义顶点参数通过几何体实例化特性(GPUInstancing)可使GPU批量绘制模型相同且材质相同的渲染对象。如果我们想在不打破这一特性的情况下单独修改某个对象的显示效果,就需要通过自定义几何体实例化属性。参考文档UI(Sprite)怎么你了?按照文......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(二
    具体操作步骤接下来以一个制造旋转效果的shader为例子,提供了这些参数的设置:旋转速度float旋转中心位置vec2逆时针/顺时针bool扭曲度float并在使用的贴图一致的前提下并且参数不同的值都能够合批。最终项目可以从GITHUB获取。CCC版本:3.8.0深入了解可以阅读后续......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(四
    源码阅读部分顶点数量、布局相关设置针对UI所使用的Mesh的顶点设置:如simple模式使用1个矩形(2x2个顶点),sliced模式使用9个矩形(4x4个顶点)dataLength相当于顶点数量。vertexRow和vertexCol描述了网格形状。SetIndexBuffer则描述网格中所有“三角形”分别由哪3......
  • CocosCreator3.x 应用在UI(Sprite) 上的 shader(.effect) 的合批,通过自定义顶点参数(三
    参考资料资料1来源:https://forum.cocos.org/t/topic/148747/28用户:homym(tkhoi01281)3.x版自定参数我是利用createMesh方法去生成ui,因为createMesh就有自定义顶点参数的方法这个改动其实是可以弄一个新sprite来继承老spirte,然后把引擎里的simple.ts,splice.ts等assemb......
  • Unity性能优化-动态合批
    动态合批也叫动态批处理,是Unity的一种优化技术。对移动的物体使用动态合批后,则Unity不会一个个绘制它们,而是把它们合并为一个批次(Batch),再由CPU把它们一次性提交给GPU进行处理,这样可以减少DrawCall带来的性能消耗,从而提高性能。官方文档:https://docs.unity3d.com/cn/current/Man......