掌桥专利:专业的专利平台
掌桥专利
首页

用于定制产品的合成视图的高质量渲染的系统和方法

文献发布时间:2024-01-17 01:26:37


用于定制产品的合成视图的高质量渲染的系统和方法

技术领域

本公开的一个技术领域是一种基于协作计算机平台监视并跟踪用户动作来自动配置定制产品选项的方法。另一个技术领域是跟踪用户动作以生成用于定制可从协作计算机平台获得的产品的选项,并基于选项来生成对定制产品的合成视图的高质量渲染(rendering)。

背景技术

本节中描述的方法是可以采用的方法,但不一定是先前已经设想或采用的方法。因此,除非另有说明,否则不应假定本节中描述的任何方法仅仅因为它们包含在本节中就认为是现有技术。

市场上有许多系统被配置为向用户提供订购具有定制属性的产品的机会。例如,在定制制造的镶框产品(诸如照片、数字图像、艺术品和其他可镶框产品)的情况下,系统可以为用户提供订购具有定制的尺寸和颜色的图像和边框的机会。

定制具有许多可定制参数的产品可能非常具有挑战性。定制值的选择可能会影响最终定制产品的外观以及渲染最终定制产品的方式。因此,系统通常提供显示对于定制的产品的描绘(即合成视图)的功能,以帮助用户在用户订购产品之前可看到他们定制的产品。

一般而言,合成视图是在基于计算机的显示设备上显示的物体的数字描绘。在产品的数字定制的情形中,在产品制造之前渲染产品的合成视图是有用的。这允许用户在实际订购产品之前可视地检查产品特征和装饰。合成视图通常是来自数字摄影的影像的组合。它们例如可包括数字标记和从物体的2D、2.5D和3D几何图形中导出的合成渲染。

用于高质量数字几何图形渲染的算法已经被研究并探究了一段时间。这些算法典型地使用对光、纹理和颜色的模拟。此技术的主要进步包括使用扫描线渲染、二进制空间分区、Z-Buffer(Z缓冲区)、A-Buffer(A缓存区)、皮克斯的Reyes渲染系统(以Renderman工具为终极版)进行运作、支持OpenGL和Direct3D的硬件的广泛可获得性、以及硬件辅助的光线追踪的改进,例如在英特尔的Embree渲染系统中实现的那样。

通常,合成数字渲染方法可以基于应用区域、渲染速度和质量需求而被分组。例如,用于模拟和游戏的实时渲染应用典型地使用在使用OpenGL或Direct3D的硬件上通过优化的空间分区而渲染的精心设计的内容和几何图形。实时渲染应用中对于帧的渲染时间必须很快,通常,延时似乎是支持用户与应用交互的主要障碍。

在娱乐行业,影片和印刷品的影像制作通常对质量和创意控制有严格的要求。有时,可能难以满足高质量和艺术要求。但即使满足了这些要求,这些要求的满足也需要以每张图像更长的渲染时间为代价。

为定制产品渲染合成视图介于这两种应用之间。此类渲染需要在不存在因优化游戏资产(asset)而产生的费用的情况下进行制作,并且需要随着用户与产品交互而执行,比twitch游戏长,但比电影帧短得多。因此,需要提供用于渲染定制产品的合成视图的高质量渲染技术,这些技术提供相对较低延时。

附图说明

图1示出了根据一些实施例的实施用于基于用户动作自动配置定制产品选项的方法的示例系统;

图2示出了根据一些实施例的用于渲染合成视图的示例处理流程;

图3示出了根据一些实施例的产品定制系统的用户界面的示例;

图4示出了根据一些实施例的用于渲染合成图像的示例处理流程;

图5是示出了可用来实施本文的技术的计算机系统的框图。

具体实施方式

在下面的描述中,出于解释的目的,阐述了许多具体细节以提供对本发明的透彻理解。然而,很明显,可以在没有这些具体细节的情况下实施本发明。在其他情况下,公知的结构和设备以框图形式示出以避免不必要地模糊本发明。

本文根据以下概要描述实施例:

1.0 概述

2.0 结构和功能概述

3.0 合成视图渲染要求

4.0 合成视图渲染过程

4.1生成经校准产品渲染资产

4.2将产品选项键-值的用户驱动的设置应用于经校准产品渲染资产4.3 启动渲染应用

4.4 渲染资产

4.5 显示资产

5.0 覆盖图服务

6.0 覆盖缓冲区服务

7.0用于定制产品的合成视图的高质量渲染的示例方法

8.0 示例渲染流程

9.0 制造

10.0实现机制——硬件概述

11.0 扩展和替代

1.0 总体概述

在一些实施例中,描述了用于改进产品定制过程的技术。更具体地,这些技术旨在改进产品定制过程所使用的用户产品渲染器,并基于高质量子像素渲染来生成对产品的渲染。产品定制过程的示例在例如US 8,175,931B2中有所描述,其在图1B(元素109b)、图1C(元素124)和图2(元素134)中包括了对示例用户产品渲染器的描述。然而,US 8,175,931B2中描述的产品定制过程并未公开本高质量子像素渲染方法。

本文描述的技术提供了一种用于定制的产品的高质量子像素渲染的新颖且改进的方法,其中高质量子像素渲染是关键要求之一。

本文提出的系统和方法可用于提供对任何定制产品的合成视图的高质量渲染。该系统和方法可以用软件、硬件或硬件和软件的结合来实现,也可以在客户端/服务器系统、web服务器、终端、对等系统等上实现,从而该系统和方法不限于系统或方法的特定实现方式。

2.0结构概述

图1示出了根据一些实施例的用于实施用于定制产品的合成视图的高质量渲染的方法的示例系统。图1、其他附图以及本公开中的所有说明书和权利要求旨在提出、公开和要求一种技术系统和技术方法,其中专门编程的计算机(使用专用分布式计算机系统设计)执行先前没有的针对机器学习模型开发、验证和部署的问题提供计算技术的实际应用的功能。以这种方式,本公开提出了针对技术问题的技术解决方案,并且对本公开或权利要求的涵盖对于专利适格性的任何司法例外(例如抽象概念、智力过程、组织人类活动的方法或数学算法)的任何解释在本公开中不受支持并且是错误的。

所描绘的示例是出于说明性目的而提供的。应当注意,其他实现方式可以包括与图1中所示的组件配置不同的组件配置。

在所描绘的示例中,产品合成视图渲染平台101包括产品选项模块102、定制的产品104、渲染引擎106、用户界面108、产品选项选择器110、合成视图生成器112、产品数据定义114、产品选项引擎116和产品选项架构120。其他实现方式可以包括图1中未描绘的附加组件。另外其他实现方式可以包括比图1中描绘的组件更少的组件。

产品选项模块102可以被配置为提供用于生成、修改和集成用于定制产品的产品选项的功能,这些选项然后可以被发送到产品合成视图渲染平台101的合成视图生成器112以用于渲染。产品选项模块102可以包括产品选项架构。

在一些实施例中,产品选项架构120可以被配置为提供用于处理产品选项的架构。产品选项架构120还可以促进对捆绑(bundling)架构的访问,捆绑架构提供支持对某些属性(这些属性依赖于其他属性的值)进行处理的逻辑。该产品选项架构允许考虑某些配件可能不适合特定产品的事实。该架构还可以允许确定关于如下两者的兼容性:产品制造、和产品的数字图像在显示单元上可视化或渲染的能力。

在一些实施例中,产品选项模块102包括捆绑架构。该捆绑架构包括一种逻辑,该逻辑通过确定被组合产品的哪些视图有效或应该在图形用户界面还是其他显示中显示来支持对捆绑的产品的准确渲染。一般而言,当向捆绑包(bundle)添加产品时,捆绑逻辑被配置为检查每个产品,如前所述基于过滤器来过滤每个产品,并基于过滤器的匹配来选择一个或多个生成的视图并对其排序。

定制的产品104可以被配置为将定制的产品数据存储在产品合成视图渲染平台101中。例如,定制的产品104可以捕获表示当用户使用产品合成视图渲染平台101定制产品时由用户选择的定制选项的数据以及当用户在产品定制选项中导航时用户做出的选择。

渲染引擎106可以被配置为执行渲染逻辑。渲染逻辑可以配置为考虑产品选项和捆绑包。在一个实施例中,渲染逻辑支持使用声明性语句而不是纯编程来定义渲染文件以及向渲染逻辑添加要素。视图的属性可以在充当配置文件的渲染文件中声明,以驱动渲染过程。在一个实施例中,渲染逻辑的能力通过稍后描述的其他声明语句和匹配句法而与捆绑包的产品匹配。

用户界面108可以被配置为促进渲染平台101和用户之间的交互。在一个实施例中,产品捆绑包被定义为两个或多个产品的关联,这些产品可以在图形用户界面中一起可视化并且是兼容的,或可以一起订购以一起使用或在组合的定制制造的产品中使用。

产品选项选择器110可以被配置为提供如下功能:该功能用于在用户经由在产品合成视图渲染平台101上执行的应用所驱动的用户界面导航时跟踪用户选择的选项。

合成视图生成器112可以被配置为提供用于实现本文提出的对定制产品的合成视图进行高质量渲染的系统和方法的功能。

产品数据定义114可以被配置为存储和提供产品的定义和产品的各种定制选项。产品数据定义可以使用属性引擎和键-值(key-value)对来处理,稍后进行描述。

产品选项引擎116可以被配置为提供用于管理各种选项和管理提供给用户的产品的选项配置的功能。

3.0合成视图渲染要求

在一些实施例中,产品定制过程允许用户使用经由用户界面可获得的功能来定制产品。界面可以被实现为在用户显示设备上生成并显示一个或多个网页。用户界面可以被配置为例如允许用户交互地将颜色、瓦片图像和摄影或设计的图像(例如,用户设计的图像)应用到构成产品的二维图案样片,如下文更详细描述。

