请教图集2048*2048问题

请教,微信小游戏中,如果我有1个20482048图集,比起4个10241024图集,哪个性能更好?

在某些低配机子上会有兼容问题吗?

很低的低配建议用1024*1024

很低的低配是指什么样的?

主流千元机没问题吧?

没有实测过,但是我斗胆分析一下。。
性能问题:
1.纹理的使用要从CPU加载(或者直接生成程序化纹理),然后通过buffer+memory mapping传到GPU端,图集节省的是CPU到GPU的带宽消耗(和tpc的合并小包思路类似)。。
2.至于纹理的buffer。既然已经打成了图集。那么我斗胆认为。把纹理数据mapping进buffer后,应该是只读的(buffer本质是一坨void*指向的数据,通过设置flag,可以决定可读还是可写,读哪里以及写哪里,怎么读,怎么写),既然只读。理论上一次性加载完。同一个场景内。一直不把device memory release(也就是一直不释放纹理。那么就只吃一次IO消耗)也应该没问题。(所以为何要引出1.中IO在pipeline的位置。因为我估计影响的只是第一次进场景的时候会卡顿。但是通常那个时候我们都会在loading界面跑进度条。不见得是什么性能问题)
3.图集是一个不可分割的单位。要一次性加载和卸载。如果显存吃紧。2048的图集不见得可以被交换出来。毕竟引用计数还在。尽量合并在同一个render pass的纹理到图集吧(请实测profile)。。
兼容问题:
1.我没有实测过。但是之前做微信小游戏。有遇到过大于1024贴图的。黑屏(纹理加载不出来)。

2赞

不存在还有不支持20482048图集的情况 从内存峰值上来看4个10241024要优与20482048 但在io上20482048优于4个1024*1024 ps:如有错误 欢迎指正

感谢回复

具体怎么解释

没有亲测 我是觉得一个2048 比4个1024 强,当然要看你怎么用这个资源 要是在一个界面都要用到肯定一个2048好,要是你根本用不全不如写个管理释放机制