模型渲染中的碎片隐藏方法和装置、存储介质转让专利

申请号 : CN202310403433.0

文献号 : CN116433869B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢独放李伟胡洋朱毅

申请人 : 如你所视(北京)科技有限公司

摘要 :

本公开实施例公开了一种模型渲染中的碎片隐藏方法和装置、存储介质,其中,方法包括:对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;根据目标观测点确定所述网络模型中至少一个待隐藏平面,以及至少一个碎片;将至少一个碎片中的每个碎片对应的法向量替换为对应预设朝向的虚拟法向量;基于虚拟法向量,在模型渲染时将网格模型中的至少一个待隐藏平面和至少一个碎片设置为不可见,得到对应目标观测点的渲染后的网格模型;本公开实施例实现在模型渲染时,将网格模型中的碎片和至少一个待隐藏平面一起隐藏,使渲染得到的网格模型展示更加整洁、美观,且无碎片遮挡。

权利要求 :

1.一种模型渲染中的碎片隐藏方法,其特征在于,包括:对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;

根据目标观测点确定所述网格模型中至少一个待隐藏平面,以及至少一个碎片;其中,所述目标观测点位于所述网格模型之外,表示用于对所述网格模型进行查看的位置;每个所述碎片包括至少一个三角面片;

将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量;其中,所述预设朝向根据所述目标观测点确定;

基于所述虚拟法向量,在模型渲染时将所述网格模型中的至少一个所述待隐藏平面和至少一个所述碎片设置为不可见,得到对应所述目标观测点的渲染后的网格模型。

2.根据权利要求1所述的方法,其特征在于,其中,所述网格模型包括天花板平面和多个墙面;

所述根据目标观测点确定所述网格模型中至少一个待隐藏平面,以及至少一个碎片,包括:确定所述目标观测点相对于所述网格模型对应的局部坐标系的目标方向;

基于所述目标方向确定所述天花板平面和/或至少一个目标墙面为所述至少一个待隐藏平面;

基于所述天花板平面确定对应的至少一个天花板碎片,和/或,基于至少一个所述目标墙面确定对应的至少一个墙面碎片。

3.根据权利要求2所述的方法,其特征在于,所述基于所述天花板平面确定对应的至少一个天花板碎片,包括:基于所述网格模型中包括的至少部分所述三角面片对应的初始法向量,确定所述天花板平面包括的至少一个所述三角面片;

基于所述天花板平面包括的至少一个所述三角面片在所述局部坐标系中对应的高度值,确定所述天花板平面对应的天花板高度值;

基于所述天花板高度值,确定所述至少一个天花板碎片。

4.根据权利要求3所述的方法,其特征在于,所述基于所述网格模型中包括的至少部分所述三角面片对应的初始法向量,确定所述天花板平面包括的至少一个所述三角面片,包括:确定所述网格模型中包括的至少部分所述三角面片对应的所述初始法向量;

针对至少部分所述三角面片对应的所述初始法向量和所述三角面片的面积,确定每个所述三角面片对应的预测分值;其中,所述预测分值表示所述三角面片为天花板平面中的一部分的概率;

基于每个所述三角面片对应的预测分值,确定所述天花板平面包括的至少一个所述三角面片。

5.根据权利要求3所述的方法,其特征在于,所述基于所述天花板高度值,确定所述至少一个天花板碎片,包括:基于所述天花板高度值确定兴趣区域;

对所述兴趣区域中包括的至少一个所述三角面片进行聚类,得到至少一个聚类簇;其中,每个所述聚类簇中包括至少一个所述三角面片;

确定所述聚类簇的体积小于预设阈值的所述聚类簇为所述天花板碎片,得到所述至少一个天花板碎片。

6.根据权利要求3所述的方法,其特征在于,所述将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量,包括:基于所述天花板平面中包括的至少一个所述三角面片的法向量,确定所述虚拟法向量;

将所述至少一个天花板碎片中的每个天花板碎片对应的初始法向量替换为所述虚拟法向量。

7.根据权利要求2‑6任一所述的方法,其特征在于,所述基于至少一个所述目标墙面确定对应的至少一个墙面碎片,包括:确定所述网格模型中包括的多个墙面中的多个外墙面;

基于所述目标观测点从所述多个外墙面中确定至少一个所述目标墙面;

确定至少一个所述目标墙面对应的至少一个墙面法向量和所述至少一个墙面碎片。

8.根据权利要求7所述的方法,其特征在于,所述网格模型中还包括地板平面;

所述确定所述网格模型中包括的多个墙面中的多个外墙面,包括:将所述网格模型投影到所述地板平面所在的平面上,得到占用栅格图;

基于所述占用栅格图确定所述网格模型的外部轮廓,基于所述外部轮廓对应的多个所述三角面片确定外墙面区域;

对所述外墙面区域进行分割处理,确定多个所述外墙面。

9.根据权利要求7所述的方法,其特征在于,所述对所述外墙面区域进行分割处理,确定多个所述外墙面,包括:通过语义分析网络模型对所述外墙面区域进行语义识别;

基于所述语义识别结果,对所述外墙面区域进行分割处理,得到多个所述外墙面。

10.根据权利要求9所述的方法,其特征在于,所述基于所述目标观测点从所述多个外墙面中确定至少一个所述目标墙面,包括:基于所述外墙面区域对应的语义识别结果,确定所述多个外墙面中每个所述外墙面中是否包括附属物;

将包括有附属物的至少一个所述外墙面,确定为至少一个所述目标墙面。

11.根据权利要求7所述的方法,其特征在于,所述确定至少一个所述目标墙面对应的至少一个墙面法向量和所述至少一个墙面碎片,包括:针对每个所述目标墙面,确定所述目标墙面中语义类别为墙面的多个墙面三角面片,以及语义类别不为墙面的其他三角面片;

基于所述多个墙面三角面片的法向量或基于所述目标墙面对应的至少部分三角面片的法向量,确定所述目标墙面对应的墙面法向量,得到所述至少一个墙面法向量;

基于所述其他三角面片,确定所述至少一个墙面碎片。

12.根据权利要求7所述的方法,其特征在于,所述将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量,包括:基于所述目标墙面中包括的至少一个所述三角面片的法向量,确定所述虚拟法向量;

