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

用于通过使用虚拟3D网格和手绘草图来设计3D对象的方法与流程

2022-06-22 15:25:32 来源:中国专利 TAG:

用于通过使用虚拟3d网格和手绘草图来设计3d对象的方法
技术领域
1.本发明属于3d内容创建领域。本发明涉及一种通过使用虚拟3d网格和手绘草图来设计3d对象的方法。本发明特别适用于在沉浸式环境(增强或虚拟现实)中创建3d对象,并且尤其适用于增强现实,但它也可以应用于使用标准设备(例如,台式电脑、笔记本电脑或移动设备)创建3d对象。


背景技术:

2.在3d内容创建领域,视频游戏“minecraft”的出现使得无需任何计算机辅助设计先验知识即可直观地创建3d对象成为可能。在这个游戏中,3d对象由基于体积元素(体素)的立方体组合而成。用户被置于虚拟世界中,并且他可以通过添加立方体并向立方体添加纹理来创建他自己的结构。
3.在名为“minecraft earth”的变体(它适用于具有摄像头的移动设备(手机、平板电脑))中,用户可以在增强现实中(即,使用现实作为背景)来创建3d对象。用户转动对象,这简化了创建过程。
4.但是,这些对象的渲染非常立体,即使使用非常小的立方体也是如此。因此,它可能不适合创建具有弯曲形状的对象。事实上,日常生活中的大多数对象都没有锐边,而是具有曲边。
5.在dassault syst
è
mes的“3dexperience”平台上运行的应用“xshape”面向更高级的用户。从一个非常简单的形状(例如,立方体)开始,用户可以使用直观的工具来控制形状,例如相对于位于边、面或顶点上的控制点进行拖动。
6.为了避免逐个地操作边、面或顶点,该应用提供了一个有趣的功能,称为“对齐笼点(align cage points)”,它使用曲线来修改现有体积。用户围绕3d对象画曲线,并且根据曲线修改3d对象的形状。
7.所得的形状平滑且可编辑。但是,只有经过培训的设计人员才能使用如此复杂的应用。另外,根据用户体验,必须执行几个步骤,并且步骤链有几个中断,即使对于有经验的用户也是如此。
8.事实上,使用这种范式修改带有曲线的体积包括:
[0009]-创建体积
[0010]-通过以下操作创建曲线
[0011]
ο选择平面,
[0012]
ο在平面上创建点,
[0013]
ο编辑平面上的点以创建接近用户意图的曲线
[0014]-选择将受曲线影响的体积的部分。
[0015]
最终,体积会沿着曲线变形,但结果可能不会那么接近用户的原始意图,并且通常需要进一步调整。
[0016]
因此,需要获得一种用于设计具有曲边的3d对象的计算机实现方法,该方法对大
多数用户来说是直观的,并且使得能够尽可能快地创建新形状。


技术实现要素:

[0017]
本发明的一个目的是一种用于在场景中设计3d对象的计算机实现的方法,包括以下步骤:
[0018]
a)在所述场景中提供立方体的3d网格,立方体的所述3d网格控制细分曲面,所述细分曲面对3d对象进行建模;
[0019]
b)在立方体的网格的至少一个立方体的至少一个外表面上接收曲线的用户笔划;
[0020]
c)确定与外表面上的曲线相交的第一组立方体、在垂直于外表面的方向上与第一组立方体相邻的第二组立方体、以及称为相交立方体的第三组立方体,所述第三组立方体包括第一组立方体和第二组立方体;
[0021]
d)对于每个相交立方体,通过移动所述相交立方体的至少一个顶点以便拟合曲线来使相交立方体变形,从而使细分曲面变形。
[0022]
有利地,该方法包括在步骤c)之后执行的步骤c’),所述步骤c’)包括以下子步骤:
[0023]-计算外表面的平面中相交立方体两侧上的3d网格的立方体数量,
[0024]-从所述场景中移除具有最低立方体数量的立方体组。
[0025]
有利地,步骤d)包括过滤相交立方体的顶点以便仅移动不与非相交立方体的顶点共享的顶点。
[0026]
有利地,步骤d)包括在第二组立方体上传播所述曲线,并且移动第二组立方体的顶点以便拟合传播的曲线。
[0027]
有利地,通过在曲线上应用顶点的正交投影来移动顶点。
[0028]
有利地,该方法包括:
[0029]-计算每个顶点与曲线之间的最短距离;
[0030]-如果到曲线的最短距离对于至少两个顶点相等,则校正所述顶点之一的位置以便具有细分曲面的连续性。
[0031]
有利地,步骤a)包括检测用户交互,该用户交互包括通过在按住定点元件(pointing element)的同时悬停在3d对象上方来连续添加或移除第一组立方体和/或第二组立方体中的立方体。
[0032]
有利地,场景位于沉浸式环境中。
[0033]
有利地,通过使用catmull-clark方案来计算细分曲面。
[0034]
有利地,立方体的3d网格和细分曲面被叠加,以部分透明的方式显示3d网格。
[0035]
有利地,方法包括:接收包括在场景中绘制线的用户输入,通过计算细分曲面关于线的对称性来完成3d对象的设计。
[0036]
本发明还涉及一种计算机程序产品,其包括使计算机系统执行上述方法的计算机可执行指令。
[0037]
本发明还涉及一种非暂时性计算机可读数据存储介质,包含使计算机系统执行上述方法的计算机可执行指令。
[0038]
本发明还涉及一种计算机系统,该计算机系统包括耦合到存储器的处理器,该存储器存储使计算机系统执行上述方法的计算机可执行指令。
附图说明
[0039]
本发明的附加特征和优点将根据以下结合附图的描述变得明显:
[0040]-图1至图17图示了根据本发明的方法的不同步骤;
[0041]-图18至图21图示了处理重合顶点的步骤;
[0042]-图22至图40图示了使用根据本发明的方法的对象的设计;
[0043]-图41和图42图示了适合于执行根据本发明的不同实施例的方法的相应计算机系统的框图。
具体实施方式
[0044]
结合图1至17公开了本发明的方法。
[0045]
在本发明方法的第一步a)中,在场景中提供立方体cb的3d网格,如图1所示。每个立方体对应于体素。用户可以在场景中放置立方体cb的完整的3d网格并将其锚定在场景中。立方体cb的3d网格的尺寸可以由用户初始设置,以及每个立方体的尺寸可以由用户初始设置。也可以使用网格的默认尺寸和每个立方体的默认尺寸。
[0046]
立方体cb的3d网格控制细分曲面,该曲面对3d对象建模。立方体cb的3d网格是细分曲面的控制笼(control cage)。
[0047]
用户可以从立方体cb的3d网格开始,添加或删除单个立方体或一组立方体。为此,用户悬停在立方体cb的3d网格上方,同时保持定点元件,以连续添加或移除立方体。
[0048]
当定点元件被保持时(在一层的深度中),用户可以仅移除与光标相交的立方体。他还可以按“列”删除立方体:列是一系列立方体,它们垂直于光标所指向的立方体的外表面(在多个层的深度中)而对齐。
[0049]
用户可以在应用的上下文菜单中定义删除一层或多层中的立方体。
[0050]
可替代地,用户可以从“空网格”开始,即与场景中3d网格的足迹相对应的2d阵列,而不是从完整网格开始。2d阵列的尺寸以及每个方块的大小最初可以由用户设置。也可以使用默认尺寸。然后,用户通过在保持定点元件的同时连续悬停在立方体网格上来添加立方体。
[0051]
在另一个替代方案中,3d网格可能只是部分完整的,包含3d对象的粗略近似(在前面的步骤中获得,例如3d体素对象导入、3d场景重构,通过使用视觉算法或通过使用机器学习)。
[0052]
因此,无论是从完整网格还是从空网格开始,创建立方体的集合都很简单。立方体像在大多数流行程序中一样连续创建,因此它非常用户友好。立方体在网格内对齐,并且只能作为现有立方体的邻居添加,或直接添加到地面上显示的网格上。这有助于围绕所期望的形状创建立方体壳。
[0053]
在优选实施例中,立方体cb的3d网格和由立方体cb的3d网格控制的细分曲面是叠加的。立方体cb的3d网格以部分透明的方式显示,以便用户可以轻松控制立方体cb的3d网格和细分曲面。
[0054]
在该步骤之后,对3d对象建模的细分曲面是粗糙的体积,而不是立方体(rather cubical),具有锐边。
[0055]
图1图示了立方体cb的3d网格或其子元素。
[0056]
在该方法的第二步骤b)中,用户在立方体cb的网格的至少一个立方体的至少一个外表面上绘制曲线cr。该方法的主要思想是雕刻可变形立方体(体素),可变形立方体用作细分曲面的控制笼。
[0057]
立方体的3d网格不仅仅是一个边界体积。它还用作浮架(scaffold),是用户可以直接在其上进行绘制的绘图支持,允许快速准确地放置3d笔划。
[0058]
可以对用户笔划进行美化和平滑处理,从而产生干净的3d曲线cr。根据本领域技术人员已知的技术,可以通过对曲线进行内插来进行美化。
[0059]
每次曲线cr已被绘制时都会计算细分曲面。在该方法的步骤c)中,确定与外表面上的曲线cr相交的第一组立方体。为了确定外表面,可以在网格的不同面中确定哪一个面离屏幕平面最近,例如通过计算平面法线的点积。
[0060]
还确定了第二组立方体,该第二组立方体在垂直于外表面的方向上与第一组立方体相邻,即在垂直于外表面的方向上与第一组立方体连续地连接。可以认为,关于外表面的平面,第一组立方体由根据第一层的曲线定义,并且第二组立方体由根据更深层的曲线定义。第二组立方体可以在深度方向上包括一层或多层。
[0061]
第三组立方体,称为相交立方体(intersected cubes)ic,包括第一组立方体和第二组立方体,如图2所示。
[0062]
相交立方体ic中的每个立方体都有其在场景中的坐标,因此很容易确定顶点的位置。顶点的位置被改变以便匹配曲线cr,这使细分曲面变形(步骤d))。
[0063]
因此,一旦抬起触笔或手指,细分曲面就会在上次创建的曲线被绘制后立即匹配上次创建的曲线。这种设计3d对象的方式接近粘土建模的情况。一种理想的方法确实是从粘土建模(广泛用于汽车工业)或木工技术中汲取灵感来虚拟雕刻3d对象。这些技术广泛用于汽车行业,以便雕刻3d模型。
[0064]
要移动的顶点vt的确定取决于相交立方体ic相对于立方体cb的3d网格的位置。
[0065]
曲线cr可以绘制在位于立方体cb的3d网格外围处的立方体上。在相交立方体ic不在立方体cb的3d网格的外围处的情况下,如图3所示,从3d场景中移除就立方体数量而言具有最低立方体数量ln的立方体组,并且保留具有最高立方体数量hn的立方体组用于对象的设计。该分离可以通过邻居搜索计算来实现。
[0066]
从场景中移除具有最低立方体数量ln的立方体组也给人雕刻的印象。图4示出了没有最小部分的立方体cb的3d网格。请注意,“削去”体积的这种自动方法意味着使雕刻过程更快,没有任何中断,以鼓励用户逐步完善模型。可替代地,可以让用户选择在绘制曲线cr后保留哪个部分(例如,使用菜单、手势或部分“撤消(undo)”命令)。
[0067]
一旦最小的部分被移除,相交立方体ic就可以被变形,以便适应曲线cr。图5图示了相交立方体ic的所有顶点vt。并非它们中的全部都应移动。因此,步骤d)包括过滤相交立方体ic的顶点vt以便仅移动不与非相交立方体nic的顶点共享的顶点vt。与非相交立方体nic共享的相交立方体ic的顶点vtn必须存在于网格中,并且应从要移动的顶点列表中移除,如图6和图7所示。仅应移动由圆圈表示的顶点;用十字表示的那些顶点应该保持静止。
[0068]
每个相交立方体ic的变形是通过以下方式来进行的:对于属于外表面的每个顶点,计算绘制的曲线的最近对应点。通过在曲线cr上应用顶点vt的正交投影来移动顶点vt,如图8和图9所示。顶点可以移动到曲线cr的末端之一,特别是当绘制的曲线的最近的对应
点是曲线cr的末端之一。
[0069]
在图9和图10中图示了外表面的所得的被移动的顶点vt。
[0070]
然后,曲线在第二组立方体ac上传播,如图11所示。传播包括在与刚刚移动的立方体直接相邻的相邻面上的曲线cr的复制。第二组立方体ac的顶点也被移动,以便拟合传播的曲线。位移的方式与外表面的顶点相同。
[0071]
顶点被移动,并且曲线被传播,直到一列的所有立方体都被变形,如图12到图16所示。术语“列”是指垂直于第一组立方体中的立方体的外表面对齐的一组个体立方体。
[0072]
由于细分曲面由立方体的3d网格控制,因此通过使立方体变形来修改细分曲面的形状。
[0073]
在优选实施例中,通过使用catmull-clark方案来计算对3d对象建模的细分曲面。catmull-clark方案应用于由立方体3d网格变形而得到的控制网(control mesh)。所有边都初始化为锐边,但移动的顶点所属的边被重新定义为平滑边。可以使用其他近似方案,例如doo-sabin方案。
[0074]
细分曲面是连续的、可编辑的,具有干净的结果拓扑,并且没有多边形。因此,细分曲面可以按原样使用,或可以导出到其他cad工具以供进一步编辑。
[0075]
立方体和变形的立方体本质上具有高度结构化的几何形状,其中,它们的面和角是平行的,因此所得的子曲面容易加工,即它可以通过增材制造或减材制造来生产。
[0076]
建模的3d对象在这种程度上也是多功能的:它的锐边和平滑边混合,这允许创建有机形状以及创建表面,例如由工业设计师创建的表面。
[0077]
图18到图21图示了处理重合顶点的步骤。实际上,一些顶点(vt1、vt2)可能会投影在曲线的同一点上。例如,这种情况可能出现在曲线cr的末端处,如图18所示。
[0078]
我们可以看到,在图19上以及图20的放大窗口中,将立方体的两个顶点移动到同一点打开细分曲面。
[0079]
因此,如果至少两个顶点(vt1、vt2)到曲线cr的最短距离相等,则执行以下子步骤:
[0080]-计算每个顶点(vt1、vt2)与曲线cr之间的最短距离;
[0081]-校正所述顶点(vt1、vt2)之一的位置以便具有细分曲面的连续性。
[0082]
细分曲面的连续性可以通过校正重合顶点(vt1、vt2)之一的位置来获得,即在顶点平面中,例如沿垂直方向,如图21所示。它也可以确保两个顶点彼此之间的距离最小。
[0083]
可替代地,为了避免重合顶点,可以确保顶点移动不超过某个值,例如立方体的边的一半。此解决方案更稳定,因为它避免了顶点的大位移,但它不一定保留适合曲线的形状。
[0084]
在另一个实施例中,用户可以连续添加新的立方体,这使细分曲面变形。用户在保持定点元件的同时悬停在3d对象上方。当一个立方体被添加到变形的立方体时,新的立方体在适应它旁边的变形的同时添加了锐边。这允许像雕刻家一样添加材料,以便对其进行返工并更接近所期望的3d形状。对于移除立方体也可以这样做。
[0085]
本发明的方法可以在虚拟现实环境(虚拟现实vr)或增强现实(增强现实ar)中实现。在优选实施例中,出于以下原因,可以使用基于平板电脑的ar解决方案而不是vr:
[0086]-ar的非隔离特性:
[0087]
ο用户在设计对象的同时仍与环境接触,并可以使用环境作为背景和灵感;
[0088]
ο其他用户甚至可以查看设计者以及通过看设计者的屏幕、或者甚至他们自己的屏幕来查看正在设计的3d对象(如果应用的创建考虑了多用户ar体验,则所有参与者都有自己的场景的增强视图);
[0089]-与虚拟现实相比减少了头痛;
[0090]-ar应用现在很普遍;
[0091]-侏儒苹果的“arkit”或谷歌的“arcore”之类的最新一代框架,让手持手机或平板电脑上的ar体验触手可及,而不必使用繁琐的vr硬件;
[0092]-使用笔和平板电脑感觉自然,并通过将笔的移动限制在平板电脑平面上借助触觉反馈提供准确性。
[0093]
请注意,ar和vr二者都让用户在模型周围走动进行雕刻,从而将3d建模与3d场景导航交互分离。用户可以专注于创建3d模型,而不必应对如何修改虚拟相机的视点以找到最佳角度。大多数情况下,以实际比例显示模型还可以使建模过程更快且更容易。
[0094]
图22至图40图示了在ar中使用根据本发明的方法设计对象(扶手椅)。
[0095]
图22:场景中提供了立方体的3d网格。立方体的3d网格和由立方体的3d网格控制的细分曲面叠加。
[0096]
图23和图24:用户选择“剪切”命令,并根据垂直方向在所有相邻立方体上绘制笔划,这从场景中移除立方体数量最少的部分(移除立方体列)。
[0097]
图25和图26:用户在另一组立方体上重复“剪切”命令。
[0098]
图27到图30:用户选择“移除立方体”命令,并且在立方体上绘制曲线,这只移除与曲线相交的立方体。
[0099]
图31到图34:用户在另一组立方体上选择“剪切”命令,以便设计扶手椅的脚(锐边)。
[0100]
图35:用户选择“变形”命令,以便设计扶手椅靠背(平滑边)。用户在与曲线相交的第一组立方体上绘制曲线的笔划,这用作绘图支持。
[0101]
图36:第一组立方体以及在垂直于外表面的方向上与第一组立方体相邻的第二组立方体被变形,以便与曲线拟合。细分曲面相应地被变形。
[0102]
图37:迭代变形,以便设计扶手(平滑边)。
[0103]
图38和图39:用户选择“对称”命令。他在场景中画一条线,然后通过计算细分曲面关于线的对称性来完成3d对象的设计。由于定义每个立方体的索引是已知的,因此找到其对称立方体很简单。每个变形的立方体必须使其对称立方体正确变形。为此,我们需要:
[0104]-修改对称立方体的顶点的位置;
[0105]-修改平滑边中所涉及的顶点列表;
[0106]-计算场景中现有碎片(piece)的数量。因此,如果计算细分曲面的对称性将第二碎片添加到场景中,则会发送错误消息。
[0107]
图40:3d对象的设计完成。
[0108]
上述示例确认用户体验是流畅的,没有任何中断。它还可以避免点击太多次。可以快速创建新形状。
[0109]
本发明的方法可以由适当编程的通用计算机执行,可能包括计算机网络,将适当
的程序以非易失性形式存储在计算机可读介质上,例如硬盘、固态磁盘或cd-rom并使用其微处理器和存储器执行所述程序。
[0110]
本发明的方法可以通过适当编程的通用计算机或计算机系统来执行,可能包括计算机网络,将适当的程序以非易失性形式存储在计算机可读介质上,例如硬盘、固态盘或cd-rom并使用其微处理器和存储器执行所述程序。
[0111]
参照图41描述了适合于执行根据本发明示例性实施例的方法的计算机。在图24中,计算机包括中央处理单元(cpu)p,其在运行可执行程序(即,一组计算机可读指令)的同时执行上述方法步骤,可执行程序存储在诸如ram mem1或rom mem2或硬盘驱动器(hdd)mem3、dvd/cd驱动器mem4等存储器设备中,或远程地存储。此外,定义混凝土钢筋的一个或多个计算机文件也可以存储在一个或多个存储器设备mem1至mem4上,或远程地存储。
[0112]
要求保护的发明不受存储本发明过程的计算机可读指令的计算机可读介质的形式的限制。例如,指令和文件可以存储在cd、dvd、闪存、ram、rom、prom、eprom、eeprom、硬盘或任何其他与计算机通信的信息处理设备(例如,服务器或计算机)中。程序可以存储在相同的存储器设备或不同的存储器设备上。
[0113]
此外,适用于执行本发明方法的计算机程序可以作为实用程序、后台守护程序或操作系统的组件或其组合提供,结合cpu cp和诸如microsoft vista、microsoft windows 8、unix、solaris、linux、apple mac-os和本领域技术人员已知的其他系统之类的操作系统来执行。
[0114]
cpu p可以是美国英特尔公司的xenon处理器或美国amd公司的opteron处理器,也可以是其他类型的处理器,例如美国freescale公司的freescale coldfire、imx或arm处理器。可替代地,cpu可以是诸如来自美国英特尔公司的core2 duo之类的处理器,或者可以在fpga、asic、pld上实现或使用分立逻辑电路实现,如本领域普通技术人员将认识到的。此外,cpu可以被实现为协同工作以执行上述本发明过程的计算机可读指令的多个处理器。
[0115]
图41中的计算机cpt还包括网络接口ni,例如来自美国英特尔公司的英特尔以太网pro网络接口卡,以用于与网络接合,例如局域网(lan)、广域网(wan)、互联网等。该方法可以通过web应用远程实现。
[0116]
计算机还包括显示控制器dc,例如来自美国nvidia公司的nvidia geforce gtx图形适配器,以用于与显示器dy接合,例如惠普hpl2445wlcd监视器。通用i/o接口if与键盘kb和定点设备pd接口,例如滚球、鼠标、触摸板等。显示器、键盘、用于触摸模式的敏感表面和定点设备,连同显示控制器和i/o接口,形成图形用户界面,由用户用来提供输入命令(例如,移动指针)并由计算机显示三维场景和图形工具。
[0117]
在增强现实中,可以通过将手持设备用作计算机cpt来执行本发明的方法。手持设备配备有摄像头,以便将被设计的对象叠加在由摄像头拍摄的真实场景中。
[0118]
可替代地,在ar中,可以使用一副混合现实头戴式智能眼镜sg,例如microsoft hololens。显示3d对象,同时通过手检测或至少一个遥控器rc提供命令。
[0119]
在vr中,可以使用虚拟现实耳机hs,例如oculus quest,以便向用户显示3d对象和3d场景。显示3d对象,同时通过手检测或至少一个遥控器rc提供命令。
[0120]
磁盘控制器dkc将hdd mem3和dvd/cd mem4与通信总线cbs连接起来,通信总线cbs可以是isa、eisa、vesa、pci或类似物,用于互连计算机的所有组件。
[0121]
因为这些特征是已知的,所以这里为了简洁起见省略了对显示器、键盘、定点设备以及显示控制器、磁盘控制器、网络接口和i/o接口的一般特征和功能的描述。
[0122]
图42是适合于执行根据本发明的不同示例性实施例的方法的计算机系统的框图。
[0123]
在图42中,包括被设计的3d对象的可执行程序和计算机文件存储在连接到服务器sc的存储器设备db上。服务器的存储器设备和整体架构可以与上面参考图41讨论的相同,除了服务器中可能缺少显示控制器、敏感表面、显示器、键盘和/或定点设备。
[0124]
服务器sc然后通过网络nw连接到管理员系统ads和最终用户计算机euc。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献