LOL工程师:如何更好地控制皮肤的内存占用
视觉效果(VFX) 视觉效果对于我们的英雄和皮肤而言,是最占用空间的资源类型,它们需要使用纹理、模型、动画、音效,而且这些通常都要使用很多。元素使者拉克丝则把资源占用推向了新的层次,我们需要用到10倍于普通皮肤的视觉效果资源。 在VFX的众多组件当中,所有效果的纹理是内存占用最大的,所以我们首先解决的就是纹理。我们做了一个可以让美术师们打包纹理资源的技术,既让他们恰当地表达想法,同时还能把大小减掉三分之二。 和使用一个完整纹理文件展示效果不同的是,一个纹理资源包可以让美术师们使用纹理的所有颜色通道创作一个灰度图像。 如果全部使用灰色,那么元素使者拉克丝就不会那么受欢迎,所以美术师们需要为她增加色彩,这时候我们开始使用调色板,调色板的纹理通常是可以让很多效果共享使用的,因此降低了特定色彩的使用空间。 VFX美术师们使用这种技术的优势而大大降低了元素使者拉克丝效果的内存占用。 在纹理经过了优化之后,我们离30MB的内存使用就非常接近了。更好的是,这种技术还可以给未来的皮肤解决不少空间。 仍不算目标完成 我们的确为此感到高兴,但当看到内存使用报告的时候,元素使者拉克丝的占用空间仍然超出了20%,这时候离登录公测服还有一周时间,所以我们必须尽早找到并解决问题。 在快速浏览内存报告工具的时候我们发现,有超过10MB的内存被分配到了未经计算的纹理上,这是导致我们VFX系统内存问题的一个重要原因。 我们的效果系统可以被描述为‘一个每小时200英里的固定功能牵引器’,换句话说,每个发射器(emitter)都可以所所有的效果,也就是说所有发射器都使用了全部效果才用得到的内存占用。此前,我们打造了一个粒子系统满足当时的需求,当时并不用计算内存成本,因为普通皮肤占用空间并不大,根本不会超出预算空间。可是元素使者拉克丝要加载3000多个发射器,因此内存占用很快就超标了。 (编辑:顺游网_765游戏网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |