[发明专利]一种纹理图集调度方法有效
申请号: | 201811105549.1 | 申请日: | 2018-09-21 |
公开(公告)号: | CN109448094B | 公开(公告)日: | 2022-07-15 |
发明(设计)人: | 郭嵩;吕文伟 | 申请(专利权)人: | 苏州蜗牛数字科技股份有限公司 |
主分类号: | G06T15/04 | 分类号: | G06T15/04;G06T15/00 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
地址: | 215000 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 纹理 调度 方法 | ||
一种纹理图集调度方法,包括以下步骤,确定用于纹理流式调度的基本信息,以及数据结构;创建实际的物理纹理,保存加载到内存中的纹理;创建间接索引缓冲区,保存Mipmap在物理纹理上的位置信息;根据纹理的细节层级信息,进行纹理的流入和流出,并依据矩形纹理打包算法,在物理纹理上寻找当前流入的纹理的位置信息;对纹理进行渲染,并且重新定位UV坐标,进行采样计算。本发明的纹理图集调度方法,基于矩形纹理打包算法,通过进行贴图的合并,有效减少DrawCall的数量,使得渲染效率得以提升;通过对纹理的调度,能够减少内存的使用量,渐进式的加载必须的纹理资源,减少内存压力;能够有效减少渲染过程中图形处理单元的压力。
技术领域
本发明涉及三维虚拟世界游戏技术领域,特别是涉及一种三维虚拟世界游戏中纹理图集调度方法。
背景技术
目前,主流游戏一般都需要庞大、精致的游戏世界。对于构建庞大、精致的游戏世界,需要提供非常丰富的游戏资源,这些资源包括贴图,动画模型以及音效等等。对游戏画面品质需求的不断提升导致了游戏资源的持续增长,对我们的应用来说,资源都是要加载到内存中才能够使用,而对于内存目前还是一种比较稀缺的资源,我们不能无限制的把资源都加载到内存中。特别对于游戏行业,贴图量往往在资源中占有很大的比重,如果能够减少贴图在内存中的占用量,将会大大减轻内存的负担。贴图的流式加载提供了一个非常好的解决方案,当前要使用的纹理流式加载到内存中,对于不再使用的纹理就可以从内存中流出,保证了内存中都是所需的纹理资源。另一方面,我们知道,对于应用程序的渲染,DrawCall的数量会大大影响游戏的性能,如何能够尽可能减少DrawCall的数量,也是一个很大的技术挑战。
在应用程序中,减少DrawCall数量的一个基本方法就是减少材质的数量,对于不同的贴图,如果这些贴图都是独立的,就很难做到减少材质的目的,一种常用的做法是合并贴图,但这种做法将直接导致很难进行纹理的流式加载,在DrawCall数量和内存占用量上很难找到兼顾两者的方法,因此亟需出现一种纹理图集调度方法,能够有效的解决这些问题。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种纹理图集调度方法,提升渲染效率、减少内存的使用量,以及减轻CPU的压力。
为实现上述目的,本发明提供的纹理图集调度方法,包括以下步骤,
确定用于纹理流式调度的基本信息,以及数据结构;
创建实际的物理纹理,保存加载到内存中的纹理;
创建间接索引缓冲区,保存Mipmap在物理纹理上的位置信息;
根据纹理的细节层级信息,进行纹理的流入和流出,并依据矩形纹理打包算法,在物理纹理上寻找当前流入的纹理的位置信息;
对纹理进行渲染,并且重新定位UV坐标,进行采样计算。
进一步地,所述确定用于纹理流式调度的基本信息,以及数据结构的步骤,进一步包括,
确定贴图纹理Mipmap的等级数量;
定义保留的细节层级的级数和对应的Mipmap;
确定需要进行流式调度的细节层级的Mipmap。
进一步地,所述创建实际的物理纹理,用于保存加载到内存中的纹理的步骤,进一步包括,
创建实际的物理纹理,将保留的Mipmap加载到创建的实际物理贴图上;
使用矩形纹理打包算法,寻找Mipmap存放的位置;
记录Mipmap在实际的物理纹理中的偏移信息。
进一步地,所述创建间接索引缓冲区,保存Mipmap在物理纹理上的位置信息的步骤,进一步包括,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州蜗牛数字科技股份有限公司,未经苏州蜗牛数字科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811105549.1/2.html,转载请声明来源钻瓜专利网。