将所述至少一个墙面碎片中的每个墙面碎片对应的初始法向量替换为所述虚拟法向量。

13.根据权利要求1‑6任一所述的方法,其特征在于,所述将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量,包括:基于所述目标观测点与所述至少一个碎片中的每个碎片之间的连线朝向所述网格模型内部的方向,确定为所述预设朝向;其中,每个所述碎片对应一个所述预设朝向;

将每个所述碎片对应的所述预设朝向作为所述碎片对应的虚拟法向量。

14.一种模型渲染中的碎片隐藏装置,其特征在于,包括:网格模型模块,用于对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;

碎片确定模块,用于根据目标观测点确定所述网格模型中至少一个待隐藏平面,以及至少一个碎片;其中,所述目标观测点位于所述网格模型之外,表示用于对所述网格模型进行查看的位置;每个所述碎片包括至少一个三角面片;

法向量模块,用于将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量;其中,所述预设朝向根据所述目标观测点确定;

模型渲染模块,用于基于所述虚拟法向量,在模型渲染时将所述网格模型中的至少一个所述待隐藏平面和至少一个所述碎片设置为不可见,得到对应所述目标观测点的渲染后的网格模型。

15.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时,实现上述权利要求1‑13任一所述的方法。

说明书 :

模型渲染中的碎片隐藏方法和装置、存储介质

技术领域

[0001] 本公开涉及三维模型渲染技术领域,尤其是一种模型渲染中的碎片隐藏方法和装置、存储介质。

背景技术

[0002] 三维建模渲染,在很多行业中都有应用,比如影视、室内设计、动画行业。三维动画设计中的渲染是指根据场景的设置、赋予物体材质、贴图、灯光等要素的过程,由程序绘出一幅完整的画面或一段动画,三维动画必须在渲染完成后才能输出;而影视和室内设计表现图这类,就需要进行预先渲染,直接在观众眼前呈现最终的渲染效果。标准的渲染流程,包含标准的背面剔除,用于查看模型内部(如不剔除任何面,则看不到房屋内部)。例如俯视观看时要剔除天花板、侧面观看时要剔除最近的墙面。当观测点在外部环绕模型时,某些大平面在剔除后,会在它们附近留下一些细小物体的碎片,影响美观、且遮挡室内场景。

发明内容