用户界面生成的数据可包括用户帐户数据、产品描述(描述用户的定制产品)、用户图像设计(包含用户内容)、颜色选择(用户选择的颜色)、材料选择(定制产品的材料的类型)和修整(finishing)选择(用户为定制产品选择的修整)。基于该信息,用户界面可以汇集一组指令,这些指令描述用户设计并从例如用户产品渲染器请求最终产品的图像。所产生的交互可以实时地执行。

在一些实施例中,响应于用户动作而渲染独一无二的产品的合成视图的过程具有一组独特的要求。这些要求通常与实时媒体渲染或产品媒体渲染是分离的。这些要求的示例包括以下要求:

1.每个单独的请求可能要求新资产,因此在图形硬件上缓存纹理可能与高延时成本相关联。

2.每个请求会破坏用于优化渲染的帧到帧一致性策略。

3.每个定制产品有不同的图形特征,这使得在游戏和模拟中使用的特例渲染和调整(tuning)效果不佳。

4.对渲染时间或管道延时的要求基于产品浏览时间,而不是显示平滑的帧速率或优化对电影帧的渲染。通常,对于产品视图的渲染时间可大于模拟的1/60秒的渲染时间,并且远小于故事片(feature film)的帧的典型20分钟的渲染时间。可接受的延时范围可从1/15秒到1/2秒。

5.由于图像描绘直接影响用户对定制产品的感知,因此期望图像质量较高。

6.需要使用高质量子像素采样进行渲染,以解决复杂产品几何图形和透明度问题。

在一些实施例中,本文描述的系统和方法至少针对最后一组要求,即,针对高质量子像素渲染要求,解决了高质量渲染的要求问题。该解决方案允许解决复杂产品几何图形和透明度的问题。该解决方案提供了一种新颖的采样子像素几何图形的方法。

