spine合批问题

uwatechnologies uwatechnologies     2023-04-09     785

关键词:

1)Spine合批问题
2)使用HDR模式渲染RenderTexture产生的问题
3)Inspector的图片预览窗口异常
4)关于Unity 2019打包疑问

 


Rendering

Q:这里用Unity导入了一个Spine文件,该Spine有两张贴图,在Unity中也生成了两个对应的材质。现在有个问题是这个Spine的DrawCall很高,检查后发现是这两个材质在一直切换,也无法合批。请问这种Spine有什么办法合批来减少DrawCall吗?

Spine的版本是3.6,Unity的版本是2017.4,如下图所示,该Spine的DrawCall是55。

技术图片

 

技术图片

 

A:请参考官方说明
如果可以合并图集,还是用一个图集比较好,我们现在也是这样用的。但是如果导出的图集利用率不高或者实在太大,则考虑使用PropertyBlock。毕竟要增加一些代码控制。

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


RenderTexture

Q:使用RenderTexture渲染模型(带特效)到UI上的时候,如果Camera开了HDR,在HDR Mode的格式为FP16时,没有出现问题,Alpha通道是有值的,但在使用R11G11B10格式时(Unity在中低端机上的推荐),Alpha通道就全是1,这样就无法知道哪块是透明的。现在项目只能在手机上判断如果当前Camera.HDRMode是R11G11B10格式时,关闭这种Camera的HDR,但是特效跟模型都会差很多,想问一下大家有没有遇到过这个问题?

PS:场景上的Camera使用哪种HDR Mode关系并不大,只是效果的区别而已,但是在UI上是直接没有透明通道。

另外我在安卓机上直接用FP16也无法正常渲染透明通道,iOS上确是正常的。所以安卓上是不支持FP16吗?

A1:FP16模式是ARGBHalf,每个通道16bit,带Alpha通道。R11G11B10模式就没有Alpha通道,一个像素32bit,R11bit,G11bit,B10bit。
感谢黄程@UWA问答社区提供了回答

A2:我在小米9和OPPO K1上均测试过,FP16模式的HDR是可以渲染出Alpha通道的。

技术图片

上面的截图是一个简单的测试场景,渲染RenderTexture的相机背景使用SolidColor,普通相机背景是天空盒,场景中有一个透明的Sphere,球背后有一个Cube。
技术图片
RenderTexture相机显示透明通道的渲染效果

渲染RenderTexture的相机将Sphere和Cube渲染到1024x1024的ARGB32格式的RenderTexture中,生成的渲染的Temp RenderTexture(FP16格式)和我创建的New RenderTexture(R8G8B8A8格式)都保留了透明通道。

技术图片
单独的透明通道图

然后再将这个New RenderTexture(R8G8B8A8格式)作为RawImage的Texture,可以看到是可以透过这个RawImage看到另外一个相机的天空盒背景的。

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


Editor

Q:如图所示,想知道右上角那部分是怎么出现的?我看不到开发中的那个工程,但是新建一个项目图片是能看到的。

技术图片

 

技术图片

 

A:我曾经遇到过一个类似的问题,是由于Substance的插件放错了目录造成预览窗口很多控件无法显示。可以考虑查看是否有什么插件造成影响,或者是meta文件有什么问题,造成保存的各种属性读取错误。

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


Build

Q:下图一张是Unity 2018的Build Setting,一张是2019.3.0f6的。想请问一下Unity 2019打包中的Gradle设置为什么不见了?

技术图片

 

技术图片

 

A:2019.3全部使用Gradle打包。点击Build直接导出APK,勾选“Export Project”则能够导出使用Gradle的Android Studio工程。

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


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方技术博客:blog.uwa4d.com
官方问答社区:answer.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:793972859(原群已满员)

spine的纹理导出问题

...,集合到unity后,发现用Spine的默认材质Spine/Skeleton有毛边问题。对比demo的图片后发现demo的图片(都是png格式)没有白色块,而自己的图片有。原因是Spine工具导出png图片的时候没有选择premultipliedalpha选项(Export->JSON->CreateAlt... 查看详情

ugui合批drawcall高的原因

各个UI界面Batches高的原因通用原因1.UI 重叠 打断合批 增加一倍的drawcall 特别是列表里面的重叠同样材质球的 字体尽量放在一起 有便于合批同样图集的图片 尽量放在一起 以防打断合批https://zhuanlan.zhihu.com/p/431118062.空图片 ... 查看详情

unity中的静态合批动态合批gpuinstance以及srpbatching(代码片段)

文章目录Unity中的静态合批、动态合批、GPUInstance以及SRPBatching四种合批简介GPUinstancingstaticBatchingDynamicbatchingSRPBatcher图集的作用不同合批的优先级UGUI中的mask组件,会增加drawcall分析:Unity中的静态合批、动态合批、GPUInstanc... 查看详情

合批只是对cpu的优化,与gpu没有任何关系

如题。今天细想了下合批这个东西。合批是节省了CPU的相关准备工作的工作量。合批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下一个个孤立的像素,各像素间没有任何关系了。像素送... 查看详情

ugui合批规则图解(代码片段)

合批机制工具Profiler(command+7)FrameDebug原理图解排序图解注一实例图解不打包图集使用图集一些注意事项工具Profiler(command+7)这个是我认为最好用的工具了,哪里不会点哪里,预览明明白白FrameDebugFrameDebug也能看到诸如... 查看详情

ugui合批规则图解(代码片段)

合批机制工具Profiler(command+7)FrameDebug原理图解排序图解注一实例图解不打包图集使用图集一些注意事项工具Profiler(command+7)这个是我认为最好用的工具了,哪里不会点哪里,预览明明白白FrameDebugFrameDebug也能看到诸如... 查看详情

将 Spine 与主宰相结合

...:IntegrateSpinewithjuggernaut【发布时间】:2012-01-2003:24:26【问题描述】:我正在尝试将Spine与Juggernaut集成。首先,我尝试克隆fowa分支(https://github.com/maccman/spine.rails3/tree/fowa),但我无法克隆该分支,所以我自己在maccman/spine.rails3之... 查看详情

如何在 Phaser 3, Spine 中获取边界框的大小?

...sizeofboundingboxinPhaser3,Spine?【发布时间】:2022-01-2312:51:37【问题描述】:如果我写sprite.drawDebug=true,它将显示边界框。Spine2D中的边界框【问题讨论】:请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写... 查看详情

ugui合批规则图解(代码片段)

合批机制工具Profiler(command+7)FrameDebug原理图解排序图解注一实例图解不打包图集使用图集一些注意事项工具Profiler(command+7)这个是我认为最好用的工具了,哪里不会点哪里,预览明明白白FrameDebugFrameDebug也能看到诸如... 查看详情

ue5使用spine插件(代码片段)

...使用,但是安装插件的版本需要和spine版本对应存在问题:spine3.8.75版本(网上流通的破解版本),导出的文件在UE中不可用,会提示导入文件版本的不符的错误定义Spine是一款针对游戏开发的2D骨骼动画编... 查看详情

ue5使用spine插件(代码片段)

...使用,但是安装插件的版本需要和spine版本对应存在问题:spine3.8.75版本(网上流通的破解版本),导出的文件在UE中不可用,会提示导入文件版本的不符的错误定义Spine是一款针对游戏开发的2D骨骼动画编... 查看详情

ue5使用spine插件(代码片段)

...使用,但是安装插件的版本需要和spine版本对应存在问题:spine3.8.75版本(网上流通的破解版本),导出的文件在UE中不可用,会提示导入文件版本的不符的错误定义Spine是一款针对游戏开发的2D骨骼动画编... 查看详情

如何将 Spine 动画添加到 Phaser 游戏?

...wtoaddSpineanimationtoPhasergame?【发布时间】:2015-01-2503:00:47【问题描述】:我是Phaser和整个javascript游戏的新手,我正在尝试将Spine动画添加到Phaser。有没有办法做到这一点?我还尝试使用Pixi.js播放我的动画并且效果很好。另外我知... 查看详情

spine学习二-播放spine动画(代码片段)

要想播放一个Spine动画,必须要在一个物体上绑定一个Spine播放的组件,这里暂时使用SkeletonAnimation组件。然后就是编写动画的控制脚本。这里提一个特性:[SpineAnimation]:这个特性可以获取到SkeletonAnimation组件中绑定的Spine资源的... 查看详情

spine学习五-spine动画融合(代码片段)

...新版动画系统已经能够很方便的进行动画融合,那么使用spine的动画状态机的情况下,如何来进行动画融合呢?官方有两种方案,一种是使用混合动作实现,另一种是使用spine的动画状态机实现,这里讲解一下状态机的实现:1publ... 查看详情

cacti优化之spine轮询器

...导致部分监控项目不出图或图形断断续续。为了解决效率问题,Cacti官方也推出spine,采用多线程的方式高效的轮询。1、解决依赖关系##依赖于mysqlmysql-develnet-snmp-developenssl-devel##我们在安装cacti的 查看详情

spine应用--使用spine动画制作动作游戏

在前面的文章中,已经陆陆续续的讲解了一些使用Spine动画的细节,有了这些细节,我们已经满足了在unity中使用Spine动画制作动作游戏的技术基础。那么,要使用Spine动画在unity中制作一款动作游戏,究竟还有哪些是需要注意的... 查看详情

数据中心网络架构—spine-leaf(叶脊)二层网络架构

目录文章目录目录Spine-Leaf(叶脊)二层网络架构Spine-Leaf的网络拓扑Spine-Leaf的特性Spine-Leaf的优势Spine-Leaf的缺陷Spine-Leaf与光模块Spine-Leaf(叶脊)二层网络架构Spine-Leaf二层网络架构,也称为:分布式核心网络,与胖树架构一样同... 查看详情