[发明专利]一种基于动态自适应解码的压缩纹理渲染优化方法在审
申请号: | 202310838469.1 | 申请日: | 2023-07-10 |
公开(公告)号: | CN116597062A | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 温研;袁利 | 申请(专利权)人: | 北京麟卓信息科技有限公司 |
主分类号: | G06T15/00 | 分类号: | G06T15/00;G06T1/20;G06T1/60;G06T9/00;G06T15/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100085 北京市海淀区西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 自适应 解码 压缩 纹理 渲染 优化 方法 | ||
本发明公开了一种基于动态自适应解码的压缩纹理渲染优化方法,通过在应用首次解码和渲染压缩纹理时不执行标准的解码操作而是在渲染时执行解码和渲染操作,并记录压缩纹理历史信息,当再次运行时加载压缩纹理历史信息确定待渲染的压缩纹理队列,创建线程加载压缩纹理队列中的压缩纹理执行解码,再完成解码后压缩纹理的渲染,实现了运行时动态按需解码压缩纹理,显著减少了处理压缩纹理导致的应用卡顿、延迟现象,并有效降低了内存或显存的占用。
技术领域
本发明属于计算机应用开发技术领域,具体涉及一种基于动态自适应解码的压缩纹理渲染优化方法。
背景技术
许多大型的移动端3D应用通常会大量使用各种格式的压缩纹理,一是为了减少应用自身的大小,二是为了减少运行时使用纹理所占用的内存或显存大小。一般情况下移动端3D应用,尤其是游戏应用,通常会采用分阶段批量加载压缩纹理的方式解码纹理,例如当游戏场景切换时应用会将新场景中可能用到的压缩纹理一次性加载并解码,然而此时如果压缩纹理较多就会导致出现应用卡顿的情况,并且这一过程将占用较多的内存或显存。此外,较大纹理通常会包含若干较小纹理,较大纹理通常为纹理图集,纹理图集为其中纹理的父纹理,纹理图集中的纹理为纹理图集的子纹理,尽管压缩纹理具有可分块解码的特点,但是实际使用时为了解码几个子纹理,应用往往需要加载甚至是解码父纹理,因此会导致不必要的内存或显存消耗。
发明内容
有鉴于此,本发明提供了一种基于动态自适应解码的压缩纹理渲染优化方法,实现了应用运行时的动态按需解码压缩纹理完成渲染。
本发明提供的一种基于动态自适应解码的压缩纹理渲染优化方法,包括以下步骤:
步骤1、应用被加载时查找其对应的压缩纹理历史信息,若存在,则依据解码时间戳将压缩纹理历史信息按照设定的第一时间间隔分组为多个批量解码阶段,执行步骤2;否则执行步骤6;所述压缩纹理历史信息包括纹理ID、纹理大小、解码时间戳、渲染时间戳及偏移坐标,当纹理为子纹理时偏移坐标为该子纹理在其父纹理中的偏移坐标,当纹理不是子纹理时偏移坐标为空;
步骤2、应用解码压缩纹理时,以当前压缩纹理的纹理ID为第一纹理ID获取其所在的批量解码阶段作为当前批量解码阶段,若当前压缩纹理为当前批量解码阶段中的第一个纹理则执行步骤3;否则跳过当前压缩纹理标准解码操作中的后续流程,执行步骤7;
步骤3、遍历当前批量解码阶段中的纹理ID及解码时间戳,将当前批量解码阶段的最后一个纹理的解码时间戳记为解码终点时间戳;以解码终点时间戳为基准渲染时间戳,在压缩纹理历史信息中获取渲染时间戳与基准渲染时间戳差值的绝对值小于第二时间间隔的压缩纹理,由这些压缩纹理形成第一待渲染纹理列表,若第一纹理ID对应的压缩纹理属于第一待渲染纹理列表则执行步骤4;否则跳过当前压缩纹理标准解码操作中的后续流程,执行步骤7;
步骤4、在压缩纹理历史信息中获取渲染时间戳处于当前批量解码阶段与下一个批量解码阶段之间的压缩纹理,由这些压缩纹理形成第二待渲染纹理列表;
步骤5、若采用CPU执行解码操作,则创建多个CPU线程按照渲染时间戳从先到后的顺序分别加载由第一待渲染纹理列表和第二待渲染纹理列表组成的压缩纹理队列中的压缩纹理并执行第一解码操作,执行步骤7;若采用GPU执行解码操作,则创建OpenGL线程或DirectX线程按照渲染时间戳从先到后的顺序分别加载由第一待渲染纹理列表和第二待渲染纹理列表组成的压缩纹理队列中的压缩纹理并执行第一解码操作,执行步骤7;
步骤6、应用解码压缩纹理时记录当前压缩纹理的纹理ID、纹理大小及解码时间戳,跳过当前压缩纹理标准解码操作中的后续流程,执行步骤7;
步骤7、应用渲染或处理压缩纹理时,当前压缩纹理为子纹理则记录当前压缩纹理的纹理ID、渲染时间戳及偏移坐标,若当前压缩纹理未被解码则根据纹理ID加载压缩纹理并执行标准解码操作执行步骤8;否则执行步骤8;当前压缩纹理为父纹理则记录当前压缩纹理的纹理ID及渲染时间戳,若当前压缩纹理未被解码则根据纹理ID加载压缩纹理并执行标准解码操作执行步骤8;否则执行步骤8;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京麟卓信息科技有限公司,未经北京麟卓信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310838469.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种桦木竹子餐具刻切设备
- 下一篇:一种航线规划方法、装置及存储介质