所提出的系统和方法克服了现有技术的低水平渲染部分(这些部分倾向于使用隐式表面检测(如在Embree方法中),使用对像素桶的显式细分(如在Reye方法中),以及使用对几何图形的显式扫描转换(如Catmull'78方法))的局限性。

Embree是一种内核架构,用于在x86 CPU上进行高效的光线追踪。Embree针对专业的渲染环境,在专业的渲染环境中,具有高几何复杂性和间接照明的场景是平常的而不是异常的。为了解决这个问题,Embree提供了一组针对不同ISA向量宽度而优化的常用内核、工作负载(例如,相干和非相干光线分布、静态和动态场景)和特定于应用的优先级(例如,最大性能或最小存储器利用)。基于这些内核构建的渲染器可以实现与许多CPU或GPU上的现有方法相当的包围体层级结构(BVH)构造和光线遍历性能。

Reyes是Lucasfilm有限公司开发的图像渲染系统,目前在皮克斯公司使用。Reyes提供了一种为复杂动画场景的快速高质量渲染而优化的架构,即能够在大约一年内计算出一部故事长片(feature-length film)。Reyes提供了与真人电影摄影几乎没有区别的高质量手段和像真实场景一样视觉丰富的复杂手段。

对几何图形的显式扫描转换,如在Catmull中那样,实现了具有抗走样的隐藏表面算法。走样问题通常包括锯齿状边缘、连续帧中屏幕上和屏幕外弹出的小对象、渲染周期性图像中的波纹图案、精细细节破裂等。出现该问题的主要原因是图像空间是在与像素对应的离散点处进行采样的。Catmull的隐藏表面算法包括:根据最高“y”值对所有多边形进行排序(sort),将活动多边形列表初始化为空,并对每条扫描线重复进行下述操作:将进入该扫描线的y列表中的多边形添加到活动多边形列表,将x-桶初始化为空,将扫描线阵列初始化为背景,并通过对多边形列表中的各多边形执行特定的裁剪、替换和排序操作来循环遍历每个多边形,等等。

在一些实施例中,所提出的系统和方法克服了用于处理子像素透明度或抗走样的技术(包括累积抖动随机采样、累积微多边形或使用修改后的Reyes将透明度和颜色数据存储在A-buffer中)的局限性。

A-buffer(即抗走样、区域平均、累积缓冲区)是适用于中等规模虚拟存储器计算机的通用隐藏表面机制。A-buffer解决了任意集合的不透明、透明和相交对象之间的可见性问题。使用易于计算的傅立叶窗口,A-buffer可以在成本适度增加的情况下将有效图像分辨率提高到Z-buffer的许多倍。

在一些实施例中,所提出的系统和方法通过利用例如A-buffer算法存储覆盖数据来克服其他方法关于计算机存储器的可用性的局限性。

在一些实施例中,本文描述的系统和方法使用混合方法,其显式地依赖于扫描转换,但隐式地依赖于使用现代标量指令和精心构造的覆盖数据集执行隐式计算来推导子像素覆盖。

4.0合成视图渲染过程

图2图示了根据一些实施例的用于渲染合成视图的示例处理流程。图2中描述的步骤可以使用图1中描述的产品合成视图渲染平台101的组件来执行。

4.1生成经校准产品渲染资产

在步骤202中,生成合成视图渲染的过程开始于生成经校准产品渲染资产。经校准产品渲染资产可以通过创建参考实物产品的数字表示来生成。参考实物产品可以使用指定的颜色和图案来生产。颜色和图案通常可以称为“标记”。

标记被辨认出并用于构造几何图形、设计区域、遮罩、局部表面着色和全局亮度着色。几何图形、亮度图和颜色图通常与产品选项键-值相关联。

4.2将产品选项键-值的用户驱动的设置应用于经校准产品渲染资产

在步骤202A中,作为生成经校准产品渲染资产的一部分,产品选项键-值的用户驱动的设置被应用于经校准产品渲染资产。这可包括:设置基材、修饰(trim)或其他与颜色或纹理外观相关的键-值。基材可以是制造产品的材料。例如,海报的基材是纸,T恤的基材是棉布,手机壳的基材可能是聚碳酸酯等。在一些实施例中,纹理资产和颜色图可以按照参考物来设置。

在一些实施例中,应用产品选项键-值还包括:设置由键-值关联的设计区域。这可包括:设置设计区域参考,例如,将要渲染的图像设置在由标记指定的设计U-V几何图形中。

在一些实施例中,应用产品选项键-值还包括:设置产品参数键-值。这可包括:对几何图形特征及布置(placement)进行变换。用于特定产品的键可包括产品高度、产品宽度、产品深度、产品周长、设计的布置、设计高度、设计宽度等。

在一些实施例中,修饰几何图形特征及布置是变换得到的。该变换可包括:调整边框或边缘以适合几何图像特征,以及设置边框或边缘的实体轮廓。

在一些实施例中,视图参数被设置。这可包括:对于特定视图设置几何图形变换。这还可包括:设置原位(in-situ)变换。

4.3启动渲染应用

在步骤202B中,启动渲染应用。在该步骤中,初始化覆盖图(CoverageMap)服务。覆盖图服务在后面描述。

4.4渲染资产

在步骤208,资产被渲染。在该步骤中,初始化覆盖缓冲区(Coverage buffer)服务。覆盖缓冲区服务将在后面描述。

然后,对于经校准产品渲染资产中的每个表面,执行以下步骤:在步骤208A中,将表面外观资产绑定到相应的颜色、纹理、设计、参数化着色等。

然后,在步骤208B中,对于经校准产品渲染资产中的每个多边形,构建混合扫描线和隐式结构。这可包括:确定三角形点、三角形δ函数(triangle delta)和隐式三角形(ImplicitTriangle)。

在步骤208C中,经转换表面被扫描成显式像素样本并且像素样本被隐式地评估到覆盖图中。

在一些实施例中,通过执行以下操作对每个三角形进行扫描转换:对于扫描中的每个X,Y像素,使用覆盖图服务来评估隐式三角形。如果X,Y像素完全地位于多边形内,则设置默认的完整覆盖图。但是,如果X,Y像素部分地位于多边形内,则计算覆盖图。然后,像素被设置在覆盖缓冲区中。如果该像素可见,则该像素被着色。

在步骤208D中,覆盖缓冲区被转换为最终图像。这将在后面详细描述。

4.5显示资产

图3示出了根据一些实施例的产品定制系统的用户界面130的示例。所描绘的示例示出渲染的图像134的示例,其对应于US 8,175,931 B2的图2中所示的渲染的图像134。

用户界面可以包括视图(VIEWS)选项部分132,其允许用户/消费者在视图部分134中的产品(PRODUCT)视图或设计(DESIGN)视图之间进行选择。视图部分还具有视图选择器134a,其允许用户/消费者在要在视图部分显示的视图(例如,鞋面、外鞋身、外鞋头或鞋舌)间进行选择。用户界面还可以包括视图工具部分136,其允许用户替换或删除视图的一部分(虚线框工具)、缩放视图(放大镜工具)和/或在视图部分中一起查看成对的产品(VIEWPAIR)。

用户界面还包括:产品选项卡137(KEDS SHOE OPTION选项卡,因为示例中的产品是Keds鞋),其允许用户选择各种产品选项(例如对于设计区域和附件的颜色和图案),以及定制(CUSTOM IT!)选项卡138,其允许用户使用用户内容来定制产品,如下面更详细描述的。如图所示,产品选项卡(这里的产品是鞋)还可以包括:显示特定产品的概要的产品概要部分137a、允许用户选择产品的适当尺寸的尺寸部分137b、以及允许用户选择要与定制的产品一起购买的额外鞋带的额外鞋带部分137c、允许用户为每件产品(例如在鞋示例中,鞋面、鞋舌、内鞋身、内鞋底、鞋跟和外鞋身)选择颜色和/或印花的颜色和印花部分137d、允许用户为产品选择某些修饰和细节的修饰和细节用户界面137e、以及允许用户选择要购买的产品量、显示产品的累计价格以及允许用户将定制的产品添加到电子购物车的商务部分137f。

5.0覆盖图服务

所提出方法的核心是覆盖图服务。覆盖图服务提供对隐式三角形的评估,并为例如16×16子像素区域提供覆盖图。覆盖图服务可以以多种方式实现。下面是覆盖图服务的一种可能实现方式的示例。应注意,该实施例针对特定标量指令集而被进行了调整,因此其他指令集可能需要单独的实施例。

在一些实施例中,覆盖图结构被设计用来表示多边形的单个边缘,并且针对任何X,Y像素来评估该边缘的16×16二进制覆盖。该结构可包含:

1.覆盖范围(coverage),一个包含16×16覆盖图的256位向量,以及

2.质心(centroid),一个包含4个单精度浮点值的128位向量,其中包含对应于覆盖区域的用于覆盖图的采样点。

覆盖图服务可以相对单个边缘来评估X,Y像素,该边缘可以由边缘(一个包含描述拥有a、b、c、d的该边缘的4个单精度浮点数的128位向量,其中a、b是二维边缘的法线,c是该边缘的法线到0,0的偏移量,d是像素的左上角到其中心的距离)表示。

在一种实现方式中,覆盖图服务由在AVX2指令集中定义的Intel_m256i寄存器表示(参见英特尔(R)架构内联函数的imminitrin.h元头文件)。

在一种实现方式中,质心由在SSE4.1指令集中引用的Intel_ml28寄存器表示(参见英特尔(R)架构内联函数的smmintrin.h元头文件)。

在一种实现方式中,边缘由在SSE4.1指令集中引用的Intel_ml28寄存器表示(参见英特尔(R)架构内联函数的smmintrin.h元头文件)。

下面提供了覆盖图的一种实现方式的伪代码示例:

应注意,覆盖图上的布尔区域运算、相交、组合和差分由占用单个时钟周期的单个标量指令执行。这允许非常快速地计算子像素渲染的区域。还应注意,该区域可以使用标量指令popcnt()运算来计算,这允许将覆盖区域快速转换为不透明。

16×16子像素阵列中可能的边缘的数量相对较少。在一个实施例中,所有可能边缘的阵列可以由距离阵列的左上角的512个子像素距离和256个角度来表示。在一个实施例中,用于距离的像素距离是sqrt(2.0)/512.0,并且角度单位是(2.0*PI())/256.0。

下面提供了构建此阵列的一种实现方式的伪代码示例(使用embree::math.h作为内联函数):

         

   

像素坐标也可以由a_ml28寄存器表示。如果像素的形式为x,y,1,1,则像素坐标可以被转换为使得边缘结构的点积可以产生距该边缘的距离。

快速地准备给定整数X,Y像素对于相对边缘进行的评估非常有用。

下面描述了此转换的一种可能实现方式的伪代码的示例:

现在,可以通边缘快速地利用点积来隐式地评估经转换像素。这可以使用_mm_dp_ps()内联函数在1.5个时钟周期内完成。

下面包含评估像素并返回覆盖图的一个可能实现方式的伪代码的示

        

值得注意的是,大多数像素评估可能完全在边缘内或在边缘外,因此可以应用使用内联标量点积指令的快速评估。可以通过执行三个点积边缘评估来优化隐式三角形的评估以快速接受/拒绝。

6.0覆盖缓冲区服务

一旦针对三角形对经扫描转换的像素进行了正面评估,可以把覆盖图添加到覆盖缓冲区。

在一个实现方式中,覆盖缓冲区是32位整数的二维数组,这些整数是覆盖像素(CoverPix)结构的索引列表的开始。在初始化时,该数组被设置为要渲染的图像的大小,其值被设置为-1以指示这些值为空。

CoverPix是着色像素的中间表示,它拥有着色数据和表面数据、对覆盖图的索引、表面标识符(SurfaceID)和组合信息。

CoverPix的一种可能实现方式的伪代码示例如下所示:

   

在一些实施例中,覆盖缓冲区拥有CoverPix和覆盖图的可调尺寸阵列。当向覆盖缓冲区添加着色像素时,会为它们分配CoverPix和覆盖图(如果需要),并将它们置入覆盖缓冲区中的z顺序链表中。

覆盖缓冲区结构的一种可能实现方式的伪代码的示例如下所示:

构建覆盖缓冲区

    

    

在此实现方式中,针对每个“x”扫描线,CoverPix和覆盖图是按照阵列被分配的。这是为了允许扫描线区域对图像进行多线程渲染。当向图中置放着色的经扫描转换的像素时,如果确定覆盖缓冲区的像素为空,则此像素可以正好被分配并设置。如果新像素在图中完全不透明的另一个像素后,则此像素可能会被忽略。如果新像素有与覆盖缓冲区中像素相同的表面标识符并匹配“z”深度,则此像素可被组合到该表面的现有覆盖像素中。如果不是这些情况,则新的CoverPix会被分配,并针对其X、Y位置,其索引会被排到CoverPix标识符的链表中。

对像素进行着色是最昂贵的单个操作,因此仅当像素对渲染有贡献时才执行着色。

Coverage buffer::set函数以及helper函数的一种实现方式的伪代码的示例如下所示:

    

     

   

如果像素在同一表面上,则执行基于覆盖范围的分段拟合。使用由覆盖图服务提供的布尔运算执行分段拟合。这些计算、相交、差分和组合可以使用单个内联标量指令来执行。请注意,“z”链表是从视图最远到最近排序的。这允许快速地拒绝遮挡并且与将对像素进行合成的顺序相同。

一旦所有的多边形都被扫描转换,并且覆盖缓冲区被完全设置,它可以被遍历并合成到最终图像中。这是通过遍历每个像素的链表,按链接顺序应用合成来完成的。

对于覆盖缓冲区的这种合成的一种可能实现方式的伪代码的示例如下所示:

        

       

           

在一些实施例中,所有着色值都预乘以α,并且顶部像素的coverage*α用作用于应用PixCover的着色值的组合标量。

在一些实施例中,可以使用与针对分段拟合描述的技术类似的技术使用分段表面遮挡来合成复杂场景。

在一些实施例中,合成操作可以通过枚举来描述。下面举例说明:

//用于在覆盖缓冲区内进行合成的混合模式

在使用所提出的高质量渲染方法进行渲染之后,渲染的图像被示为图3中描述的元素134。图3对应于US 175,931B2在图2中所示的使用不同方法生成的图像(元素134)。值得注意的是,该渲染的子像素渲染部分将渲染时间增加了大约20%,而提供了几乎16倍的线性分辨率。

7.0定制产品的合成视图的高质量渲染的示例方法

在一些实施例中,一种用于对定制制造的产品的合成视图进行高质量渲染的方法包括:渲染定制制造的产品的图像,其中用于制造产品的指令由产品选项架构提供,产品选项架构由一组受约束的键-值对组成。

在一些实施例中,产品选项可以表示为键-值对。键-值对是标签,其可以涵盖个体产品,而且可以代表一类产品。各对的键可以包括材料类型、颜色、尺寸等。

键-值对中的值是设置制造指令的特定的离散或连续值。离散(枚举)值的示例可以包括离散类型的织物,例如棉、棉-聚酯混纺物、丝绸等。离散值还可以包括特定颜色,例如白色、海军蓝、黑色等。

键-值对的连续值的示例可以包括单个要素(诸如长度或带状物)、向量(诸如印刷物的边框的尺寸(宽度(以英寸为单位)或高度(以英寸为单位)),或欧洲国家的盒子的尺寸,诸如欧盟的盒子的尺寸(宽度(以毫米为单位)、高度(以毫米为单位)、深度(以毫米为单位)))。

这些值还可以参考已知的文件类型,诸如T恤上的设计的图像,诸如用于夹克背面的刺绣文件,诸如手镯的雕刻设计等。

在一些实施例中,键-值对中的值可以包括用于设计的一组图形基元,诸如图像、线条、圆形、矩形、文本、群组等。

产品选项键-值可以有默认值。默认值是预先设置的值,其将在整个定制中不更改任何键-值对的情况下产生产品。当键-值发生更改时,它们产生产品选项架构事件链。产品选项架构事件链是按时间排序的每个键-值更改的日志。

产品类型本身可以由产品选项键-值表示。使用此选项类型,一种产品类型可以通过众所周知的关系与另一种产品类型相关联。产品选项架构事件链可以包括一个或多个产品,并且该链可以表示事件或代表对事件的纪念。产品可以表示事件或代表对事件的纪念。事件的示例可以包括邀请、保存约会卡、生日卡、生日礼物、周年纪念卡、出生公告、RSVP卡、节日卡、节日礼物、感谢卡、康复卡等。

产品选项键-值对可用于自动向用户呈现界面。产品选项键-值对可以基于用户提供的动作或输入而被设置或更改。

在一些实施例中,通过应用键-值对,经校准产品渲染资产被渲染为定制制造的产品的图像。键-值对可以设置以下至少之一:渲染资产的颜色或颜色图、渲染资产的纹理或纹理表面、表示产品上的装饰或图案的图像、或渲染资产的几何图形的尺寸关系。

本文提出的高质量渲染方法利用了像素分辨率级的扫描转换几何图形。此外,使用由点积标量指令执行的边评估来对子像素覆盖范围进行评估。此外,使用标量指令、使用至少16×16的二进制数组来对子像素覆盖范围进行评估。

8.0示例渲染流程

图4图示了根据一些实施例的用于渲染合成图像的示例处理流程。该过程允许制造用户设计的产品,并包括将用户创建的颜色和设计应用于由例如平面图案织物样片制成并缝合在一起的产品。图4中描述的步骤可以由在例如图1中描述的产品合成视图渲染平台101中实现的产品定制系统执行。

在步骤402中,产品定制系统接收捕获定制的产品的数据。产品定制系统可以例如提供允许用户定制产品的用户界面。然后,产品定制平台可以通过用户界面接收捕获定制的产品的数据。该界面可以实现为一个或多个网页。该用户界面允许用户通过交互的方式向构成产品的二维图案样片应用颜色、瓦片图像和摄影或设计的图像。由用户界面生成的数据可包括用户帐户数据、产品描述(描述用户的定制产品)、用户图像设计(包含用户内容)、颜色选择(用户选择的(一种或多种)颜色)、材料选择(定制产品的材料的类型)和修整选择(用户为定制产品选择的修整)。用户界面可以被配置为汇集一组描述用户设计的指令并且从用户产品渲染器请求最终产品的图像。

在步骤404中,产品定制系统使用实现本文提出的高质量渲染方法的用户产品渲染器来为用户渲染定制的产品。用户产品渲染器可以接收二维图案样片的数据/信息/描述(基于用户与用户界面部分的交互)和其他用户偏好以及由例如反映模块提供的使用信息。反映模块可以被配置为对于用于生成产品的图像的经校准的产品渲染器资产(包括几何、亮度图、颜色图和安全区域覆盖图)生成经校准的颜色图和经校准的亮度图。然后,渲染器可以合成最终剪切并缝合的制成产品的图像,然后将该图像显示给用户/消费者。

在步骤406中,产品定制系统使用实现本文提出的高质量渲染方法的制造产品渲染器来为制造商渲染定制的产品。制造产品渲染器可以接收二维图案样片的数据/信息/描述、其他用户偏好和反映模块提供的信息,并准备制造模块使用的图像图案文件、剪切文件和操作者指引。

在步骤408中,产品定制系统将定制的产品发送给制造商,制造商使用制造设备制造定制的产品。制造例如可以包括以下过程:1)使用图像图案文件和剪切文件来制造平面图案样片;2)根据操作者指引来缝合图案样片;3)执行修整步骤;4)基于操作者指引来运送产品;和/或5)收集反映部分的产品信息(包括图案、带有校准标记的参考产品和/或颜色和材料样本),这些信息被输入到可以执行例如各种模型拍摄处理任务的模型拍摄处理组件。

