System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种自动生成mipmap纹理贴图的方法及系统技术方案_技高网

一种自动生成mipmap纹理贴图的方法及系统技术方案

技术编号:40466874 阅读:15 留言:0更新日期:2024-02-22 23:21
本发明专利技术实施例涉及纹理渲染技术领域,具体公开了一种自动生成mipmap纹理贴图的方法及系统。本发明专利技术实施例通过在Goldfish层进行纹理指令拦截,更新纹理状态;拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理;在需要生成mipmap纹理时,计算mipmap层级,生成mipmap纹理,根据mipmap纹理进行描画渲染。能够根据纹理信息,生成不同层级的mipmap纹理,使得GPU在进行小画布渲染的时候就可以使用mipmap生成的数据,避免了GPU在渲染时源与目标大小不匹配所带来的格外运算,实现优化渲染指令,提升渲染效率和空间利用率,进而有效提高云手机的流畅度。

【技术实现步骤摘要】

本专利技术属于纹理渲染,尤其涉及一种自动生成mipmap纹理贴图的方法及系统


技术介绍

1、随着用户对于图像质量、游戏流畅度以及使用体验性要求的提高,厂商的显卡性能也是越来越高,针对于云计算方面的云手机和云桌面,对于虚拟gpu的需求也越来越明显。现有技术中,gpu虚拟化主要有pcie直通、sr-iov和api指令转发。其中,pcie直通由于只能1:1,而不支持1:n,所以基本不被采用;sr-iov成本高,所以采用的也较少;api指令转发,因为是通过纯软件实现,是目前云手机侧最合适的解决方案。

2、对于api指令转发的gpu虚拟化,在渲染中,纹理渲染最为重要与频繁,由于云手机的流畅度与真机暂时还存在一定的差距,所以对纹理渲染进行一定的指令优化,提高流畅度很有必要,但是现有技术缺乏有效的自动生成mipmap纹理贴图的方法,无法有效提高云手机的流畅度。


技术实现思路

1、本专利技术实施例的目的在于提供一种自动生成mipmap纹理贴图的方法及系统,旨在解决
技术介绍
中提出的问题。

2、为实现上述目的,本专利技术实施例提供如下技术方案:

3、一种自动生成mipmap纹理贴图的方法,所述方法具体包括以下步骤:

4、在goldfish层进行纹理指令拦截,更新纹理状态;

5、拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理;

6、在需要生成mipmap纹理时,计算mipmap层级,生成mipmap纹理,根据所述mipmap纹理进行描画渲染。

7、作为本专利技术实施例技术方案进一步的限定,所述在goldfish层进行纹理指令拦截,更新纹理状态具体包括以下步骤:

8、上层app渲染开始时,通过api指令转发,在goldfish层进行纹理指令拦截,记录texture信息;

9、根据所述texture信息,更新纹理状态。

10、作为本专利技术实施例技术方案进一步的限定,所述拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理具体包括以下步骤:

11、拦截描画指令;

12、根据所述描画指令,读取画布大小以及记录的纹理信息;

13、根据所述画布大小和所述纹理信息,判断是否需要生成mipmap纹理。

14、作为本专利技术实施例技术方案进一步的限定,所述根据所述画布大小和所述纹理信息,判断是否需要生成mipmap纹理中:

15、通过分析纹理的颜色格式、使用频率以及base纹理与画布大小的比,综合判断是否需要生成mipmap纹理。

16、作为本专利技术实施例技术方案进一步的限定,所述通过分析纹理的颜色格式、使用频率以及base纹理与画布大小的比,综合判断是否需要生成mipmap纹理具体包括以下步骤:

17、根据所述纹理信息,计算base纹理与渲染区域大小的比;

18、判断base纹理与渲染区域大小的比是否小于0.5;

19、在base纹理与渲染区域大小的比小于0.5时,根据所述纹理信息,判断纹理的颜色格式是否为单色;

20、在纹理的颜色格式为单色时,根据所述纹理信息,获取纹理的使用频率;

21、判断所述使用频率是否为高频率;

22、在所述使用频率为高频率时,判定需要生成mipmap;

23、在所述使用频率不为高频率,但是base纹理与渲染区域大小的比小于0.125时,判定需要生成mipmap。

24、作为本专利技术实施例技术方案进一步的限定,所述在需要生成mipmap纹理时,计算mipmap层级,生成mipmap纹理,根据所述mipmap纹理进行描画渲染中:

25、通过计算缩小比率、mipmap层级以及mipmap纹理的宽高,生成mipmap纹理,根据所述mipmap纹理进行描画渲染。

26、作为本专利技术实施例技术方案进一步的限定,所述通过计算缩小比率、mipmap层级以及mipmap纹理的宽高,生成mipmap纹理,根据所述mipmap纹理进行描画渲染具体包括以下步骤:

27、根据所述纹理信息,计算缩小比率;

28、基于所述缩小比率,计算mipmap层级;

29、判断所述mipmap层级的纹理是否已经生成;

30、在所述mipmap层级的纹理未生成时,根据所述mipmap层级,计算mipmap纹理的宽高;

31、根据mipmap纹理的宽高,生成mipmap纹理并保存;

32、根据所述mipmap纹理进行描画渲染。

33、作为本专利技术实施例技术方案进一步的限定,所述计算缩小比率的公式为:

34、d=sqrt(max((ux^2+vx^2),(uy^2+vy^2)));

35、其中,ux为渲染目标宽度在x轴上的投影大小,vx为渲染目标高度在x轴上的投影大小,uy为渲染目标宽度在y轴上的投影大小,vy为渲染目标高度在y轴上的投影大小;

36、所述计算mipmap层级的公式为:

37、level=floor(log2(d+0.5));

38、其中,floor为向下取整,即舍弃小数部分;

39、所述计算mipmap纹理的宽高的公式为:

40、newwidth=basewidth/level;

41、newheight=baseheight/level;

42、其中,basewidth为纹理贴图原始宽度,baseheight为纹理贴图原始高度。

43、一种自动生成mipmap纹理贴图的系统,所述系统包括纹理指令拦截模块、纹理生成判断模块和描画渲染处理模块,其中:

44、纹理指令拦截模块,用于在goldfish层进行纹理指令拦截,更新纹理状态;

45、纹理生成判断模块,用于拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理;

46、描画渲染处理模块,用于在需要生成mipmap纹理时,计算mipmap层级,生成mipmap纹理,根据所述mipmap纹理进行描画渲染。

47、作为本专利技术实施例技术方案进一步的限定,所述纹理生成判断模块具体包括:

48、描画指令拦截单元,用于拦截描画指令;

49、纹理信息读取单元,用于根据所述描画指令,读取画布大小以及记录的纹理信息;

50、生成mipmap纹理判断单元,用于根据所述画布大小和所述纹理信息,判断是否需要生成mipmap纹理。

51、与现有技术相比,本专利技术的有益效果是:

52、本专利技术实施例通过在goldfish层进行纹理指令拦截,更新纹理状态;拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理;在需要生成mipmap纹理时,计算mipmap层级,生成mipmap纹理,根据mipmap纹理进行描画渲染本文档来自技高网...

【技术保护点】

1.一种自动生成mipmap纹理贴图的方法,其特征在于,所述方法具体包括以下步骤:

2.根据权利要求1所述的自动生成mipmap纹理贴图的方法,其特征在于,所述在Goldfish层进行纹理指令拦截,更新纹理状态具体包括以下步骤:

3.根据权利要求1所述的自动生成mipmap纹理贴图的方法,其特征在于,所述拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理具体包括以下步骤:

4.根据权利要求3所述的自动生成mipmap纹理贴图的方法,其特征在于,所述根据所述画布大小和所述纹理信息,判断是否需要生成mipmap纹理中:

5.根据权利要求4所述的自动生成mipmap纹理贴图的方法,其特征在于,所述通过分析纹理的颜色格式、使用频率以及base纹理与画布大小的比,综合判断是否需要生成mipmap纹理具体包括以下步骤:

6.根据权利要求1所述的自动生成mipmap纹理贴图的方法,其特征在于,所述在需要生成mipmap纹理时,计算mipmap层级,生成mipmap纹理,根据所述mipmap纹理进行描画渲染中:

7.根据权利要求6所述的自动生成mipmap纹理贴图的方法,其特征在于,所述通过计算缩小比率、mipmap层级以及mipmap纹理的宽高,生成mipmap纹理,根据所述mipmap纹理进行描画渲染具体包括以下步骤:

8.根据权利要求7所述的自动生成mipmap纹理贴图的方法,其特征在于,所述计算缩小比率的公式为:

9.一种自动生成mipmap纹理贴图的系统,其特征在于,所述系统包括纹理指令拦截模块、纹理生成判断模块和描画渲染处理模块,其中:

10.根据权利要求9所述的自动生成mipmap纹理贴图的系统,其特征在于,所述纹理生成判断模块具体包括:

...

【技术特征摘要】

1.一种自动生成mipmap纹理贴图的方法,其特征在于,所述方法具体包括以下步骤:

2.根据权利要求1所述的自动生成mipmap纹理贴图的方法,其特征在于,所述在goldfish层进行纹理指令拦截,更新纹理状态具体包括以下步骤:

3.根据权利要求1所述的自动生成mipmap纹理贴图的方法,其特征在于,所述拦截描画指令,读取纹理信息,判断是否需要生成mipmap纹理具体包括以下步骤:

4.根据权利要求3所述的自动生成mipmap纹理贴图的方法,其特征在于,所述根据所述画布大小和所述纹理信息,判断是否需要生成mipmap纹理中:

5.根据权利要求4所述的自动生成mipmap纹理贴图的方法,其特征在于,所述通过分析纹理的颜色格式、使用频率以及base纹理与画布大小的比,综合判断是否需要生成mipmap纹理具体包括以下步骤:

6...

【专利技术属性】
技术研发人员:刘跃成毛伟平张云龙
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1