一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种大规模Web3D实例化光照的轻量级在线渲染方法

2022-10-26 20:23:25 来源:中国专利 TAG:

一种大规模web3d实例化光照的轻量级在线渲染方法
技术领域
1.本发明涉及大规模web3d在线实时渲染领域,提供了一种大规模web3d实例化光照的轻量级在线渲染方法。


背景技术:

2.随着元宇宙概念的广受关注,其背后的关键技术5g和vr等的重要性日益凸显,web3d技术的热潮也逐渐扩大,对用户体验和沉浸感的高度要求也为web3d技术带来了许多挑战。这些挑战可以总结为以下三点:
3.第一,渲染效果差。复杂的光影效果需要大量的计算,由于web平台设备性能的限制,较为复杂的计算会导致渲染效率低下。为了对用户的快速响应,提高用户体验,web3d常常需要牺牲渲染质量来保证渲染时的性能。
4.第二,传输速度慢。由于web平台的特殊性,web3d场景数据需要实时加载和传输,网络传输速度的影响也为web3d场景的加载和渲染带来了延迟。
5.第三,渲染规模小。大规模3d场景的渲染需要大量计算,并且具有较大的数据量,受到web平台性能的限制和网络传输速度的影响,大规模web3d场景的渲染延迟大,渲染效率低。因此,当初许多web3d渲染技术都局限于小规模场景的渲染中。
6.这些挑战极大限制了web平台大规模3d场景中高品质光照效果的渲染。大规模3d场景(尤其是人造场景)中具有大量重复或相似的实例化对象,所以实例化渲染方法成为web3d引擎所采用的主要渲染技术,然而单纯的实例化渲染的光影效果很差,无法呈现处复杂光影效果。因此,为了解决这些痛点,研究web3d平台上的轻量级大规模实例化高品质关键技术有着重要的意义。


技术实现要素:

7.本发明提供了一种大规模web3d实例化高品质光照的轻量级在线渲染技术,旨在解决大规模多实例场景渲染的痛点,将云烘培与实例化渲染、相似图像压缩技术相结合,使得云烘培技术能够更加轻量高效地应用在大规模多实例场景的渲染中。
8.为实现上述目的,本发明提供了如下方案:
9.一种大规模web3d实例化高品质光照的轻量级在线渲染技术,该方法包括以下步骤:
10.s1,在云服务器端进行重量级的间接光照渲染,将渲染结果以光照贴图的形式存储,对光照贴图进行压缩和编码,根据客户端请求传输数据;
11.s2,在客户端接收来自云服务器端的数据,重建间接光照,对直接光照进行实时计算,混合两种光照结果得到全局光照渲染结果;
12.所述步骤s1中,在云服务器端进行重量级的间接光照渲染,将渲染结果以光照贴图的形式存储,对光照贴图进行压缩和编码,根据客户端请求传输数据,具体包括:
13.s1.1,多实例场景:在云端和客户端建立一个相同的多实例场景,该场景中的物体
和光源分为静态和动态类型;在运行时,静态的物体和光源不发生改变,动态的物体和光源会根据用户的编辑进行改动;静态的光源在云端中参与间接光照效果的计算,动态的光源在客户端中作为直接光照进行实时渲染,当用户在客户端中对物体和光照进行编辑时,云端中的场景会同步进行更新;
14.s1.2,云烘培:基于云烘焙系统对场景中静态物体的间接光照进行渲染,烘焙至光照贴图中;
15.s1.3,图像集划分:对多实例物体的光照贴图进行聚类处理,划分为多个图像集;
16.s1.4,计算平均值和差异值图像:对于每个图像集,计算该图像集的平均值图像和每个实例的差异值图像;
17.s1.5,差异值压缩:对每个实例的差异值贴图进行压缩,在该步骤根据需求可选择不同的压缩算法;
18.s1.6,数据缓存:将压缩后的数据选用合适的数据结构进行存放,收到客户端发出请求时从该数据结构中检索相应的数据,避免重复的计算工作。
19.优选地,所述步骤s2中,在客户端接收来自云服务器端的数据,重建间接光照,对直接光照进行实时计算,混合两种光照结果得到全局光照渲染结果,具体包括:
20.s2.1,实例化渲染:对场景中的多实例物体通过实例化的方式进行渲染,将聚类结果中同一个聚类的实例作为一个实例化网格,同一个实例化网格公用一张平均值贴图,每个实例有一份独立的差异值压缩数据;
21.s2.2,间接光照重建:对于每个着色点,根据所选用的压缩算法,通过该着色点的纹理坐标、位置和法线信息,重建得到光照贴图差异值,在平均值贴图中采样得到光照贴图平均值后,将差异值和平均值相加得到重建的间接光照结果;
22.s2.3,光照渲染:对每个着色点的直接光照进行实时计算,混合重建的间接光照结果,得到该着色点的全局光照结果,渲染到场景中;
23.s2.4,场景编辑:根据用户输入对场景进行编辑,将编辑结果实时反馈到客户端的场景中,并同步更新云端的场景;
24.s2.5,光源编辑:根据用户输入对场景中的光源进行编辑,根据编辑结果对直接光照进行更新;
25.s2.6,分布式缓存:当有多个客户端同时在线对同一个场景进行访问时,数据将分布式地存储在各个客户端的缓存中,每个客户端从本地的缓存中检索不到需要的数据才会向云端发出请求。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
27.图1为本发明的大规模web3d实例化高品质光照的轻量级在线渲染技术的技术路线图;
28.图2为本发明的云服务器端流程图;
29.图3为本发明的客户端流程图;
具体实施方式
30.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
31.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
32.如图2所示,本发明提供的云服务器端流程,包括以下步骤:
33.第一步,对场景中的多实例场景烘焙出光照贴图,对光照贴图进行图像集的划分。
34.第二步,对每个图像集进行相似图像压缩的处理,计算平均值图像和差异值图像。
35.第三步,对每张差异值图像进行压缩,对压缩数据进行编码。
36.第四步,将压缩和编码后的数据选用合适的数据结构进行存放,收到客户端发出请求时,从该数据结构中检索相应的数据,传输到客户端。
37.其中,第一步中涉及的关键技术具体包括:
38.光照贴图烘焙:在云服务器端对场景中的多实例场景烘焙出光照贴图,为了便于后续处理,其中多实例物体的每个实例单独使用一张光照贴图。
39.图像集划分:通过图像聚类算法将多实例物体的光照贴图划分为多个图像集,相似度高的光照贴图属于同一个图像集。其中相似度的计算和图像聚类可根据需求选用不同的算法,这里采用ssim(结构相似性指标)计算光照贴图之间的相似矩阵,聚类算法选用谱聚类算法。
40.第二步对每个图像集进行相似图像压缩的处理时,涉及的关键技术具体包括:
41.平均值图像:对于一个图像集,其平均值图像a根据各个图像像素值的算术平均值得到,即
[0042][0043]ai,j
为平均值图像在位置(i,j)上的像素值,n为图像集中的图像数量,为第k张图像在位置(i,j)上的像素值。
[0044]
差异值图像:对于每张光照贴图,其差异值图像r通过光照贴图与所在图像集的平均值图像之差得到,即
[0045]rk
=i
k-a
[0046]
其中,rk为第k张差异值图像,ik为第k张光照贴图。
[0047]
第三步,对每张差异值图像进行压缩,对压缩数据进行编码,涉及的关键技术具体包括:
[0048]
差异值图像压缩:将差异值图像的压缩和重建过程形式化定义为一个多元函数的拟合问题。给定一张大小为m
×
n图像r,该图像表示一个样本点的集合
[0049]
{(ui,vi,pi,ni,yi)|i=1,2,3,

,m
×
n}
[0050]
其中(ui,vi)为第i个着色点的纹理坐标,pi为第i个着色点在模型空间中的坐标,ni为第i个着色点在模型空间中的法线,yi为第i个着色点在贴图中采样的像素值。用该样本
点的集合,求一个函数f(u,v,p,n)为y(u,v,p,n)的近似。
[0051]
其中函数f可根据需求选用不同的函数,以2次多项式为例,令x=(x1,x2,x3,x4,x5,x6,x7,x8)=(u,v,p1,p2,p3,n1,n2,n3),则
[0052]
通过最小二乘法求解出系数ck,将系数作为差异值压缩数据存储。
[0053]
数据压缩和编码:在基于多元函数拟合的思想对光照贴图差异值图像压缩时,通过最小二乘法对多项式拟合模型进行训练,训练过程中多项式系数以32位浮点数的形式表示。训练结束后,我们将系数归一化到[0,1]范围内,截断为16位浮点数,将两个16位浮点数存储为一个16位浮点数,过程如下:
[0054]
x=floor(ci×
100) cj# (4.24)
[0055]
其中,ci和cj为两个16位浮点数,x为压缩后的16位浮点数,floor为向下取整函数。
[0056]
经过浮点数压缩后,数据量压缩为原来的1/4大小。将压缩数据以二进制的格式进行存储,并和平均值贴图进行lz77编码,打包为zip格式。
[0057]
如图3所示,本发明提供的客户端流程,包括以下步骤:
[0058]
第一步,客户端对来自云服务器端的数据流进行解码。
[0059]
第二步,将数据传入shader进行间接光照重建。
[0060]
第三步,在shader中进行直接光照计算。
[0061]
第四步,混合直接光照和间接光照,得到全局光照渲染结果。
[0062]
其中,第二步将数据传入shader进行间接光照重建,涉及的关键技术具体包括:
[0063]
数据表示:在第一步中对数据解码后,对于一个实例化网格体,具有一张平均值贴图和每个实例一份差异值压缩数据。将平均值贴图作为uniform变量,将差异值压缩数据作为attribute变量,传入shader中。
[0064]
数据解压:对于差异值压缩数据中每一个16位浮点数,通过以下公式解码为两个16位浮点数
[0065][0066]
其中,x为压缩数据,ci和cj为解码得到的16为浮点数,floor为向下取整函数,fract为取小数部分的函数。
[0067]
解码得到的每个16位浮点数为归一化的函数拟合模型系数,反归一化后得到重建的函数拟合模型系数。
[0068]
差异值重建:根据重建的函数拟合模型系数和对应的重建算法,可以得到一个拟合函数,输入该像素对应的纹理坐标、位置和法线,得到重建的光照贴图差异值。
[0069]
间接光照重建:将光照贴图平均值和差异值叠加后得到重建的间接光照。
[0070]
本技术中应用了典型案例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依
据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献