过滤模式为Nearest(None)时,不能动态合图?

  • Creator 版本: 3.8.2

过滤模式为Nearest(None)时,不能动态合图?
因为是像素风格的游戏,素材都需要用Nearest模式,但是drawcall非常高,请问有什么好的解决方案?
image
image

1赞

看了下源码,像素格式的确是不给动态合图的:
image
至于原因,大致应该是这样的,动态合图会动态地按渲染次序把散图合进图集。
这个时候问题来了,如果你有几张图用像素风,有几张不用,最后结果会怎么样?
由于合到大图了,只能用这个大图的过滤模式了,所以合图之后这些图需要同一个过滤模式。
然后由于大部分情况下,使用的都是非像素风的图,所以动态合图只把像素风的给排除了。
如果你想要合批,试试自己静态合图,先打好图集吧。

2赞

非常感谢!!

牢哥,如果我所有图片都是像素格式有什么办法动态合图吗?

可以使用多纹理合批,能保证原图釆样模式

d31635f0174e57cf

体验地址: 高性能多纹理合批

1赞

我把源码改成这样应该就可以了,但是打开浏览器还是原来那样

难道我改的源码路径不对?源码难道不是在这改的,第一次改 :upside_down_face:

你合图釆样模式设了没?

1赞

合图采样模式是呀?在哪设置的?大佬快讲

你回头看看,
创建合图地方应该有设,
我现在长途车,看不了源码

1赞

我在动态合图管理器的源码里,里面关于采样的也就sampler,所有的和sampler有关的都在这段代码里了,感觉就是重点就这里,另一个帖子说只要把这里的Filter.LINEAR改成Filter.NEAREST就可以了,但是我改了没用

这段代码下面就开始创建图集了

感觉我源码改错地方了,console.log里的代码怎么都不执行

进这个看看,texture的设置

1赞

捕获 这东西貌似只有宽高,还是说改了typescript代码之后要重新编译一下才行

再进一层,看看

1赞

我写在这里面和外面都写了console.log代码都没执行,不知道是不是这里改的代码没执行的缘故

texture出现了,你可以重设模式,再update

1赞

在哪重设?我没有找到任何模式和mode :upside_down_face:

我知道了一个reset format的,是这个吗?