[go: up one dir, main page]

CN119478180A - 三维场景中重叠纹理的渲染 - Google Patents

三维场景中重叠纹理的渲染 Download PDF

Info

Publication number
CN119478180A
CN119478180A CN202411082917.0A CN202411082917A CN119478180A CN 119478180 A CN119478180 A CN 119478180A CN 202411082917 A CN202411082917 A CN 202411082917A CN 119478180 A CN119478180 A CN 119478180A
Authority
CN
China
Prior art keywords
support
texture
rendering
points
scene
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202411082917.0A
Other languages
English (en)
Inventor
L·佩蒂厄
Y·萨杜迪
F·莱策尔特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of CN119478180A publication Critical patent/CN119478180A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, disassembling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开尤其涉及一种用于在3D场景中渲染两个重叠纹理的计算机实现方法。该渲染方法包括:获取包含第一渲染纹理的第一3D支持件。该渲染方法包括:获取包含第二渲染纹理的第二3D支持件。该渲染方法包括:检测到第二支持件与第一支持件相交。该渲染方法包括:通过合并第一3D支持件和第二3D支持件来计算第三3D支持件。该渲染方法包括:通过混合第一纹理和第二纹理来计算第三纹理。该渲染方法包括:在计算的第三3D支持件上渲染计算的第三纹理。该渲染方法包括:在第三3D支持件上显示渲染的第三纹理。该方法形成了用于渲染3D场景的改进的解决方案。

Description

