一种基于体骨架卷积曲面的沉浸式快速建模方法

文档序号:28373388发布日期:2022-01-07 20:44阅读:139来源:国知局
一种基于体骨架卷积曲面的沉浸式快速建模方法

1.本发明涉及计算机图形学及虚拟现实技术领域,特别涉及一种基于体骨架卷积曲面的沉浸式快速建模方法。


背景技术:

2.近年来,随着计算机技术的发展以及各类显示设备的普及,三维模型为人们跨越真实与虚拟、联结数字与实体、实现创想与创造提供了更多的可能,因而得到了越来越多的应用,如被用于产品设计、环境设计、文化娱乐、医疗健康等各种领域。然而,尽管当前对三维模型的需求量很大,创建三维模型却并不是一件容易的事情。
3.在以前,用户如果想要获得一个三维模型,那要么需要拥有一些专业的模型扫描设备,要么需要掌握一些专业的建模软件的使用方法。如今建模的门槛稍有降低,虚拟现实技术和三维建模的结合使用户能够通过一些简单的笔画来直接画出简单的三维模型。
4.然而,目前我们所能看到的,与建模相关的虚拟现实软件依然不够完美,它们大多存在一定的缺陷:如tilt brush,用户用它绘制出的只是一些不连续的面片,这些破碎面片无法组成一个模型整体;还有一些建模软件,让用户通过绘制曲线线条来概括模型的表面,系统自动将曲线网填充成封闭的模型壳,而缺少经验的用户并不知道如何能较好地用曲线来表现模型的表面形状;如brush2model,允许用户以一些简单的体素来绘制模型,这样的绘制对于那些没有专业绘画经验的用户来说依然是很困难的任务,他们很难想象怎样才能用基本体素来组成一个复杂的模型。
5.现有技术中还存在如公开号为cn110176058b的中国专利公开的一种基于草图和卷积曲面的沉浸式快速建模方法,包括:(1)在unity3d环境下,用户佩戴沉浸式虚拟现实设备,选择要绘制的骨架的类型,确定要绘制的骨架的定位点,绘制出骨架形状;(2)使用卷积曲面解析解生成光滑卷积曲面模型,在gpu中完成势能值计算和有效骨架的裁剪,生成密度图;(3)步骤(2)生成的密度图传递给marching cube程序,获取三角面片的顶点及其属性,渲染完成建模;所述顶点及其属性包括顶点位置、拓扑关系和法向量。
6.上述专利申请虽然提供了一种能绘制出三维模型的方法,但需要用户组合多种不同的骨架进行建模,这对于缺少绘画经验的新手用户是一件困难的任务。


技术实现要素:

7.为解决现有技术中存在的问题,本发明提供一种基于体骨架卷积曲面的沉浸式快速建模方法,用户利用体骨架笔刷即可绘制出多种模型,将多种模型进行组合即可得出复杂的模型,极大的降低了建模的难度。
8.一种基于体骨架卷积曲面的沉浸式快速建模方法,包括如下步骤:
9.(1)在unity3d环境下,用户佩戴沉浸式虚拟现实设备,选择所需的体骨架笔刷,确定体骨架笔刷的大小、角度和位置,使用该体骨架笔刷绘制模型;
10.(2)根据选择的体骨架笔刷大小、角度和位置,gpu进行体骨架势能值的计算,生成
体骨架笔刷绘制过后的新的势能图;
11.(3)将步骤(2)中生成的新的势能图传递给marching cube程序,获取三角面片的顶点位置、拓扑关系和法向量,渲染完成建模。
12.具体的,步骤1中还可导入外部的模型,导入的模型通过步骤(2)和(3)计算成一张隐式曲面,用户可以在这个模型的基础上继续绘制模型。
13.步骤(2)中所述的gpu进行体骨架势能值的计算的具体步骤如下:
14.(2-1)将整个绘画空间分为128
×
128
×
128的立方体网格,用一张全局势能图记录当前已经绘制好的场景的网格顶点势能值情况;
15.(2-2)新建一张临时势能图,并设置各立方体网格顶点的初始势能值,初始势能值记录为0;
16.对体骨架笔刷对应的模型形状做体素化,将临时势能图记录为体素化后的模型对应的势能图;
17.(2-3)对步骤(2-2)中的体素化后的模型对应的势能图做三维卷积平滑,得到每个网格顶点的新的势能值,并将新的势能值记录到体素化后的模型对应的势能图中,得到三维卷积平滑后模型对应的势能图;;
18.(2-4)将步骤(2-3)中得到的三维卷积平滑后模型对应的势能图的势能值附加到当前场景中的全局势能图中后,得到体骨架笔刷绘制过后的新的势能图。
19.步骤(2-2)中,对体骨架笔刷对应的模型形状做体素化的具体步过程如下:
20.调用computeshader,判断体骨架笔刷对应的模型中的每个三角面片与立方体网格的相交情况,
21.若某个立方体网格与三角面片相交,就将该立方体网格的所有顶点势能值在临时势能图上记录在初始值上加一,即记录为1。
22.步骤(2-3)中的对体素化后的模型对应的势能图做三维卷积平滑的具体过程如下:
23.调用computeshader,用一个三维的高斯核函数去对立方体网格的势能值做卷积计算,使每个网格顶点的势能值都受到周边顶点的势能值的影响。
24.具体的,高斯核函数的半径为1,每个网格顶点的势能值被计算为周围3
×3×
3范围内的网格顶点的势能值的平均值。
25.步骤(3)中利用marching cube程序,渲染完成建模的步骤如下:
26.(3-1)marching cube程序根据各个立方体网格顶点的势能值情况,在每个立方体网格中提取出对应的三角形面片;
27.(3-2)提取出的三角形信息存储在一个computebuffer中,调用unity的drawproceduralindirect函数选择对应的着色器对模型进行渲染。
28.优选的,对步骤(3)绘制完成的模型进行保存,保存时marching cube程序从缓冲区中将三角面片顶点数据读回内存,然后处理得到的顶点数组以及对应的索引数组,得到模型网格数据,完成模型保存。
29.优选的,所述体骨架笔刷还设有擦除模式,所述擦除模式用于擦除不需要的模型形状。
30.使用笔刷的擦除模式,即为对模型进行擦除计算,传统的卷积曲面绘制使用的都
是势能值的累加,而在擦除计算时,我们用全局势能图减去擦除计算中的势能值变化。
31.此外,对绘制膜模型可进行撤销,具体的撤销步骤为:在绘制体模型前先记录当前的全局势能图作为备用势能图,绘制体模型后,如果需要撤销,则用记录下来的备用势能图覆盖新计算的势能图。
32.优选的,每一个体骨架笔刷对应一个模型;根据所需绘制的模型形状选择形状适配的体骨架笔刷进行绘制。
33.具体的,每一个所需绘制的复杂模型可以分解成很多个部分,可以用体骨架笔刷来绘制每个部分,它们将自动融合成一个完整的流形模型。
34.此外,系统中还可设置有多种不同的材质,选择材质对模型进行展示时,模型会动态的改变颜色和顶点以达到更好的视觉效果。
35.与现有技术相比,本发明的有益之处在于;
36.(1)提出了基于gpu并行计算的体骨架笔刷,用户可以使用不同形状的体骨架笔刷,直接组合绘制出复杂的模型。
37.(2)支持用户导入自定义的模型,在模型的基础上继续绘制。
38.(3)支持擦除和撤销功能,方便用户完成更多模型细节的绘制。
39.(4)提供多种不同的模型材质效果,增添用户的建模乐趣。
40.(5)设计了用户友好型的ui界面,用户可以轻松地切换功能,完成建模。
附图说明
41.图1为用户使用本发明时的流程示意图;
42.图2为用户使用本发明时的另一流程示意图。
具体实施方式
43.下面结合附图和具体实施方式对本发明做进一步说明。
44.如图1所示,基于体骨架卷积曲面的沉浸式快速建模方法包括如下步骤:
45.(1)在unity3d环境下,用户佩戴沉浸式虚拟现实设备,选择所需的体骨架笔刷,确定体骨架笔刷的大小、角度和位置,使用该体骨架笔刷绘制模型;利用体骨架笔刷绘制好的模型会自动融合到已经画好的模型中;
46.(2)根据选择的体骨架笔刷大小、角度和位置,gpu进行体骨架势能值的计算,生成体骨架笔刷绘制过后的新的势能图;
47.(2-1)将整个绘画空间分为128
×
128
×
128的立方体网格,用一张全局势能图记录当前已经绘制好的场景的网格顶点势能值情况;
48.(2-2)新建一张临时势能图,并设置各网格顶点的初始势能值为0;
49.对体骨架笔刷对应的模型形状做体素化,调用computeshader,判断体骨架笔刷对应的模型中的每个三角面片与立方体网格的相交情况,
50.若某个立方体网格与三角面片相交,就将该立方体网格的所有顶点势能值在临时势能图上记录为1,得出体素化后的模型对应的势能图;
51.(2-3)对步骤(2-2)中体素化后的模型对应的势能图做三维卷积平滑,调用computeshader,用半径为1的三维的高斯核函数去对立方体网格的势能值做卷积计算,每
个网格顶点的势能值被计算为周围3
×3×
3范围内的网格顶点的势能值的平均值,得到三维卷积平滑后模型对应的势能图;
52.(2-4)将步骤(2-3)中得到三维卷积平滑后模型对应的势能图中的势能值附加到当前场景中的全局势能图中后,得到体骨架笔刷绘制过后的新的势能图。
53.如若需撤销绘制的模型,则将绘制前的全局势能图覆盖绘制后的全局势能图即可;若需对模型进行擦除,则使用体骨架笔刷的擦除模式即可。
54.(3)将步骤(2)中生成的新的势能图传递给marching cube程序,获取三角面片的顶点位置、拓扑关系和法向量,渲染完成建模。
55.(3-1)marching cube程序根据各个立方体网格顶点的势能值情况,在每个立方体网格中提取出对应的三角形面片;
56.(3-2)提取出的三角形信息存储在一个computebuffer中,调用unity的drawproceduralindirect函数选择对应的着色器对模型进行渲染。
57.对步骤(3)绘制完成的模型进行保存,保存时marching cube程序从缓冲区中将三角面片顶点数据读回内存,然后处理得到的顶点数组以及对应的索引数组,得到模型网格数据,完成模型保存。
58.重复上述步骤,选用不同的体骨架笔刷绘制模型的不同部分,各个部分的模型彼此融合形成所需绘制的模型。
59.如图2所示,体骨架笔刷可与以往发明中的点骨架笔刷、线骨架笔刷、面骨架笔刷配合使用进行建模。
60.为了绘制出有创意的复杂三维模型,在具体绘制的过程中用户可以选择多种不同的体骨架笔刷进行自由组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1