一种游戏渲染方法和装置的制造方法_4

文档序号:9375309阅读:来源:国知局
纹理加载到内存中,并通过纹理的渲染时间戳记录纹理最近一次被渲染的时间,周期性地对内存中达到释放时间的纹理进行释放,降低了游戏运行时所占用的内存,有利于解决低端机器的运行内存不足的问题,有助于提高游戏的装机量。
[0145]需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0146]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0147]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1.一种游戏渲染方法,其特征在于,包括: 在游戏资源加载时,记录当前游戏场景所用纹理的加载路径; 获取当前游戏场景中待渲染的网格; 检测所述待渲染的网格所用的纹理是否被加载到内存中; 当所述纹理未被加载时,根据所述纹理的加载路径,通过后台线程对所述纹理进行异步加载以将所述纹理加载到内存中,并跳过对所述纹理在当前渲染批次的渲染; 当所述纹理已被加载完成时,将所述纹理提交给渲染引擎进行渲染。2.如权利要求1所述游戏渲染方法,其特征在于,在所述将所述纹理提交给渲染引擎进行渲染之后,还包括: 更新所述纹理的渲染时间戳;其中,所述渲染时间戳用于记录所述纹理最近一次被渲染的时间。3.如权利要求2所述的游戏渲染方法,其特征在于,所述游戏渲染方法还包括: 每隔预设的时间间隔,遍历内存中的所有纹理,获取所述纹理的渲染时间戳; 根据所述纹理的渲染时间戳,判定所述纹理达到释放时间时,释放所述纹理对应的内存空间。4.如权利要求3所述的游戏渲染方法,其特征在于,所述每隔预设的时间间隔,遍历内存中的所有纹理,获取所述纹理的渲染时间戳,具体为: 每隔预设的时间间隔,逐一扫描内存中的纹理,判断所述纹理是否被加载完成; 当所述纹理未被加载完成时,跳过所述纹理; 当所述纹理已被加载完成时,获取所述纹理的渲染时间戳。5.如权利要求4所述的游戏渲染方法,其特征在于,所述根据所述纹理的渲染时间戳,判定所述纹理达到释放时间时,释放所述纹理对应的内存空间,具体为: 计算当前时刻和所述纹理的渲染时间戳的差值; 当所述差值小于释放时间时,不释放所述纹理对应的内存空间; 当所述差值大于释放时间时,释放所述纹理对应的内存空间。6.如权利要求5所述的游戏渲染方法,其特征在于,所述释放时间为T;T释放=Tmin; 其中,!~_为预先配置的允许纹理在内存中停留的至少时间,T _> Oo7.如权利要求5所述的游戏渲染方法,其特征在于,所述释放时间为T; T释放=Tmin+N加入内存*T延长; 其中,τ_为预先配置的允许纹理在内存中停留的至少时间为在当前时刻之前的一段时间T内所述纹理被加载到内存中的次数为所述纹理每加入一次内存而延长的释放时间;Tnin> O ;T > O ;T延长> O。8.如权利要求1至7任一项所述的游戏渲染方法,其特征在于,所述游戏渲染方法还包括: 当进行游戏场景切换后,在切换后的游戏场景的第一帧画面所用的纹理被加载完成之前显示黑屏; 或者, 当进行游戏场景切换后,在游戏场景切换后的一段时间Tiw内显示黑屏;其中,Tiw >O。9.一种游戏渲染装置,其特征在于,包括: 加载路径记录模块,用于在游戏资源加载时,记录当前游戏场景所用纹理的加载路径; 待渲染网格获取模块,用于获取当前游戏场景中待渲染的网格; 检测模块,用于检测所述待渲染的网格所用的纹理是否被加载到内存中; 加载模块,用于当所述纹理未被加载时,根据所述纹理的加载路径,通过后台线程对所述纹理进行异步加载以将所述纹理加载到内存中,并跳过对所述纹理在当前渲染批次的渲染;和, 渲染模块,用于当所述纹理已被加载完成时,将所述纹理提交给渲染引擎进行渲染。10.如权利要求9所述的游戏渲染装置,其特征在于,所述游戏渲染装置还包括: 时间戳更新模块,用于更新所述纹理的渲染时间戳;其中,所述渲染时间戳用于记录所述纹理最近一次被渲染的时间。11.如权利要求10所述的游戏渲染装置,其特征在于,所述游戏渲染装置还包括: 时间戳获取模块,用于每隔预设的时间间隔,遍历内存中的所有纹理,获取所述纹理的渲染时间戳;和, 内存释放模块,用于根据所述纹理的渲染时间戳,判定所述纹理达到释放时间时,释放所述纹理对应的内存空间。12.如权利要求11所述的游戏渲染装置,其特征在于,所述时间戳获取模块包括: 纹理扫描单元,用于每隔预设的时间间隔,逐一扫描内存中的纹理,判断所述纹理是否被加载完成; 第一空操作模块,用于当所述纹理未被加载完成时,跳过所述纹理;和, 时间戳获取单元,用于当所述纹理已被加载完成时,获取所述纹理的渲染时间戳。13.如权利要求12所述的游戏渲染装置,其特征在于,所述内存释放模块包括: 差值计算单元,用于计算当前时刻和所述纹理的渲染时间戳的差值; 第二空操作单元,用于当所述差值小于释放时间时,不释放所述纹理对应的内存空间;和, 内存释放单元,用于当所述差值大于释放时间时,释放所述纹理对应的内存空间。14.如权利要求13所述的游戏渲染装置,其特征在于,所述释放时间为T_ ; T释放=Tmin; 其中,!~_为预先配置的允许纹理在内存中停留的至少时间,T _> Oo15.如权利要求13所述的游戏渲染装置,其特征在于,所述释放时间为T_ ; τ释放=Tmin+N加入内存*T延长; 其中,τ_为预先配置的允许纹理在内存中停留的至少时间为在当前时刻之前的一段时间T内所述纹理被加载到内存中的次数为所述纹理每加入一次内存而延长的释放时间;Tnin> O ;T > O ;T延长> O。16.如权利要求9至15任一项所述的游戏渲染装置,其特征在于,所述游戏渲染装置还包括第一黑屏模块或者第二黑屏模块; 所述第一黑屏模块,用于当进行游戏场景切换后,在切换后的游戏场景的第一帧画面所用的纹理被加载完成之前显示黑屏; 所述第二黑屏模块,用于当进行游戏场景切换后,在游戏场景切换后的一段时间Tiw内显示黑屏;其中,T黑屏> O。
【专利摘要】本发明公开了一种游戏渲染方法和装置,所述游戏渲染方法包括:在游戏资源加载时,记录当前游戏场景所用纹理的加载路径;获取当前游戏场景中待渲染的网格;检测所述待渲染的网格所用的纹理是否被加载到内存中;当所述纹理未被加载时,根据所述纹理的加载路径,通过后台线程对所述纹理进行异步加载以将所述纹理加载到内存中,并跳过对所述纹理在当前渲染批次的渲染;当所述纹理已被加载完成时,将所述纹理提交给渲染引擎进行渲染。本发明通过对纹理的渲染过程进行控制,大大降低游戏运行时纹理所占用的内存空间。
【IPC分类】G06F17/30, G06F9/445
【公开号】CN105094920
【申请号】CN201510499531
【发明人】林春华
【申请人】网易(杭州)网络有限公司
【公开日】2015年11月25日
【申请日】2015年8月14日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1