层次个性化的制作方法

文档序号:6348280阅读:132来源:国知局
专利名称:层次个性化的制作方法
层次个性化
背景技术
顾客日益要求对其所购买的产品进行个人控制。例如,多年来,计算机零售商已经向顾客提供了指定他们想要购买的具体的计算机组件的能力。应特定顾客的定制指令,零售商制造具有顾客所指定的组件的单个计算机,随后将定制组建的计算机发货给顾客。这是现在被称为“批量定制”的早期示例一高度可定制的批量生产的产品,其数量少至一个。 批量定制正被越来越广泛地推广至各类产品。计算机采购者主要关注于他们所购买的计算机的内部功能,而不是它们的外观。 因此,在完成购买之前,对于计算机采购者而言,所定制的计算机看起来怎么样,相对来说不那么重要。但是,对于美观是顾客购买决定的主因的许多其它产品而言(例如首饰),却不是这样。传统上,产品分类和网站已经能够为顾客提供所供产品的高质量图像。因此,传统上, 在购买之前为顾客提供非定制产品的单个图像就足够了。即使已经定制了产品,它们仍不是高度可定制的。例如,在一些情况下,可以从所供颜色的小范围选择中选择产品颜色。在这种情况下,传统分类和网站要么伴随调色板显示产品的单个图像,要么一个图像一个颜色地显示产品的分开的多个图像。这种技术对于非定制产品或者具有有限定制能力的产品来说可能是足够的。但是,这种技术不足以在顾客完成购买决定之前向顾客传递高度定制的产品的外观的精确理解。如果产品的最终外观对于顾客非常重要,那么,观看最终产品的反应了所有定制的精确表示的能力的缺乏将使得顾客不愿意购买该产品。虽然使顾客在购买前能够观看产品的用于评估的定制版本的一种方式是向顾客的计算机提供用于呈现产品的任意可能的定制版本的软件,但是利用现有技术来这么做将要求为每个顾客计算机配置强大的CAD软件,该CAD软件能够根据三维CAD模型来产生产品的逼真的二维呈现图(rendering)。如果有,很少顾客愿意引起这种成本和花费。因此,需要用于快速产生并显示高度可定制的产品的宽范围的高质量图像的改进技术。发明概述一种计算机系统包括诸如一件首饰之类的对象的三维模型。模型被划分成多个层,每个层包含对象的一个或多个组件。每层与一个或多个属性类型相关联,每个属性类型与相应的多个可能的属性值相关联。系统利用每个可能的属性类型和每个可能的属性值针对该类型和层预呈现每个层。所得到的层呈现图可彼此组合来产生整个对象的个性化呈现图,而无需预呈现属性值的所有可能的组合。呈现层和最终完整对象个性化的责任可以以各种方式在客户机和服务器之间划分以提高效率。例如,在本发明的一个实施例中,计算机实施方法与对象的三维计算机模型一起使用。所述模型包括多个层,其中所述多个层的每层包括所述模型中的至少一个相应组件。 所述多个层的每层与至少一个属性相关联。所述方法包括(A)利用所述至少一个属性的多个值的每一个呈现所述多个层的每层,以产生多个层呈现图;(B)接收针对指定了多个属性值的个性化对象的第一呈现图的第一请求;(C)从所述多个层呈现图中选择与所指定的多个属性值相对应的层呈现图的子集;以及(D)对所选择的层呈现图的子集进行组合以产生个性化对象的第一呈现图。


图1示出了根据本发明的一个实施例的戒指的三维模型的二维呈现图;图2是根据本发明的一个实施例的代表诸如戒指之类的对象的对象模型的示图;图3示出了根据本发明的一个实施例的利用不同属性值的对象模型的各层的呈现图;图4是根据本发明的一个实施例的用于创建对象的层的呈现图的方法的流程图;图5是根据本发明的一个实施例的用于执行图4的方法的系统的数据流示图;图6图示了根据本发明的一个实施例的组合四层的呈现图来产生对象的定制视图的示例;图7是根据本发明的一个实施例的用于组合多层的呈现图来产生整个看来的对象的呈现图的系统的数据流示图;图8是根据本发明的一个实施例的由图7所示的系统执行的方法的流程图;图9图示了根据本发明的一个实施例的利用参考对象来指示所呈现的对象的尺寸;图10图示了根据本发明的一个实施例的对象的“飞越(fly-by) ”视图;图11图示了根据本发明的一个实施例的包含阴影的水平投影与对象的一个层的呈现图的组合;以及图12A-D图示了根据本发明实施例的各种形状的组件的呈现图与固定形状的组件的呈现图的组合。发明详述本发明的实施例涉及用于有效地从对象(例如戒指或者另一件首饰)的3D(3维) 模型产生对象的组件化的2^2维)栅格化视图。3D CAD (计算机辅助设计)模型被用来表示对象完整的3D几何图形。可根据要求将对象分解成组件或部件。例如,戒指可能具有戒指腿、中央石材、侧部石材以及相关镶嵌底座。为了使戒指个性化,用户可能希望改变中央石材或侧部石材的类型,或者戒指腿、中央石材和侧部石材镶嵌底座的金属类型。本发明实施例通过构建、标记以及处理对象的3D CAD模型以产生易处理的2D视图集(可根据要求将该2D视图集组合成图像逼真的个性化的对象视图的较大的组合集),从而使戒指或其它对象变得个性化。更具体地,根据本发明实施例,设计人员或者其它用户可例如通过使用标准CAD 软件来创建对象的3D模型。参考图1,其示出了对象(该示例中为戒指)的三维模型100 的二维呈现图的示例。参考图2,其图示了代表诸如戒指之类的对象的对象模型200的示图。图1中所示的具体的戒指对象呈现图100具有8个组件lOh-g 戒指腿102a、中央石材镶嵌底座金属102b、中央石材102c、第一对侧部石材102d-e、以及第二对侧部石材 102f-g。类似地,图2中所示的相应的对象模型200包含组件20h-g,它们对应于图1的呈现图100中的组件lOh-g。虽然图2中所示的具体的对象模型200包含7个组件202a-g, 但这仅仅是示例;对象模型可包含任意数量的组件。可以以任意方式选择具体的对象模型中的组件。例如,可通过网站利用计算机将模型分解成对于诸如个性化之类的特定领域相关的组件。然而,可以以任意方式从CAD模型中选择组件。对象模型200中的组件20h-g可被分组成m层,该m层代表对象的领域相关特征。 虽然图2中所示的对象模型200包含4层204a-d(即,m = 4),但是对象模型可包含任意数量的层,其中每层可包含任意数量的组件。在图2中所示的对象模型200示例中,层20 包含组件2(^a_b,层204b包含组件 202c,层2(Mc包含组件202d-e,以及层204d包含组件202f-g。类似地,对象模型200的呈现图100可被分成层2(Ma-d,其中层10 包含戒指腿组件10 以及中央石材镶嵌底座金属组件102b,层104b包含中央石材组件102c,层l(Mc包含第一侧部石材102d_e,以及层 104d包含第二侧部石材102f-g。虽然组件可以在层中以任意方式分组,但是将类似组件都分组在单个层中是特别有用的。例如,层10 包含多个侧部石材102d-e,从而有利于层l(Mc中的所有侧部石材 102d-e的同时个性化。作为另一个示例,如果戒指包含100个侧部石材,那么这些侧部石材可分组成50个一组的两组,从而用户可以独立地为这两个子集选择特征(例如石材类型)。 这些仅仅是将组件分组至多层的方法的示例,它们不构成对本发明的限制。现有CAD软件的特征可用来协助对层进行创建及管理的处理。例如,许多现有CAD 包允许用户将CAD模型的不同组件组织成定制命名的组(即,金属01、Gem 01等)。可创建这种定制命名的组,并将其用来表示对象模型中的层。组件可添加至组,从而将该组件添加至对象模型。针对每层的属性可加载至CAD系统,从而CAD系统能够将可应用属性应用至任意特定层的组件。对象模型200中的层20加_(1的每一个均可具有η个属性,其描述了对象的物理特性。在图2所示的示例中,组件20 具有2个属性206a-b。属性206a_b的每一个具有类型和值(属性206a具有类型208a和值208b ;属性206b具有类型210a和值210b)。属性类型的示例包括但不限于颜色、材料类型(例如,金属或石材类型)、形状、尺寸以及饰面。 每种属性类型类型可具有属性值的相应的容许集合或范围。例如,具有“金属类型”类型的属性可具有诸如“金”和“银”之类的容许值,而具有“尺寸”类型的属性可具有在Imm至 500mm的范围内浮动的点值的容许值。每种属性可具有任意数量的容许属性值。为了便于图示,图2仅仅示出了组件20 的属性。然而,应当假定,尽管未在图2 中示出,但是组件202b-g具有自身的属性。每个组件具有任意数量的属性。换言之,η的值可随着组件而有所不同。在此处提供的特定示例中,属性与整个层而不是各个组件相关,在这种情况下,与具体层相关的属性类型和值被应用至该层的所有组件。在这种情况下,η的值可能随着层而有所不同。图3图示了一个简化示例,其中图1的层l(Ma-d中的每一层具有刚好1个属性, 每个属性具有4个可能的值。具体地,行30 图示了层10 的4个呈现图304a-d,表示 “金属颜色”属性的4个可能的值;行302b图示了层104d的4个呈现图306a-d,表示“石材颜色”属性的4个可能的值;行302c图示了层l(Mc的4个呈现图308a_d,表示“石材颜色”属性的4个可能的值;以及行302d图示了层104b的4个呈现图310a-d,表示“石材颜色”属性的4个可能的值。虽然图1-3所示的示例图示了具有固定层数的对象,但是这并不是本发明的要求。可替换地,对于具体对象,层数m可以变化。例如,代表手镯的对象中的每层可代表手镯中的不同项圈。用户可被允许对手镯进行添加和/或减少项圈,从而针对代表手镯的对象模型添加和/或减少层。作为另一示例,耳环可具有与可变数量的层相对应的可变数量的钉。可变层的使用对于代表首饰中的配件而言特别有用,但是可变层可用于任意目的。对象中的特定层可根据需要而被设计,在这种情况下,不能从下面的对象模型中移除它们。可在层上设置其它限制,例如可添加至特定对象模型的附加层的最大数量。一旦诸如图2中所示的对象模型200之类的对象模型存在,则本发明实施例可呈现具有所有容许属性值的对象模型的层的2D视图的集合。图4示出了用于创建这种呈现图的方法400的一个实施例。图5图示了执行图4的方法400的系统500的一个实施例。系统500包括呈现引擎(rendering engine) 502,其在对象模型200中的每个层L 上输入一个回路(步骤40 。在该回路中,呈现引擎502在层L中的属性值的每个可能的组合A上输入一个回路(步骤404)。这种组合的数量等于针对层L中每个属性类型的可能的属性值的数量之和。方法400将属性值A的当前组合应用至当前层L中的所有组件,并且呈现所得到的组件以产生层L的二维呈现图(步骤406)。呈现引擎502可以以任意方式呈现每层L, 例如通过使用可商业获取的光线追踪软件(例如VRay),通过为物理材料明确特性(例如金属,宝石)以产生“栩栩如生的”图像真实的影像。虽然针对每层的最终呈现图可代表仅仅该层中的对象,但是当呈现引擎502呈现特定层L时,它不仅可以呈现层L中的组件,而且可以呈现其它层中的组件,以使层L的呈现图更真实。例如,为了产生特定层L的呈现图,呈现引擎502可首先呈现整个模型化的对象,从而其它层对当前层L的影响可反映在呈现图中。层L之外的层中的对象的代表可随后从层L的呈现图中去除,以产生存储在层呈现图504中的层L的最终呈现图。例如,这可以通过使用Alpha通道来完成,Alpha通道允许对象出现在场景中从而影响光反射、衍射、 阴影等,而无需存储在最终图像文件中。呈现引擎502针对层L内的属性值的所有剩下的组合重复步骤406(步骤408)。 呈现引擎502针对对象模型中剩下的层重复步骤404-408 (步骤410)。由于该处理400,针对每层中的属性值的每个可能的组合产生了单独的二维呈现图。例如,在图2中所示的对象模型200的情况中,其包含四个层2(Ma-d,呈现引擎502产生层呈现图504,该层呈现图 504包含层20 的呈现图30 的集合、层204b的呈现图302b的集合、层2(Mc的呈现图 302c的集合、以及层204d的呈现图302d的集合。可以以诸如单独的图像文件之类的任何形式将所得到的2D呈现图504存储在硬盘驱动器或其它存储介质上。可以以任何形式存储与属性有关的信息以及与层呈现图相关的其它数据。例如,这些数据可以与包含呈现图504的数据存储在相同的文件中,或者存储在分开的文件中。不是所有的属性值都可产生彼此不同的呈现图。例如,改变层的某一属性值可能仅仅影响该层中组件的价格,但是不会影响该层中的组件看起来怎么样。换言之,特定属性的两个不同的值可能造成相应层的相同呈现图。在这种情况下,没有必要针对两个不同属性值创建该层的分开的冗余的呈现图。相反,可采用单个呈现图来代表两个属性值。可以以任意方式消除这种冗余的呈现图。例如,首先利用图4的方法400产生所有呈现图。随后,识别并合并冗余呈现图,使得两个或多个冗余呈现图的每个集合都被降低至单个代表性呈现图。当集合中的任意呈现图被要求用来呈现整个对象时,可使用代表性呈现图。可替换地,例如,可在产生冗余呈现图之前发现冗余。例如,在步骤406,方法400 可判定利用属性值A的当前组合呈现的当前层L中的组件是否会产生已经被方法400所产生的呈现图。如果会,那么方法400可禁止再次产生该呈现图,取而代之地存储一个指针或者其它记录,以指示无论何时需要使用属性值A的层L的呈现图时都应该使用之前产生的呈现图。除了用来创建层呈现图的属性之外,对象模型200还可包括与组件20h-g有关的数据。图2示出了与组件20 相关的这种元数据212的示例。方法400无需在步骤404 中为了产生属性值的可能组合而将这种元数据212处理为属性。更通常地,在步骤406中产生层呈现时元数据212根本无需被方法400使用。这种元数据的示例包括组件的价格和 SKU。虽然图2仅仅示出了用于示例的目的的与组件20 相关的这种元数据212,但是任意类型及数量的元数据均可与对象模型200中的组件20h-g中的任意组件相关联。此外或者可选地,元数据可与层2(Ma-d的一个或多个相关联,或者与对象模型200整体相关联。 元数据可自动分配和/或通过用户手动分配。不同层2(Ma_d的二维呈现图504 —旦产生,则可在任意组合中彼此结合来形成整个模型化的对象的大量个性化视图。参加图7,系统700被示出用来根据本发明的一个实施例创建整个模型化的对象的这种呈现图。参见图8,示出了由图7的系统700根据本发明的一个实施例执行的方法800的流程图。系统700包括层呈现图选择器702,其从层呈现图504的集合30h-d(图幻的每一个中选择一个呈现图,以产生所选层呈现图704的集合(图8,步骤80 。在图7所示的示例中,所选层呈现图704包括来自层20 的呈现图 706a、来自层202b的呈现图706b、来自层202c的呈现图706c、以及来自层204d的呈现图 706d。层呈现图组合器708将所选层呈现图704组合起来以形成整个模型化的对象的二维呈现图710(图8,步骤804)。对象呈现图710与单独的层呈现图504 —样,可被表达并存储为光栅图像,而不是三维模型。图6图示了一个示例,其中呈现图3(Mc选自层呈现图30 (层1);呈现图306b选自层呈现图302b (层幻;呈现图308a选自层呈现图302c (层;3);以及呈现图310c选自层呈现图302d (层4)。在该示例中,呈现图3(Mc、308a、310c和306b分别代表了所选层呈现图706a、706b、706c和706d。这些呈现图304a、308a、310c和306b被组合在一起以形成由对象模型200模型化的整个对象的呈现图600,代表了属性值的特定组合。图6中的呈现图 600是图7中的对象呈现图710的一个示例。为了理解使用方法400 (图4)和方法800 (图8)的组合来产生对象呈现图(例如图6中所示的对象呈现图600)的优势,考虑具有单个戒指腿、单个中央石材、中央石材镶嵌底座以及100个侧部石材的戒指,总共103个组件(1个戒指腿、1个中央石材、1个中央石材镶嵌底座以及100个侧部石材)。例如,戒指组件可分配至5层,其中层1是戒指腿,层2是中央石材镶嵌底座,层3是中央石材,层4是50个供选择的侧部石材,以及层5是另外50 个供选择的侧部石材。假设戒指腿层包括具有10个可能值(代表10种可能类型的金属) 的“金属类型”属性,中央石材镶嵌底座包括具有10个可能值的“金属类型”属性,中央石材层包括具有21个可能值的“宝石类型”属性,并且两个侧部石材层的每一个都包括其自身的具有21个可能值的“宝石类型”属性。在这种情况下,方法400总共需要呈现62个2D 视图(10+10+21+21+21)来产生图5所示的层呈现图504。但是,这些少量的呈现图可被结合至926,100个可能的置换、或“个性化”视图中。因此,本发明实施例的一个优势在于它们可用来通过呈现对象的层的非常少量的呈现图来产生非常大量的个性化对象呈现图。这是非常重要的,原因在于图4中所采用的用于创建每个单独的层呈现图(从三维CAD模型产生层的逼真的二维光栅化图像)的方法 400是资源密集的,要求大量的计算机处理资源或者大量的时间来执行。相反,图8中所采用的用于将现有的光栅层呈现图组合在一起以产生整个模型化的对象的光栅化图像的方法800在计算上花费不多。本发明实施例仅仅需要执行图4的在计算上花费较多的处理400 —次,以产生相对少量的层呈现图504。在分布式计算环境中,该处理400可例如在诸如服务器、图像工作站或这种计算机的群集之类的具有大量计算资源的计算机上执行。随后,一旦产生了层呈现图504,则可以通过不那么强大的计算机利用图8的方法800任意次数地快速地产生整个对象的任意数量的逼真的光栅图像。因此,相对于以前使用的技术而言,本发明实施例显著地提高了产生定制对象的逼真图像的效率,而不会损失这种图像的质量。更具体地,如果<表示层i的第k个属性,m表示层的总数,那么通过使用该方法,
i=mi=m _
总体上将总共需要呈现个视图以产生个可能的个性化视图。这显示了为
i=l k i=\ k
了产生整个对象的所有可能的个性化视图所需执行的呈现的数量的显著减少。本发明实施例可用来显示模型化对象200的呈现图之外的信息。例如,它在以 2D视图表现3D模型以示出相对于公共参考对象的物理尺寸时是有用的。例如,一角硬币 (dime)或其它硬币可用作用于首饰模型的公共参考对象。图9图示了这种示例,其中戒指的呈现图100与一角硬币的呈现图902结合来产生显示了按比例呈现的戒指和一角硬币的呈现图904。例如,可通过将戒指和一角硬币的光栅化图像结合在一起来产生结合而成的呈现图904。例如,呈现图可能创建为具有各种空间视图处参考对象,并且所得到的呈现图可与其它对象的呈现图一起存储以备后用。如图9的示例所示,可将参考对象呈现为半透明,从而不会使得所呈现的主要对象变得模糊。虽然在本文公开的某些示例中,仅仅通过组合这些组件的预先呈现的光栅化图像来将不同组件组合在一起,但是可以通过其它方式组合组件以产生最终的对象呈现图710。 例如,如果用户选择特定项圈以加入至垂饰中,所得到的垂饰可被呈现以显示通过垂饰的拎环(bail)线接的项圈。最终的呈现图可反映线圈的尺寸以及拎环的尺寸,从而精确地表示若通过拎环线接则项圈看起来怎么样。作为另一示例,戒指可被呈现为配合人手的模型。类似地,项链可被呈现为配合人颈部的模型。这种呈现图可精确地表示当佩戴至人体的特定部位时首饰看起来怎么样。
除了上述对象的层的呈现图504的原始集合,可从各种观点产生整个对象的2D视图的集合以实现对象的3D的虚拟真实(VR)的“飞越”。包括飞越的2D视图的序列例如可包括来自不同空间位置的对象的“相机”视图。图10示出了这种视图100加-1的示例。从图10可以看出,如果视图100加-1依次显示在屏幕上,结果可能是围绕戒指飞跃的外貌,以便从不同观点对其进行观看。可利用前面公开的技术采用预先选择的属性值组合来呈现这种不同相机视图。可替换地,例如,不同相机视图100加-1可包括所呈现对象的不同个性化组合。换言之,对象中的一个或多个层的属性值可随着相机视图的不同而有所不同。当这种相机视图被显示为动画时,效果是示出了随着飞跃进行而变化的所呈现对象的属性值(例如石材类型/颜色、 金属类型/颜色)。这个处理还可用来产生用户所选择的个性化配置的整个飞跃动画。以这种方式改变属性值的一个优势在于,其不仅允许用户从不同角度观看同一对象,而且允许用户观看对象的不同个性,且不会发生为每个不同对象个性呈现完整的飞跃所需的资源开销(存储器、处理器时间、以及硬盘存储)。希望在模型化对象200的最终呈现图710中包含阴影,以使呈现图710尽量逼真。 但是,存储利用层组件为该层的属性值的每个可能的组合创建的阴影的单独的呈现图是缺乏效率的,这是因为大多数属性值(例如颜色和材料)的改变不会影响该层投射的阴影。 因此,对象中具有固定形状的所有组件的阴影可被呈现并存储在单个层(本文中称为“地平面”),由于它的目的是存储对象的固定形状的组件所投射的阴影,因此可将其看作“阴影层”。结果,这种阴影无需被存储在这些组件的其它呈现图中。具体地说,这种阴影无需被存储在层呈现图504(图幻中。相反,地平面可被存储为除层呈现图504之外的并与之分开的层呈现图(例如作为光栅图像)。并且,多个不同的地平面可创建为具有各种颜色和图案。其目的是允许对象出于美观的目的而显示在不同环境中。当随后呈现整个对象模型200时,一个或多个地平面可与所选层呈现图704组合, 作为图7的系统700所执行的处理800(图8)的一部分,以便产生最终呈现图710。图11 示出了一个示例,其中地平面1102与对象呈现图1104组合来产生最终呈现图1106,最终呈现图1106包括来自地平面1102的阴影以及来自对象呈现图1104的组件。以与具有不变形状的组件不同的方式处理形状可能改变的那些组件的阴影。具体地说,可变形状组件的阴影可呈现并存储在这些组件本身的层呈现图504中(而不是地平面中)。例如,如果特定组件具有矩形或者椭圆形形状,那么矩形版本的组件及其阴影可被呈现并存储在一个层呈现图中,而椭圆形版本的组件及其阴影可被呈现并存储在另一个层呈现图中。如果后面选择矩形版本的组件加入最终对象,那么矩形对象的预先呈现图可与其它所选组件组合来产生最终对象呈现图。在地平面中存储不变形状组件的阴影以及在可变形状组件各自的呈现图中存储这些可变形状组件的阴影的一个优势在于该方案仅仅产生精确最终对象呈现图所需的多个不同阴影。参考图12A-B,其中示出了可变形状组件的呈现图与不变形状组件的阴影的呈现图组合的示例。图12A图示了一个示例,其中可变形状组件的第一呈现图120 包括这些组件的阴影,并且其中不变形状组件的呈现图1204不包括这些组件的阴影。包括其所包含的阴影在内的呈现图1202a与呈现图1204组合,从而产生最终对象呈现图1206a。注意,表示呈现图1204中不变形状组件的阴影的地平面可与呈现图120 和1204组合来产生最终对象呈现图1206a。图12B图示了一个示例,其中来自呈现图1202a的可变形状组件的第二呈现图 1202b包括这些组件的阴影。呈现图1202b中的这些阴影显示了不同于呈现图1202a中的阴影。在图12B中,采用了不变形状组件的相同的呈现图1204。包括其所包含的阴影在内的呈现图120 与呈现图1204组合,从而产生最终对象呈现图1206b。为了实现正确地与固定形状分界的可变形状组件的视觉化的逼真效果而无需两个组件的任意一个的第二图像,可变形状组件可被分离至其自身的平面。例如,重新调用图 12A和12B,地平面120 和1202b包括可变形状组件及其阴影。可替换地,例如,在图12C 和12D所示的实施例中,地平面121 和1212b单独地包含阴影;即,它们不包含可变形状组件。相反,在图12C和12D所示的实施例中,可变形状组件被分离至平面121 和 1215b。如图12A和12B所示,固定形状组件被保持在图12C和12D中它们自己的平面1214 中。注意,可在平面121 和1215b中的可变形状组件中的适当位置呈现孔,使得当固定形状组件和可变形状组件组合在一起时可变形状组件表现为与平面1214的固定形状组件逼真地相互接触。具体地,孔被布置在固定形状组件和可变形状组件相互接触的位置处。当组合图12C中或12D中的层时,可首先呈现基本(阴影)平面(层121 或层 121b),即在叠层的“底部”。接下来呈现固定形状组件(层1214),即在地平面的“顶部”,处于叠层的“中间”。最后呈现可变形状组件(例如层1215a或1215b),即在其它两个平面的 “顶部”,处于叠层的“顶部”。这实现了逼真的三维效果,其中固定形状组件表现为穿过可变形状组件中的孔。层呈现图504的每一个表示利用一个或多个特定属性值呈现的特定层。层呈现图 504的每一个可通过例如在具有包括表示层和属性名的文本文件名的文件中保存层呈现图,来利用诸如层名称和层属性的名称(例如类型)之类的信息编码,从而可以很容易地识别出以特定属性对特定层进行编码的特定文件。这种文件名例如可具有诸如“〈设计名>_ RenComp_<层名>_<属性名>_<视图 >”之类的格式。可在该文件名中编码多个属性的名称。注意,“〈视图 >”表示层呈现图的视图的类型,例如前端、侧部或顶部。例如,文件名“设计_RenComp_CS_E_P”可用来存储这样一个文件,该文件包括以透视视图(文件名中的“P”)的方式呈现的包含了为中央石材层(文件名中的“Cs”)选择的绿宝石(文件名中的“E”)的层的呈现图。作为另一个示例,文件名“设计_RenComp_SM_ RG_P”可用来存储这样一个文件,该文件包括同样以透视视图(文件名中的“P”)的方式呈现的包含了为戒指腿层(文件名中的“SM”)选择的玫瑰色(文件名中的“RG”)的层的呈现图。这种编码方案可用来帮助将2D层呈现图504组合为最终对象呈现图710。类似地,最终对象呈现图710可存储在具有编码来与最终对象呈现图710中所出现的层有关的信息的文件名的文件中。例如,在戒指的情况中,可以采用下述形式的文件名“< 设计名>_Ren_<戒指腿>_<戒指腿2>-<中央石材金属 >-< 侧部石材金属>_<中央石材类型>_<主侧部石材类型 >< 次侧部石材类型>_<视图 >”。例如,文件名“设计_Ren_ YG-YG-_E-DE_P”可用于这样一个戒指,其中在透视视图(文件名中的“P”)中金黄色的戒指腿(文件名中的“YG”)与具有钻石主侧部石材和绿宝石次侧部石材(文件名中的“DE”) 的绿宝石中央石材(文件名中的“E”)组合。
如上面所提到的,并不是对象模型200中的所有信息都需要用来产生不同的层呈现图。相反,对象模型200中的某些信息可用于其它目的。一个示例是计算特定的定制对象(即,反映了属性值的特定组合的个性化的对象)的价格。例如,可通过将对象模型200 的属性值提供给价格计算引擎来执行这种计算,价格计算引擎可使用属性值(可能与诸如特定类型的宝石的当前成本、固定利润量以及折扣有关的信息相结合)来计算整个个性化的对象的价格。诸如元数据212之类的元数据可额外地或者代替对象模型的属性值用于执行价格计算。可以以任意方式确定特定组件的计价,例如通过根据组件特征(例如尺寸、材料) 计算价格,或者简单地通过查看组件价格(例如通过使用组件的SKU作为数据库的索引)。 然而价格被计算,则得到的价格可作为最终对象呈现图710的一部分或者附加至最终对象呈现图710而显示给用户。所以,顾客可以为每层选择属性值的特定集合,并且相应地立即察看图像逼真的对象呈现图以及相关的价格。用于执行创建个性化对象呈现图的处理中的不同步骤的责任可以以任何方式在计算装置和组件之间划分。例如,在客户机-服务器系统中,服务器可单次地执行图4的层预呈现处理400。随后,当客户机之一处的用户请求具有属性值的特定组合的个性化对象时,客户机可经由网络将属性值传送至服务器。相应地,服务器可经由网络将与所选属性值相对应的预先呈现的层呈现图传送回客户机。客户机随后可执行图8的层组合处理800以产生具有用户所选属性值的特定组合的个性化对象的最终呈现图。作为另一示例,应来自客户机的请求,服务器可执行图8的层组合处理800以产生具有用户所选属性值的特定组合的个性化对象的最终呈现图。随后服务器可将个性化对象呈现图通过网络传回至客户机。之后,客户机可简单地将个性化对象呈现图显示给用户。作为又一个示例,服务器可执行所有层呈现图504至每个客户机的一次传输。随后,当特定客户机的用户发出针对具有特定属性值组合的特定个性化呈现图的请求时,客户机可执行图8的层组合处理800而无需对服务器进行访问。在这些情况的任意情况下,客户机计算机无需执行图4的计算强度大的层呈现图处理400。所以,客户机计算机可以是相对低端的计算机,例如家庭计算机用户通常使用的类型,它们具有传统的网页浏览客户机,但是没有CAD软件和执行图4的层呈现处理400所需的其它软件。一旦产生了特定的个性化对象呈现图,不管是服务器还是客户机所产生的,该个性化的呈现图都将被缓存以使之可以响应于针对属性值的相同组合的请求而被显示,而无需重新执行图8的层组合方法800。如果在服务器创建了个性化视图,那么可在服务器执行该缓存。附加地或者替换地,服务器可将该个性化视图发送至客户机中的一个或多个,使得能够快速地为这些客户机处的后续请求提供服务,而无需对服务器进行访问。如果由客户机产生个性化对象视图,那么例如在产生每个个性化视图时可在每个客户机处执行该缓存。附加地或者替换地,每个客户机可将其所产生的任何个性化视图传回至服务器,使得可以对同一或者其它客户机所作出的后续请求提供服务,而无需重新产生该同一视图。为了进一步提高向用户显示个性化对象视图的速度,表示属性值的某些组合的某些个性化对象视图可预先产生至完整的对象呈现图中,从而一旦选择了属性值的这些组合,则可迅速为用户显示这些呈现图,而无需执行图4的层呈现处理400或图8的层组合处理 800。可以以任意方式选择用于预呈现的个性化对象视图的特定集合。例如,已知的或者被认为需求较高的某些属性值组合(例如婚戒中使用的白合金金属和钻石石材)可预先出现至最终对象呈现图。当用户选择属性值的任意的这种组合时,可仅仅通过向用户显示预先产生的对象呈现图来立即为用户显示相应的对象呈现图。例如可以使用规则来选择用于预呈现的属性值的组合。例如,特定规则可能适用于特定类型的首饰或者戒指的特定模型。例如,“订婚戒指”规则可能规定订婚戒指最好具有钻石作为石材,并且在订婚戒指中某些颜色不应该与其它颜色的组合。这种规则随后可用来自动预呈现满足规则的所有组件组合。例如,这种预呈现可由用户在部署待用系统之前在商业网站产生。可以以多种方式中的任意方式产生这种预呈现组合。例如,可以通过根据用户所选的各个属性值将整个对象呈现为单个场景来产生这种预呈现组合。作为另一示例,可利用处理800通过将用户所选的各个组件的现有预呈现组合在一起来产生预呈现组合。后一技术可用来显著地降低产生大众化的预呈现图所需的时间量。可提供搜索设备,用户可通过搜索设备搜索特定组件组合。可以通过两种方式进行搜索静态搜索以及动态搜索。利用静态搜索,只有已经预呈现的那些组合可用于搜索。 因此,一开始,只有那些在系统初始化时已经预先选择用于预呈现的组合可用于搜索。如果用户利用特定属性选择特定组件组合(本文也称为“特定差异”),那么这种特定差异的呈现可被保存并添加至可用于搜索的特定变量的存储器中。利用动态搜索,系统将询问对象的所有属性以确定是否有组件组合满足搜索标准。如果组件组合通过属性询问满足搜索标准并且相应的对象不存在,则将动态地创建对象并且在搜索结果中返回对象。注意,动态搜索不会比静态搜索耗费更多的执行花销。应该理解的是,虽然已经就特定实施如上所述地例描述了本发明,但是前述实施例仅仅提供作为示例,而不是限制或者限定本发明的范围。包括但不限于下述实施例在内的各种其它实施例也落入权利要求的范围。例如,此处描述的元素或组件可进一步划分为附加组件、或结合在一起以形成用于执行相同功能的更小的组件。而且,虽然结合首饰描述了本发明的特定实施例,但是相同的技术还可应用至任何类型的对象。例如,可以以任何形式存储本发明实施例所处理的数据。例如,可以在CAD文件中存储三维设计数据,该CAD文件可进一步划分为任意数量的文件,例如每个设计一个文件、 每个层一个文件、或者每个组件一个文件。诸如与设计中的组件的类型和数量有关信息之类的元数据可存储在相同的文件中或者与设计数据本身不同的文件中。虽然在图4所示的示例中,方法400使用了每个层L的所有属性的值的所有组合来呈现层L,但是这并非本发明的要求。相反,例如,只有层属性类型的子集被用来呈现该层。作为另一示例,方法400可针对比所有可能的属性值少的属性值产生层呈现图。如果用户随后请求并非所有所要求的层呈现图都被实现呈现的属性值组合,那么可响应于该请求产生所需层呈现图,随后利用图8的方法800将其用来产生最终对象呈现图。可替换地, 例如,可选择表示与用户所请求的属性值最接近的属性值的层呈现图,随后利用图8的方法800将其用来产生最终对象呈现图,从而避免了产生其它层呈现图的必要。虽然图2仅仅示出了单个对象模型200,但是本文所公开的技术可用在包括任意数量的对象模型的系统中。例如,在线零售网站可允许用户选择多个对象中的任意一个,例如多款首饰中的任意一个,并随后利用本文所公开的技术来定制所选择的对象以便购买。例如,可在硬件、明确地存储在计算机可读介质中的软件、固件或它们的任意组合中实施上述技术。可在包括处理器、处理器可读的存储介质(例如包括易失性和非易失性存储器和/或存储元件)、至少一个输入装置、以及至少一个输出装置的可编程计算机上执行的一个或多个计算机程序中实现上述技术。程序代码可应用至利用输入装置确认的输入以执行所述功能并产生输出。输出可提供给一个或多个输出装置。可以以任意编程语言实现所附权利要求的范围内的每个计算机程序,例如汇编语言、机器语言、高级程序编程语言、或面向对象的编程语言。例如,编程语言可以是汇编的或者解释的编程语言。可在明确地在机器可读存储装置中实体化的用于由计算机处理器执行的计算机程序产品中实现每个计算机程序。可通过执行在计算机可读介质中明确实体化的程序的计算机处理器来执行本发明的方法步骤,以通过操作输入并产生输出来执行本发明的方法。 举例来说,适当的处理器包括通用和专用微处理器。一般地,处理器从只读存储器和/或随机存储器接收指令和数据。适合于明确实体化计算机程序指令的存储装置包括例如所有形式的非易失性存储器(例如半导体存储器装置,包括EPROM、EEPR0M,以及闪存存储器)、磁盘(例如内部硬盘和可移动盘)、磁光盘以及CD-ROM。前述装置中的任意装置可由专门设计的ASIC(专用集成电路)或FPGA(现场可编程门阵列)进行补充,或者与之合并。计算机还可总体上从诸如内部磁盘(未示出)和可移动盘之类的存储介质接收程序和数据。还可在传统桌面或者工作站计算机以及适合于执行实现本文所述方法的计算机程序的其它计算机中找到这些元件,它们可与任意数字打印引擎或标记引擎、显示监视器、或能够在纸张、胶片、显示屏或其它输出介质上产生颜色或灰度像素的其它光栅输出装置结合使用。
权利要求
1.一种计算机实施方法,与对象的三维计算机模型一起使用,所述模型包括多个层,所述多个层的每层包括所述模型中的至少一个相应组件,所述多个层的每层与至少一个属性相关联,所述方法包括(A)利用所述至少一个属性的多个值的每一个呈现所述多个层的每层,以产生多个层呈现图;(B)接收针对指定了多个属性值的个性化对象的第一呈现图的第一请求;(C)从所述多个层呈现图中选择与所指定的多个属性值相对应的层呈现图的子集;以及(D)对所选择的层呈现图的子集进行组合以产生个性化对象的第一呈现图。
2.如权利要求1所述的方法,其中所述多个层的第一层包括多个组件,并且其中(A)包括利用所述至少一个属性的多个值的每一个来呈现第一层中的多个组件。
3.如权利要求1所述的方法,其中㈧包括(A) (1)利用多个值的每一个来呈现多个层的所有层以产生第一呈现层;以及 (A) (2)从所述第一呈现层中去除特定层之外的所有其它层的代表。
4.如权利要求1所述的方法,进一步包括(E)根据所指定的多个属性值来识别个性化对象的价格。
5.如权利要求1所述的方法,其中(A)包括呈现可变形状组件的阴影,从而多个层呈现图包括可变形状组件的阴影;其中所述方法还包括(E)呈现不变形状组件的阴影,以产生与所述多个层呈现图不同的包含不变形状组件的阴影的层;以及其中(D)包括将所选的层呈现图的子集彼此组合并且与包含不变形状组件的阴影的层组合,以产生个性化对象的呈现图。
6.如权利要求1所述的方法,进一步包括(E)存储第一呈现图;(F)接收指定了多个属性值的第二请求;(G)响应于第二请求,提供第一呈现图。
7.如权利要求6所述的方法,其中由第一计算装置执行(D),其中所述方法还包括(H)在(D)之后,在第一计算装置处,将个性化对象的第一呈现图传送给第二计算装置;以及其中由第二计算装置执行(E)、(F)和(G)。
8.如权利要求7所述的方法,其中(G)包括在第二装置处将第一呈现图经由网络传送给第三计算装置。
9.如权利要求1所述的方法,其中由第一计算装置执行(B)和(C),其中由第二计算装置执行(D),并且其中所述方法还包括(E)在(D)之前,在第一计算装置处,将层呈现图的子集经由网络传送给第二计算装置。
10.如权利要求1所述的方法,其中由第一计算装置执行(B)、(C)和(D),并且其中所述方法还包括(E)在(D)之后,将个性化对象的第一呈现图传送给第二计算装置。
11.一种计算机程序产品,包括明确地存储在计算机可读介质上的计算机可读计算机程序指令,用于由计算机处理执行以执行与对象的三维计算机模型一起使用的方法,所述模型包括多个层,所述多个层的每层包括所述模型中的至少一个相应组件,所述多个层的每层与至少一个属性相关联,所述方法包括(A)利用所述至少一个属性的多个值的每一个呈现所述多个层的每层,以产生多个层呈现图;(B)接收针对指定了多个属性值的个性化对象的第一呈现图的第一请求;(C)从所述多个层呈现图中选择与所指定的多个属性值相对应的层呈现图的子集;以及(D)对所选择的层呈现图的子集进行组合以产生个性化对象的第一呈现图。
12.如权利要求11所述的计算机程序产品,其中所述多个层的第一层包括多个组件, 并且其中(A)包括利用所述至少一个属性的多个值的每一个来呈现第一层中的多个组件。
13.如权利要求11所述的计算机程序产品,其中(A)包括(A) (3)利用多个值的每一个来呈现多个层的所有层以产生第一呈现层;以及(A) (4)从所述第一呈现层中去除特定层之外的所有其它层的代表。
14.如权利要求11所述的计算机程序产品,进一步包括(E)根据所指定的多个属性值来识别个性化对象的价格。
15.如权利要求11所述的计算机程序产品,其中(A)包括呈现可变形状组件的阴影,从而多个层呈现图包括可变形状组件的阴影;其中所述方法还包括(E)呈现不变形状组件的阴影,以产生与所述多个层呈现图不同的包含不变形状组件的阴影的层;以及其中(D)包括将所选的层呈现图的子集彼此组合并且与包含不变形状组件的阴影的层组合,以产生个性化对象的呈现图。
16.如权利要求11所述的计算机程序产品,进一步包括(E)存储第一呈现图;(F)接收指定了多个属性值的第二请求;(G)响应于第二请求,提供第一呈现图。
17.如权利要求16所述的计算机程序产品,其中由第一计算装置执行(D),其中所述方法还包括(H)在(D)之后,在第一计算装置处,将个性化对象的第一呈现图传送给第二计算装置;以及其中由第二计算装置执行(E)、(F)和(G)。
18.如权利要求17所述的计算机程序产品,其中(G)包括在第二装置处将第一呈现图经由网络传送给第三计算装置。
19.如权利要求11所述的计算机程序产品,其中由第一计算装置执行(B)和(C),其中由第二计算装置执行(D),并且其中所述方法还包括(F)在(D)之前,在第一计算装置处,将层呈现图的子集经由网络传送给第二计算装置。
20.如权利要求11所述的计算机程序产品,其中由第一计算装置执行(B)、(C)和(D), 并且其中所述方法还包括(E)在(D)之后,将个性化对象的第一呈现图传送给第二计算装置。
全文摘要
计算机系统包括诸如一件首饰之类的对象的三维模型。模型被划分成多个层,每个层包含对象的一个或多个组件。每层与一个或多个属性类型相关联,每个属性类型与相应的多个可能的属性值相关联。系统利用每个可能的属性类型和每个可能的属性值针对该类型和层预呈现每个层。所得到的层呈现图可彼此组合来产生整个对象的个性化呈现图,而无需预呈现属性值的所有可能的组合。呈现层和最终完整对象个性化的责任可以以各种方式在客户机和服务器之间划分以提高效率。
文档编号G06T17/00GK102334143SQ201080007159
公开日2012年1月25日 申请日期2010年1月15日 优先权日2009年2月13日
发明者G·托马斯-莱博, I·幡中, M·蒙恩 申请人:吉莫维拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1