[0003] 为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种模型渲染中的碎片隐藏方法和装置、存储介质。
[0004] 根据本公开实施例的一个方面,提供了一种模型渲染中的碎片隐藏方法,包括:
[0005] 对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;
[0006] 根据目标观测点确定所述网络模型中至少一个待隐藏平面,以及至少一个碎片;其中,所述目标观测点位于所述网格模型之外,表示用于对所述网格模型进行查看的位置;
每个所述碎片包括至少一个三角面片;
[0007] 将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量;其中,所述预设朝向根据所述目标观测点确定;
[0008] 基于所述虚拟法向量,在模型渲染时将所述网格模型中的至少一个所述待隐藏平面和至少一个所述碎片设置为不可见,得到对应所述目标观测点的渲染后的网格模型。
[0009] 可选地,其中,所述网格模型包括天花板平面和多个墙面;
[0010] 所述根据目标观测点确定所述网络模型中至少一个待隐藏平面,以及至少一个碎片,包括:
[0011] 确定所述目标观测点相对于所述网格模型对应的局部坐标系的目标方向;
[0012] 基于所述目标方向确定所述天花板平面和/或至少一个目标墙面为所述至少一个待隐藏平面;
[0013] 基于所述天花板平面确定对应的至少一个天花板碎片,和/或,基于至少一个所述目标墙面确定对应的至少一个墙面碎片。
[0014] 可选地,所述基于所述天花板平面确定对应的至少一个天花板碎片,包括:
[0015] 基于所述网格模型中包括的至少部分所述三角面片对应的初始法向量,确定所述天花板平面包括的至少一个所述三角面片;
[0016] 基于所述天花板平面包括的至少一个所述三角面片在所述局部坐标系中对应的高度值,确定所述天花板平面对应的天花板高度值;
[0017] 基于所述天花板高度值,确定所述至少一个天花板碎片。
[0018] 可选地,所述基于所述网格模型中包括的至少部分所述三角面片对应的初始法向量,确定所述天花板平面包括的至少一个所述三角面片,包括:
[0019] 确定所述网格模型中包括的至少部分所述三角面片对应的所述初始法向量;
[0020] 针对每个所述三角面片对应的所述初始法向量和所述三角面片的面积,确定每个所述三角面片对应的预测分值;其中,所述预测分值表示所述三角面片为天花板平面中的一部分的概率;
[0021] 基于每个所述三角面片对应的预测分值,确定所述天花板平面包括的至少一个所述三角面片。
[0022] 可选地,所述基于所述天花板高度值,确定所述至少一个天花板碎片,包括:
[0023] 基于所述天花板高度值确定兴趣区域;
[0024] 对所述兴趣区域中包括的至少一个所述三角面片进行聚类,得到至少一个聚类簇;其中,每个所述聚类簇中包括至少一个所述三角面片;
[0025] 确定所述聚类簇的体积小于预设阈值的所述聚类簇为所述天花板碎片,得到所述至少一个天花板碎片。
[0026] 可选地,所述将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量,包括:
[0027] 基于所述天花板平面中包括的至少一个所述三角面片的法向量,确定所述虚拟法向量;
[0028] 将所述至少一个天花板碎片中的每个天花板碎片对应的初始法向量替换为所述虚拟法向量。
[0029] 可选地,所述基于至少一个所述目标墙面确定对应的至少一个墙面碎片,包括:
[0030] 确定所述网格模型中包括的多个墙面中的多个外墙面;
[0031] 基于所述目标观测点从所述多个外墙面中确定至少一个所述目标墙面;
[0032] 确定至少一个所述目标墙面对应的至少一个墙面法向量和所述至少一个墙面碎片。
[0033] 可选地,所述网格模型中还包括地板平面;
[0034] 所述确定所述网格模型中包括的多个墙面中的多个外墙面,包括:
[0035] 将所述网格模型投影到所述地板平面所在的平面上,得到占用栅格图;
[0036] 基于所述占用栅格图确定所述网格模型的外部轮廓,基于所述外部轮廓对应的多个所述三角面片确定外墙面区域;
[0037] 对所述外墙面区域进行分割处理,确定多个所述外墙面。
[0038] 可选地,所述对所述外墙面区域进行分割处理,确定多个所述外墙面,包括:
[0039] 通过语义分析网络模型对所述外墙面区域进行语义识别;
[0040] 基于所述语义识别结果,对所述外墙面区域进行分割处理,得到多个所述外墙面。
[0041] 可选地,所述基于所述目标观测点从所述多个外墙面中确定至少一个所述目标墙面,包括:
[0042] 基于所述外墙面区域对应的语义识别结果,确定所述多个外墙面中每个所述外墙面中是否包括附属物;
[0043] 将包括有附属物的至少一个所述外墙面,确定为至少一个所述目标墙面。
[0044] 可选地,所述确定至少一个所述目标墙面对应的至少一个墙面法向量和所述至少一个墙面碎片,包括:
[0045] 针对每个所述目标墙面,确定所述目标墙面中语义类别为墙面的多个墙面三角面片,以及语义类别不为墙面的其他三角面片;
[0046] 基于所述多个墙面三角面片的法向量或基于所述目标墙面对应的至少部分三角面片的法向量,确定所述目标墙面对应的墙面法向量,得到所述至少一个墙面法向量;
[0047] 基于所述其他三角面片,确定所述至少一个墙面碎片。
[0048] 可选地,所述将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量,包括:
[0049] 基于所述目标墙面中包括的至少一个所述三角面片的法向量,确定所述虚拟法向量;
[0050] 将所述至少一个墙面碎片中的每个墙面碎片对应的初始法向量替换为所述虚拟法向量。
[0051] 可选地,所述将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量,包括:
[0052] 基于所述目标观测点与所述至少一个碎片中的每个碎片之间的连线朝向所述网格模型内部的方向,确定为所述预设朝向;其中,每个所述碎片对应一个所述预设朝向;
[0053] 将每个所述碎片对应的所述预设朝向作为所述碎片对应的虚拟法向量。
[0054] 根据本公开实施例的另一方面,提供了一种模型渲染中的碎片隐藏装置,包括:
[0055] 网格模型模块,用于对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;
[0056] 碎片确定模块,用于根据目标观测点确定所述网络模型中至少一个待隐藏平面,以及至少一个碎片;其中,所述目标观测点位于所述网格模型之外,表示用于对所述网格模型进行查看的位置;每个所述碎片包括至少一个三角面片;
[0057] 法向量模块,用于将所述至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量;其中,所述预设朝向根据所述目标观测点确定;
[0058] 模型渲染模块,用于基于所述虚拟法向量,在模型渲染时将所述网格模型中的至少一个所述待隐藏平面和至少一个所述碎片设置为不可见,得到对应所述目标观测点的渲染后的网格模型。
[0059] 可选地,其中,所述网格模型包括天花板平面和多个墙面;
[0060] 所述碎片确定模块,包括:
[0061] 目标方向单元,用于确定所述目标观测点相对于所述网格模型对应的局部坐标系的目标方向;
[0062] 隐藏平面单元,用于基于所述目标方向确定所述天花板平面和/或至少一个目标墙面为所述至少一个待隐藏平面;
[0063] 确定碎片单元,用于基于所述天花板平面确定对应的至少一个天花板碎片,和/或,基于至少一个所述目标墙面确定对应的至少一个墙面碎片。
[0064] 可选地,所述确定碎片单元,包括:
[0065] 天花板确定单元,用于基于所述网格模型中包括的至少部分所述三角面片对应的初始法向量,确定所述天花板平面包括的至少一个所述三角面片;
[0066] 天花板高度单元,用于基于所述天花板平面包括的至少一个所述三角面片在所述局部坐标系中对应的高度值,确定所述天花板平面对应的天花板高度值;
[0067] 天花板碎片单元,用于基于所述天花板高度值,确定所述至少一个天花板碎片。
[0068] 可选地,所述天花板确定单元,具体用于确定所述网格模型中包括的至少部分所述三角面片对应的所述初始法向量;针对每个所述三角面片对应的所述初始法向量和所述三角面片的面积,确定每个所述三角面片对应的预测分值;其中,所述预测分值表示所述三角面片为天花板平面中的一部分的概率;基于每个所述三角面片对应的预测分值,确定所述天花板平面包括的至少一个所述三角面片。
[0069] 可选地,所述天花板碎片单元,具体用于基于所述天花板高度值确定兴趣区域;对所述兴趣区域中包括的至少一个所述三角面片进行聚类,得到至少一个聚类簇;其中,每个所述聚类簇中包括至少一个所述三角面片;确定所述聚类簇的体积小于预设阈值的所述聚类簇为所述天花板碎片,得到所述至少一个天花板碎片。
[0070] 可选地,所述法向量模块,具体用于基于所述天花板平面中包括的至少一个所述三角面片的法向量,确定所述虚拟法向量;将所述至少一个天花板碎片中的每个天花板碎片对应的初始法向量替换为所述虚拟法向量。
[0071] 可选地,所述确定碎片单元,包括:
[0072] 墙面确定单元,用于确定所述网格模型中包括的多个墙面中的多个外墙面;
[0073] 目标墙面单元,用于基于所述目标观测点从所述多个外墙面中确定至少一个所述目标墙面;
[0074] 墙面碎片单元,用于确定至少一个所述目标墙面对应的至少一个墙面法向量和所述至少一个墙面碎片。
[0075] 可选地,所述网格模型中还包括地板平面;
[0076] 所述墙面确定单元,具体用于将所述网格模型投影到所述地板平面所在的平面上,得到占用栅格图;基于所述占用栅格图确定所述网格模型的外部轮廓,基于所述外部轮廓对应的多个所述三角面片确定外墙面区域;对所述外墙面区域进行分割处理,确定多个所述外墙面。
[0077] 可选地,所述墙面确定单元在对所述外墙面区域进行分割处理,确定多个所述外墙面时,用于通过语义分析网络模型对所述外墙面区域进行语义识别;基于所述语义识别结果,对所述外墙面区域进行分割处理,得到多个所述外墙面。
[0078] 可选地,所述目标墙面单元,具体用于基于所述外墙面区域对应的语义识别结果,确定所述多个外墙面中每个所述外墙面中是否包括附属物;将包括有附属物的至少一个所述外墙面,确定为至少一个所述目标墙面。
[0079] 可选地,所述墙面碎片单元,具体用于针对每个所述目标墙面,确定所述目标墙面中语义类别为墙面的多个墙面三角面片,以及语义类别不为墙面的其他三角面片;基于所述多个墙面三角面片的法向量或基于所述目标墙面对应的至少部分三角面片的法向量,确定所述目标墙面对应的墙面法向量,得到所述至少一个墙面法向量;基于所述其他三角面片,确定所述至少一个墙面碎片。
[0080] 可选地,所述法向量模块,具体用于基于所述目标墙面中包括的至少一个所述三角面片的法向量,确定所述虚拟法向量;将所述至少一个墙面碎片中的每个墙面碎片对应的初始法向量替换为所述虚拟法向量。
[0081] 可选地,所述法向量模块,具体用于基于所述目标观测点与所述至少一个碎片中的每个碎片之间的连线朝向所述网格模型内部的方向,确定为所述预设朝向;其中,每个所述碎片对应一个所述预设朝向;将每个所述碎片对应的所述预设朝向作为所述碎片对应的虚拟法向量。
[0082] 根据本公开实施例的又一方面,提供了一种电子设备,其特征在于,包括:
[0083] 存储器,用于存储计算机程序产品;
[0084] 处理器,用于执行所述存储器中存储的计算机程序产品,且所述计算机程序产品被执行时,实现上述任一实施例所述的方法。
[0085] 根据本公开实施例的还一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时,实现上述任一实施例所述的方法。
[0086] 根据本公开实施例的再一方面,提供了一种计算机程序产品,包括计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现上述任一实施例所述的方法。
[0087] 基于本公开上述实施例提供的一种模型渲染中的碎片隐藏方法和装置、存储介质,包括:对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;根据目标观测点确定所述网络模型中至少一个待隐藏平面,以及至少一个碎片;其中,所述目标观测点位于所述网格模型之外,表示用于对所述网格模型进行查看的位置;每个所述碎片包括至少一个三角面片;将所述至少一个碎片中的每个碎片对应的法向量替换为对应预设朝向的虚拟法向量;其中,所述预设朝向根据所述目标观测点确定;基于所述虚拟法向量,在模型渲染时将所述网格模型中的至少一个所述待隐藏平面和至少一个所述碎片设置为不可见,得到对应所述目标观测点的渲染后的网格模型;本公开实施例根据目标观测点确定网格模型中的碎片,并通过将碎片的法向量替换为虚拟法向量,实现在模型渲染时,将网格模型中的碎片和至少一个待隐藏平面一起隐藏,使渲染得到的网格模型展示更加整洁、美观,且无碎片遮挡。
[0088] 下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