在步骤410中,产品定制系统使用反映模块来执行反映过程。反映模块可以是系统中向系统的其他部分提供反馈的部分。反映模块例如可以执行以下任务:1)向制造产品渲染部分提供更新的产品图案(经校准的图案和可见区域布局);2)制造用户产品渲染部分使用的参考产品(经校准的图案和可见区域布局);3)用制造商的参考产品来校准图案位置;4)向用户产品渲染部分提供参考产品的经校准的照片参考;和/或5)为用户产品渲染部分提供经校准反射率和颜色映射(经校准的颜色图和经校准的亮度图)。

9.0制造

制造过程可能涉及制造数字产品和制造实物产品。由于用于生成产品的制造指令是基于针对产品的数字设计的多个键-值对而生成的,因此在某些情况下,相同的制造指令可用于制造数字产品以及制造实物产品。

在一些实施例中,产品选项框架为称为输出风格(OutputStyle)的键-值对构建界面。用于输出风格键的界面可以允许设计者(或任何其他合作者)为用于呈现交互式设计的媒体选择值。选项可包括IPEG图像、GIFF图像和H264视频。

如果设计者选择GIFF图像选项,则产品选项架构可以向制造系统发送指令以遍历键值日志(KeyValueJournal)中的每个键-值,并且对于每个键,还使用用户产品渲染器以此修改来将定制实物产品的状态渲染为sRGB 32位RGBA格式的图像。随后,制造系统可以将此渲染存储在本地图像缓存中。

然后,制造系统可以遍历存储在本地图像缓存中的图像并为该集合的图像确定最佳色板。

随后,制造系统可以将本地图像缓存中的图像从32位RGBA格式转换为8位索引颜色。

然后,制造系统可以在8位索引彩色图像缓存中嵌入数字水印,该水印对输入的键值日志的UUID进行了编码。

接下来,制造系统可以开始编码图像文件。例如,制造系统可写入标题字节;写入逻辑屏幕描述符(Logical Screen Descriptor)字节;将找到的色板写成gif全局颜色表(Global Color Table);写入gif 8位字符应用名称;并将元数据作为注释(或水印)嵌入,该注释对输入的键值日志的UUID进行了编码。

一旦制造系统处理完所有帧,制造系统将文件终止符(例如表示零的ASCII码)写入图像文件并输出制造的GIF产品。

至此,以制造产品为目的的制造指令的执行结束,产品的制造完成。

10.0实现机制——硬件概述

根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可被硬连线来执行这些技术,或者可以包括数字电子设备,诸如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),这些设备被持久性地编程以执行这些技术,或者可以包括一个或多个通用硬件处理器,这些处理器被编程为根据固件、存储器、其他存储装置或它们的组合中的程序指令来执行这些技术。这种专用计算设备还可以将定制硬连线逻辑、ASIC或FPGA与定制编程相结合来实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或结合硬连线和/或程序逻辑来实现这些技术的任何其他设备。

