Unity集成SVGA,支持GPU Instancing

Number of views 365

最近有个项目Web的3D部分基于CocosCreator3.x,原生部分的3D使用Unity,都需要集成矢量动画,首选SVGA。

image.png

de73538c47839b981576a0168add1380.gif

Unity官方已经有给出代码了,但是也会在部分svga下有错位的现象。Unity Svga代码,然后性能也不高,不支持合批。

要求如下:
1.所有SVGA动画能正常播放,不会出现错位等奇怪的输出
2.支持GPU Instancing

2025年1月15日前能够完成。

2 Answers

验收下吧。

第一个SVGA,天使:

下面是关闭 InstancingDraw Call 达到 78

image1739758098921.png

下面是开启了 Instancing,开启后 DrawCall降至 2

image1739758169854.png

第二个Svga,巫婆:

下面是关闭 InstancingDraw Call达到 15

image1739758241440.png

下面是开启了 Instancing,开启后 DrawCall降至 2

image1739758296398.png

编写了SVGAContent组件。

image1739758402331.png

Url:是远程Svga的路径地址,图中路径是找资产包子平台管理员帮忙上传了文件,给的路径。

Canvas:2D Canvas对象

Is Batching:是否开启合批。

Render Camera:如果不为None, 渲染的画面会输出到RenderTexture中。

Is Reuse: 配合Render Camera对象使用, 如果为true, 则会重复利用RenderTexture

另外不保证没有bug,毕竟仓促完成,如果有bug,需要额外花费不少时间解决再聊维护方案吧。

我把完成的项目地址私密方案给你,创作不易,记得验收采纳下。