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(原群已满员)

你可能感兴趣的:(rendering,editor,build)