例如,图5是图示计算机系统500的框图。计算机系统500包括总线502或用于传递信息的其他通信机制,以及包括与总线502耦合的用于处理信息的硬件处理器504。硬件处理器504例如可以是通用微处理器。

计算机系统500还包括主存储器506,诸如随机存取存储器(RAM)或其他动态存储设备,其耦合到总线502以用于存储信息和处理器504将要执行的指令。主存储器506还可用于存储在指令由处理器504执行期间的临时变量或其他中间信息。这样的指令,当存储在处理器504可访问的非暂态存储介质中时,使得计算机系统500成为专用机器,该机器被定制为执行指令中指定的操作。

计算机系统500还包括只读存储器(ROM)508或其他静态存储设备,它们耦合到总线502,用于存储以供处理器504使用的静态信息和指令。存储设备510,诸如磁盘或光盘,被提供并耦合到总线502,用于存储信息和指令。

计算机系统500可以通过总线502耦合到显示器512,诸如阴极射线管(CRT)式,用于将信息显示给计算机用户。输入设备514,包括字母数字键和其他键,耦合到总线502,用于将信息和命令选择传送到处理器504。另一种类型的用户输入设备是光标控件516,诸如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器504,以及用于控制显示器512上的光标移动。输入设备通常具有两个轴(第一轴(例如,x)和第二轴(例如,y))上的两个自由度,这两个自由度允许设备指定平面中的位置。