三维场景中重叠纹理的渲染
技术领域
本公开涉及计算机程序和系统领域,更具体地,涉及一种用于在3D场景中的一个或多个点上映射纹理的方法、系统和程序。
背景技术
在市场上提供了若干用于对象的设计、工程和制造的系统及程序。CAD(Computer-Aided Design)是计算机辅助设计的首字母缩写,例如,其涉及用于设计对象的软件解决方案。CAE(Computer-Aided Engineering)是计算机辅助工程的首字母缩写,例如,其涉及用于模拟未来产品的物理行为的软件解决方案。CAM(Computer-Aided Manufacturing)是计算机辅助制造的首字母缩写,例如,其涉及用于定义制造过程和操作的软件解决方案。在这样的计算机辅助设计系统中,图形用户界面在技术效率方面起重要作用。这些技术可以嵌入在产品生命周期管理(Product Lifecycle Management,PLM)系统内。PLM是指在跨扩展企业的概念下的商业策略,其从产品概念到产品生命周期结束,帮助公司共享产品数据、应用通用流程、并采用公司知识来开发该产品。由Dassault Systèmes提供的PLM解决方案(采用CATIA、ENOVIA和DELMIA等商标)提供了整合产品工程知识的工程中心(EngineeringHub)、管理制造工程知识的制造中心(Manufacturing Hub)、以及使企业集成并连接到工程和制造中心两者中的企业中心(Enterprise Hub)。这些系统共同递送链接了产品、过程、资源的开放对象模型,以实现动态的、基于知识的产品创建和决策支持,其推动了产品定义、制造准备、生产和服务的优化。
许多技术领域都采用3D绘图;例如图形创建、CAD或产品设计。在这些技术领域中,目标之一是在虚拟3D空间中向用户提供最接近经典2D草绘的体验(例如,在纸张上使用笔)。为此,功能之一是允许用户纹理化3D场景,即,将纹理添加到3D场景(或3D空间)。为此,现有解决方案通常包括确定由用户绘制的3D曲线以及将该确定的3D曲线添加到3D场景。然而,用于3D绘图的这些现有解决方案是不够的。
尤其是3D场景中的3D曲线的渲染质量比2D绘图的质量差,并且存在缺陷。值得注意的是,两个及以上3D曲线的叠加与2D绘图中不同,尤其是当3D曲线具有低于100%的不透明度时。技术上,用于曲线渲染的顺序取决于所使用的可视化引擎或者甚至取决于显卡的优化。在现有解决方案中,渲染的顺序非常影响结果。因此,不能确保重叠3D形状渲染结果的质量。
现在参考图1和图2讨论渲染缺陷的第一示例,其示出了分别使用3D绘图解决方案和2D绘图解决方案获得的渲染。
图1和图2示出了由用户绘制的四条3D曲线101、102、103a和103b的渲染。首先绘制曲线102,然后绘制曲线101以及曲线103a和103b。因此,曲线101与曲线102相交,并且曲线103a和103b分别在104和105处与曲线101相交。曲线101和102具有40%的不透明度,而曲线103a和103b具有100%的不透明度。图1示出了使用3D绘图解决方案在相交点104和105处存在渲染问题。实际上,重叠区域104中的渲染不同于重叠区域105中的渲染,而这两个相交点的渲染本应是相同的。该问题发生是因为在重叠区域104中,曲线101渲染在曲线103a上方,而在重叠区域105中,曲线101渲染在曲线103b下方。因此,由于曲线101具有40%的不透明度,因此曲线103a在重叠区域104中在曲线101下方可见,而在重叠区域105中,由于曲线103b具有100%的不透明度,因此曲线101在曲线103b下方不可见。
因此,3D场景中的渲染是不足的,因为其取决于渲染不同曲线的顺序。有趣的是,该问题不会在2D绘图解决方案中发生:实际上,在2D绘图解决方案中,所有曲线都被渲染在同一平面上。图2示出了类似曲线(对应于曲线101、102、103a、103b、104、105的曲线101’、102’、103a’、103b’、104’、105’)的渲染,但是使用2D绘图解决方案。在2D绘图中,区域104’和区域105’之间的相交区域是相同的。使用如图1所示的3D绘图解决方案的渲染应当与2D绘图解决方案相同,而实际情况并非如此。这是现有3D绘图解决方案的渲染质量缺陷的第一示例。
3D场景中的渲染缺陷的另一示例涉及色彩混合。现在参考图3和图4讨论该渲染缺陷。
图3示出了使用现有3D绘图解决方案渲染的两条重叠曲线106和107:使用图形工具(例如,在作为计算机触觉设备的平板电脑上操作的触笔、或触摸屏上的附件)往返绘制来创建曲线106,从而获得画布上的着色区域,并且进行类似的动作来获得曲线106上的曲线107。图3上的结果示出,在重叠区域中,渲染不均匀并且视差可见。因此,该重叠不符合物理学。特别地,在区域108中,第二曲线107的纹理是主要的,而在区域108’中,第一曲线106的纹理是主要的。这是因为曲线107与自身重叠,使得第二曲线107的纹理在区域108’中越来越不透明。然而,如图4所示,在相交区域处的渲染应当是均匀的,图4示出了在2D绘图解决方案中通过类似的两条重叠曲线(即,107’在106’之上创建,类似107与106)获得的结果,其中重叠结果取决于笔刷和物理特性。在已知的3D绘图解决方案中,不能控制颜色和曲线的混合方式。这说明了现有3D绘图解决方案的渲染质量缺陷的另一实例。
此外,已知的3D绘图解决方案可以基于包括三角形网格的3D色带(每条曲线一个色带)。然而,通过每条曲线使用一个3D色带不是最佳的着色方式。实际上,这意味着用于着色的三角形的数量是巨大的。图6展示了用于渲染图5中所示纹理109的大量三角形110的实例。三角形的数量影响应用的性能(例如,帧速率):实际上,渲染考虑了每个三角形,并且执行渲染所需的计算能力是所需考虑的三角形数量的函数。此外,每个三角形存储在存储器中,因此三角形的数量也影响所使用的存储器大小。因此,在现有3D绘图解决方案中,渲染需要过度使用计算资源和存储器容量,于是形成了局限性。
在这种情况下,仍然需要改进的解决方案来渲染包括重叠纹理的3D场景。
发明内容
提出了一种用于在3D场景中渲染两个重叠纹理的计算机实现方法。该方法在下文中被称为渲染方法。该渲染方法包括:获取包含第一渲染纹理的第一3D支持件。该渲染方法包括:获取包含第二渲染纹理的第二3D支持件。该渲染方法包括:检测到第二支持件与第一支持件相交。该渲染方法包括:通过合并第一3D支持件和第二3D支持件来计算第三3D支持件。该渲染方法包括:通过混合第一纹理和第二纹理来计算第三纹理。该渲染方法包括:在计算的第三3D支持件上渲染计算的第三纹理。该渲染方法包括:在第三3D支持件上显示渲染的第三纹理。
该渲染方法可以包括以下一者或多者:
第一支持件和第二支持件可以各自包括相应的曲面细分。第一3D支持件与第二3D支持件的合并可包括计算第一3D支持件的曲面细分与第二3D支持件的曲面细分的并集。
-并集的计算可以包括:
聚合第一3D支持件的曲面细分和第二3D支持件的曲面细分的彼此不重叠的区域;以及
通过创建接合重叠的区域的新曲面细分来合并聚合的区域。
-合并第一3D支持件和第二3D支持件可以包括:
计算覆盖第一3D支持件和第二3D支持件的并集的表面;以及
对计算的表面进行曲面细分;
一个或多个第一点和一个或多个第二点可以是共面的。合并第一3D支持件和第二3D支持件可以包括:确定包括全部一个或多个第一点和一个或多个第二点中的矩形表面。所确定的矩形表面可以包括两个三角形。
第一纹理和第二纹理可以各自具有相应的颜色。在这种情况下,第二纹理与第一纹理的混合可以包括在第二纹理和第一纹理的相交部分中将第一纹理的颜色与第二纹理的颜色混合。
可替代地,第二纹理与第一纹理的混合可以包括在相交部分中将第二纹理与第一纹理重叠。
-第二纹理可以具有透明度。第一纹理与第二纹理的重叠可以基于第二纹理的透明度;
-每个3D支持件的获得可以包括:
根据利用输入设备执行的用户输入来确定3D场景中待纹理化的一个或多个点;
计算包括所确定的待纹理化的一个或多个点的3D支持件;
基于所确定的一个或多个点来计算纹理;以及
在计算的3D支持件上渲染计算的纹理;
-获取每个3D支持件还可以包括:对待纹理化的一个或多个点进行参数化;
-计算纹理可以包括基于参数化的一个或多个点来计算纹理;
-3D场景可以包括3D建模对象。3D支持件的计算可以包括:
-在3D建模对象上放置全部一个或多个点中;以及
-确定3D建模对象的一部分作为3D支持件;和/或
-该一个或多个点可以是共面的。3D支持件的计算可以包括确定包括一个或多个点中的每个点的矩形表面。所确定的矩形表面可以包括两个三角形。
还提供了一种包括指令的计算机程序,该指令在由计算机执行时使计算机执行该渲染方法。
还提供了一种记录有计算机程序的计算机可读存储介质(例如,非暂时性的计算机可读存储介质)。
还提供了一种系统,包括耦合到存储器的处理器,该存储器上记录有计算机程序。可选地,处理器可以耦合到图形用户界面。
还提供了一种设备,包括计算机可读存储介质,所述计算机可读存储介质上记录有计算机程序。
该设备可以形成或用作非暂时性计算机可读介质,例如在SaaS(软件运营服务,Software as a service)或其他服务器或基于云的平台等上。该设备可替换地包括耦合到数据存储介质的处理器。因此,设备可以全部或部分地形成计算机系统(例如,设备是整个系统的子系统)。该系统还可以包括耦合到处理器的图形用户界面。
附图说明
现在将参考附图描述非限制性示例,其中:
图1-6示出了现有3D绘图方案的局限性;
图7示出了所述映射方法的示例的流程图;
图8示出了所述映射方法的实施方式的示例;
图9示出了渲染更新的示例的流程图;
图10示出了渲染更新的两个示例;
图11示出了纹理的计算步骤S40的示例;
图12至图14示出了计算的纹理和3D支持件的示例;
图15示出了系统的图形用户界面的示例;以及
图16示出了系统的示例。
具体实施方式
提出了一种用于在3D场景中渲染两个重叠纹理的计算机实现方法。该方法在下文中被称为渲染方法。该渲染方法包括:获取包含第一渲染纹理的第一3D支持件(3Dsupport)。该渲染方法包括:获取包含第二渲染纹理的第二3D支持件。该渲染方法包括:检测到第二支持件与第一支持件相交。该渲染方法包括:通过合并第一3D支持件和第二3D支持件来计算第三3D支持件。该渲染方法包括:通过混合第一纹理和第二纹理来计算第三纹理。该渲染方法包括:在计算的第三3D支持件上渲染计算的第三纹理。该渲染方法包括:在第三3D支持件上显示渲染的第三纹理。
这种方法形成了用于渲染3D场景的改进的解决方案。
该渲染方法解决了现有3D绘图方案的上述局限性。值得注意的是,在计算的第三支持件上执行计算的第三纹理的渲染,使得解决上述局限性成为可能。
首先,3D场景的渲染质量相当于2D场景的渲染质量。实际上,根据定义,第三纹理是2D的,因此渲染方法通过如在2D绘图解决方案中一样混合第一纹理和第二纹理来计算第三纹理。该渲染方法允许在3D场景中渲染所计算的第三纹理,并且因此具有与2D绘图中一样多的细节。通过合并3D场景中的第一3D支持件和第二3D支持件计算的第三3D支持件来实现上述方案,并且可以渲染3D场景中的纹理。两种纹理的混合可以正确地混合颜色。
其次,独立于第三3D支持件执行第三纹理的计算,避免了非均匀渲染和可见视差。实际上,根据定义,第三纹理是2D的,这降低了第三纹理的计算复杂度。具体地,这使得可以计算第一纹理和第二纹理之间的重叠区域,使得计算结果符合物理规律和现实世界。例如,尽管在若干曲线之间存在相交,仍可获得均匀纹理。因此,该渲染方法提供了在重叠处自定义颜色混合的方式。这在当前3D解决方案中是不可能的,其中纹理的混合不能适当地完成。
再者,该渲染方法减少了渲染所需的计算量和存储器容量。实际上,该渲染方法在3D场景中的第三3D支持件上渲染第三纹理,并且该渲染比在3D场景中直接混合不同的纹理消耗更少的计算资源。因此,该渲染方法减少了计算资源消耗。另外,该渲染方法可以根据图形的形状来优化第三3D支持件(例如,优化其包括的三角形的数量)。此外,该渲染方法是稳定的,因为这种渲染独立于所使用的渲染引擎或显卡的实现方式。特别地,第一和第二纹理的渲染不取决于这两个纹理的渲染顺序。在存储器空间方面,第三3D支持件的计算可以控制三角形的数量,从而防止三角形的数量变得过多(如在现有3D绘图解决方案中)。与现有解决方案相比,使用的三角形数量更少。因此,该渲染方法减少了所使用的存储器空间。
另外,该渲染方法提高了人体工程学。实际上,该渲染方法可以在相交的情况下混合3D场景中的纹理。因此,用户可以通过向3D场景连续添加纹理来创建3D场景,如在2D绘图解决方案中一样。这是有利的,因为该渲染方法能够在相交区域中实现特别真实的颜色混合。
该渲染方法是计算机实现的。这意味着该渲染方法的步骤(或基本上所有步骤)由至少一个计算机或任何系统执行。因此,该渲染方法的步骤由计算机执行,可以全自动地或半自动地执行。在示例中,该渲染方法的至少部分步骤可以通过用户与计算机的交互来触发。所需的用户-计算机交互的水平可以取决于预见的自动化水平,并且与实现用户需求进行权衡。在示例中,该交互水平可以是用户定义的和/或预定义的。
计算机实现方法的典型示例是利用适合执行该渲染方法的系统来执行该渲染方法。该系统可以包括耦合到存储器(例如,非暂时性存储器)和图形用户界面(GraphicalUser Interface,GUI)的处理器,该存储器上记录有包括用于执行该渲染方法的指令的计算机程序。存储器是适于这种存储的任何硬件,可以包括若干物理上不同的部分(例如,一个用于程序,且可以一个用于数据库)。该系统还可以包括显卡。显卡可以在计算的3D支持件上执行计算的纹理的渲染和/或在重新计算的第一3D支持件上更新重新计算的第一纹理的渲染。
3D场景可以包括建模对象。建模对象是由例如存储在数据库中的数据定义的任何对象。广义上,“建模对象”这一表述指数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。该系统实际上可以是CAD系统、CAE系统、CAM系统、PDM(Product DataManagement,产品数据管理)系统和/或PLM(Product Lifecycle Management,产品生命周期管理)系统的任何组合。在这些不同的系统中,建模的对象由对应的数据定义。相应地,可以是CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统并不互相排斥,因为建模对象可以由对应于这些系统的任何组合的数据定义。因此,系统可以是CAD和PLM系统两者,如可以通过下文提供的系统定义清楚地了解。
此外,CAD系统是指至少适用于基于建模对象的图形表示来设计建模对象的任何系统(如CATIA)。在这种情况下,定义建模对象的数据包括可以表示建模对象的数据。例如,CAD系统可以使用边或线来表示CAD建模对象,在某些情况下使用面(faces)或表面(surfaces)。线、边或表面可以通过各种方式表示,例如,非均匀有理B样条(non-uniformrational B-splines,NURBS)。具体地,CAD文件包含可以从中生成几何形状的规范,进而允许生成表示。建模对象的规范可以存储在单个CAD文件或多个CAD文件中。在CAD系统中表示建模对象的文件的通常大小在每部分一兆字节的范围内。并且建模对象通常可以是数千个部件的组合。
在CAD的环境中,建模对象通常可以是3D建模对象,例如,表示诸如零件或零件组件的产品,或者可以是产品组件。“3D建模对象”是指通过使其具有3D表示的数据进行建模的任何对象。3D表示使得可以从所有角度观察零件。例如,3D建模对象在3D表示时可围绕其任何轴或围绕其上显示该表示的屏幕中的任何轴操作和转动。这特别排除了不是3D建模的2D图标。3D表示的显示便于设计(即,提高设计者统计上完成其任务的速度)。由于产品设计是制造过程的一部分,因此加速了工业中的制造过程。
3D建模对象可以表示在完成其虚拟设计之后要在现实世界中制造的产品的几何形状,其虚拟设计可以通过例如CAD软件解决方案或CAD系统完成,诸如零件(如机械零件)或零件组装件(或等效地零件组装件,因为零件组装件可以从该渲染方法的角度被视为零件本身,或者该渲染方法可以独立地应用于组装件的每个零件),或者更一般地任何刚性主体组装件(例如,移动机构)。CAD软件解决方案用于在没有限制的各种工业领域中进行产品设计,包括:航空航天、建筑、施工、消费品、高科技装置、工业设备、运输、海洋和/或海上油/气生产或运输。因此,由所述渲染方法设计的3D建模对象可以表示工业产品,所述工业产品可以是任何机械部件,诸如陆地交通工具的一部分(包括例如汽车和轻型卡车设备、赛车、摩托车、卡车和机动机设备、卡车和公共汽车、火车)、飞行器的一部分(包括例如机身设备、航空航天设备、推进设备、防卫产品、航空公司设备、太空设备)、海运交通工具的一部分(包括例如海军设备、商用船、海上设备、游艇和工作船、海洋设备)、一般机械部件(包括例如工业制造机械、重型移动机械或设备、安装设备、工业设备产品、制造的金属产品、轮胎制造产品)、机电或电子部件(包括例如消费电子产品、安全和/或控制和/或仪器产品、计算和通信设备、半导体、医疗设备和设备)、消费商品(包括例如家具、家庭和园林产品、休闲商品、时尚产品、硬商品零售商”产品、软商品零售商”产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
CAD系统可以是基于历史的。在这种情况下,建模对象由包括几何特征历史的数据进一步定义。建模对象实际上可以由物理人员(即,设计者/用户)使用标准建模特征(例如,挤出、旋转、切割和/或圆角)和/或标准表面处理特征(例如,扫掠、混合、放样、填充、变形和/或平滑)来设计。支持这种建模功能的许多CAD系统是基于历史的系统。这意味着设计特征的创建历史通常通过经由输入和输出链接将所述几何特征链接在一起的非循环数据流来保存。自80年代初以来,基于历史的建模范例是众所周知的。建模对象由两个永久数据表示描述:历史和B-rep(boundary representation,边界表示)。B-rep是历史中定义的计算的结果。当表示建模对象时在计算机的屏幕上显示的部分的形状是B-rep(例如,B-rep的曲面细分)。部件的历史是设计意图。基本上,历史整合了关于建模对象已经经历的操作信息。B-rep可以与历史一起保存,以使显示复杂部件更容易。历史可以与B-rep一起保存,以便允许根据设计意图对零件进行设计改变。
此外,PLM系统,其意指适于管理表示物理制造产品(或要制造的产品)的建模对象的任何系统。因此,在PLM系统中,建模对象由适合于制造物理对象的数据定义。这些通常可以是尺寸值和/或容差值。对于物体的正确制造,具有这样的值确实更好。
此外,CAM解决方案意味着适于管理产品的制造数据的任何解决方案、硬件的软件。制造数据通常包括与待制造产品、制造过程和所需资源相关的数据。CAM解决方案用于规划和优化产品的整个制造过程。例如,其可以向CAM用户提供关于可行性、制造过程的持续时间或可以在制造过程的特定步骤处使用的资源(诸如特定机器人)的数量的信息;并且因此允许关于管理或所需投资的决定。CAM是CAD过程和潜在CAE过程之后的后续过程。这种CAM解决方案由Dassault Systèmes以商标提供。
此外,CAE解决方案意味着适于分析建模对象的物理行为的任何解决方案、硬件的软件。众所周知且广泛使用的CAE技术是有限元方法(Finite Element Method,FEM),其通常涉及将建模对象划分为可以通过等式计算和模拟物理行为的单元。这种CAE解决方案由Dassault Systèmes以商标提供。另一种日益增长的CAE技术涉及在没有CAD几何数据的情况下对由来自不同物理领域的多个部件组成的复杂系统进行建模和分析。CAE解决方案允许模拟,从而优化、改进和验证要制造的产品。这种CAE解决方案由DassaultSystèmes以商标提供。
PDM代表产品数据管理(Product Data Management)。PDM解决方案是指适于管理与特定产品有关的所有类型的数据的任何解决方案,硬件的软件。PDM解决方案可以由涉及产品生命周期的所有参与者使用:主要是工程师,但也包括项目经理、金融人员、销售人员和购买者。PDM解决方案通常基于面向产品的数据库。其允许操作者在他们的产品上共享一致的数据,因此防止操作者使用不同的数据。这种PDM解决方案由Dassault Systèmes以商标提供。
该渲染方法可以包括在3D绘图解决方案中,该3D绘图解决方案可以(例如,由用户)用于执行图形创建。执行图形创建可以包括创建、选择和/或使用图形元素(例如,绘图、字样、照片或颜色)以便创建通信和/或文化的3D对象。
备选地或附加地,3D绘图解决方案可以是可用于设计3D建模对象的CAD或产品设计解决方案。“设计3D建模对象”指细化3D建模对象的过程的至少一部分的任何动作或一系列动作。3D建模对象可以是其上放置有点的3D建模对象。第一3D支持件和第二3D支持件(还有第三3D支持件)可以各自是3D建模对象的一部分的复制体。该渲染方法可以在3D建模对象的表面上渲染第三纹理。该渲染方法可以包括,在获得第一和第二3D支持件之前,创建3D建模对象。可以从草绘开始创建3D建模对象。可替代地,该渲染方法可以包括提供先前创建的3D建模对象,然后修改3D建模对象(例如,添加纹理)。该渲染方法可以用于在对象制造之后渲染对象。
该渲染方法可以包括在制造过程中,该制造过程可以包括在执行该渲染方法之后,生产对应于建模对象的物理产品。在任何情况下,由该渲染方法设计的建模对象可以表示制造对象。因此,建模对象可以是建模实体(即,表示实体的建模对象)。制造对象可以是产品,诸如零件或零件的组件。因为该渲染方法改进了建模对象的设计,所以该渲染方法还改进了产品的制造,并且因此提高了制造过程的生产率。
该渲染方法可以动态地执行。例如,获得第二3D支持件的步骤可以在用户正在执行从中计算第二3D支持件的输入时执行。在这种情况下,所获得的第二3D支持件可以在执行用户输入时动态地变化。例如,该渲染方法可以在执行用户输入时重复获得第二3D支持件,例如针对所确定的用户输入的每个新点(或者在每次检测到给定数量X的新点之后),或者可替代地,在每次经过持续时间T之后。该渲染方法还可以动态地执行相交的检测,即,在执行用户输入时。例如,在每次重复获取之后,该渲染方法可以确定第二3D支持件是否与第一3D支持件相交。第一3D支持件可能已经存在于3D场景中并且可能已经获得(例如,从先前执行的另一用户输入中获得)。当第二3D支持件与第一3D支持件相交时,该渲染方法可以包括检测该相交(即,检测重复发生的相交)。
现在更详细地讨论相交的检测。在示例中,检测可以包括:检测在第二3D支持件内执行了用户输入。用户输入是为计算第二3D支持件而执行(即,在获得第二3D支持件期间执行)的用户输入。例如,检测可以包括检测从用户输入确定的一个或多个点中的至少一个位于第一3D支持件上(例如,点可以包括在3D支持件的表面中,例如,考虑了容差范围)。当利用这样的指向设备(例如,鼠标、笔或在触摸平板的情况下的用户手指)执行用户输入时,被检测为位于3D支持件上的点可以对应于由指向设备指向的3D场景的点。
在另一示例中,检测可以包括检测到第二3D支持件的表面和第一3D支持件的表面彼此相交。在这种情况下,检测可以包括检测到第二3D支持件和第一3D支持件的表面的交点非零。
在另一示例中,检测可以包括检测到在第一3D支持件上渲染的纹理与在第二3D支持件上渲染的纹理相交。在这种情况下,检测可以包括检测到在第一3D支持件和第二3D支持件上渲染的纹理的区域彼此相交。检测可以包括检测到在第一3D支持件和第二3D支持件上渲染的纹理区域的交集非零。
上述检测示例中的两个或更多个可以进行组合。在这种情况下,执行组合示例中的至少一个(即,已经检测到需要哪种检测),或相反,执行所有组合示例,均可以实现检测。现在更详细地讨论第三3D支持件的计算步骤。
第三3D支持件的计算基于第一和第二3D支持件。计算第三3D支持件包括合并第一和第二3D支持件。所计算的第三3D支持件可以包括第一和第二3D支持件。所计算的第三3D支持件是合并第一和第二3D支持件的结果。例如,第一支持件和第二支持件可以各自包括相应的曲面细分(tessellation)。在所述情况下,所计算的第三3D支持件可包括第一3D支持件的曲面细分和第二3D支持件的曲面细分。在所述第一3D支持件的所述曲面细分与所述第二3D支持件的所述曲面细分之间,所述所计算的第三3D支持件可进一步包括接合曲面细分,其接合所述第一3D支持件的所述曲面细分与所述第二3D支持件的所述曲面细分。
第一3D支持件与第二3D支持件的合并可包括计算第一3D支持件的曲面细分与第二3D支持件的曲面细分的并集。并集的计算协助了第三3D支持件的计算。实际上,这样可以考虑已经计算的第一和第二3D支持件。
并集的计算可以分两步执行。第一步,计算并集可以包括聚集第一3D支持件的曲面细分和第二3D支持件的曲面细分。举例来说,并集的计算可包括聚合第一3D支持件的曲面细分和第二3D支持件的曲面细分的彼此不重叠的区域。举例来说,该聚合可包括确定第一3D支持件的曲面细分(例如,多边形)与第二3D支持件的曲面细分(例如,多边形)重叠的部分,且接着将此所确定部分(例如,所确定多边形)从第一和第二3D支持件的曲面细分(例如,所有多边形)的相加结果中减去。因此,第三3D支持件可以包括彼此不重叠的第一3D支持件和第二3D支持件的所有多边形。
第二步,计算并集可以包括通过创建新的曲面细分来合并聚合区域,该曲面细分与重叠的区域接合。举例来说,合并可包括确定接合第一和第二3D支持件的曲面细分的接合曲面细分。合并可包括确定接合第一3D支持件的曲面细分和第二3D支持件的曲面细分的表面,以及计算该表面的曲面细分,由此确定接合曲面细分。此接合曲面细分(例如,多边形的曲面细分)可与第一和第二3D支持件的曲面细分一致,即,与这两个曲面细分的边界(例如,多边形的边界)一致。例如,多边形的顶点可以在边界处重合。
在其它示例中,第一和第二3D支持件的合并可包括计算包含第一和第二3D支持件的新3D支持件。在这种情况下,所得的第三3D支持件可以不同于第一3D支持件和第二3D支持件(即,第三3D支持件的多边形可以不同于第一3D支持件和第二3D支持件的多边形)。合并可以包括计算覆盖第一3D支持件和第二3D支持件的并集的表面。例如,表面可以包括第一3D支持件和第二3D支持件的表面,可选地,包括连接第一3D支持件和第二3D支持件的另一表面。然后,合并可以包括对计算出的表面进行曲面细分。例如,合并可以包括对所确定的表面进行曲面细分(其具有与第一和第二3D支持件相同的形状)。新3D支持件的计算可以降低支持的复杂性。实际上,新曲面细分可以具有均匀大小的三角形。
在示例中,一个或多个第一点和一个或多个第二点可以是共面的。例如,形成第一3D支持件和第二3D支持件的用户输入可能未在3D建模对象上进行,点可能都投影在3D场景的背景平面上。在这种情况下,第一3D支持件和第二3D支持件可以具有特定形状。例如,每个3D支持件可以是矩形表面(或圆形表面)。在这种情况下,合并可以包括确定具有特定形状(例如,矩形表面或圆形表面)并且包括全部一个或多个第一点和一个或多个第二点中的表面(例如,最小表面)。所确定的表面可以在容差范围内包括这些点。在这种情况下,表面的确定可以使得所有点与表面边界的距离至少大于该容差。当所确定的表面是矩形表面时,所确定的表面可以包括两个三角形。
现在更详细地讨论第三纹理的计算步骤。
计算第三纹理包括混合第一纹理和第二纹理。第三纹理的计算可以包括组合第一纹理和第二纹理(即,在同一平面上)。组合可以考虑在3D场景中渲染3D支持件的位置,并且可以按照保持在3D场景中渲染的两个纹理的相对位置的方式放置两个纹理。例如,计算可以包括将相同的投影应用于这两个纹理(例如,将两个纹理从3D场景投影到相同的2D平面)。
在两个纹理的同一2D平面上组合之后,计算第三纹理可以包括确定两个纹理的相交部分(即,在2D平面上)。在相交部分(即,重叠区域)中,第三纹理可以具有与第一纹理和第二纹理的混合结果相对应的纹理。可以在重叠区域中执行第一纹理和第二纹理的混合。对于非重叠区域,第三纹理的计算可以包括接合第一纹理和第二纹理。在非重叠区域中,第三纹理可以具有与存在于该区域中的(第一纹理或第二纹理中的)纹理相同的纹理。
在示例中,第一纹理和第二纹理可以各自具有相应的颜色。在这种情况下,第二纹理与第一纹理的混合可以包括在第二纹理和第一纹理的相交区域中将第一纹理的颜色与第二纹理的颜色混合。可以以任何方式进行混合。例如,第一纹理的颜色与第二纹理的颜色的混合可以包括确定与两种颜色混合(例如,在现实世界中通过刷子混合)可获得的颜色相匹配的颜色,并且将该确定的颜色应用在两种纹理的相交区域中。所确定的颜色可以对应于两个纹理的平均值,例如,定义两个纹理的颜色的参数(红色、绿色和蓝色)的平均值。
可替代地,第二纹理与第一纹理的混合可以包括在相交部分中将第二纹理与第一纹理重叠。在这种情况下,重叠可以包括确定与两种纹理混合可获得纹理相对应的纹理。例如,第二纹理具有透明度。在这种情况下,第一纹理与第二纹理基于第二纹理的透明度进行重叠。该透明度可以在0%至100%的范围内。0%的透明度可以表示完全透明(例如,没有缺陷或颜色的窗户)。在这种情况下,交点的纹理可以是第一纹理。100%的透明度可以表示完全不透明。在这种情况下,交点的纹理可以是第二纹理。当透明度在这两个极点之间时,交点的纹理可以在这两个极点情况之间(即,在第一纹理和第二纹理之间)成比例地变化。
现在讨论3D支持件的获取,在下文中详述的细节同样适用于获取第一3D支持件和/或获取第二3D支持件。因此,以下细节也适用于在这些3D支持件上渲染的第一纹理和第二纹理。
3D支持件的获取可以基于用于在3D场景中的一个或多个点上映射纹理的方法(在下文中称为映射方法)。映射方法可以包括在3D支持件上渲染纹理,并且该3D支持件可以是获取的3D支持件(并且包括渲染的纹理)。该渲染方法可以包括映射方法的执行。在这种情况下,可以在渲染方法的执行期间获取3D支持件。举例来说,渲染方法可基于对每一3D支持件的渲染(例如,基于第一3D支持件的第一用户输入和第二3D支持件的第二用户输入)来获得第一和第二3D支持件。可替代地,映射方法可能已经在执行渲染方法之前执行。在这种情况下,在执行渲染方法时,包括渲染纹理的3D支持件可能已经存在于3D场景中。举例来说,3D支持件可已存储于存储器上,且3D支持件的获得可包括从存储器检索3D支持件(即,检索第一3D支持件和/或第二3D支持件)。
参考图7的流程图,现在更详细地讨论被执行用于获取3D支持件的映射方法的示例。
该映射方法用于在3D场景中的一个或多个点上映射纹理。特别地,该映射方法允许用户通过执行用户输入来映射纹理。映射可以包括在一个或多个点上应用纹理,即,在3D场景中的3D支持件的位置处渲染纹理。根据用户的需求将纹理映射到3D场景上。实际上,基于从用户输入确定的一个或多个点来确定3D支持件和纹理。因此,所得纹理对应于用户期望获得的纹理。
现在更详细地讨论S10中一个或多个点的确定。
根据该映射方法,从用户输入确定一个或多个点(S10)。确定步骤S10可以包括检测用户输入,例如利用输入设备(例如,鼠标、轨迹球、探针、平板电脑、触敏屏幕或触摸屏)或使用虚拟现实(Virtual Reality,VR)系统来执行。用户输入可以是由用户(例如,用手)执行的手势。手势在现实世界中定义轨迹(例如,从起点到终点)。确定步骤S10可包括检测用输入装置执行的手势的轨迹。输入设备可以捕获由手势定义的轨迹。例如,输入设备可以是鼠标,并且轨迹可以是鼠标在手势期间跟随的轨迹(例如,在桌子上)。可替代地,输入设备可以是触敏设备(诸如平板电脑或智能电话)。在这种情况下,可以用手指或触笔执行手势。轨迹可以对应于手势期间手指或触控笔在触敏设备上跟随的轨迹。可替代地,可以使用VR系统来执行手势。如本领域中已知的,VR系统可以被配置为捕获由用户在现实世界中的手势定义的轨迹。
确定步骤S10可以包括将真实世界捕获的轨迹转换为3D场景内的轨迹。例如,转换可以包括将捕获的轨迹投影在3D场景内(例如,沿着3D场景内的3D建模对象的表面)。投影可包括应用比例因子以考虑3D场景与执行手势的环境(现实世界)之间的比例差异(例如,取决于显示3D场景的比例)。在示例中,轨迹可以沿着平面(例如,触摸设备的桌子或表面)执行,并且可以是2D轨迹。因此,转换可以包括将该2D轨迹投影到3D场景中,即,在朝向3D场景的方向上。例如,该方向可以垂直于显示3D场景的屏幕(例如,触敏设备的屏幕)。
可替代地,捕获的轨迹可以是3D的(例如,在VR系统的情况下),并且3D场景中的轨迹因此可以对应于捕获的轨迹。例如,3D场景中的轨迹可以等于在乘以比例因子之后的捕获轨迹,以考虑比例的差异。可替代地或附加地,其也可以从捕获轨迹进行偏移,例如模拟刷子的效果。在这些示例中,转换还可以包括从近到近的投影(即,转换可以包括每个点到表面上的最近点的投影)。
在转换之后,确定步骤S10可以包括沿着转换的轨迹对一个或多个点进行采样。这些一个或多个点在3D场景中并且是待纹理化的一个或多个点。转换的轨迹可以经过每个点。可以沿着转换的轨迹规则地放置一个或多个点。例如,可以沿着转换的轨迹规则地在空间中采样一个或多个点。在这种情况下,点可以规则地彼此间隔开相同的距离。可替代地,可以在时间上对一个或多个点规则地进行采样。在这种情况下,这些点可以在手势期间按相同的时间间隔规则地彼此隔开。例如,该映射方法可以在手势期间每经过X毫秒放置一个点。例如,X可以取决于其上运行进程的计算机的处理器和/或显卡。其还可以根据计算机的并行进程而变化(例如,可以取决于可用的RAM)。
在这种情况下,捕获的轨迹可以包括表示何时实现轨迹的每个点的时间变量。一个或多个点的采样可以基于该时间变量。
现在讨论3D支持件。以下公开内容适用于任何3D支持件,这意味着其适用于计算的3D支持件,也适用于通常意义的3D支持件(例如,在执行该映射方法时已经存在于3D场景中的3D支持件)。3D支持件是一种3D建模对象(或其一部分)。例如,3D支持件可以是3D建模对象(例如,表示所表示的场景中的对象)的一部分的复制体。3D支持件可以是3D场景中的表面(例如,单个表面)。3D支持件可以包括该表面的曲面细分(例如,具有诸如三角形的多边形)。
现在更详细地讨论3D支持件的计算步骤S20。所计算的3D支持件表示3D场景中的表面,在其上渲染所计算的纹理。因此,3D支持件的计算步骤S20可以基于3D场景。例如,计算步骤S20可以取决于3D场景是否包括可以应用纹理的3D建模对象。另外,当3D场景包括3D建模对象时,计算步骤S20可以取决于是否对该3D建模对象执行了用户输入(即,捕获轨迹的投影是否在3D建模对象的表面上)。在第一示例中,对3D场景的3D建模对象执行用户输入。在这种情况下,计算的3D支持件可以对应于3D建模对象的一部分。在第二示例中,可以不对3D建模对象执行用户输入。例如,3D场景可以不包括任何3D建模对象,或者可替代地,用户输入可以不对3D建模对象执行。在这种情况下,3D支持件的计算步骤S20可以不考虑任何3D建模对象。在以下段落中更详细地讨论第一和第二示例。
在第一示例中,3D支持件的计算可以包括将全部一个或多个点放置在3D建模对象上。放置可以包括向一个或多个点中的每个点分配3D场景内的在3D建模对象的表面上的位置。这意味着向每个点分配3D建模对象的表面上的点的坐标。在放置之后,3D支持件的计算可以包括确定用作3D支持件的3D建模对象的部分。这意味着3D支持件可以是该确定部分的复制体。该映射方法可以包括复制所确定的部分,3D支持件是所确定的部分的复制体。
在第一示例中,放置一个或多个点可以包括将每个点投影在3D建模对象的表面(例如,外表面)(或包络)上。例如,投影可以从近到近。例如,该映射方法可以将每个点投影在表面上最靠近待放置点的点上。可替代地,可以沿着一个方向投影(例如,垂直于显示3D场景的屏幕,如上所述)。在示例中,一个或多个点可以组成若干点,并且至少一个点可能已经在3D建模对象的表面上具有位置。在这种情况下,点的放置可以包括将尚未在3D建模对象的表面上具有位置的每个点进行投影。
在第一示例中,3D建模对象的所确定的部分是单个表面,其包括放置在3D建模对象上的一个或多个点中的每个点。这意味着表面可以是一体的。该表面可以不包括任何间隙(或空隙)。该单个表面也可以是包括所有点的最小表面。这意味着包含所有点并且符合一个或多个尺寸和形状方面标准的单个表面可以是最优的。例如,该一个或多个标准可以包括表面积的大小的尺寸标准,和/或,表示表面复杂度的标准(例如,其边界的复杂度)。在示例中,该单个表面可以在一定容差范围内包括每个点。例如,每个点距表面边界的距离可以大于最小距离。该最小距离可以是模型容差(例如,0.1毫米)或像素距离(例如,2个像素)。
在第一示例中,3D建模对象可以用多边形进行曲面细分。例如,3D建模对象可以用四边形或三角形来曲面细分。在这种情况下,确定3D建模对象的用作3D支持件的部分可以包括:识别3D建模对象中包括放置点的多边形。该识别步骤可以包括:针对每个放置点,确定该点被放置在3D建模对象的哪个多边形上。例如,该识别步骤可以基于点与多边形之间的接触,或可替代地,可以考虑点与多边形之间的距离(例如,点与多边形的重心之间的距离)。识别步骤也可以在先前讨论的投影期间执行。在这种情况下,多边形可以是点投影在其上的多边形。
在识别多边形之后,零件的确定可以包括聚合所识别的多边形,从而获得单个表面。该聚合步骤可包括对识别的多边形重新形成曲面细分。新的曲面细分可包含所有识别的多边形。形成曲面细分可以包括接合所识别的相邻多边形。新的曲面细分还可包含一或多个其它多边形。该一个或多个其他多边形可以接合所识别的多边形。形成曲面细分可以包括在接合的所识别的多边形包括不连续/孔的位置处生成一个或多个其他多边形。由新曲面细分覆盖的表面可具有与上文所提及的单个表面相同的性质(即,一整块、不包含间隙、根据相同标准的最小和最优表面)。
在聚合之后,部件的确定可以包括计算单个表面的复制体。单个表面的复制体可以用作3D支持件。例如,单个表面的复制体可以记录在存储器上,并且可以在渲染期间通过该映射方法检索。
在第一示例中,除如上所述考虑3D建模对象的多边形之外,该映射方法可以直接从所确定的部分计算3D支持件。在这种情况下,该映射方法还可以包括计算该单个表面的新曲面细分。可以如本领域已知的那样执行单个表面的曲面细分。曲面细分可包括将单个表面切割成基本规则单元(例如,多边形)。在这种情况下,所计算的曲面细分可以继承3D建模对象的曲面细分的一个或多个属性。例如,所计算的曲面细分的曲面细分密度与3D建模对象(或3D建模对象的一部分)的曲面细分密度基本相同。
在先前段落中讨论的第一示例中,新曲面细分的计算可以包括以与3D建模对象的曲面细分密度或3D建模对象的部分的曲面细分密度基本上相同的曲面细分密度来计算单个表面的新曲面细分。例如,计算可以包括确定3D建模对象(或3D建模对象的一部分)的曲面细分的密度,并且通过应用针对近似等于所确定的密度的密度标准来计算新曲面细分(通过应用密度标准来确定曲面细分在本领域中是已知的)。
在上面讨论的第二示例中(即,当不对3D建模对象执行用户输入时),计算步骤S20可以包括生成3D支持件而不考虑任何3D建模对象。在该情况下的示例中,一个或多个点可以是共面的。例如,在确定步骤S10期间,可以将一个或多个点投影在平面上。该平面可以是3D场景的背景平面,或者可以平行于显示3D场景的屏幕。3D支持件的计算可以包括确定包括一个或多个点中的每个点的矩形表面。该矩形表面可具有与上文所提及的单个表面相同的性质(即,一整块、不包含间隙、根据相同标准的最小和最优表面)。所确定的矩形表面可以包括两个三角形。
现在更详细地讨论纹理的计算步骤S40。
纹理是二维图像,该二维图像被应用于3D场景中的三维表面(例如,背景图像)或体积(例如,由3D建模对象界定),以便修饰该表面或体积。纹理可以包括表示纹理空间的纹素阵列。纹素(也称为纹理元素或纹理像素)是本领域已知的纹理图的基本单元。可以通过诸如阈值化的简单过程获得的图像区域来描述纹素。
基于所确定的一个或多个点来执行纹理的计算步骤S40。纹理是2D的,并且一个或多个点在3D场景内。因此,在计算步骤S40之前,该映射方法还可以包括对要纹理化的一个或多个点进行参数化S30。例如,该映射方法可以在确定一个或多个点(S10)之后或在计算3D支持件(S20)之后执行参数化S30。参数化S30可以包括将2D空间(U,V)中的坐标分配给全部一个或多个点。参数化S30可以包括将一个或多个点转换到2D空间中(例如,以保持它们之间的距离,这是本领域已知的)。纹理的计算S40基于参数化的一个或多个点。可以基于本领域已知的这些一个或多个点来执行纹理的计算S40。例如,每个点可以与元素图案相关联,并且计算步骤可以包括确定其中元素图案存在于每个点处的纹理。
现在讨论在3D支持件上渲染纹理。以下公开内容适用于3D支持件上的纹理的任何渲染,因此也适用于在计算的3D支持件上进行计算的纹理的渲染S50。换句话说,以下公开内容适用于3D支持件上的纹理的任何渲染。
渲染可以由显卡执行;更具体地,由显卡的图形处理单元(Graphic ProcessingUnit,GPU)执行。渲染的结果可以包括用于显示3D场景的数据(即,包括投影在3D支持件上的纹理)。渲染可以对包括计算的纹理的3D场景进行显示处理。纹理可以显示在3D支持件的位置处(即,在3D支持件上);3D支持件可以是可见的或不可见的,例如,显示纹理且3D支持件不可见。3D支持件上的渲染纹理可以包括一个或多个粗略曲线(每个用户输入一个粗略曲线),每个粗略曲线表示一个用户输入的结果。粗略曲线是通过将参考纹理(例如,颜色和/或图案)应用于以用户输入限定的路径为中心并且具有预定厚度(例如,线厚度)的区域而产生的纹理。渲染可以包括在渲染时准备将粗略曲线以及存在于3D场景中的3D建模对象的纹理一同显示。
现在讨论渲染纹理的显示。以下公开内容适用于任何显示,并且因此可以适用于渲染S50。在渲染纹理之后执行渲染纹理的显示。显示可以包括向用户(例如,在屏幕上)显示3D场景。显示可以基于渲染的结果,并且可以通过本领域已知的方式执行。渲染的结果包括使3D场景得以显示的数据(在渲染期间由显卡准备)。显示可以包括执行这些数据以便向用户显示3D场景。
在示例中,该映射方法可以动态地(即,实时地)执行。例如,当扩展用户输入时(例如,如果用户继续移动鼠标或触摸触敏设备),可以更新渲染,从而定义新的点。扩展用户输入意味着保持用户输入并且继续用户输入(即,用户继续进行手势,并且轨迹因此延长)。在这种情况下,该映射方法可以包括基于延长的轨迹确定新点并且重复3D支持件和纹理的计算。例如,该映射方法可以针对所确定的每个新点重复3D支持件和纹理的计算,或者在每次检测到给定数量X的新点之后进行重复计算,例如,X是大于1和/或小于5的整数。可替代地,除在轨迹延长时重复支持件的计算,该映射方法可以定期重复支持件和纹理的计算,例如,在每次经过持续时间T之后重复这些步骤,例如,T是大于1毫秒和/或小于100毫秒的持续时间。在这种情况下,当重复确定一个或多个新点时,所计算的3D支持件可以包括该一个或多个新点。未重复一个或多个新点时,所计算的支持件可以与先前重复中相同。
在示例中,该映射方法还可以包括检测用户输入的扩展。该映射方法可以包括从扩展的用户输入确定一个或多个新点。可以如上文针对一个或多个(初始)点所讨论的那样来执行一个或多个新点的确定,但是该确定仅考虑由用户新执行的手势的部分。然后,该映射方法可以包括重新计算3D支持件,使得重新计算的3D支持件包括一个或多个新点。重新计算3D支持件可以包括扩展已经计算的3D支持件以包括一个或多个新点(例如,使用先前讨论的相同标准)。可替代地,3D支持件的重新计算可以包括利用所有点(即,点和新的点一起)计算新的3D支持件。该新3D支持件的计算可以等同于先前讨论的3D支持件的计算。该映射方法还可以包括重新计算纹理,使得重新计算的纹理包括纹理化的一个或多个新点。纹理的重新计算可以包括纹理的更新,这意味着可以仅计算关于一个或多个新点的新数据。然后,该映射方法可以包括在重新计算的第一3D支持件上更新重新计算的第一纹理的渲染。可以如先前讨论的渲染那样,在重新计算的3D支持件上渲染重新计算的纹理。
在更新渲染之后,在示例中,该映射方法还可以包括在重新计算的第一3D支持件上显示重新计算的第一纹理的渲染。对于先前讨论的渲染,3D场景可以基于渲染更新的结果显示给用户(例如,在屏幕上)(如本领域中已知的)。
参考图8至图16,现在讨论渲染方法和/或映射方法的实施方式的示例。
图8示出了渲染方法的实施方式的示例。该渲染方法可以在3D草绘应用中渲染粗略曲线。该渲染方法包括:S20,计算包括所确定的待纹理化的一个或多个点的3D支持件202。计算步骤S20包括生成最优3D支持件(例如,虚拟3D支持件)以在3D场景中显示绘图。该渲染方法包括:S40,基于所确定的一个或多个点来计算纹理201。该渲染方法包括对所述支持件进行纹理化以显示真实绘图意图。该渲染方法包括:S50,在计算的3D支持件203上渲染计算的纹理。该渲染方法可以使用着色器(UV映射)在3D支持件上渲染纹理。这使得我们可以在用户绘制曲线之前或甚至之后控制刷子、色彩混合和绘制的一切效果。该渲染方法包括管理重叠绘图,来丰富现有支持件或创建新支持件。
该渲染方法执行优化新支持件创建并实时处理色彩混合的算法:当新曲线与现有曲线相交时,可以扩展前一曲线的支持以覆盖最后一个曲线。还丰富了支持件的纹理以添加用户新增的新颜色。该渲染方法解决了先前列出的现有解决方案的所有局限性。特别地,该渲染方法改进了3D曲线的重叠的渲染。另一个改进是该渲染方法提供与2D绘图软件相同的可能性。实际上,通过在3D模型上渲染2D纹理并且由此提供与2D绘图软件解决方案相同的可能性来计算色彩混合。另外,该渲染方法还显著减少了所需三角形的数量。因此,该渲染方法节省了存储器空间。
图9示出了渲染更新的示例的流程图。该图示出了构建新的粗略曲线的渲染方法的工作流程,以及在必要时丰富支持和纹理的原理。该渲染方法包括:S70,检测用户输入的扩展。在该示例中,后续步骤取决于步骤S71的测试结果。在步骤S71中,该渲染方法确定在当前鼠标位置(即,光标在屏幕上的位置)是否存在另一3D支持件,即,除先前已经为当前的用户输入计算的3D支持件之外的另一支持件。当该渲染方法判断在当前鼠标位置不存在另一3D支持件时(第一情形),该渲染方法执行步骤S72、S73和S74。否则(第二情况),该渲染方法执行步骤S75、S76和S77。该方法可以重复这些步骤。例如,该渲染方法可以针对所确定的每个新点重复这些步骤,或者在每次检测到给定数量X的新点之后重复这些步骤。或者,该渲染方法可以定期重复这些步骤,例如,在每次经过持续时间T之后。
在第一情形下,该渲染方法包括:S72,扩展3D支持件。扩展步骤S72包括根据扩展的用户输入确定一个或多个新点以及重新计算3D支持件,使得重新计算的3D支持件包括一个或多个新点。该渲染方法还包括:S73,重新计算纹理,使得重新计算的纹理包括纹理化的一个或多个新点。重新计算步骤S73包括丰富当前纹理(即,先前通过扩展步骤S72之前的渲染方法计算的纹理),以便包括一个或多个新点。然后,该渲染方法包括:S74,更新重新计算的3D支持件上的重新计算的纹理(即,用每个新点丰富过的纹理)的渲染。
在第二情形下,在当前鼠标位置处存在另一3D支持件。该另一3D支持件可能已经计算过(例如,使用该映射方法并且基于先前执行的用户输入计算过)。该另一3D支持件被称为第一3D支持件,并且在该第一3D支持件上渲染的纹理被称为第一纹理。当前正在扩展的3D支持件被称为第二3D支持件,并且在该第二3D支持件上渲染的纹理被称为第二纹理。因此,在步骤S71中,该渲染方法检测到第二支持件与第一支持件相交。然后,该渲染方法包括:S75,通过合并第一3D支持件和第二3D支持件来计算第三3D支持件。该渲染方法还包括:S76,通过混合第一纹理和第二纹理来计算第三纹理。该渲染方法包括:S77,在计算的第三3D支持件上渲染计算的第三纹理。
图10示出了渲染更新的两个示例。
第一示例300示出了参考图9描述的渲染方法的所谓的第一情况的步骤S72、S73和S74。该渲染方法包括扩展3D支持件301以成为3D支持件302。在扩展期间,该渲染方法检测到3D支持件的扩展不与另一3D支持件相交。因此,该渲染方法如先前所讨论的那样执行并且重新计算3D支持件和纹理,并且更新渲染。
第二示例310示出了参考图9描述的渲染方法的所谓第二情况的步骤S75、S76和S77。在该示例中,除了扩展的3D支持件311之外,3D场景还包括3D支持件312和313。该渲染方法检测到扩展的3D支持件311与3D支持件312相交。因此,该渲染方法包括通过合并3D支持件311和3D支持件312来计算新的3D支持件314。该渲染方法还包括通过混合在3D支持件311上渲染的纹理和在3D支持件312上渲染的纹理来计算新纹理。之后,再次扩展用户输入,该渲染方法也因此会重复这些步骤。同样,该渲染方法检测到扩展的3D支持件315与3D支持件313相交。因此,该渲染方法包括通过合并3D支持件315和3D支持件313计算新的3D支持件316。该渲染方法还包括通过混合在3D支持件315上渲染的纹理和在3D支持件313渲染的纹理来计算新纹理。
图11示出了纹理的计算步骤S40的示例。该渲染方法包括:S30,对待纹理化的一个或多个点进行参数化。参数化步骤S30可以包括在表示纹理的2D空间中对点的3D坐标进行投影(例如,使用已知的投影算法)。该渲染方法可以将每个点的2D坐标存储为纹理上的UV坐标320。然后,该渲染方法可以包括:S40,基于参数化的点320(即,基于这些点的UV坐标)计算纹理。例如,计算步骤S40可以包括处理诸如厚度、刷子形状、压力的参数,以计算所得纹理。该图示出了针对相同参数化点320使用不同参数值获得的不同纹理结果(321、322、323)。
图12至14示出了使用计算的纹理和3D支持件的示例。如已经讨论的,3D支持件在显示时可以是不可见的,并且在这种情况下,3D支持件是与应用的其他命令兼容的3D形状。例如,如果需要,3D支持件可以变形和/或可以更复杂。该渲染方法可以包括根据用户的意图(例如,当用户输入被扩展时)使3D支持件变形。该渲染方法可以根据3D支持件的变形来适配纹理。如这些示例中所示,3D支持件可以是球体或平面的一部分。
图12示出了在3D支持件331上渲染纹理332。在该第一示例中,该渲染方法已经基于3D场景中存在的3D建模对象330(在该示例中为球体330)来计算3D支持件331。该渲染方法可以包括计算3D支持件331的曲面细分(即,三角形)。在图13和图14的示例中,该渲染方法可以基于3D建模对象或不考虑3D建模对象(例如,通过将点投影在背景图像上)来计算3D支持件。具体地,图13示出了由用于渲染纹理340的渲染方法计算的3D支持件的两个示例(341,342)。3D支持件的类型可以是用户选择的。例如,该渲染方法可以包括向用户提供从其绘图创建最接近的形状的方式,可以包括为纹理340创建3D支持件342,并且使用该新创建的3D支持件342而不是3D支持件341来进行渲染。该渲染方法可以包括形成包括全部一个或多个所确定的点的单个表面(例如,基于由点和纹理形成的绘图的轮廓形状)。然后,该渲染方法可以包括计算该单个表面的曲面细分,从而获得3D支持件342。图14说明了用于渲染基于新曲面细分计算的纹理350的3D支持件351的另一实例。该渲染方法包括基于绘图的轮廓形状(即,包括纹理)来计算单个表面。然后,该渲染方法可以包括计算该单个表面的新曲面细分,以便尽可能优化三角形的数量。3D支持件351是该渲染方法可以从绘图轮廓提取的曲面细分的示例。
图15示出了系统的GUI的示例,其中系统是CAD系统。
GUI 2100可以是典型的类似CAD的界面,具有标准菜单栏2110、2120以及底部工具栏2140和侧部工具栏2150。这样的菜单和工具栏包含一组用户可选择的图标,每个图标与一个或多个操作或功能相关联,如本领域已知的。这些图标中的一些与软件工具相关联,适于编辑和/或处理在GUI2100中显示的3D建模对象2000。软件工具可以被集合在工作台。每个工作台包括一系列软件工具。特别地,其中一个工作台是适合于对建模产品的几何特征的进行编辑操作的编辑工作台,设计者可以例如预先选择对象2000的一部分,然后通过选择适当的图标来发起操作(例如,改变尺寸、颜色等)或编辑几何约束。例如,典型的CAD操作是对屏幕上显示的3D建模对象的冲压或折叠的建模。例如,GUI可以显示与所显示产品相关的显示数据2500,在图15的示例中,以“特征树”的形式显示数据2500,以及其3D表示2000,涉及包括制动钳和盘的制动组件。GUI还可以示出各种类型的图形工具2130、2070、2080,例如用于协助对象的3D定向、用于触发对编辑产品的操作的模拟或渲染所显示产品2000的各种属性。光标2060可以由触觉设备控制以允许用户与图形工具交互。
图16示出了系统的示例,其中系统是客户端计算机系统,例如用户的工作站。
该示例的客户端计算机包括连接到内部通信总线(bus)的中央处理单元(centralprocessing unit,CPU)1010,随机存取存储器(random-access memory,RAM)1070也连接到该总线。客户端计算机还设置有图形处理单元(graphical processing unit,GPU)1110,其与连接到总线的视频随机存取存储器1100相关联。视频RAM1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030的大容量存储设备的访问。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,包括例如半导体存储器设备,诸如可擦编程只读存储器(Erasable ProgrammableRead Only Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable read only memory,EEPROM)和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘。任何前述内容可以由专门设计的ASIC(application-specific integratedcircuits,专用集成电路)补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,诸如光标控制设备、键盘等。在客户端计算机中使用光标控制设备以允许用户选择性地将光标定位在显示器1080上的任何期望位置处。此外,光标控制设备允许用户选择各种命令和输入控制信号。光标控制设备包括用于向系统输入控制信号的多个信号生成设备。通常,光标控制设备可以是鼠标,鼠标的按钮用于生成信号。备选地或附加地,客户端计算机系统可以包括敏感板和/或敏感屏幕。
所述计算机程序可以包括可由计算机执行的指令,所述指令包括用于使上述系统执行所述渲染方法的装置。程序可以记录在任何数据存储介质上,包括系统的存储器。该程序可以例如在数字电子电路中实现,或者在计算机硬件、固件、软件或其组合中实现。该程序可以被实现为装置,例如有形地体现在机器可读存储设备中以供可编程处理器执行的产品。方法步骤可以由可编程处理器执行指令程序来执行,以通过对输入数据进行操作并生成输出来执行渲染方法的功能。因此,处理器可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向其发送数据和指令。应用程序可以用高级过程或面向对象的编程语言来实现,或者如果需要也可以用汇编或机器语言来实现。在任何情况下,语言可以是编译或解释语言。该程序可以是全安装程序或更新程序。程序在系统上的应用产生用于执行该渲染方法的指令的任何情况。计算机程序可以替代地在云计算环境的服务器上存储和执行,服务器通过网络与一个或多个客户端通信。在这种情况下,处理单元执行由程序包括的指令,从而使渲染方法在云计算环境上执行。

Claims (15)

1.一种用于在三维3D场景中渲染两个重叠纹理的计算机实现方法,所述方法包括:
获取包括渲染的第一纹理的第一3D支持件(311);
获取包括渲染的第二纹理的第二3D支持件(312);
检测到所述第二3D支持件(312)与所述第一3D支持件(311)相交;
通过合并所述第一3D支持件(311)和所述第二3D支持件(312)来计算第三3D支持件(314);
通过混合所述第一纹理和所述第二纹理来计算第三纹理;以及
在计算的所述第三3D支持件(314)上渲染计算的所述第三纹理;以及
在所述第三3D支持件上显示渲染的所述第三纹理。
2.根据权利要求1所述的方法,其中,所述第一3D支持件和所述第二3D支持件各自包括相应的曲面细分,合并所述第一3D支持件和所述第二3D支持件包括:计算所述第一3D支持件的曲面细分和所述第二3D支持件的曲面细分的并集。
3.根据权利要求2所述的方法,其中,计算所述并集包括:
聚合所述第一3D支持件的曲面细分和所述第二3D支持件的曲面细分的彼此不重叠的区域;以及
通过创建接合重叠的区域的新曲面细分来合并所述聚合的区域。
4.根据权利要求1所述的方法,其中,合并所述第一3D支持件和所述第二3D支持件包括:
计算覆盖所述第一3D支持件和所述第二3D支持件的并集的表面;以及
对计算的所述表面进行曲面细分。
5.根据权利要求1所述的方法,其中,一个或多个第一点和一个或多个第二点是共面的,合并所述第一3D支持件和所述第二3D支持件包括:确定包括全部所述一个或多个第一点和所述一个或多个第二点的矩形表面,确定的所述矩形表面包括两个三角形。
6.根据权利要求1-5中任一项所述的方法,其中,所述第一纹理和所述第二纹理各自具有相应的颜色,混合所述第二纹理和所述第一纹理包括:在所述第二纹理和所述第一纹理的相交部分中将所述第一纹理的颜色与所述第二纹理的颜色混合。
7.根据权利要求1-5中任一项所述的方法,其中,混合所述第二纹理与所述第一纹理包括:在相交部分将所述第二纹理与所述第一纹理进行重叠。
8.根据权利要求7所述的方法,其中,所述第二纹理具有透明度,所述第一纹理与所述第二纹理的重叠基于所述第二纹理的透明度。
9.根据权利要求1-8中任一项所述的方法,其中,获取每个3D支持件包括:
S10,根据利用输入设备执行的用户输入来确定所述3D场景中待纹理化的一个或多个点;
S20,计算所述3D支持件(202、331、341、342、531),所述3D支持件包括所确定的待纹理化的所述一个或多个点;
S40,基于所确定的所述一个或多个点计算纹理(201、321、322、323、332、340、350);以及
S50,在计算的所述3D支持件上渲染计算的所述纹理(203)。
10.根据权利要求9所述的方法,其中,获取每个3D支持件还包括:
S30,对待纹理化的所述一个或多个点进行参数化;
其中,
S40计算所述纹理包括:基于参数化的所述一个或多个点(320)计算所述纹理。
11.根据权利要求9或10所述的方法,其中,所述3D场景包括:3D建模对象(330),S20计算所述3D支持件包括:
在所述3D建模对象(330)上放置全部所述一个或多个点;以及
确定所述3D建模对象(330)的一部分用作所述3D支持件(331)。
12.根据权利要求9所述的方法,其中,所述一个或多个点是共面的,S20计算所述3D支持件(341)包括:确定包括全部所述一个或多个点的矩形表面,确定的所述矩形表面包括两个三角形。
13.一种计算机程序,包括指令,所述指令被计算机执行时,使得计算机执行根据权利要求1-12中任一项所述的方法。
14.一种计算机可读存储介质,其上记录有根据权利要求13所述的计算机程序。
15.一种系统,包括耦合到存储器的处理器,所述存储器上记录有根据权利要求13所述的计算机程序。
CN202411082917.0A 2023-08-11 2024-08-08 三维场景中重叠纹理的渲染 Pending CN119478180A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP23306371.8A EP4506902A1 (en) 2023-08-11 2023-08-11 Rendering of overlapping textures in 3d scene
EP23306371.8 2023-08-11

Publications (1)

Publication Number Publication Date
CN119478180A true CN119478180A (zh) 2025-02-18

Family

ID=87889599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411082917.0A Pending CN119478180A (zh) 2023-08-11 2024-08-08 三维场景中重叠纹理的渲染

Country Status (4)

Country Link
US (1) US20250054221A1 (zh)
EP (1) EP4506902A1 (zh)
JP (1) JP2025026807A (zh)
CN (1) CN119478180A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965887B2 (en) * 2013-03-05 2018-05-08 Autodesk, Inc. Technique for mapping a texture onto a three-dimensional model
US10186082B2 (en) * 2016-04-13 2019-01-22 Magic Leap, Inc. Robust merge of 3D textured meshes

Also Published As

Publication number Publication date
US20250054221A1 (en) 2025-02-13
JP2025026807A (ja) 2025-02-25
EP4506902A1 (en) 2025-02-12

Similar Documents

Publication Publication Date Title
EP2523130B1 (en) Method for designing a geometrical three-dimensional modeled object
CN110134982B (zh) 可通过铣削操作制造的部件的设计
CN105761303B (zh) 在3d建模组件上创建包围盒
JP6196032B2 (ja) 複数の3d曲線からの表面の生成
JP6787661B2 (ja) 工作物の機械加工のシミュレート
CN105844711B (zh) 在细分曲面上雕刻2d图像
US9875577B2 (en) Tessellation of a parameterized 3D modeled object
EP3379495B1 (en) Seamless fracture in an animation production pipeline
JP6721333B2 (ja) オブジェクトのセットの視点の選択
CN107978020A (zh) 三维模型操纵和渲染
JP2018077830A (ja) 機械部品の骨格の表現
US11605200B2 (en) System for optimizing a 3D mesh
Wang et al. Freeform extrusion by sketched input
CN114648619A (zh) 用于通过使用虚拟3d网格和手绘草图来设计3d对象的方法
US20240027993A1 (en) 3d modeled object representing a manufacturing product
Santos et al. Integration of CAD Models into Game Engines.
CN104143211B (zh) 基于单幅图像的三维自由形体生成方法
EP4250164A1 (en) Sketch-processing
CN119478180A (zh) 三维场景中重叠纹理的渲染
EP4506900A1 (en) Mapping of texture in 3d scene
CN103460252B (zh) 从2d草图重建3d表面的方法
CN106600677A (zh) Vr系统中对传统模型的处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication