System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 纹理渲染方法、装置及电子设备制造方法及图纸_技高网

纹理渲染方法、装置及电子设备制造方法及图纸

技术编号:41190367 阅读:4 留言:0更新日期:2024-05-07 22:21
本公开提供了一种纹理渲染方法、装置及电子设备,其中方法包括:在WebGL渲染引擎中将图片的像素数据归一化,得到纹理数据,并将纹理数据封装为纹理对象;通过不同纹理对象共享的纹理缓存,得到完整纹理数据,将完整纹理数据存储至基础纹理对象中,并将基础纹理对象上传至GPU的纹理缓冲区,纹理缓存和完整纹理数据一一对应;对基础纹理对象存储的完整纹理数据进行采样,得到完整纹理数据的纹理片段,并利用精灵对象图层承载完整纹理数据的纹理片段或纹理数据;对精灵对象图层进行变换,将精灵对象图层承载的纹理片段或纹理数据渲染至视窗。本公开GPU的纹理缓冲区只存储共享的基础纹理对象,可以降低纹理缓冲区的空间占用率,避免冗余。

【技术实现步骤摘要】

本公开涉及图片渲染,具体涉及一种纹理渲染方法、装置及电子设备


技术介绍

1、目前,web应用中的页面可以通过webgl渲染引擎进行渲染,在webgl渲染引擎中渲染图片时,图片作为纹理上传至gpu的纹理缓冲区进行渲染,每一张图片都具有一个纹理缓冲区空间;然而,当gpu中渲染大量重复的图片时,会导致纹理缓冲区内存溢出。

2、针对相关技术中当gpu渲染大量重复的图片时,导致纹理缓冲区内存溢出的问题,目前尚未提出有效的技术解决方案。


技术实现思路

1、本公开的主要目的在于提供一种纹理渲染方法、装置及电子设备,以解决相关技术中当gpu渲染大量重复的图片时,导致纹理缓冲区内存溢出的问题。

2、为了实现上述目的,本公开的第一方面提供了一种纹理渲染方法,包括:

3、在webgl渲染引擎中,将图片的像素数据归一化,得到纹理数据,并将所述纹理数据封装为纹理对象;

4、通过不同纹理对象共享的纹理缓存,得到完整纹理数据,将所述完整纹理数据存储至基础纹理对象中,并将所述基础纹理对象上传至gpu的纹理缓冲区,其中,所述纹理缓存和所述完整纹理数据一一对应;

5、对所述基础纹理对象存储的完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,并利用精灵对象图层承载所述完整纹理数据的纹理片段或所述纹理数据,其中,所述精灵对象图层独占一个图层标架;以及

6、对所述精灵对象图层进行变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗。

7、可选地,在得到纹理数据之后,所述方法还包括:设置所述纹理数据的坐标区间为0到1;

8、在得到完整纹理数据之后,所述方法还包括:设置所述完整纹理数据的坐标区间为0到1。

9、可选地,在将所述完整纹理数据的纹理片段或所述纹理数据渲染至视窗之后,所述方法还包括:

10、删除所述图片,并销毁所述图片对应的纹理数据和纹理对象;

11、判断所述纹理对象对应的完整纹理数据和基础纹理对象是否与其他纹理对象共享;

12、如果不与其他纹理对象共享,则销毁所述纹理对象对应的完整纹理数据和基础纹理对象,释放gpu纹理缓冲区中所述基础纹理对象占据的内存空间。

13、可选地,所述对所述基础纹理对象存储的完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,包括:

14、设置所述完整纹理数据的坐标区间为0到1;

15、在所述完整纹理数据的坐标区间中进行插值采样,调整所述完整纹理数据的采样空间,得到所述完整纹理数据的纹理片段,实现对所述完整纹理数据的裁剪。

16、可选地,所述对所述精灵对象图层进行变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗,包括:

17、对所述精灵对象图层和所述精灵对象图层的祖先图层进行级联变换,得到所述精灵对象图层的视窗投影变换矩阵;

18、基于所述视窗投影变换矩阵对所述精灵对象图层的图层标架进行线性变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗。

19、进一步地,所述对所述精灵对象图层和所述精灵对象图层的祖先图层进行级联变换,得到所述精灵对象图层的视窗投影变换矩阵,包括:

20、将所述精灵对象图层和所述精灵对象图层的所有祖先图层级联相乘,得到所述精灵对象图层的视窗投影变换矩阵。

21、进一步地,所述基于所述视窗投影变换矩阵对所述精灵对象图层的图层标架进行线性变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗,包括:

22、设置所述纹理片段或纹理数据为精灵;

23、按照下述公式,将精灵对象图层中的精灵α变换为视窗中的精灵β:

24、β=tα

25、其中,t为视窗投影变换矩阵,所述视窗投影变换矩阵含有变换信息,所述变换信息包括平移变换信息、旋转变换信息和缩放变换信息中的任意一种或多种。

26、本公开的第二方面提供了一种纹理渲染装置,包括:

27、封装单元,用于在webgl渲染引擎中,将图片的像素数据归一化,得到纹理数据,并将所述纹理数据封装为纹理对象;

28、上传单元,用于通过不同纹理对象共享的纹理缓存,得到完整纹理数据,将所述完整纹理数据存储至基础纹理对象中,并将所述基础纹理对象上传至gpu的纹理缓冲区,其中,所述纹理缓存和所述完整纹理数据一一对应;

29、采样单元,用于对所述基础纹理对象存储的完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,并利用精灵对象图层承载所述完整纹理数据的纹理片段或所述纹理数据,其中,所述精灵对象图层独占一个图层标架;以及

30、变换单元,用于对所述精灵对象图层进行变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗。

31、本公开的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的纹理渲染方法。

32、本公开的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的纹理渲染方法。

33、在本公开实施例提供的纹理渲染方法,在webgl渲染引擎中,将图片的像素数据归一化,得到纹理数据,并将所述纹理数据封装为纹理对象;

34、通过不同纹理对象共享的纹理缓存,得到完整纹理数据,将所述完整纹理数据存储至基础纹理对象中,并将所述基础纹理对象上传至gpu的纹理缓冲区,其中,所述纹理缓存和所述完整纹理数据一一对应;不同纹理对象共享纹理缓存,gpu的纹理缓冲区只存储共享的基础纹理对象,不需要存储每个纹理对象,降低gpu纹理缓冲区的空间占用率,避免冗余,解决了相关技术中当gpu渲染大量重复的图片时,导致纹理缓冲区内存溢出的问题;

35、对所述基础纹理对象存储的完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,并利用精灵对象图层承载所述完整纹理数据的纹理片段或所述纹理数据,其中,所述精灵对象图层独占一个图层标架;通过对完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,实现对完整纹理数据所对应图片的裁剪;

36、对所述精灵对象图层进行变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗。将精灵对象图层中的纹理片段或纹理数据投影至视窗,实现对纹理片段或纹理数据的渲染。

本文档来自技高网
...

【技术保护点】

1.一种纹理渲染方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在得到纹理数据之后,所述方法还包括:设置所述纹理数据的坐标区间为0到1;

3.根据权利要求1所述的方法,其特征在于,在将所述完整纹理数据的纹理片段或所述纹理数据渲染至视窗之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述对所述基础纹理对象存储的完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,包括:

5.根据权利要求1所述的方法,其特征在于,所述对所述精灵对象图层进行变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗,包括:

6.根据权利要求5所述的方法,其特征在于,所述对所述精灵对象图层和所述精灵对象图层的祖先图层进行级联变换,得到所述精灵对象图层的视窗投影变换矩阵,包括:

7.根据权利要求5所述的方法,其特征在于,所述基于所述视窗投影变换矩阵对所述精灵对象图层的图层标架进行线性变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗,包括:

8.一种纹理渲染装置,其特征在于,包括:

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7任意一项所述的纹理渲染方法。

10.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1至7任意一项所述的纹理渲染方法。

...

【技术特征摘要】

1.一种纹理渲染方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在得到纹理数据之后,所述方法还包括:设置所述纹理数据的坐标区间为0到1;

3.根据权利要求1所述的方法,其特征在于,在将所述完整纹理数据的纹理片段或所述纹理数据渲染至视窗之后,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述对所述基础纹理对象存储的完整纹理数据进行采样,得到所述完整纹理数据的纹理片段,包括:

5.根据权利要求1所述的方法,其特征在于,所述对所述精灵对象图层进行变换,将所述精灵对象图层承载的纹理片段或纹理数据渲染至视窗,包括:

6.根据权利要求5所述的方法,其特征在于,所述对所述精灵对象图层和所述精灵对象图层的祖先图层进行级联变换,得到所述精灵对象...

【专利技术属性】
技术研发人员:董旭廖海南
申请(专利权)人:厦门稿定股份有限公司
类型:发明
国别省市:

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

1