Spine合批问题
Posted uwatechnologies
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spine合批问题相关的知识,希望对你有一定的参考价值。
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合批问题的主要内容,如果未能解决你的问题,请参考以下文章