计算机系统500可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统结合导致计算机系统500成为或使得计算机系统500编程为专用机器)来实现本文描述的技术。根据一个实施例,本文的技术由计算机系统500响应于处理器504执行包含在主存储器506中的一个或多个指令的一个或多个序列而被执行。这样的指令可以从另一个存储介质(诸如,存储设备510)读入主存储器506。包含在主存储器506中的指令的序列的执行使得处理器504执行本文描述的处理步骤。在替代实施例中,硬连线电路可用于代替软件指令或与软件指令结合使用。

本文使用的术语“存储介质”是指存储使机器以特定方式运行的数据和/或指令的任何非暂态介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备510。易失性介质包括动态存储器,诸如主存储器506。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何物理带孔图案的介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或盒式存储器。

存储介质不同于传输介质,但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括构成总线502的电线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间产生的那些。

在将一个或多个指令的一个或多个序列携带到处理器504以供执行时可能涉及各种形式的介质。例如,指令最初可能承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据并使用红外发射器将数据转换为红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路可以将数据置放在总线502上。总线502将数据携带到主存储器506,处理器504从主存储器506撷取指令并执行指令。由主存储器506接收的指令可以可选地在处理器504执行之前或之后存储在存储设备510上。

计算机系统500还包括通信接口518,通信接口518耦合到总线502。通信接口518提供耦合到连接到本地网络522的网络链路520的双向数据通信。例如,通信接口518可以是综合服务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或用于提供到对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口518可以是局域网(LAN)卡,用于提供到兼容LAN的数据通信连接。也可以实现无线链接。在任何这样的实现方式中,通信接口518发送和接收电信号、电磁信号或光信号,这些信号携带代表各种类型的信息的数字数据流。

网络链路520通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路520可以通过本地网络522提供到主机524或到由因特网服务提供商(ISP)526运营的数据装备的连接。ISP 526又通过全球分组数据通信网络(现在通常称为“互联网”)528提供数据通信服务。本地网络522和因特网528都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号和网络链路520上的信号以及通过通信接口518的信号(它们携带数字数据进入计算机系统500或将数字数据携带出计算机系统500)是传输介质的示例形式。

计算机系统500可以通过(一种或多种)网络、网络链路520和通信接口518发送消息和接收数据,包括程序代码。在互联网示例中,服务器530可通过因特网528、ISP526、本地网络522和通信接口518发送针对应用程序的请求代码。

接收到的代码可以在其被接收时由处理器504执行,和/或存储在存储设备510或其他非易失性存储器中以供稍后执行。

11.0扩展和替代方案

在前面的说明书中,已经参考许多具体细节描述了本发明的实施例,这些具体细节可因实现方式而异。因此,本发明是什么以及申请人打算本发明保护什么的唯一且排他性指标是从本申请提出的一组权利要求,并且具有这些权利要求限定的具体形式,包括任何后续修正。本申请中为这些权利要求中包含的术语明确提出的任何定义应可用来确定权利要求中使用的这些术语的含义。因此,权利要求中未明确记载的限制、要素、特性、特征、优势或属性不应以任何方式限制此类权利要求的范围。因此,说明书和附图被认为是说明性的而不是限制性的。

相关技术
  • 用于针对在安全系统键区上显示的文本来定制和提供自动化语音提示的系统和方法
  • 应用于存储系统的节点视图展示方法及相关设备
  • 一种用于高层建筑物的快拆定制模板系统及其施工方法
  • 一种穿戴产品定制方法、系统及终端设备
  • 一种多产品多层级的流程定制方法及系统
  • 定制产品的包装和用于生产定制产品的包装的方法及系统
  • 定制产品的包装和用于生产定制产品的包装的方法及系统
技术分类

06120116211611