System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及数据处理领域,尤其涉及一种点云渲染方法、装置、设备和存储介质。
技术介绍
1、激光点云是指由三维激光雷达设备采集得到的空间点的数据集合,可以用于模型重建、定位等。
2、相关技术中,在采集点云数据之后,可通过点云抽稀、均匀化等操作对点云进行处理,但是处理后的点云中,各点之间仍可能还存在遮挡关系,当点和点之间存在遮挡关系,并且点和点之间距离很近时,可能会出现深度冲突(z-fighting)现象。其中,z-fighting现象是指两个点之间的深度值非常接近,以至于无法区分两个点之间的遮挡关系,导致在渲染时产生闪烁和抖动现象,渲染效果较差。
技术实现思路
1、为了解决上述技术问题,本公开的实施例提供了一种点云渲染方法、装置、设备和存储介质。
2、根据本公开实施例的一个方面,提供了一种点云渲染方法,包括:
3、确定待处理点云的厚度阈值,所述厚度阈值用于指示使用所述待处理点云进行目标场景的渲染时参与透明度混合的点的深度范围;
4、执行所述目标场景的深度渲染操作,得到所述目标场景的原始深度值,所述深度渲染操作包括:设置深度测试的状态为开启状态,设置所述待处理点云的深度写入状态为开启状态,以及关闭透明度混合;
5、基于所述目标场景的原始深度值与对应的厚度阈值,得到所述目标场景的目标深度值,并将所述目标场景的目标深度值写入深度缓冲区;
6、基于所述目标场景的目标深度值,执行深度测试,得到通过深度测试的目标渲染点集,所述
7、对所述目标渲染点集按照透明度混合方式进行渲染。
8、在一些可选的实施方式中,所述确定待处理点云的厚度阈值,包括:
9、对所述待处理点云中的点进行平面拟合,得到对应的平面;
10、基于所述平面的厚度值,计算所述平面的平面率,所述平面率用于指示所述待处理点云中与所述平面的距离小于所述厚度值的点的数量占比;
11、迭代更新所述平面的厚度值,实现所述平面的平面率的计算,直至满足预设条件,得到所述待处理点云的厚度阈值。
12、在又一些可选的实施方式中,所述基于所述目标场景的目标深度值执行深度测试,包括:
13、设置目标场景的深度写入状态为关闭操作,并且设置深度测试的状态为开启状态;
14、从所述深度缓冲区中获取所述目标场景的目标深度值;
15、基于所获取的所述目标场景的目标深度值,对所述目标场景进行深度测试。
16、在又一些可选的实施方式中,所述对所述目标渲染点集按照透明度混合方式进行渲染之前,还包括:
17、计算所述至少一个目标渲染点中各目标渲染点的片元混合权重,所述片元混合权重指示各目标渲染点对应的各片元的混合权重;
18、将各目标渲染点对应的各片元的混合权重存储在透明度通道中。
19、在又一些可选的实施方式中,所述对所述目标渲染点集按照透明度混合方式进行渲染,包括:
20、根据各目标渲染点中各片元的三维坐标,确定各片元是否具有存在遮挡关系的其他片元;
21、响应于一个片元具有存在遮挡关系的其他片元,基于顺序无关的半透明渲染算法,对存在遮挡关系的各片元按照透明度混合的方式进行渲染;
22、响应于一个片元不具有存在遮挡关系的其他片元,对所述一个片元与背景片元进行透明度混合渲染。
23、在又一些可选的实施方式中,所述计算所述至少一个目标渲染点中各目标渲染点的片元混合权重,包括:
24、计算各片元与对应的目标渲染点的中心片元的距离;
25、对各片元对应的所述距离进行归一化处理,得到各片元的片元混合权重。
26、在一些可选的实施方式中,所述待处理点云通过以下方式得到:
27、对所述目标场景进行点云采集,得到原始点云;
28、对所述原始点云进行预处理,得到预处理点云;
29、将所述预处理点云分割为至少一个待处理点云。
30、根据本公开实施例的再一个方面,提供一种点云渲染装置,包括:
31、第一确定模块,用于确定待处理点云的厚度阈值,所述厚度阈值用于指示使用所述待处理点云进行目标场景的渲染时参与透明度混合的点的深度范围;
32、第一渲染模块,用于执行所述目标场景的深度渲染操作,得到所述目标场景的原始深度值,所述深度渲染操作包括:设置深度测试的状态为开启状态,设置所述待处理点云的深度写入状态为开启状态,以及关闭透明度混合;
33、第一计算模块,用于基于所述目标场景的原始深度值与对应的厚度阈值,得到所述目标场景的目标深度值,并将所述目标场景的目标深度值写入深度缓冲区;
34、深度测试模块,用于基于所述目标场景的目标深度值,执行深度测试,得到通过深度测试的目标渲染点集,所述目标渲染点集中包括所述待处理点云中的至少一个目标渲染点;
35、第二渲染模块,用于对所述目标渲染点集按照透明度混合方式进行渲染。
36、在一些可选的实施方式中,所述第一确定模块包括:
37、拟合子模块,用于对所述待处理点云中的点进行平面拟合,得到对应的平面;
38、计算子模块,用于基于所述平面的厚度值,计算所述平面的平面率,所述平面率用于指示所述待处理点云中与所述平面的距离小于所述厚度值的点的数量占比;
39、迭代子模块,用于迭代更新所述平面的厚度值,实现所述平面的平面率的计算,直至满足预设条件,得到所述待处理点云的厚度阈值。
40、在又一些可选的实施方式中,所述深度测试模块包括:
41、操作执行子模块,用于设置目标场景的深度写入状态为关闭操作,并且设置深度测试的状态为开启状态;
42、获取子模块,用于从所述深度缓冲区中获取所述目标场景的目标深度值;
43、测试子模块,用于基于所获取的所述目标场景的目标深度值,对所述目标场景进行深度测试。
44、在又一些可选的实施方式中,所述装置还包括:
45、第二计算模块,用于计算所述至少一个目标渲染点中各目标渲染点的片元混合权重,所述片元混合权重指示各目标渲染点对应的各片元的混合权重;
46、存储模块,用于将各目标渲染点对应的各片元的混合权重存储在透明度通道中。
47、在又一些可选的实施方式中,所述第二渲染模块包括:
48、确定子模块,用于根据各目标渲染点中各片元的三维坐标,确定各片元是否具有存在遮挡关系的其他片元;
49、第一渲染子模块,用于响应于一个片元具有存在遮挡关系的其他片元,基于顺序无关的半透明渲染算法,对存在遮挡关系的各片元按照透明度混合的方式进行渲染;
50、第二渲染子模块,用于响应于一个片元不具有存在遮挡关系的其他片元,对所述一个片元与背景片元进行透明度混本文档来自技高网...
【技术保护点】
1.一种点云渲染方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定待处理点云的厚度阈值,包括:
3.根据权利要求1-2任一所述的方法,其特征在于,所述基于所述目标场景的目标深度值,执行深度测试,包括:
4.根据权利要求1-3任一所述的方法,其特征在于,所述对所述目标渲染点集按照透明度混合方式进行渲染之前,还包括:
5.根据权利要求4所述的方法,其特征在于,所述对所述目标渲染点集按照透明度混合方式进行渲染,包括:
6.根据权利要求4所述的方法,其特征在于,所述计算所述至少一个目标渲染点中各目标渲染点的片元混合权重,包括:
7.根据权利要求1-6任一所述的方法,其特征在于,所述待处理点云通过以下方式得到:
8.一种点云渲染装置,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序指令,所述计算机程序指令被执行时,实现上述权利要求1-7任一所述的方法。
10.一种电子设备,其特征在于,所述电子设备包括:
1
...【技术特征摘要】
1.一种点云渲染方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定待处理点云的厚度阈值,包括:
3.根据权利要求1-2任一所述的方法,其特征在于,所述基于所述目标场景的目标深度值,执行深度测试,包括:
4.根据权利要求1-3任一所述的方法,其特征在于,所述对所述目标渲染点集按照透明度混合方式进行渲染之前,还包括:
5.根据权利要求4所述的方法,其特征在于,所述对所述目标渲染点集按照透明度混合方式进行渲染,包括:
6.根据权利要求4所述的方法,其特征在于,所述计算所述至少一...
【专利技术属性】
技术研发人员:李沛伦,
申请(专利权)人:如你所视北京科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。