技术领域
[0001] 本发明涉及三维(3D)模型生成,特别是在模型是房间(例如厨房)的元件的3D计算机图形模型的情况下。本发明涉及相关联的计算机系统、方法和软件。
相关背景技术
[0002] 设计建筑物的房间(例如厨房)的过程包括通常从大量选项中选择若干不同类型的部件或元件以及决定如何相对于彼此布置这些部件。
[0003] 越来越期望在制造和组装最终的物理元件之前向用户(例如设计者或客户)显示设计。包括虚拟现实(Virtual Reality,VR)和增强现实(Augmented Reality,AR)的3D计算机图形技术在观看在开发或完成的设计时改善了用户体验。在这个意义上,3D模型或3D计算机图形模型是由计算机用于执行计算和渲染的目的的3D对象(几何数据)的数学表示。3D模型的渲染可以生成用于显示(例如在计算机监视器上)的2D图像或在3D打印的情况下的实际3D表示。
[0004] 在厨房设计的背景下,厨房单元正面(例如厨房单元门)将作为一个方便的运行示例。这种正面通常旨在按系列提供,其中,给定系列的正面都是相同类型但尺寸不同。例如,可以参考图4,其将在后面参考,以2D渲染透视图和前视图示出了正面的示例3D模型。
[0005] 通常,这样的3D模型由美术师使用3D模型设计软件(例如Blender,其为Blender Foundation开发的3D计算机图形软件工具集)单独地生成并且在Unity(Unity Technologies(Unity Software公司)开发的游戏引擎)中渲染。对于美术师来说,单独地生成给定系列的3D模型是耗时的‑典型的系列可能包括数十或数百个这样的正面。使新系列的正面可用作3D模型的交付周期可能是相当长的,并且因此影响设计者/制造商将该新系列快速且高效地投入市场的能力。
[0006] 鉴于上述内容,期望提供改进的3D模型生成系统、方法和软件。
具体实施方式
[0027] 图1是具体实施本发明的3D模型生成系统100的示意图,该系统是计算系统。系统100可以包括单个计算机C或多个计算机C1和C2,如图指示。
[0028] 系统100包括过程规则生成应用PR和模型生成应用M。虽然被指示为单独的应用,但是在某些布置中,过程规则生成应用PR和模型生成应用M可以被提供为单个组合应用。
[0029] 过程规则生成应用PR被配置为在系统100的给定计算机上运行,例如在计算机C1或C上运行,如图指示。模型生成应用M也被配置为在系统100的给定计算机上运行,例如在计算机C2或C上运行。因此,过程规则生成应用PR和模型生成应用M可以被配置为在彼此相同的计算机C上运行,或者在不同的计算机C1和C2上运行。
[0030] 参考图2和图3可以更好地理解系统100。图2是由过程规则生成应用PR在运行时间执行的方法200的流程图,图3是由模型生成应用M在运行时间执行的方法300的流程图。
[0031] 运行时间可以被理解为应用或程序运行或执行时的时间段。运行时间在程序被打开(或执行)时开始,并以程序被退出或关闭结束。当程序处于运行时间阶段时,应用可被加载到RAM(随机存取存储器)中。
[0032] 从过程规则生成应用PR开始,方法200包括步骤S2、S4、S6和S8。
[0033] 过程规则生成应用PR在步骤S2被配置为接收给定对象类型的源3D模型的部分,在步骤S4被配置为接收定义这些部分在给定对象类型的目标3D模型中的预期相对位置的位置信息,以及在步骤S6被配置为接收或指定与部分相关联的缩放规则,其用于当相应部分中的一者或多者位于其预期相对位置时缩放相应部分中的一者或多者以生成目标3D模型,使得目标3D模型具有值是输入参数的目标尺寸。
[0034] 在步骤S8,过程规则生成应用PR被配置为基于部分、位置信息和缩放规则生成过程规则,其用于基于目标尺寸的给定值生成目标3D模型。
[0035] 如图2指示,步骤S2、S4和S6可以并行执行,尽管在一些布置中它们可以顺序执行。例如,在一些布置中,可以首先在步骤S2中接收源3D模型的部分,然后可以由用户在步骤S4提供与接收的部分有关的位置信息。类似地,在一些布置中,可以首先在步骤S2中接收源3D模型的部分,然后可以由用户在步骤S6指定与接收的部分有关的缩放规则。在一些布置中,步骤S4可在步骤S2之后,步骤S6可在步骤S4之后。
[0036] 转到模型生成应用M,方法300包括步骤S10、S12和S14。
[0037] 模型生成应用M在步骤S10被配置为接收过程规则,并且在步骤S12被配置为接收目标尺寸的输入值(作为参数值)。在步骤14,模型生成应用M被配置为基于所接收的过程规则和输入值,通过过程生成来生成具有目标尺寸的输入值的目标3D模型。这样,给定对象类型的目标3D模型以给定尺寸自动生成,即,不需要美术师单独生成或构造该模型。
[0038] 当由模型生成应用M在运行时间通过过程生成来生成时,具有目标尺寸的输入值的目标3D模型可以在存储器(例如随机存取存储器或RAM)中生成作为3D模型的数据表示。在运行时间使用的该存储器可以被称为运行时间存储器。如果期望,这种数据表示可以作为数据文件输出。例如,定义目标3D模型(具有目标尺寸的输入值)的数据文件可以从模型生成应用M中输出(以供模型生成应用M或甚至另一应用稍后使用)。
[0039] 如前所述,图4是以透视图和前视图示出的给定对象类型的示例源3D模型400‑S的示意图。
[0040] 本文考虑的3D模型(计算机图形模型)可以被认为是表面模型(多边形模型、多边形网格模型、壳模型或边界模型),并且定义所涉及对象的表面而不是其实体内部。通常,这样的模型使用多边形来创建三维形状。因此,所设计的模型由形成网格(多边形网格或三角化网格)的多个多边形(或刻面)组成。各个多边形由顶点、边和面组成。通过组装不同的多边形,以六个正方形多边形的互锁将形成立方体的相同方式获得对象(在图4中为正面)的基本形状。实际上,对象可以由三角形多边形(即,具有共面顶点和直边的平面三角形)构成。因此,各个3D模型和3D模型的一部分可以被定义为多边形的网格,实际上是三角形多边形或简单的三角形。用户(或例如模型生成应用M的应用)可以例如在空间中移动边和点,以使构造中的模型变形,从而达到期望的3D形状。在这个意义上,3D模型或3D计算机图形模型是由计算机用于执行计算和渲染的目的的3D对象(几何数据)的数学表示。3D模型的渲染(“3D渲染”)可以生成用于显示(例如在计算机监视器或显示器上)的2D图像。
[0041] 根据运行示例,模型400‑S是正面的,如可以应用于厨房单元。如从模型400‑S可以看出,示例正面具有与对象类型相对应的独特设计。这里的目标3D模型是具有相同的独特设计(即,具有相同的对象类型)并且具有目标尺寸的提供值的另一3D模型。
[0042] 图5是示出了源3D模型400‑S的前视图以及具有不同目标尺寸值的三个示例目标3D模型400‑T1、400‑T2和400‑T3(也在前视图中示出)的示意图。目标3D模型400‑T1、400‑T2和400‑T3中的每一者可以一般地称为目标3D模型400‑T。图5所示的所有3D模型,即3D模型
400‑S、400‑T1、400‑T2和400‑T3,尽管具有不同的尺寸,但是彼此具有相同的独特设计,因此可以被认为都是相同的对象类型。在如在该运行示例中的正面的背景下,这些模型表示来自相同正面系列的正面。
[0043] 图6是再次示出了源3D模型400‑S的前视图的示意图,其叠加有标记为A至I的虚线框,虚线框指示可以由过程规则生成应用PR在步骤S2中接收的源3D模型400‑S的示例部分。在右手侧还示出了示例部分A、B、C和E,它们仅仅是所指示部分A至I中的一些。
[0044] 这些部分可以通过对源3D模型400‑S进行切片(或限定或定界其部分)来有效地生成,或者可以从开始作为单独部分单独地生成(例如由美术师手动地生成)以对应于预期源3D模型400‑S的所指示部分。
[0045] 如从图6中将理解的,由于源3D模型400‑S中存在的对称性,将有可能基于部分A至I生成图5的目标3D模型400‑T1、400‑T2和400‑T3中的任一者,尽管具有稍后考虑的一些缩放(和平移)。实际上,也如稍后将考虑的,由于源3D模型400‑S中存在的对称性,将有可能基于部分A、B和E生成图5的目标3D模型400‑T1、400‑T2和400‑T3中的任一者,尽管通过多次使用部分A和B并具有稍后考虑的一些缩放和旋转(和平移)。缩放、旋转和平移操作可以被认为是变换操作的类型。
[0046] 尽管过程规则生成应用PR可以被配置为在步骤S4接收位置信息和/或在步骤S6通过从储存器或从输入信号或类似信号获得缩放规则来接收缩放规则,但是在某些布置中,过程规则生成应用PR提供图形用户界面,以使得用户能够提供位置信息和/或提供或指定缩放规则。
[0047] 总的来说,这样的图形用户界面可以被配置为显示模型部分的可选相对位置,并且基于用户每个部分选择至少一个可选相对位置或每个可选相对位置选择一个部分来接收位置信息。这样的图形用户界面可以被配置为显示用于模型部分或可选相对位置的可选缩放规则,并且基于用户每个部分或每个具有相关联部分的可选相对位置选择可选缩放规则,来接收与部分/位置相关联的缩放规则。
[0048] 图7是表示可以由过程规则生成应用PR提供的图形用户界面500的示意图。
[0049] 示例图形用户界面500被配置为将可选相对位置显示为网格中的单元,网格中的单元相对于彼此的位置对应于相对位置在目标3D模型中(或源3D模型中)相对于彼此的位置。在图7的示例中,九个这样的单元被显示为以3×3网格布局的相应正方形。当然,这是一个示例,并且可以提供具有不同数量的单元的其他网格,例如3x5或7x2。
[0050] 作为具体示例,假设用户已经将图6的部分A至I与如图7指示的九个单元相关联。详细地,部分A与左上单元相关联,B与中上单元相关联,C与右上单元相关联,D与左中单元相关联,E与中心单元相关联,F与右中单元相关联,G与左下单元相关联,H与中下单元相关联,I与右下单元相关联。利用这种分配,网格中的单元相对于彼此的位置对应于源3D模型
400‑S中的部分的相对位置,并且因此对应于它们在目标3D模型中的预期相对位置(参见图
5)。
[0051] 还假设用户已经通过在相应单元中指示而将旋转与部分A至I相关联。详细地,因为已经使用了所有部分A至I,所以已经将0度旋转与部分A至I中的每一者相关联。在这种情况下,可能不需要指定旋转信息(由于不需要旋转信息或因为所应用的旋转是均匀的)。
[0052] 图形用户界面500还被配置为与网格中的单元相关联地显示所选缩放规则以将所选缩放规则与对应部分相关联。在图7的示例中,部分A与不缩放相关联(即,左右缩放=否,或LR‑N,并且上下缩放=否,或UD‑N),B与仅在水平维度上缩放相关联(即,左右缩放=是,或LR‑Y,和UD‑N),C与不缩放相关联(即,LR‑N和UD‑N),D与仅在竖直维度上缩放相关联(即,LR‑N,并且上下缩放=是,或UD‑Y),E与均匀缩放相关联(即,LR‑Y和UD‑Y),F与仅在竖直维度上缩放相关联(即,LR‑N和UD‑Y),G与不缩放相关联(即,LR‑N和UD‑N),H与仅在水平维度上缩放相关联(即,LR‑Y和UD‑N),I与不缩放相关联(即,LR‑N和UD‑N)。利用这种分配,并且回顾图6的部分,可以看出,在给定目标尺寸的对应输入值的情况下,这样缩放的部分可以用于生成图5的目标3D模型400‑T1、400‑T2和400‑T3中的任一者。
[0053] 图中的水平和竖直维度可以被认为是用于下文的第一维度和第二维度,其中第三维度是进出页面。
[0054] 在图7的示例中的缩放规则的分配中,注意部分B、D、F和H已经被分配了一维缩放规则(即,在其它两个维度中的缩放被锁定或设置为因子1)。一维缩放规则可以被认为是非均匀的缩放规则,因为第一维度与第二维之间的缩放是不同的。部分E已经被分配了二维缩放规则(即,在另一维度上的缩放被锁定或设置为因子1)。当第一维度与第二维度之间的缩放因子不同时,二维缩放规则可以被认为是非均匀的缩放规则,或者当第一维度与第二维度之间的缩放因子相同时,二维缩放规则可以被认为是均匀的缩放规则。给定正面的运行示例,假设在第三维度中不需要缩放,并且本示例将被相应地理解(尽管当其它对象被建模时,也可能需要指定在第三维度中的缩放)。部分A、C、G和I没有被分配缩放(即,在所有三个维度上的缩放被锁定或设置为因子1),并且这可以被认为是一种均匀缩放。
[0055] 因此,对于示例目标3D模型400‑T中的至少一个相对位置,缩放规则将其部分定义为缩放部分,并且被配置为在目标3D模型400‑T的第一维度、第二维度和第三维度中的至少一者中缩放该部分。例如,缩放规则被配置为(仅)在第一维度上缩放部分B和H,并且(仅)在第二维度上缩放部分D和F。回顾之前,对于正面,假设在第三维度中不期望缩放。
[0056] 类似地,对于目标3D模型400‑T中的至少一个相对位置,缩放规则将其部分定义为一维缩放部分,并定义该部分的一维缩放。如上所述,缩放规则被配置为(仅)在第一维度上缩放部分B和H并且(仅)在第二维度上缩放部分D和F。可以看出,对于其中缩放规则将其部分定义为一维缩放部分的目标3D模型400‑T中的至少一个相对位置,缩放规则将该部分定义为在目标3D模型的第一维度和第二维度中的一者上缩放,而在目标3D模型的第一维度和第二维度中的另一者上不缩放。
[0057] 对于目标3D模型400‑T中的至少一个相对位置,缩放规则将其部分定义为二维缩放部分,并定义该部分跨目标3D模型的第一维度和第二维度的二维缩放。例如,缩放规则被配置为在第一维度和第二维度上均匀地或非均匀地(取决于目标尺寸)缩放部分E。对于目标3D模型中的至少一个相对位置,缩放规则将其部分定义为未缩放部分,并将该部分定义为在目标3D模型的第一维度和第二维度(和第三维度)上不缩放。例如,缩放规则被配置为不缩放部分A、C、G和I。
[0058] 图8是可用于理解启用用于某些部分的一维缩放规则或用于启用用于不同部分的不同缩放规则的重要性的示意图。可以看出,通过将图7的缩放规则应用于图6的部分,可以生成右下角所示的目标3D模型400‑T,以表示与左手侧所示的源3D模型400‑S相同的对象类型。然而,如果源3D模型400‑S或所有部分被均匀地或以彼此相同的方式缩放,则将获得如右上角所示的失真的3D模型400‑D,并且这将不表示与源3D模型400‑S相同的对象类型。
[0059] 回顾图7,尽管在该示例中未示出,但所接收的位置信息可将至少一个所接收的部分定义为在目标3D模型400‑T中具有至少两个预期相对位置,使得至少一个所接收的部分在生成目标3D模型时被采用至少两次(例如通过克隆或复制)。这样,存储部分所需的存储容量的量被减少。
[0060] 考虑到这一点,图9是表示图形用户界面500的另一示意图,但是示出了部分到单元的不同分配(具有对旋转信息和缩放规则的关联改变)。
[0061] 在图9的示例中,假设用户已经将图6的部分A、B和E与如图指示的九个单元相关联。注意,由于源3D模型400‑S的对称性,不需要部分C、D、F、G、H和I。详细地,并且测量顺时针方向上的旋转,部分A(具有0度旋转)与左上单元相关联,部分B(具有0度旋转)与中上单元相关联,部分A(具有90度旋转)与右上单元相关联,部分B(具有270度旋转)与左中单元相关联,部分E(具有0度旋转)与中心单元相关联,部分B(具有90度旋转)与右中单元相关联,部分A(具有270度旋转)与左下单元相关联,部分B(具有180度旋转)与中下单元相关联,并且部分A(具有180度旋转)与右下单元相关联。每个单元的缩放规则分配与图7相同。
[0062] 利用这些分配,并且回顾如前图6的部分,可以看出,在给定目标尺寸的对应输入值的情况下,这样缩放的部分可以用于生成图5的目标3D模型400‑T1、400‑T2和400‑T3中的任一者。
[0063] 实际上,回顾图1和图3,模型生成应用M可以被配置为在运行时间接收目标尺寸的多个输入值,并且基于所接收的过程规则和目标尺寸的多个输入值,通过过程生成来生成具有目标尺寸的相应(不同)输入值的多个目标3D模型(例如图5的目标3D模型400‑T1、400‑T2和400‑T3)。这样,可以生成任何数量的这种目标3D模型,在运行的示例中对应于部分或甚至全部系列的正面。
[0064] 例如,当(以厨房正面为例)生成表示包括来自相同系列但具有不同尺寸的许多正面的整个厨房的3D环境时,可以通过程序生成来生成这样的多个这样的目标3D模型。所涉及的模型部分可以在存储器中存储一次,并且被多次引用,以便以存储器高效和时间高效的方式生成所需的目标3D模型的系列以及最终期望的3D环境。例如,过程地生成模型而不是从模型库下载(或以其他方式访问)它们可能更快。
[0065] 当然,图7和图9的图形用户界面500的布置是示例。图10是表示图形用户界面600的示意图,其示出了与图9中相同的到单元的部分分配,但是以与图形用户界面600旁边提供的键所指示的不同的方式。为了更好地给予用户对目标3D模型400‑T的感觉,与单元相关联的部分在单元中以图形表示,而不是如前所述通过简单的字母标记(例如A至I)来表示。图11是表示图形用户界面700的示意图,其示出了与图9和图10中相同的到单元的部分分配,但是仍然以与图形用户界面600旁边提供的键所指示的不同的方式。与单元相关联的部分在单元中以图形表示,而不是如前所述通过标记(例如A至I)表示。然而,在图11中,图形表示本身已经旋转,而不是如图10中那样数字地指示旋转。
[0066] 图12是可用于概念性地理解给定目标3D模型400‑T(在这种情况下是来自图5的目标3D模型400‑T3)可以如何由模型生成应用M基于过程规则和目标尺寸的输入值(作为参数值)生成的示意图。
[0067] 目标3D模型400‑T3被示出为在左手侧生成,然后在右手侧具有与图9至图11中的部分分配相对应的重叠部分。然后在中心示出部分本身的布局,而没有部分本身的结构的细节。
[0068] 通过比较图12和图6,例如,可以看出,基于已经定义其总尺寸的目标尺寸的输入值(作为参数值),所涉及的各个部分(或其副本或克隆或实例)已经如图9至图11指示相对于彼此定位、旋转和缩放,以生成目标3D模型400‑T3。将理解,这样的变换操作(平移、旋转和/或缩放)可以对应于更新、调整所涉及的部分或其克隆的多边形的顶点(和/或边)的位置。即,在这样的操作中可以计算顶点(和/或边)的新位置。
[0069] 可以基于算法来实现缩放,该算法例如在给定目标尺寸的输入值的情况下将角部分(图12中的A)放置在它们相对于彼此的正确位置,缩放边部分(图12中的B)直到它们与角部分相遇,然后缩放中心部分(图12中的E)以与周围部分相遇。该算法例如可以基于源3D模型400‑S的部分的尺寸和目标尺寸的输入值。
[0070] 作为具体示例,部分可以都具有定义的“标准”尺寸,例如,在第一维度和第二维度上对应于1cm乘1cm(在示例正面的情况下忽略第三维度)。模型生成应用M可以被配置为指向存储器中的部分,并且应用适当的并且在过程规则中定义的变换操作(平移、旋转、缩放),以得到目标3D模型。例如,可以在公共原点位置处输入部分并将其平移到模型坐标系或模型空间中的正确位置(并且根据需要进行旋转和/或缩放)。
[0071] 过程规则生成应用PR和模型生成应用M可以被配置为处理UV映射以及3D模型的基本几何结构。
[0072] 众所周知,UV映射是将2D图像投影到3D模型的表面上以进行纹理映射的3D建模过程。这里字母“U”和“V”表示纹理空间(或UV空间)中的2D纹理的轴(或维度),其中,“X”、“Y”和“Z”用于表示模型空间中的3D模型的轴(或维度)。UV纹理化使得构成3D模型的多边形能够被“涂”有来自2D图像的颜色(和其它表面属性),称为UV纹理图。当如本文所述将3D模型创建为多边形网格时,可为网格中的各个顶点生成UV坐标(也称为纹理坐标),以便将2D纹理映射到3D模型。
[0073] 考虑到这一点,可以认为各个部分包括(或定义)UV坐标到所涉及的部分的坐标的基于部分的映射。过程规则生成应用PR可以被配置为在运行时间基于部分、位置信息和缩放规则在过程规则中定义规则,这些规则用于基于目标尺寸的给定值,将基于部分的映射调整为UV坐标到目标3D模型的坐标(即,在模型空间中)的基于模型的映射。模型生成应用M可以被配置为在运行时间基于所接收的过程规则和(目标尺寸的)输入值来利用UV坐标到目标3D模型的坐标的基于模型的映射生成目标3D模型。
[0074] 参看图12,并且采取简化示例,单独部分A可将其左下角映射到UV空间中的0,0且将其右上角映射到UV空间中的1,1(在各个维度中将UV空间视为在0到1的范围内)。当生成目标3D模型400‑T3时,模型生成应用M可以将该基于部分的映射调整为基于模型的映射,使得对于目标3D模型400‑T3,当作为整体来看时,其左下角被映射到UV空间中的0,0,而其右上角被映射到1,1。例如,查看目标3D模型400‑T3中的左下部分A,其左下角可以映射到UV空间中的0,0,而其右上角可以映射到0.3,0.1。作为另一示例,查看目标3D模型400‑T3中的右上部分A,其左下角可以映射到UV空间中的0.7,0.9,而其右上角可以映射到1,1。这样,当目标3D模型400‑T3被渲染(使用UV纹理图)时,其可以表现为连续的、统一的3D模型而不是模型部分的分组。
[0075] 过程规则本身可以以过程规则生成应用PR和模型生成应用M所知的任何格式来生成。例如,人类可读JSON(JavaScript对象符号)格式可以与包括JSON解析器的模型生成应用M一起使用。作为另一示例,可以使用存储器就绪二进制文件格式。
[0076] 过程规则生成应用PR和模型生成应用M可以作为计算机程序的套件提供,例如在计算机可读介质上。当然,过程规则生成应用PR和模型生成应用M可以被单独提供在单独的计算机可读介质上。
[0077] 图13是计算设备900的框图,其可以用作图1的计算机C、C1、C2中的任一者,并且可以用于实现本文公开的方法中的任一者。计算设备包括处理器993和存储器994。可选地,计算设备还包括网络接口997,其用于与其他计算设备通信,例如与其他计算设备通信以连接图1的计算机C1和C2。
[0078] 例如,实施例可由这样的计算设备(例如C1和C2)的网络组成。可选地,计算设备还包括一个或多个输入机构(例如键盘和鼠标996)以及显示单元(例如一个或多个监视器995)。这些组件可经由总线992彼此连接。
[0079] 存储器994可以包括计算机可读介质,该术语可以指被配置为承载计算机可执行指令或具有存储在其上的数据结构的单个介质或多个介质(例如集中式或分布式数据库和/或相关联的高速缓存和服务器)。计算机可执行指令可以包括例如可由通用计算机、专用计算机或专用处理设备(例如一个或多个处理器)访问并使其执行一个或多个功能或操作的指令和数据。因此,术语“计算机可读存储介质”还可以包括能够存储、编码或承载用于由机器执行并且使机器执行本发明的任何一个或多个方法的指令集的任何介质。术语“计算机可读存储介质”可以相应地被采取为包括但不限于固态存储器、光介质和磁介质。以示例的方式而非限制,这样的计算机可读介质可包括非瞬态计算机可读存储介质,包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、光盘只读存储器(CD‑ROM)或其他光盘存储、磁盘存储或其他磁存储设备、闪存设备(例如固态存储设备)。
[0080] 处理器993被配置为控制计算设备并执行处理操作,例如执行存储在存储器中的代码以实现这里和权利要求中描述的方法、模块、单元和应用的各种不同功能。存储器994存储由处理器993读取和写入的数据。如本文提及的,处理器可以包括一个或多个通用处理设备,例如微处理器、中央处理单元等。处理器可以包括复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集的组合的处理器。处理器还可以包括一个或多个专用处理设备,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。在一个或多个实施例中,处理器被配置为执行用于执行本文所讨论的操作和步骤的指令。
[0081] 显示单元997可以显示由计算设备存储的数据的表示,并且还可以显示光标以及使得用户与存储在计算设备上的程序和数据之间能够交互的对话框和画面。例如,显示单元997可以显示如上所述的图形用户界面。输入机构996可以使得用户能够向计算设备输入数据和指令,例如以使得能够与如上所述的图形用户界面交互。
[0082] 网络接口(网络I/F)997可以连接到网络(例如因特网),并且可以经由网络连接到其他这样的计算设备。网络I/F 997可以控制经由网络从/向其它装置输入/输出数据。其他外围设备(例如麦克风、扬声器、打印机、电源单元、风扇、外壳、扫描仪、轨迹球等)可以包括在计算设备中。
[0083] 在以上方面中的任一者中,各种特征可以以硬件实现,或实现为在一个或多个处理器/计算机上运行的软件模块。本文对应用的引用可以被理解为对计算机应用、软件应用、计算机程序和/或软件的引用。
[0084] 本发明还提供了一种计算机程序或计算机程序产品,其包括指令,当由计算机执行时,指令使得计算机执行本文所述的任何方法/方法步骤,并且本发明提供了一种非瞬态计算机可读介质,其包括指令,当由计算机执行时,指令使得计算机执行本文所述的任何方法/方法步骤。具体实施本发明的计算机程序可以存储在非瞬态计算机可读介质上,或者它可以例如是信号的形式,例如从因特网网站提供的可下载数据信号,或者它可以是任何其它形式。
[0085] 通常,各种示例性实施例可以以硬件或专用电路、软件、逻辑或其任意组合来实现。例如,一些方面可以以硬件实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件实现,但是本发明不限于此。虽然本发明的示例性实施例的各个方面可以被例示和描述为框图、流程图或者使用一些其它图示表示,但是应当理解,作为非限制性示例,本文所述的这些方框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备或者其某种组合实现。
[0086] 由此可见,应当理解,本发明的示例性实施例的至少一些方面可在各种组件(例如集成电路芯片和模块)中实践。因此,应当理解,本发明的示例性实施例可在具体实施为集成电路的装置中实现,其中,集成电路可包括用于具体实施可配置为根据本发明的示例性实施例操作的数据处理器、数字信号处理器、基带电路和射频电路中的至少一者或多者的电路(以及可能的固件)。
[0087] 应当理解,本发明的示例性实施例的至少一些方面可以被具体实施在由一个或多个计算机或其他设备执行的计算机可执行指令中,例如一个或多个程序模块中。通常,程序模块包括例程、程序、对象、组件、数据结构等,其在由计算机或其他设备中的处理器执行时,执行特定任务或实现特定抽象数据类型。计算机可执行指令可以存储在计算机可读介质(例如硬盘、光盘、可移动存储介质、固态存储器、RAM等)上。如本领域技术人员将理解的,程序模块的功能可根据期望在各个实施例中组合或分布。另外,功能可以全部或部分地以固件或硬件等同物(例如集成电路、现场可编程门阵列(FPGA)等)来具体实施。
[0088] 在本发明中对“一个实施例”、“实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是不是每个实施例都必须包括该特定特征、结构或特性。而且,这样的短语不是必须指代相同的实施例。进一步地,当结合实施例描述特定特征、结构或特性时,认为结合其它实施例实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论是否明确描述。
[0089] 应当理解,尽管术语“第一”、“第二”等在本文中可以用于描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用于区分一个元件与另一个元件。例如,在不脱离本发明的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所用的,术语“和/或”包括一个或多个相关联的所列项目的任何和所有组合。
[0090] 本文所用的术语仅是为了描述特定实施例的目的且不旨在限制本发明。如本文所用的,单数形式“一”和“一个”旨在也包括复数形式,除非上下文另外清楚指示。还将理解,术语“包括”、“具有”和/或“包含”在本文中使用时指定所述特征、元件和/或组件的存在,但不排除一个或更多个其他特征、元件、组件和/或其组合的存在或增加。本文所用的术语“连接”涵盖两个元件之间的直接和/或间接连接。
[0091] 本发明包括本文中明确公开的任何新颖特征或特征的组合或其任何概括。当结合附图阅读时,根据前面的描述,对本发明的前面的示例性实施例的各种修改和调整对于相关领域的技术人员可以变得显而易见。然而,任何和所有修改仍将落入本发明的非限制性和示例性实施例的范围内。
[0092] 在所附权利要求的精神和范围内,根据上述公开内容,本发明可以以许多不同的方式来具体实施。
[0093] 本发明扩展到以下陈述:
[0094] S1.一种包括至少一个计算机的3D模型生成系统,其中,
[0095] 过程规则生成应用被配置为在系统的给定计算机上运行;
[0096] 模型生成应用被配置为在所述给定计算机上或在系统的另一计算机上运行;
[0097] 过程规则生成应用被配置为在运行时间:
[0098] 接收给定对象类型的源3D模型的部分;
[0099] 接收位置信息,该位置信息定义这些部分在给定对象类型的目标3D模型中的预期相对位置;
[0100] 接收或指定与部分相关联的缩放规则,其用于当相应部分中的一者或多者位于其预期相对位置时缩放相应部分中的一者或多者以生成目标3D模型,使得目标3D模型具有值是输入参数的目标尺寸;以及
[0101] 基于部分、位置信息和缩放规则生成过程规则,其用于基于目标尺寸的给定值生成目标3D模型;并且
[0102] 模型生成应用被配置为在运行时间:
[0103] 接收过程规则和目标尺寸的输入值;以及
[0104] 基于所接收的过程规则和输入值,通过过程生成来生成具有目标尺寸的输入值的目标3D模型,
[0105] 可选地其中,各个所述3D模型和3D模型的一部分被定义为多边形网格,或者是表面模型或边界模型或多边形网格模型。
[0106] S2.根据陈述S1的3D模型生成系统,其中,
[0107] 源3D模型具有源尺寸,并且缩放规则基于源尺寸和目标尺寸,可选地基于源尺寸与目标尺寸之间的差异;和/或
[0108] 过程规则生成应用被配置为在运行时间确定部分的尺寸,并且缩放规则基于部分的尺寸以及可选地基于目标尺寸;和/或
[0109] 模型生成应用被配置为在生成目标3D模型时基于过程规则(以及目标尺寸的输入值)来计算其部分或克隆的多边形的顶点的位置(在模型空间中)。
[0110] S3.根据陈述S1或S2的3D模型生成系统,其中,过程规则包括:
[0111] 对于至少一个相对位置,用于生成所涉及的部分或其克隆或缩放版本的规则;和/或
[0112] 对于至少一个相对位置,用于从储存器获得所涉及的部分并且基于所获得的部分或其克隆生成目标3D模型的规则。
[0113] S4.根据前述陈述中任一项的3D模型生成系统,其中,所接收的位置信息将至少一个所接收的部分定义为在目标3D模型中具有至少两个预期相对位置的多用途部分,使得该至少一个所接收的部分在生成目标3D模型时被采用至少两次。
[0114] S5.根据陈述S5的3D模型生成系统,其中,模型生成应用被配置为当生成目标3D模型时,关于所述多用途部分在目标3D模型中的至少两个预期相对位置在存储器中仅存储多用途部分的一个实例,并且当生成目标3D模型时至少两次参考该多用途部分。
[0115] S6.根据前述陈述中任一项的3D模型生成系统,其中,位置信息定义要应用于其部分或克隆以生成目标3D模型的变换操作,
[0116] 可选地其中,变换操作包括旋转和/或平移。
[0117] S7.根据前述陈述中任一项的3D模型生成系统,其中,对于目标3D模型中的至少一个相对位置,缩放规则将其部分定义为缩放部分,并且定义该部分或其克隆在目标3D模型的第一维度、第二维度和第三维度中的至少一者上的缩放。
[0118] S8.根据陈述S7的3D模型生成系统,其中,对于目标3D模型中的至少一个相对位置,缩放规则将其部分定义为一维缩放部分,并且定义该部分或其克隆跨目标3D模型的第一维度和第二维度的一维缩放。
[0119] S9.根据陈述S8的3D模型生成系统,其中,对于其中缩放规则将其部分定义为一维缩放部分的目标3D模型中的至少一个相对位置,缩放规则将该部分或其克隆定义为在目标3D模型的第一维度和第二维度中的一者上缩放,而在目标3D模型的第一维度和第二维度中的另一者上不缩放。
[0120] S10.根据陈述S7至S9中任一项的3D模型生成系统,其中,对于目标3D模型中的至少一个相对位置,缩放规则将其部分定义为二维缩放部分,并且定义该部分或其克隆在目标3D模型的第一维度和第二维度中的二维缩放。
[0121] S11.根据陈述S7至S10中任一项的3D模型生成系统,其中,对于目标3D模型中的至少一个相对位置,缩放规则将其部分定义为未缩放部分,并且将该部分或其克隆定义为在目标3D模型的第一维度和第二维度上不缩放。
[0122] S12.根据前述陈述中任一项的3D模型生成系统,其中,
[0123] 所接收的部分分别包括UV坐标到所涉及的部分的坐标的基于部分的映射;
[0124] 过程规则生成应用被配置为在运行时间基于部分、位置信息和缩放规则在所述过程规则中定义规则,这些规则用于基于目标尺寸的给定值,将基于部分的映射调整为UV坐标到目标3D模型的坐标的基于模型的映射;以及
[0125] 模型生成应用被配置为在运行时间基于所接收的过程规则和输入值来利用UV坐标到目标3D模型的坐标的基于模型的映射生成目标3D模型。
[0126] S13.根据前述陈述中任一项的3D模型生成系统,其中,模型生成应用被配置为在运行时间:
[0127] 接收目标尺寸的多个输入值;以及
[0128] 基于所接收的过程规则和目标尺寸的多个输入值,通过过程生成来生成具有目标尺寸的相应输入值的多个目标3D模型。
[0129] S14.根据前述陈述中任一项的3D模型生成系统,其中,过程规则生成应用被配置为在运行时间提供图形用户界面,图形用户界面被配置为接收定义部分的预期相对位置的位置信息以及基于用户输入与部分相关联的缩放规则。
[0130] S15.根据陈述S14的3D模型生成系统,其中,图形用户界面被配置为:
[0131] 显示模型部分的可选相对位置,并且基于用户每个部分选择至少一个可选相对位置或每个可选相对位置选择一个部分来接收位置信息;并且
[0132] 显示用于模型部分或可选相对位置的可选缩放规则,并且基于用户每个部分或每个具有相关联部分的可选相对位置选择可选缩放规则,来接收与部分相关联的缩放规则。
[0133] S16.根据陈述S14或S15的3D模型生成系统,其中,图形用户界面被配置为将可选相对位置显示为网格中的单元,网格中的单元相对于彼此的位置对应于相对位置在目标3D模型中相对于彼此的位置。
[0134] S17.根据陈述S14至S16中任一项的3D模型生成系统,其中,图形用户界面被配置为与网格中的单元相关联地显示所选择的缩放规则,以将所选择的缩放规则与对应部分相关联。
[0135] S18.一种计算机程序的3D模型生成套件,包括:
[0136] 过程规则生成应用;以及
[0137] 模型生成应用,
[0138] 其中,
[0139] 过程规则生成应用被配置为在运行时间:
[0140] 接收给定对象类型的源3D模型的部分;
[0141] 接收位置信息,该位置信息定义这些部分在给定对象类型的目标3D模型中的预期相对位置;
[0142] 接收或指定与部分相关联的缩放规则,其用于当相应部分中的一者或多者位于其预期相对位置时缩放相应部分中的一者或多者以生成目标3D模型,使得目标3D模型具有值是输入参数的目标尺寸;以及
[0143] 基于部分、位置信息和缩放规则生成过程规则,其用于基于目标尺寸的给定值生成目标3D模型;并且
[0144] 模型生成应用被配置为在运行时间:
[0145] 接收过程规则和目标尺寸的输入值;以及
[0146] 基于所接收的过程规则和输入值,通过过程生成来生成具有目标尺寸的输入值的目标3D模型,
[0147] 其中,各个所述3D模型和3D模型的一部分被定义为多边形网格。
[0148] S19.一种计算机可读介质,其上存储有陈述S18的计算机程序的3D模型生成套件的应用中的一者或两者。
[0149] S20.一种计算机实现的3D模型生成方法,包括:
[0150] 接收给定对象类型的源3D模型的部分;
[0151] 接收位置信息,该位置信息定义这些部分在给定对象类型的目标3D模型中的预期相对位置;
[0152] 接收或指定与部分相关联的缩放规则,其用于当相应部分中的一者或多者位于其预期相对位置时缩放相应部分中的一者或多者以生成目标3D模型,使得目标3D模型具有值是输入参数的目标尺寸;
[0153] 基于部分、位置信息和缩放规则生成过程规则,其用于基于目标尺寸的给定值生成目标3D模型;
[0154] 接收目标尺寸的输入值;以及
[0155] 基于过程规则和输入值,通过过程生成来生成具有目标尺寸的输入值的目标3D模型,
[0156] 其中,各个所述3D模型和3D模型的一部分被定义为多边形网格。
[0157] S21.一种包括至少一个计算机的过程规则生成系统,其中,
[0158] 过程规则生成应用被配置为在系统的给定计算机上运行;并且
[0159] 过程规则生成应用被配置为在运行时间:
[0160] 接收给定对象类型的源3D模型的部分;
[0161] 接收位置信息,该位置信息定义这些部分在给定对象类型的目标3D模型中的预期相对位置;
[0162] 接收或指定与部分相关联的缩放规则,其用于当相应部分中的一者或多者位于其预期相对位置时缩放相应部分中的一者或多者以生成目标3D模型,使得目标3D模型具有值是输入参数的目标尺寸;以及
[0163] 基于部分、位置信息和缩放规则生成过程规则,其用于基于目标尺寸的给定值生成目标3D模型;
[0164] 其中,各个所述3D模型和3D模型的一部分被定义为多边形网格。
[0165] S22.一种过程规则生成应用,其被配置为在运行时间:
[0166] 接收给定对象类型的源3D模型的部分;
[0167] 接收位置信息,该位置信息定义这些部分在给定对象类型的目标3D模型中的预期相对位置;
[0168] 接收或指定与部分相关联的缩放规则,其用于当相应部分中的一者或多者位于其预期相对位置时缩放相应部分中的一者或多者以生成目标3D模型,使得目标3D模型具有值是输入参数的目标尺寸;以及
[0169] 基于部分、位置信息和缩放规则生成过程规则,其用于基于目标尺寸的给定值生成目标3D模型;
[0170] 其中,各个所述3D模型和3D模型的一部分被定义为多边形网格。