[0089] 通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0090] 图1是本公开一示例性实施例提供的模型渲染中的碎片隐藏方法的流程示意图。
[0091] 图2a是利用现有技术中的渲染方法渲染一个示例提供的房屋网格模型的渲染示意图。
[0092] 图2b是利用本公开一示例性实施例提供的方法对图2a提供的房屋网格模型的渲染示意图。
[0093] 图3是本公开图1所示的实施例中步骤104的一个流程示意图。
[0094] 图4是本公开图3所示的实施例中步骤1043的一个流程示意图。
[0095] 图5是本公开图3所示的实施例中步骤1043的另一流程示意图。
[0096] 图6是本公开一示例性实施例提供的模型渲染中的碎片隐藏装置的结构示意图。
[0097] 图7是本公开一示例性实施例提供的电子设备的结构图。

具体实施方式

[0098] 下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
[0099] 应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
[0100] 本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0101] 还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
[0102] 还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
[0103] 另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。本公开中所指数据可以包括文本、图像、视频等非结构化数据,也可以是结构化数据。
[0104] 还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
[0105] 同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0106] 以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
[0107] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0108] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0109] 本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
[0110] 终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0111] 示例性方法
[0112] 图1是本公开一示例性实施例提供的模型渲染中的碎片隐藏方法的流程示意图。本实施例可应用在电子设备上,如图1所示,包括如下步骤:
[0113] 步骤102,对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型。
[0114] 可选地,目标房屋可以是任意具有三维模型的房屋,三维模型的获得可基于激光扫描或影像扫描等现有技术扫描获得;对三维模型的面片化处理可以采用三维重建,得到的多个三角面片为三角形,且每个三角面片中具有纹理信息。
[0115] 步骤104,根据目标观测点确定网络模型中至少一个待隐藏平面,以及至少一个碎片。
[0116] 其中,目标观测点位于网格模型之外,表示用于对网格模型进行查看的位置;每个碎片包括至少一个三角面片。
[0117] 其中,碎片指的是某些依附于待隐藏平面的物体对应的三角面片集合;待隐藏平面可以为目标房屋的天花板、墙面(在房屋模型外部对该模型进行查看时,为了查看内容,需要对天花板和/或至少一个墙面进行隐藏)等,当隐藏了待隐藏平面后,这些依附于待隐藏平面的物体的碎片会相对孤立的漂浮在模型中,造成不美观的现象,且遮挡室内场景,例如,图2a所示的可选示例中,通过现有技术的渲染方法对一个房屋对应的网格模型进行渲染,如图2a所示,得到的房屋模型中存在一些未去除的碎片。
[0118] 步骤106,将至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量。
[0119] 其中,预设朝向根据目标观测点确定。
[0120] 其中,法向量指的是每一个三角面片都包含一个正面朝向,即三维空间中的一个向量,在确定网格模型中包括的多个三角面片时,可确定每个三角面片在网格模型对应的局部坐标系中的3个顶点的坐标,基于每个三角面片对应的3个顶点坐标,即可确定每个三角面片对应的初始法向量;一般而言,当三角面片的法向量指向观测点时,则该面片会被渲染为可见。反之则被渲染为不可见(隐藏)。
[0121] 步骤108,基于虚拟法向量,在模型渲染时将网格模型中的至少一个待隐藏平面和至少一个碎片设置为不可见,得到对应目标观测点的渲染后的网格模型。
[0122] 本实施例中,通过虚拟法向量替换初始法向量,在模型渲染时,将虚拟法向量不指向观测点的至少部分三角面片(例如,所有三角面片)进行隐藏,使除了现有技术中隐藏的待隐藏平面被隐藏,其他碎片也在渲染过程中被隐藏,使渲染后的网格模型中无碎片遮挡;例如,图2b所示的可选示例中,通过本实施例提供的方法对一个图2a所示示例对应的网格模型进行渲染,如图2b所示,得到的房屋模型中不存在碎片。
[0123] 本公开上述实施例提供的一种模型渲染中的碎片隐藏方法,包括:对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型;根据目标观测点确定所述网络模型中至少一个待隐藏平面,以及至少一个碎片;其中,所述目标观测点位于所述网格模型之外,表示用于对所述网格模型进行查看的位置;每个所述碎片包括至少一个三角面片;将所述至少一个碎片中的每个碎片对应的法向量替换为对应预设朝向的虚拟法向量;其中,所述预设朝向根据所述目标观测点确定;基于所述虚拟法向量,在模型渲染时将所述网格模型中的至少一个所述待隐藏平面和至少一个所述碎片设置为不可见,得到对应所述目标观测点的渲染后的网格模型;本公开实施例根据目标观测点确定网格模型中的碎片,并通过将碎片的法向量替换为虚拟法向量,实现在模型渲染时,将网格模型中的碎片和至少一个待隐藏平面一起隐藏,使渲染得到的网格模型展示更加整洁、美观,且无碎片遮挡。
[0124] 由于网格模型对应的为目标房屋,因此网格模型中包括天花板平面和多个墙面,通常在对房屋模型进行查看时,是从上方或侧面的角度对模型进行查看,因此,对于房屋模型而言,待隐藏平面通常包括天花板和/或至少一个墙面,例如,如图2b所示,为去除天花板和一侧墙面的示例。
[0125] 如图3所示,在上述图1所示实施例的基础上,步骤104可包括如下步骤:
[0126] 步骤1041,确定目标观测点相对于网格模型对应的局部坐标系的目标方向。
[0127] 网格模型具有对应的局部坐标系,其中,局部坐标系(Local Coordinate),也就是坐标系以物体模型(网格模型)的中心为坐标原点,物体模型的旋转、平移等操作都是围绕局部坐标系进行的,这时,当物体模型进行旋转或平移等操作时,局部坐标系也执行相应的旋转或平移操作。本实施例可基于目标观测点与局部坐标系的坐标原点之间的连线得到的直线朝向目标观测点的方向作为目标方向,即,目标方向为以坐标原点为中心,朝向目标观测点的射线的方向。
[0128] 步骤1042,基于目标方向确定天花板平面和/或至少一个目标墙面为至少一个待隐藏平面。
[0129] 本实施例中,基于天花板平面以及墙面的朝向是否为目标方向来确定他们在目标观测点是否是可见的,通常平面的朝向基于该平面的法向量确定,可选地,当一个平面(天花板平面或至少一个墙面)的法向量为目标方向,该平面在目标观测点是可见的,否则为不可见,即为待隐藏平面。
[0130] 步骤1043,基于天花板平面确定对应的至少一个天花板碎片,和/或,基于至少一个目标墙面确定对应的至少一个墙面碎片。
[0131] 本实施例中,天花板平面以及目标墙面都是较大的平面,这些平面在去除之后,会存在一些依附于这些平面的小器件的面片悬浮在模型中,导致模型不美观,因此,当天花板平面是待隐藏平面时,需要确定在天花板被隐藏后会显示在模型中的天花板碎片;当墙面是待隐藏平面时,需要确定在墙面被隐藏后会显示在模型中的墙面碎片;本实施例通过识别天花板碎片和墙面碎片,以实现在隐藏天花板平面和墙面时,能够将天花板碎片和墙面碎片共同隐藏,避免碎片影响模型的观感。
[0132] 如图4所示,在上述图3所示实施例的基础上,在一个可选示例中,步骤1043可包括如下步骤:
[0133] 步骤401,基于网格模型中包括的至少部分三角面片对应的初始法向量,确定天花板平面包括的至少一个三角面片。
[0134] 本实施例中,在网络模型中,每个三角面片对应的顶点坐标是已知的,基于顶点坐标可确定对应的初始法向量,通过对每个三角面片对应的初始法向量进行处理,可确定每个三角面片是天花板的概率,将概率达到预设条件的处于同一高度的三角面片确定为天花板平面中包括的三角面片。
[0135] 步骤402,基于天花板平面包括的至少一个三角面片在局部坐标系中对应的高度值,确定天花板平面对应的天花板高度值。
[0136] 可选地,可将确定为天花板平面组成部分的至少部分三角面片(例如,所有三角面片)对应的高度值(处于同一平面,通常高度值相同)作为天花板高度值,或者将天花板平面包括的所有三角面片的高度值求均值,以均值作为天花板高度值。
[0137] 步骤403,基于天花板高度值,确定至少一个天花板碎片。
[0138] 本实施例中,需要隐藏的天花板碎片通常位于天花板附近的位置,因此,基于天花板高度值可确定一个高度区域作为兴趣区域,基于该兴趣区域内包括的三角面片,得到至少一个天花板碎片,基于天花板高度值确定的天花板碎片,由于高度值接近,避免了将不是天花板碎片的三角面片误判,提升了天花板碎片的识别准确率。
[0139] 可选地,在上述实施例的基础上,步骤401还可以包括:
[0140] 确定网格模型中包括的至少部分三角面片对应的初始法向量。
[0141] 可选地,三角面片的初始法向量可基于三角形任意两条边的向量积确定,例如,在一个可选示例中,三角面片ABC的初始法向量 可基于以下公式(1)确定:
[0142]
[0143] 其中, 和 分别表示三角面片中两条边向量;×表示向量乘法。
[0144] 针对每个三角面片对应的初始法向量和三角面片的面积,确定每个三角面片对应的预测分值。
[0145] 其中,预测分值表示三角面片为天花板平面中的一部分的概率。
[0146] 可选地,为每个三角面片确定一个预测分值,在一个可选示例中,预测分值S可基于以下公式(2)确定:
[0147]
[0148] 其中, 是方向为在局部坐标系中竖直向下的单位向量;Area为三角面片的面积;为三角面片的初始法向量;·表示点乘。
[0149] 基于每个三角面片对应的预测分值,确定天花板平面包括的至少一个三角面片。
[0150] 本实施例中,可分别对不同高度值对应的多个三角面片的多个预测分值进行求和,每个和值可代表该高度值为天花板的概率,取其中和值最高的高度值包括的多个三角面片构成本实施例中的天花板平面,这些三角面片对应的高度值记录为天花板高度值。
[0151] 可选地,在上述实施例的基础上,步骤403还可以包括:
[0152] 基于天花板高度值确定兴趣区域。
[0153] 可选地,可将天花板高度值加减一个设定值来确定兴趣区域,该设定值可根据实际应用场景进行设置,例如,设置天花板高度值±10厘米,或天花板高度值±20厘米等区域内作为兴趣区域,在该区域内查找天花板碎片,缩小了查找范围,提升了查找效率和准确率。
[0154] 对兴趣区域中包括的至少一个三角面片进行聚类,得到至少一个聚类簇。
[0155] 其中,每个聚类簇中包括至少一个三角面片;可采用区域生长等方法实现多个三角面片的聚类,得到的每个聚类簇中每两个三角面片之间至少存在一个相同边,聚类簇可能构成一个立体形状。
[0156] 确定聚类簇的体积小于预设阈值的聚类簇为天花板碎片,得到至少一个天花板碎片。
[0157] 可选的,确定兴趣区域内每个聚类簇的体积,聚类簇的体积可基于聚类簇外的最小包围盒的面积确定,最小包围盒即为包裹了聚类簇的最小立方体,计算该最小包围盒的体积,将该体积作为聚类簇的体积;本实施例中的预设阈值可根据实际应用场景进行设置,例如,预设阈值设置为1立方米、0.5立方米等;当体积小于预设阈值时,可确定该聚类簇为一个天花板碎片,计算每个聚类簇的体积与预设阈值的关系,即可得到至少一个天花板碎片,本实施例仅通过简单的几何运算来确定天花板碎片,提升了碎片确定的效率。
[0158] 在一些可选的实施例中,在上述任一实施例的基础上,步骤106可以包括:
[0159] 基于天花板平面中包括的至少一个三角面片的法向量,确定虚拟法向量;
[0160] 将至少一个天花板碎片中的每个天花板碎片对应的初始法向量替换为虚拟法向量。
[0161] 本实施例中,天花板平面为待隐藏平面,因此,天花板平面对应的法向量即为模型渲染时的参数,以该法向量确定对应的三角面片是否需要在渲染时进行隐藏,本实施例通过将天花板碎片的法向量替换为天花板平面对应的法向量,即可实现在对天花板平面进行隐藏时,同时对天花板碎片进行隐藏,不会出现零散碎片。
[0162] 如图5所示,在上述图3所示实施例的基础上,在一个可选示例中,步骤1043还可以包括如下步骤:
[0163] 步骤501,确定网格模型中包括的多个墙面中的多个外墙面。
[0164] 其中,网格模型对应房屋,因此,网格模型中的墙面会包括包围网格模型,确定网格模型整体形状的外墙面,还包括对房屋内部空间进行分割的内墙面;例如,内墙面在网格模型中其背面存在与其对应的另一个内墙面,方向相反;外墙面即该墙面为网格模型的外边界,其背面即为室外。
[0165] 步骤502,基于目标观测点从多个外墙面中确定至少一个目标墙面。
[0166] 不同的目标观测点对应不同的需要被隐藏的墙面,且对于墙面中不包括其他物体的墙面(墙面为一个整体,不包括墙面碎片),本实施例不作处理,因此,通过该步骤从所有外墙面中筛选出需要确定墙面碎片的目标墙面。
[0167] 步骤503,确定至少一个目标墙面对应的至少一个墙面法向量和至少一个墙面碎片。
[0168] 本实施例中,通过确定需要隐藏的目标墙面,进而基于这些目标墙面确定对应的墙面碎片,并且,为至少一个目标墙面确定对应的墙面法向量,以该墙面法向量来确定在渲染时是否对这些平面进行隐藏。
[0169] 可选地,在上述实施例的基础上,步骤501还可以包括:
[0170] 将网格模型投影到地板平面所在的平面上,得到占用栅格图;
[0171] 基于占用栅格图确定网格模型的外部轮廓,基于外部轮廓对应的多个三角面片确定外墙面区域;
[0172] 对外墙面区域进行分割处理,确定多个外墙面。
[0173] 本实施例中,由于房屋模型中还包括底部地板,因此,网格模型中还包括地板平面;可以将三维的网格模型投影到模型的底部平面(本实施例中的地板平面所在平面),离散化形成占用栅格图,提取网格模型的占用栅格图外轮廓,利用网格模型与占用栅格图的像素点对应关系,得到网格模型的外轮廓(特指水平方向,不包含上下的天花板地面)对应的三角面片,作为外墙面区域;然后对提取的外墙面区域区分不同墙面,例如,可以通过平面分割、墙线检测等方式将不同墙面分割开来,得到多个外墙面。
[0174] 可选地,对外墙面区域进行分割处理,确定多个外墙面,包括:
[0175] 通过语义分析网络模型对外墙面区域进行语义识别;
[0176] 基于语义识别结果,对外墙面区域进行分割处理,得到多个外墙面。
[0177] 可选地,在确定外墙面区域之后,对外墙面区域包括的至少部分三角面片(例如,全部三角面片)执行语义识别,确定每个三角面片是否为墙面;例如,利用语义识别网络模型,确定每个三角面片是墙面的概率和不是墙面的概率,或者,利用语义识别网络模型,确定每个三角面片是墙面或其他物体(例如,窗帘、壁画、窗户、墙线等,具体物体根据墙面可能的物体确定,并通过包括这些物体的样本模型预先对语义识别网络模型进行训练,使语义识别网络模型能准确识别每个三角面片对应的类别);后续墙面分割、墙面分类等操作可基于语义识别结果实现。例如,本实施例中通过语义识别确定外墙面区域中的墙面和墙线,基于墙线将外墙面区域分割为多个外墙面。
[0178] 可选地,在上述实施例的基础上,步骤502还可以包括:
[0179] 基于外墙面区域对应的语义识别结果,确定多个外墙面中每个外墙面中是否包括附属物;
[0180] 将包括有附属物的至少一个外墙面,确定为至少一个目标墙面。
[0181] 本实施例中,按照墙面上墙体的完整性可以将墙面区分为两种:一种为被窗帘等物体遮挡,或者含有窗户等附属物的墙面;另一种为干净完整的整面墙;干净完整的整面墙在背面剔除时不会出现碎片,因此不需要特殊处理,主要处理的是存在窗户和窗帘等附属物体的墙面,本实施例利用语义识别确定每个三角面片是否为墙面,当一个外墙面中包括至少一个语义识别结果不是墙面的三角面片时,该外墙面为目标墙面。
[0182] 可选地,在上述实施例的基础上,步骤503还可以包括:
[0183] 针对每个目标墙面,确定目标墙面中语义类别为墙面的多个墙面三角面片,以及语义类别不为墙面的其他三角面片;
[0184] 基于多个墙面三角面片的法向量或基于目标墙面对应的至少部分三角面片的法向量,确定目标墙面对应的墙面法向量,得到至少一个墙面法向量;
[0185] 基于其他三角面片,确定至少一个墙面碎片。
[0186] 本实施例中,对包含附属物体的每个目标墙面,选取目标墙面上语义类别(基于上述步骤中语义识别确定)为墙体的三角面片,统计得到平均法向量,将该平均法向量作为墙面法向量,将该目标墙面上的至少部分三角面片(例如,所有三角面片)的法向量都统一设定为墙面法向量,即可实现在渲染使同时进行隐藏;另外,如果一个目标墙面因完全被物体遮挡等情况,没有语义类别为墙体的三角面片,则可以直接统计该目标墙面上所有三角面片的法向量,鲁棒的提取主方向作为该目标墙面的墙面法向量;在设定统一法向量后,在通过三角面片的法向量来确定三角面片的可见性时,即可达到整面墙及附属物体同时出现或同时消失的效果,不会出现零散碎片。
[0187] 在一些可选的实施例中,在上述任一实施例的基础上,步骤106还可以包括:
[0188] 基于目标墙面中包括的至少一个三角面片的法向量,确定虚拟法向量;
[0189] 将至少一个墙面碎片中的每个墙面碎片对应的初始法向量替换为虚拟法向量。
[0190] 本实施例中,墙面为待隐藏平面,因此,墙面对应的法向量即为模型渲染时的参数,以该法向量确定对应的三角面片是否需要在渲染时进行隐藏,本实施例通过将墙面碎片的法向量替换为墙面对应的墙面法向量,即可实现在对墙面进行隐藏时,同时对墙面碎片进行隐藏,不会出现零散碎片。
[0191] 本公开上述实施例是依靠上述天花板语义分析、墙面语义分析,目的都是处理特定的兴趣区域(Region of Interest);但有的碎片可能位于模型的其它位置;可以采用更通用的方式来分析其它碎片,即虚拟相机多角度分析。
[0192] 该实施例提前在不同位置、不同角度设置多个观测点(可在包围网格模型的半球体上设置多个不同角度的观测点),每个观测点对应一个虚拟相机,可将天花板平面作为特殊的俯视观测点对应的实施例;从虚拟相机观测三维模型,先采用常规的背面隐藏流程,隐藏一些背面物体;此时,对剩下的物体面片进行聚类(可采用区域生长等方法),得到多个聚类簇;当某一个聚类簇的体积小于一个预设阈值时,则判定其为碎片;把碎片中的每个三角面片的虚拟法向量都设置为朝向模型内部(背对观测点),并基于该虚拟法向量执行模型渲染。
[0193] 一个可选实施例中,步骤106可以包括,包括:
[0194] 基于目标观测点与至少一个碎片中的每个碎片之间的连线朝向网格模型内部的方向,确定为预设朝向;其中,每个碎片对应一个预设朝向;
[0195] 将每个碎片对应的预设朝向作为碎片对应的虚拟法向量。
[0196] 本实施例中的渲染方法可以基于现有技术中的任意模型渲染方法实现,区别仅在于本实施例中将虚拟法向量设置为隐藏条件,例如,一个可选示例中,基于顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)实现模型渲染,在顶点着色器和片段着色器中,基于上述实施例产生的虚拟法向量,对三角面片进行自定义的隐藏;使得天花板、墙面附近的碎片,随着天花板、墙面等一起被剔除;实现模型展示更加整洁、美观、无碎片遮挡的效果。
[0197] 在渲染流程的顶点着色器中,加载顶点的虚拟法向量(即顶点所属面片的虚拟法向量);如果虚拟法向量朝向当前观测点,则标记为“可见”,否则标记为“不可见”;顶点着色器的标记数据会传递到片段着色器;在片段着色器中抛弃“不可见”的片段,从而实现隐藏。
[0198] 本公开实施例提供的任一种模型渲染中的碎片隐藏方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种模型渲染中的碎片隐藏方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种模型渲染中的碎片隐藏方法。下文不再赘述。
[0199] 示例性装置
[0200] 图6是本公开一示例性实施例提供的模型渲染中的碎片隐藏装置的结构示意图。如图6所示,本实施例提供的装置包括:
[0201] 网格模型模块61,用于对目标房屋的三维模型进行面片化处理,得到包括多个三角面片的网格模型。
[0202] 碎片确定模块62,用于根据目标观测点确定网络模型中至少一个待隐藏平面,以及至少一个碎片。
[0203] 其中,目标观测点位于网格模型之外,表示用于对网格模型进行查看的位置;每个碎片包括至少一个三角面片。
[0204] 法向量模块63,用于将至少一个碎片中的每个碎片对应的初始法向量替换为对应预设朝向的虚拟法向量。
[0205] 其中,预设朝向根据目标观测点确定。
[0206] 模型渲染模块64,用于基于虚拟法向量,在模型渲染时将网格模型中的至少一个待隐藏平面和至少一个碎片设置为不可见,得到对应目标观测点的渲染后的网格模型。
[0207] 本公开上述实施例提供的一种模型渲染中的碎片隐藏装置,根据目标观测点确定网格模型中的碎片,并通过将碎片的法向量替换为虚拟法向量,实现在模型渲染时,将网格模型中的碎片和至少一个待隐藏平面一起隐藏,使渲染得到的网格模型展示更加整洁、美观,且无碎片遮挡。
[0208] 可选地,其中,网格模型包括天花板平面和多个墙面;
[0209] 碎片确定模块62,包括:
[0210] 目标方向单元,用于确定目标观测点相对于网格模型对应的局部坐标系的目标方向;
[0211] 隐藏平面单元,用于基于目标方向确定天花板平面和/或至少一个目标墙面为至少一个待隐藏平面;
[0212] 确定碎片单元,用于基于天花板平面确定对应的至少一个天花板碎片,和/或,基于至少一个目标墙面确定对应的至少一个墙面碎片。
[0213] 在一些可选的实施例中,确定碎片单元,包括:
[0214] 天花板确定单元,用于基于网格模型中包括的至少部分三角面片对应的初始法向量,确定天花板平面包括的至少一个三角面片;
[0215] 天花板高度单元,用于基于天花板平面包括的至少一个三角面片在局部坐标系中对应的高度值,确定天花板平面对应的天花板高度值;
[0216] 天花板碎片单元,用于基于天花板高度值,确定至少一个天花板碎片。
[0217] 可选地,天花板确定单元,具体用于确定网格模型中包括的至少部分三角面片对应的初始法向量;针对每个三角面片对应的初始法向量和三角面片的面积,确定每个三角面片对应的预测分值;其中,预测分值表示三角面片为天花板平面中的一部分的概率;基于每个三角面片对应的预测分值,确定天花板平面包括的至少一个三角面片。
[0218] 可选地,天花板碎片单元,具体用于基于天花板高度值确定兴趣区域;对兴趣区域中包括的至少一个三角面片进行聚类,得到至少一个聚类簇;其中,每个聚类簇中包括至少一个三角面片;确定聚类簇的体积小于预设阈值的聚类簇为天花板碎片,得到至少一个天花板碎片。
[0219] 可选地,法向量模块63,具体用于基于天花板平面中包括的至少一个三角面片的法向量,确定虚拟法向量;将至少一个天花板碎片中的每个天花板碎片对应的初始法向量替换为虚拟法向量。
[0220] 在另一些可选的实施例中,确定碎片单元,包括:
[0221] 墙面确定单元,用于确定网格模型中包括的多个墙面中的多个外墙面;
[0222] 目标墙面单元,用于基于目标观测点从多个外墙面中确定至少一个目标墙面;
[0223] 墙面碎片单元,用于确定至少一个目标墙面对应的至少一个墙面法向量和至少一个墙面碎片。
[0224] 可选地,网格模型中还包括地板平面;
[0225] 墙面确定单元,具体用于将网格模型投影到地板平面所在的平面上,得到占用栅格图;基于占用栅格图确定网格模型的外部轮廓,基于外部轮廓对应的多个三角面片确定外墙面区域;对外墙面区域进行分割处理,确定多个外墙面。
[0226] 可选地,墙面确定单元在对外墙面区域进行分割处理,确定多个外墙面时,用于通过语义分析网络模型对外墙面区域进行语义识别;基于语义识别结果,对外墙面区域进行分割处理,得到多个外墙面。
[0227] 可选地,目标墙面单元,具体用于基于外墙面区域对应的语义识别结果,确定多个外墙面中每个外墙面中是否包括附属物;将包括有附属物的至少一个外墙面,确定为至少一个目标墙面。
[0228] 可选地,墙面碎片单元,具体用于针对每个目标墙面,确定目标墙面中语义类别为墙面的多个墙面三角面片,以及语义类别不为墙面的其他三角面片;基于多个墙面三角面片的法向量或基于目标墙面对应的至少部分三角面片的法向量,确定目标墙面对应的墙面法向量,得到至少一个墙面法向量;基于其他三角面片,确定至少一个墙面碎片。
[0229] 在一些可选的实施例中,法向量模块63,具体用于基于目标墙面中包括的至少一个三角面片的法向量,确定虚拟法向量;将至少一个墙面碎片中的每个墙面碎片对应的初始法向量替换为虚拟法向量。
[0230] 在另一些可选的实施例中,法向量模块63,具体用于基于目标观测点与至少一个碎片中的每个碎片之间的连线朝向网格模型内部的方向,确定为预设朝向;其中,每个碎片对应一个预设朝向;将每个碎片对应的预设朝向作为碎片对应的虚拟法向量。
[0231] 示例性电子设备
[0232] 下面,参考图7来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
[0233] 图7图示了根据本公开实施例的电子设备的框图。
[0234] 如图7所示,电子设备70包括一个或多个处理器71和存储器72。
[0235] 处理器71可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备70中的其他组件以执行期望的功能。
[0236] 存储器可以存储一个或多个计算机程序产品,所述存储器可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序产品,处理器可以运行所述计算机程序产品,以实现上文所述的本公开的各个实施例的模型渲染中的碎片隐藏方法以及/或者其他期望的功能。
[0237] 在一个示例中,电子设备70还可以包括:输入装置73和输出装置74,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
[0238] 例如,在该电子设备是第一设备或第二设备时,该输入装置73可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置73可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
[0239] 此外,该输入装置73还可以包括例如键盘、鼠标等等。
[0240] 该输出装置74可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置74可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
[0241] 当然,为了简化,图7中仅示出了该电子设备70中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备70还可以包括任何其他适当的组件。
[0242] 示例性计算机程序产品和计算机可读存储介质
[0243] 除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述部分中描述的根据本公开各种实施例的模型渲染中的碎片隐藏方法中的步骤。
[0244] 所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0245] 此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的模型渲染中的碎片隐藏方法中的步骤。
[0246] 所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0247] 以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
[0248] 本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0249] 本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
[0250] 可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
[0251] 还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
[0252] 提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
[0253] 为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。