CN116543093A - 柔体对象渲染方法、装置、计算机设备和存储介质 - Google Patents

柔体对象渲染方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116543093A
CN116543093A CN202310810160.1A CN202310810160A CN116543093A CN 116543093 A CN116543093 A CN 116543093A CN 202310810160 A CN202310810160 A CN 202310810160A CN 116543093 A CN116543093 A CN 116543093A
Authority
CN
China
Prior art keywords
rendering
vertex
physical
model
mapping
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.)
Granted
Application number
CN202310810160.1A
Other languages
English (en)
Other versions
CN116543093B (zh
Inventor
李垚
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310810160.1A priority Critical patent/CN116543093B/zh
Publication of CN116543093A publication Critical patent/CN116543093A/zh
Application granted granted Critical
Publication of CN116543093B publication Critical patent/CN116543093B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本申请涉及一种柔体对象渲染方法、装置、计算机设备和存储介质。涉及到游戏领域,包括:获取柔体对象的物理网格模型和渲染网格模型;物理网格模型的精度小于渲染网格模型的精度;从物理网格模型中确定第一渲染顶点对应的映射面片,确定第一渲染顶点与映射面片之间的相对位置信息;第一渲染顶点,是渲染网格模型中第一类的网格区域中的渲染顶点;从物理网格模型中确定第二渲染顶点对应的映射物理顶点,确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息;第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点;第二类的网格区域的复杂度高于第一类的网格区域;基于各相对位置信息进行渲染。采用本方法能够提升柔体对象的渲染效果。

Description

柔体对象渲染方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种柔体对象渲染方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,虚拟场景的应用越来越广泛。虚拟场景中通常会存在柔体对象,柔体对象例如为虚拟场景角色穿着的衣服,还可以为虚拟场景中的窗帘或手帕等。由于柔体对象在外力的作用下状态会发生变化,在实时渲染的虚拟场景的过程中,需要考虑外力对柔体对象的作用,使得渲染出的柔体对象更加真实。
传统技术中,为柔体对象生成物理网格模型和渲染网格模型,并在物理网格模型与渲染网格模型之间建立映射关系,在外力施加在柔体对象上时,根据外力调整物理网格模型的形态,并基于物理网格模型和渲染网格模型之间的映射关系,调整渲染网络模型的形态,然后对渲染网格模型进行渲染得到外力作用后的柔体对象。
然而,针对复杂的柔体对象例如多层服饰,目前建立物理网格模型与渲染网格模型之间的映射关系的方法,存在映射关系不合理的问题,从而导致柔体对象的渲染效果较差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升柔体对象的渲染效果的柔体对象渲染方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种柔体对象渲染方法。所述方法包括:获取柔体对象在预设形态下的物理网格模型和渲染网格模型;所述物理网格模型的精度小于所述渲染网格模型的精度;从所述物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定所述第一渲染顶点与所述映射面片之间的相对位置信息;所述第一渲染顶点,是所述渲染网格模型中第一类的网格区域中的渲染顶点;从所述物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息;所述第二渲染顶点,是所述渲染网格模型中第二类的网格区域中的渲染顶点;所述第二类的网格区域的复杂度高于所述第一类的网格区域的复杂度;基于各所述相对位置信息生成所述柔体对象对应的模型映射信息;所述模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于所述柔体对象的渲染。
另一方面,本申请还提供了一种柔体对象渲染装置。所述装置包括:网格模型获取模块,用于获取柔体对象在预设形态下的物理网格模型和渲染网格模型;所述物理网格模型的精度小于所述渲染网格模型的精度;第一信息确定模块,用于从所述物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定所述第一渲染顶点与所述映射面片之间的相对位置信息;所述第一渲染顶点,是所述渲染网格模型中第一类的网格区域中的渲染顶点;第二信息确定模块,用于从所述物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息;所述第二渲染顶点,是所述渲染网格模型中第二类的网格区域中的渲染顶点;所述第二类的网格区域的复杂度高于所述第一类的网格区域的复杂度;映射信息确定模块,用于基于各所述相对位置信息生成所述柔体对象对应的模型映射信息;所述模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于所述柔体对象的渲染。
在一些实施例中,所述第一信息确定模块,还用于将所述第一渲染顶点向所述映射面片进行投影,确定所述第一渲染顶点在所述映射面片上的投影点;确定所述投影点与所述映射面片之间的第一相对位置信息,并确定所述投影点与所述第一渲染顶点之间的第二相对位置信息;所述投影点的位置通过所述第一相对位置信息与所述映射面片的位置建立关系,所述第一渲染顶点的位置通过所述第二相对位置信息与所述投影点的位置建立关系;基于所述第一相对位置信息和所述第二相对位置信息,得到所述第一渲染顶点与所述映射面片之间的相对位置信息。
在一些实施例中,所述第一信息确定模块,还用于通过所述映射面片中各物理顶点的坐标和所述投影点的坐标,确定所述投影点与所述映射面片之间的第一相对位置信息;其中,所述投影点与所述映射面片之间的第一相对位置信息,用于建立所述映射面片中各物理顶点的坐标与所述投影点的坐标之间的线性关系。
在一些实施例中,所述物理网格模型为第一物理网格模型,所述渲染网格模型为第一渲染网格模型,所述预设形态为第一形态;所述装置,还用于对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;所述第二物理网格模型用于表示第二形态下的所述柔体对象;针对第二渲染网格模型中受外力影响的第一渲染顶点,从所述模型映射信息中确定所述第一渲染顶点与对应的映射面片之间的相对位置信息;所述第二渲染网格模型用于表示第二形态下的所述柔体对象;基于所述第一渲染顶点与对应的映射面片之间的相对位置信息,对所述受外力影响的第一渲染顶点进行移动得到影响后的渲染网格模型;对所述影响后的渲染网格模型进行渲染得到所述柔体对象的渲染结果。
在一些实施例中,所述第一信息确定模块,还用于从所述物理网格模型的各面片中确定所述第一渲染顶点的邻近面片;所述第一渲染顶点位于所述邻近面片的包围盒中;基于所述第一渲染顶点的邻近面片确定所述第一渲染顶点对应的映射面片。
在一些实施例中,所述第一信息确定模块,还用于针对每个所述邻近面片,将所述第一渲染顶点向所述邻近面片所处的平面进行投影,得到所述第一渲染顶点在所述邻近面片所处平面上的投影点;从各所述邻近面片中确定所述第一渲染顶点对应的映射面片;所述第一渲染顶点在所述映射面片所处平面上的投影点位于所述映射面片中。
在一些实施例中,所述第一信息确定模块,还用于为所述物理网格模型中的面片生成对应的包围盒;所述面片对应的包围盒是指包围所述面片的几何体;从生成的各包围盒中确定所述第一渲染顶点所位于的包围盒,得到邻近包围盒;将所述邻近包围盒对应的面片确定为所述第一渲染顶点的邻近面片。
在一些实施例中,所述第一信息确定模块,还用于针对所述物理网格模型的每个面片,获取所述面片中各物理顶点的法线向量和所述面片的面法线向量;确定各所述物理顶点的法线向量分别与所述面法线向量之间的向量夹角;基于向量夹角从各从所述物理网格模型中确定满足夹角条件的第一面片;其中,夹角条件包括最小的向量夹角大于第一夹角阈值或最大的向量夹角大于第二夹角阈值中的至少一个;为所述物理网格模型中除第一面片之外的第二面片生成对应的包围盒。
在一些实施例中,所述第二信息确定模块,还用于从所述物理网格模型的各面片中确定第二渲染顶点对应的目标面片;所述第二渲染顶点位于所述目标面片的包围盒中;确定各所述目标面片的各物理顶点分别与所述第二渲染顶点之间的距离;基于各所述目标面片的各物理顶点与所述第二渲染顶点之间的距离,从各所述目标面片的各物理顶点中确定所述第二渲染顶点对应的映射物理顶点。
在一些实施例中,所述物理网格模型为第一物理网格模型,所述渲染网格模型为第一渲染网格模型,所述预设形态为第一形态;所述装置,还用于对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;所述第二物理网格模型用于表示第二形态下的所述柔体对象;针对第二渲染网格模型中受外力影响的第二渲染顶点,从所述模型映射信息中确定所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息;所述第二渲染网格模型用于表示第二形态下的所述柔体对象;基于所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对所述受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型;对所述影响后的渲染网格模型进行渲染得到所述柔体对象的渲染结果。
在一些实施例中,所述装置还用于:响应于为所述渲染网格模型中第一类的网格区域中的渲染顶点设置标签值,并响应于为所述渲染网格模型中第二类的网格区域中的渲染顶点设置标签值,得到所述渲染网格模型中各渲染顶点的标签值;所述第一类的网格区域中渲染顶点设置的标签值小于标签阈值,所述第二类的网格区域中渲染顶点设置的标签值大于或等于所述标签阈值;所述装置还包括顶点确定模块,所述顶点确定模块,用于从所述渲染网格模型中确定标签值小于所述标签阈值的渲染顶点,得到所述第一渲染顶点,并从所述渲染网格模型中确定标签值大于或等于所述标签阈值的渲染顶点,得到所述第二渲染顶点。
在一些实施例中,若所述物理网格模型中第一类型的网格区域与所述渲染网格模型中第一类型的网格区域,表示所述柔体对象的同一部位,则所述物理网格模型中第一类型的网格区域的标签值、与所述渲染网格模型中第一类型的网格区域的标签值具有对应关系;所述第一信息确定模块,还用于确定所述第一渲染顶点的标签值得到第一标签值,确定与所述第一标签值具有对应关系的标签值得到第二标签值;从所述物理网格模型中确定标签值为所述第二标签值的面片得到候选面片;从各所述候选面片中确定所述第一渲染顶点对应的映射面片。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述柔体对象渲染方法中的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述柔体对象渲染方法中的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述柔体对象渲染方法中的步骤。
上述柔体对象渲染方法、装置、计算机设备、存储介质和计算机程序产品,获取柔体对象在预设形态下的物理网格模型和渲染网格模型,物理网格模型的精度小于渲染网格模型的精度,从物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定第一渲染顶点与映射面片之间的相对位置信息,第一渲染顶点,是渲染网格模型中第一类的网格区域中的渲染顶点,从物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点,第二类的网格区域的复杂度高于第一类的网格区域的复杂度,基于各相对位置信息生成柔体对象对应的模型映射信息,模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于柔体对象的渲染。从而复杂度较高的网格区域建立顶点与顶点之间的关系,复杂度较低的网格区域建立顶点到面片的关系,使得模型映射信息更加合理,从而通过模型映射信息,在渲染时基于物理网格模型的变换对渲染网格模型进行变换,可以提升变换后的渲染网格模型的效果,从而对变换后的渲染网格模型进行渲染可以提高渲染效果。
附图说明
图1为一些实施例中柔体对象渲染方法的应用环境图;
图2为一些实施例中柔体对象渲染方法的流程示意图;
图3为一些实施例中得到影响后的渲染网格模型的原理图;
图4为一些实施例中影响后的渲染网格模型的示意图;
图5为一些实施例中柔体对象渲染方法的流程示意图;
图6为一些实施例中为物理网格模型设置权重的示意图;
图7为一些实施例中为渲染网格模型设置权重的示意图;
图8为一些实施例中得到模型映射信息的示意图;
图9为一些实施例中柔体对象渲染方法的流程示意图;
图10为一些实施例中柔体对象渲染装置的结构框图;
图11为一些实施例中计算机设备的内部结构图;
图12为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的柔体对象渲染方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储***可以存储服务器104需要处理的数据。数据存储***可以集成在服务器104上,也可以放在云上或其他服务器上。
具体地,终端102获取柔体对象在预设形态下的物理网格模型和渲染网格模型,物理网格模型的精度小于渲染网格模型的精度。终端102从物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定第一渲染顶点与映射面片之间的相对位置信息。第一渲染顶点,是渲染网格模型中第一类的网格区域中的渲染顶点。终端102从物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息。第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点。第二类的网格区域的复杂度高于第一类的网格区域的复杂度。终端102基于各相对位置信息生成柔体对象对应的模型映射信息,模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于柔体对象的渲染。终端102可以将柔体对象对应的模型映射信息发送至服务器104。服务器104可以存储柔体对象对应的模型映射信息。在其它设备渲染包括该柔体的画面时,服务器104可以将柔体对象对应的模型映射信息发送至该其它设备,以使得该其他设备基于柔体对象对应的模型映射信息进行渲染得到柔体对象的渲染结果。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一些实施例中,如图2所示,提供了一种柔体对象渲染方法,该方法可以由终端或服务器执行,还可以由终端和服务器共同执行,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,获取柔体对象在预设形态下的物理网格模型和渲染网格模型;物理网格模型的精度小于渲染网格模型的精度。
其中,柔体对象是指具有柔性的对象,柔体对象可以具有的特点是:对柔体对象施加外力,柔体对象变形,外力撤除,柔体对象不恢复原状。柔体对象是虚拟场景中的对象。柔体对象可以是柔性材质制作的对象,柔性材质包括但不限于是布料或橡胶等,柔体对象包括但不限于是虚拟场景中角色的衣服、虚拟场景中的窗帘或手帕、虚拟场景中的皮球等中的至少一种。虚拟场景中角色的衣服可以是单层衣服或多层服饰,多层服饰是指包括至少两层布料的衣服。
虚拟场景是应用程序在终端上运行时显示(或提供)的虚拟的场景。该虚拟场景可以是对真实世界的仿真环境场景,也可以是半仿真半虚构的三维环境场景,还可以是纯虚构的三维环境场景。虚拟场景可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种。目标观察视角可以是任意的观察视角。虚拟场景包括但不限于是影视特效、游戏、视镜模拟、可视化设计、VR(Virtual Reality,虚拟现实)、工业仿真和数字文创等场景。
物理网格模型和渲染网格模型均属于三维网格模型。三维网格模型包括顶点、边和面片,三维网格模型可以包括多个顶点,边是连接两个顶点的线,面片是由三个顶点连接而成的三角形。三维网格模型的最小的几何图形为三角形,三角形由三个顶点和三条边组成。物理网格模型和渲染网格模型均用于表示柔体对象,区别在于精度不同,物理网格模型的精度小于渲染网格模型的精度,故物理网格(Physical Mesh)模型也可以称为低模型,渲染网格模型(Graphic Mesh)也可以称为高模型。精度可以通过顶点的数量确定,顶点越多则精度越大。物理网格模型包括的顶点的数量少于渲染网格模型包括的顶点的数量,例如,物理网格模型包括的顶点的数量为10660,渲染网格模型包括的定点的数量为12748。精度也可以通过面片的数量确定,面片越多则精度越大。物理网格模型包括的面片的数量少于渲染网格模型包括的面片的数量。
在柔体对象包括多个相连接或独立的组成部分时,物理网格模型和渲染网格模型均可以具有多层结构,多层结构指的是由至少两个可变形表面以任何相对方向连接在一起所形成的结构。这种结构可以用来建模衣物附件和多层服装等复杂物体。通过将不同的表面连接在一起,可以创建一个包含多个层次的表面,每个层次都有自己独特的几何形态和运动方式。
可变形表面指的是可以通过改变其几何形态来模拟物体运动和形变的表面。可变形表面通常由多个三角形组成,并且可以根据需要进行增加或减少。在计算机图形学和仿真领域,可变形表面被广泛应用于建模各种复杂物体,如衣服、皮肤、液体等。通过对可变形表面进行精细控制,可以实现物理仿真效果,并为虚拟现实、游戏开发等领域提供强大的工具支持。
柔体对象的形态是可以变化的,以柔体对象为角色的多层服饰为例,多层服饰的形态可以发生变化。预设形态可以是柔体对象的任意的形态。柔体对象的物理网格模型中的顶点可以是移动的,因此,通过对柔体对象的物理网格模型中的顶点的位置进行改变,可以使得该物理网格模型表示任意形态的柔体对象。同样的,柔体对象的渲染网格模型中的顶点也是可以移动的,通过对柔体对象的渲染网格模型中的顶点的位置进行改变,可以使得该渲染网格模型表示不同形态的柔体对象。
柔体对象在预设形态下的物理网格模型,用于表示预设形态下的柔体对象,即用于表示具有预设形态的柔体对象。柔体对象在预设形态下的渲染网格模型,用于表示预设形态下的柔体对象,即用于表示具有预设形态的柔体对象。为了便于区分柔体对象在不同形态下的物理网格模型,将柔体对象在预设形态下的物理网格模型称为第一物理网格模型,将柔体对象在预设形态下的渲染网格模型称为第一渲染网格模型。需要说明的是,柔体对象在不同形态下的物理网格模型的模型结构是一样的,即包括的顶点、边、面片是一样的,不同的只是顶点的位置,顶点的位置发生改变,则会引起边、面片的位置发生改变。同样的,柔体对象在不同形态下的渲染网格模型本身的模型结构也是不变的,改变的只是顶点、边、面片的位置。
具体地,柔体对象在预设形态下的物理网格模型是预先生成的。柔体对象在预设形态下的渲染网格模型是预先生成的,例如可以是通过用于生成三维网格模型的工具生成的。
在一些实施例中,物理网格模型和渲染网格模型可以通过同一个FBX文件存储,FBX(Filmbox)是一个3D(三维)文件格式,主要用于在不同的3D软件之间进行模型和场景的交互。FBX文件可以用于游戏开发、虚拟现实、电影制作和工业设计等领域。即FBX文件中可以存储有物理网格模型和渲染网格模型。当然,物理网格模型和渲染网格模型也可以采用不同的FBX文件进行存储。
步骤204,从物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定第一渲染顶点与映射面片之间的相对位置信息;第一渲染顶点,是渲染网格模型中第一类的网格区域中的渲染顶点。
其中,渲染网格模型中的顶点可以称为渲染顶点,物理网格模型中的顶点可以称为物理顶点。网格区域是三维网格模型中的一部分,该三维网格模型可以为物理网格模型或渲染网格模型。渲染网格模型中的网格区域可以划分为第一类型的网格区域和第二类型的网格区域,第二类的网格区域的复杂度高于第一类的网格区域的复杂度。复杂度可以根据顶点的密度确定,例如,顶点的密度越大,则复杂度越大,渲染网格模型中可以有至少一个第二类型的网格区域,渲染网格模型中可以有至少一个第一类型的网格区域。每个第二类的网格区域的复杂度,均高于每个第一类型的网格区域的复杂度。复杂度也可以通过有无褶皱、有无内凹来区分,平整无褶皱的网格区域的复杂度低于有褶皱或有内凹的网格区域的复杂度。例如,柔体对象为多层服饰,渲染网格模型表示多层服饰,该多层服饰上的飘带、装饰物、平整精度不高的裙摆等处的网格区域属于第一类型的网格区域。
网格区域中包括多个顶点,多个是指至少两个。第一渲染顶点是指渲染网格模型中第一类的网格区域中的渲染顶点。
具体地,终端可以为物理网格模型中的面片生成对应的包围盒;面片对应的包围盒是指包围面片的几何体。终端可以从生成的各包围盒中确定第一渲染顶点所位于的包围盒,得到第一渲染顶点对应的邻近包围盒。终端可以将邻近包围盒对应的面片确定为第一渲染顶点的邻近面片,并从第一渲染顶点的邻近面片中确定第一渲染顶点对应的映射面片。
在一些实施例中,终端可以将第一渲染顶点的各邻近面片中任一邻近面片,确定为第一渲染顶点对应的映射面片。或者,终端可以将第一渲染顶点向邻近面片所处平面进行投影,若第一渲染顶点在邻近面片所处平面上的投影点在该邻近面片中,则将该邻近面片确定为第一渲染顶点对应的映射面片。
在一些实施例中,终端可以将第一渲染顶点向映射面片进行投影,确定第一渲染顶点在映射面片上的投影点。终端可以确定投影点与映射面片之间的第一相对位置信息,并确定投影点与第一渲染顶点之间的第二相对位置信息。其中,投影点的位置通过第一相对位置信息与映射面片的位置建立关系,第一渲染顶点的位置通过第二相对位置信息与投影点的位置建立关系。终端可以基于第一相对位置信息和第二相对位置信息,得到第一渲染顶点与映射面片之间的相对位置信息。
步骤206从物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息;第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点;第二类的网格区域的复杂度高于第一类的网格区域的复杂度。
其中,第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点;第二类的网格区域的复杂度高于第一类的网格区域的复杂度。第二渲染顶点对应的映射物理顶点可以称为第二渲染顶点对应的映射点。
具体地,终端可以为物理网格模型中的每个面片生成对应的包围盒,从每个面片的包围盒中确定第二渲染顶点所位于的包围盒,得到目标包围盒,并将目标包围盒对应的面片确定为第二渲染顶点对应的目标面片。可以有一个或多个目标面片,多个是指至少两个。终端可以确定各目标面片的各物理顶点分别与第二渲染顶点之间的距离;基于各目标面片的各物理顶点与第二渲染顶点之间的距离,从各目标面片的各物理顶点中确定第二渲染顶点对应的映射物理顶点。
在一些实施例中,针对每个目标面片中的每个物理顶点,终端计算该物理顶点与第二渲染顶点之间的距离。终端将距离最小的物理顶点确定为第二渲染顶点对应的映射物理顶点。
在一些实施例中,第二渲染顶点与对应的映射物理顶点之间的相对位置信息,用于建立映射物理顶点的坐标与第二渲染顶点的坐标之间的关系,例如,可以是相对位置信息可以仿射变换矩阵,该仿射变换矩阵用于在建立映射物理顶点的坐标与第二渲染顶点的坐标之间的关系,通过仿射变换矩阵对物理映射顶点进行变换所得到的结果为第二渲染顶点的坐标。例如,仿射变换矩阵为M,映射物理顶点的坐标为P1,第二渲染顶点的坐标为P2,则P2= P1×M。
步骤208,基于各相对位置信息生成柔体对象对应的模型映射信息;模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于柔体对象的渲染。
具体地,终端将第一渲染顶点与对应映射面片之间的相对位置信息、第二渲染顶点与映射物理顶点之间的相对位置信息,组成柔体对象对应的模型映射信息。
在一些实施例中,步骤202-步骤208是在离线的情况下进行的,即是在实时渲染之前预先执行的步骤,即模型映射信息是预先生成的,并非在实时渲染的时候生成的。在实时渲染时,可以基于预先生成的模型映射信息进行实时渲染得到柔体对象的渲染结果。
在一些实施例中,物理网格模型为第一物理网格模型,渲染网格模型为第一渲染网格模型,预设形态为第一形态。在实时渲染该柔体对象过程中,终端获取柔体对象在当前状态下的第二物理网格模型和在当前状态下的第二渲染网格模型。终端对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型,针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息,并基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动,针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型,并对影响后的渲染网格模型进行渲染得到柔体对象的渲染结果。其中,外力是指柔体对象之外的事物施加到柔体对象上的力量。例如,在虚拟场景中,外力可以是虚拟场景中与柔体对象发生接触的事物,例如,柔体对象为多层服饰,穿着该多层服饰的角色在运动时会对该多层服饰施加力量使得多层服饰变形,当然也可以是虚拟场景中的风。
上述柔体对象渲染方法中,获取柔体对象在预设形态下的物理网格模型和渲染网格模型,物理网格模型的精度小于渲染网格模型的精度,从物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定第一渲染顶点与映射面片之间的相对位置信息,第一渲染顶点,是渲染网格模型中第一类的网格区域中的渲染顶点,从物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点,第二类的网格区域的复杂度高于第一类的网格区域的复杂度,基于各相对位置信息生成柔体对象对应的模型映射信息,模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于柔体对象的渲染。从而复杂度较高的网格区域建立顶点与顶点之间的关系,复杂度较低的网格区域建立顶点到面片的关系,使得模型映射信息更加合理,从而通过模型映射信息,在渲染时基于物理网格模型的变换对渲染网格模型进行变换,可以提升变换后的渲染网格模型的效果,从而对变换后的渲染网格模型进行渲染可以提高渲染效果。
本申请提供的柔体对象渲染方法,可以用于为任意的柔体对象生成对应的模型映射信息。模型映射信息可以理解为物理网格模型与渲染网格模型之间建立的映射关系。现有的建立物理网格模型与渲染网格模型之间建立的映射关系的方法,要求物理网格模型和渲染网格模型之间的差异不能太大,限制了制作柔体对象的灵活性和多样性。而本申请提供的柔体对象渲染方法,并不要求物理网格模型和渲染网格模型之间的差异不能太大,实现了更灵活的建模方式,从而提高了制作柔体对象的灵活性和多样性。
现有的建立物理网格模型与渲染网格模型之间建立的映射关系的方法,如果物理网格模型的拓扑不连续则会产生映射异常,如果渲染网格模型不太平整有内凹或渲染网格模型是多层结构,则建立的映射关系在应用时使得渲染网格模型穿插严重,效果较差。而本申请提供的柔体对象渲染方法,没有拓扑连续的限制,而且通过两种算法(即建立点与面片之间的关系、点与点之间的关系)的互补,打破了非内凹网格和非多层布料的限制,提高了映射效果和稳定性。
针对精度较高的渲染网格模型,例如在高精度布料模拟的场景中,现有的建立物理网格模型与渲染网格模型之间建立的映射关系的方法,建立的映射关系无法满足要求。而本申请提供的柔体对象渲染方法,通过两种算法(即建立点与面片之间的关系、点与点之间的关系)的互补,可以很好的适用高精度布料模拟的场景中。
在一些实施例中,确定第一渲染顶点与映射面片之间的相对位置信息包括:将第一渲染顶点向映射面片进行投影,确定第一渲染顶点在映射面片上的投影点;确定投影点与映射面片之间的第一相对位置信息,并确定投影点与第一渲染顶点之间的第二相对位置信息;投影点的位置通过第一相对位置信息与映射面片的位置建立关系,第一渲染顶点的位置通过第二相对位置信息与投影点的位置建立关系;基于第一相对位置信息和第二相对位置信息,得到第一渲染顶点与映射面片之间的相对位置信息。
其中,投影点的位置通过第一相对位置信息与映射面片的位置建立关系。第一渲染顶点的位置通过第二相对位置信息与投影点的位置建立关系。第一相对位置信息,用于建立投影点的坐标与映射面片的各物理顶点的坐标之间的关系,例如,第一相对位置信息对映射面片中各物理顶点的坐标进行线性变换的结果为投影点的坐标。投影点的坐标,可以表示为第一相对位置信息与映射面片中各物理顶点的坐标的线性关系。
具体地,投影点与第一渲染顶点之间的第二相对位置信息可以为法线偏移量,法线偏移量是指沿着映射平面的法线方向将投影点移动到第一渲染顶点所需要移动的距离。
在一些实施例中,终端可以将第一相对位置信息和第二相对位置信息,作为第一渲染顶点与对应的映射面片之间的相对位置信息。即第一渲染顶点与对应的映射面片之间的相对位置信息,包括第一相对位置信息和第二相对位置信息。
本实施例中,由于投影点的位置通过第一相对位置信息与映射面片的位置建立关系,第一渲染顶点的位置通过第二相对位置信息与投影点的位置建立关系,从而在映射面片的位置发生变化的情况下,可以通过第一相对位置信息和第二相对位置信息,对第一渲染顶点进行相应的移动。
在一些实施例中,确定投影点与映射面片之间的第一相对位置信息包括:通过映射面片中各物理顶点的坐标和投影点的坐标,确定投影点与映射面片之间的第一相对位置信息;其中,投影点与映射面片之间的第一相对位置信息,用于建立映射面片中各物理顶点的坐标与投影点的坐标之间的线性关系。
具体地,第一相对位置信息中包括第一系数和第二系数,通过第一系数和第二系数可以得到第三系数,第三系数=1-第一系数-第二系数。投影点的坐标与映射面片中各物理顶点的坐标之间的线性关系可以表示为:P1=a1*A1+a2*B1+(1-a1-a2)*C1。其中,a1为第一系数、a2为第二系数、1-a1-a2为第三系数,A1为映射面片的第一个顶点的坐标、B1为映射面片的第二个顶点的坐标、C1为映射面片的第三个顶点的坐标。P1为投影点的坐标。第一相对位置信息可以为(第一系数、第二系数、1-第一系数-第二系数),(第一系数、第二系数、1-第一系数-第二系数)可以称为投影点在映射面片上的重心坐标。其中,第一系数、第二系数和第三系数均为0到1之间的数值。
本实施例中,由于投影点与映射面片之间的第一相对位置信息,用于建立映射面片中各物理顶点的坐标与投影点的坐标之间的线性关系,从而采用线性关系建立了投影点与映射面片在位置上的线性关系,由于线性计算的复杂度较低,从而提高了计算效率。
在一些实施例中,柔体对象在预设形态下的物理网格模型为第一物理网格模型,柔体对象在预设形态下的渲染网格模型为第一渲染网格模型;预设形态为第一形态;该方法还包括:对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;第二物理网格模型用于表示第二形态下的柔体对象;针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息;第二渲染网格模型用于表示第二形态下的柔体对象;基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动得到影响后的渲染网格模型;对影响后的渲染网格模型进行渲染得到柔体对象的渲染结果。
其中,柔体对象在不同形态下的物理网格模型的模型结构是一样的,即包括的顶点、边、面片是一样的,不同的只是顶点的位置,顶点的位置发生改变,则会引起边、面片的位置发生改变。同样的,柔体对象在不同形态下的渲染网格模型本身的模型结构也是不变的,改变的只是顶点、边、面片的位置。第一物理网格模型与第二物理网格模型的模型结构一致,第一渲染网格模型与第二渲染网格模型的模型结构一致,例如,第一物理网格模型由1000个顶点组成,则第二物理网格模型也由该1000个顶点组成,且这1000个顶点在第一物理网格模型中的连接关系,与在第二物理网格模型中的连接关系是一致的,区别在于部分或全部的顶点的位置(即坐标)不一致。例如,第一渲染网格模型由3000个顶点组成,则第二渲染网格模型也由该3000个顶点组成,且这3000个顶点在第一渲染网格模型中的连接关系,与在第二渲染网格模型中的连接关系是一致的,区别在于部分或全部的顶点的位置(即坐标)不一致。
外力是指柔体对象之外的事物施加到柔体对象上的力量。例如,在虚拟场景中,外力可以是虚拟场景中与柔体对象发生接触的事物,例如,柔体对象为多层服饰,穿着该多层服饰的角色在运动时会对该多层服饰施加力量使得多层服饰变形,当然也可以是虚拟场景中的风。
模型映射信息中包括第一渲染顶点与对应的映射面片之间的相对位置信息,还包括第二渲染顶点与对应的映射物理顶点之间的相对位置信息。
具体地,终端可以对第二物理网格模型进行物理模拟,从而实现对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型。第二物理网格模型的全部或部分物理顶点受外力影响。其中,物理模拟用于确定在外力影响的情况下,物理顶点的位置变化量,从而根据该位置变化量对物理顶点进行移动,得到影响后的物理网格模型。
在一些实施例中,终端可以从第二物理网格模型中,确定该映射面片中各物理顶点的坐标,通过第一相对位置信息对该映射面片的各物理顶点的坐标进行线性变换,得到第二物理网格模型中第一渲染顶点在映射面片上的投影点的坐标。由于映射面片在第一物理网格模型中和在第二物理网格模型中的位置可能是不同的,故第二物理网格模型中该投影点的坐标与第一物理网格模型中该投影点的坐标可能是不同的。具体地,终端可以通过公式P2=a1*A2+a2*B2+(1-a1-a2)*C2计算得到第二物理网格模型中第一渲染顶点在映射面片上的投影点的坐标。其中,P2是指第二物理网格模型中第一渲染顶点在映射面片上的投影点的坐标。a1和a2为第一相对位置信息。A2为第二物理网格模型中映射面片的第一个顶点的坐标,B2为第二物理网格模型中映射面片的第二个顶点的坐标,C2为第二物理网格模型中映射面片的第三个顶点的坐标。
在一些实施例中,终端根据第二物理网格模型中该投影点的坐标以及第二相对位置信息,得到该受外力影响的第一渲染顶点的预测位置,将第二渲染网格模型中该受外力影响的第一渲染顶点移动至该预测位置,得到影响后的渲染网格模型,从而间接的将外力的影响施加到第二渲染网格模型上,使得影响后的渲染网络模型呈现被外力影响后的效果。具体地,第二相对位置信息可以为法线偏移量,法线偏移量是指沿着映射平面的法线方向将投影点移动到第一渲染顶点所需要移动的距离。终端确定沿着映射平面的法线方向与该投影点之间的距离等于该法线偏移量的位置,将该位置作为第一渲染顶点的预测位置。
在一些实施例中,终端可以确定柔体对象中受到外力影响的部位,得到外力影响部位,将第二物理网格模型中用于表示该外力影响部位的各物理顶点分别确定为受外力影响的物理顶点。终端可以确定柔体对象中受到外力影响的部位,得到外力影响部位,将第二渲染网格模型中用于表示该外力影响部位的各第一渲染顶点分别确定为受外力影响的第一渲染顶点。
本实施例中,由于物理网格模型的精度低于渲染网格模型,从而物理网格模型中受外力影响的顶点的数量少于渲染网格模型中受外力影响的顶点的数量,例如,柔体对象中某个部位受到外力影响,物理网格模型中表示该部位的顶点的数量为10个,而渲染网格模型中表示该部位的顶点的数量为100个,由于根据外力对顶点进行移动的复杂度较高,先根据外力移动第二物理网格模型中的顶点,再根据相对位置信息对第二渲染网格模型进行移动,从而降低了计算复杂度,提高了计算效率。
在一些实施例中,从物理网格模型的各面片中确定第一渲染顶点对应的映射面片包括:从物理网格模型的各面片中确定第一渲染顶点的邻近面片;第一渲染顶点位于邻近面片的包围盒中;基于第一渲染顶点的邻近面片确定第一渲染顶点对应的映射面片。
其中,邻近面片的包围盒,是指包围邻近面片的几何体,包围盒可以是任意形状的几何体,包括但不是正方体或长方体。
具体地,终端可以为物理网格模型中的面片生成包围盒,从生成的各包围盒中确定第一渲染顶点所在的包围盒得到第一渲染顶点的邻近包围盒,将邻近包围盒对应的面片确定为第一渲染顶点的邻近面片。
在一些实施例中,在第一渲染顶点的邻近面片为一个时,终端可以将该邻近面片确定为第一渲染顶点对应的映射面片。在第一渲染顶点的邻近面片为多个时,终端可以将各邻近面片中任一邻近面片确定为第一渲染顶点对应的映射面片。
本实施例中,第一渲染顶点位于邻近面片的包围盒中,从而映射面片与第一渲染顶点相邻近,提升了映射面片的合理性。
在一些实施例中,基于第一渲染顶点的邻近面片确定第一渲染顶点对应的映射面片包括:针对每个邻近面片,将第一渲染顶点向邻近面片所处的平面进行投影,得到第一渲染顶点在邻近面片所处平面上的投影点;从各邻近面片中确定第一渲染顶点对应的映射面片;第一渲染顶点在映射面片所处平面上的投影点位于映射面片中。
具体地,针对每个邻近面片,若第一渲染顶点在该映射面片所处平面上的投影点位于该映射面片中,则将该邻近面片确定为候选邻近面片。
在一些实施例中,若只有一个候选邻近面片,则将候选邻近面片确定为第一渲染顶点对应的映射面片。若有多个候选邻近面片,则将任一候选邻近面片确定为第一渲染顶点对应的映射面片。
本实施例中,由于第一渲染顶点在映射面片所处平面上的投影点位于映射面片中,从而提高了映射面片的合理性。
在一些实施例中,从物理网格模型的各面片中确定第一渲染顶点的邻近面片包括:为物理网格模型中的面片生成对应的包围盒;面片对应的包围盒是指包围面片的几何体;从生成的各包围盒中确定第一渲染顶点所位于的包围盒,得到邻近包围盒;将邻近包围盒对应的面片确定为第一渲染顶点的邻近面片。
具体地,终端可以为物理网格模型中的每个面片分别生成对应的包围盒,并从生成的各包围盒中确定第一渲染顶点所位于的包围盒,得到邻近包围盒。
在一些实施例中,终端可以为物理网格模型中的部分面片分别生成对应的包围盒,并从生成的各包围盒中确定第一渲染顶点所位于的包围盒,得到邻近包围盒。例如,终端可以根据面片中物理顶点的法线向量和面片的面法线向量,从物理网格模型中确定满足夹角条件的面片,为物理网格模型中除满足夹角条件的面片之外的面片分别生成对应的包围盒。
其中,物理顶点具有法线向量,面片也具有法线向量,面片的法线向量称为面法线向量。夹角条件包括最小的向量夹角大于第一夹角阈值或最大的向量夹角大于第二夹角阈值中的至少一个。向量夹角是指物理顶点的法线向量与面法线向量之间的夹角。
本实施例中,由于第一渲染顶点位于邻近面片的包围盒中,故第一渲染顶点与邻近面片相邻近,提高了确定出的邻近面片的准确性。
在一些实施例中,为物理网格模型中的面片生成对应的包围盒包括:针对物理网格模型的每个面片,获取面片中各物理顶点的法线向量和面片的面法线向量;确定各物理顶点的法线向量分别与面法线向量之间的向量夹角;基于向量夹角从各从物理网格模型中确定满足夹角条件的第一面片;其中,夹角条件包括最小的向量夹角大于第一夹角阈值或最大的向量夹角大于第二夹角阈值中的至少一个;为物理网格模型中除第一面片之外的第二面片生成对应的包围盒。
其中,第一夹角阈值小于第二夹角阈值。第一夹角阈值和第二夹角阈值可以是小于或等于90度的,例如,第一夹角阈值为60度或50度,第二夹角阈值为90度或85度。第一面片满足最小的向量夹角大于第一夹角阈值或最大的向量夹角大于第二夹角阈值中的至少一个。
具体地,物理网格模型中的面片为三角形面片,针对每个面片,面片包括第一物理顶点、第二物理顶点和第三物理顶点,第一物理顶点的法线向量与面片的面法线向量之间的夹角为第一夹角,第二物理顶点的法线向量与面片的面法线向量之间的夹角为第二夹角,第三物理顶点的法线向量与面片的面法线向量之间的夹角为第三夹角。终端从第一夹角、第二夹角和第三夹角中,选取最小的一个得到最小夹角,并选取最大的一个得到最大夹角。终端在确定最小夹角大于第一夹角阈值,或者,最大夹角大于第二夹角阈值的情况下,确定该面片为第一面片。终端为物理网格模型中除第一面片之外的第二面片生成对应的包围盒。
在一些实施例中,终端遍历物理网格模型中的各面片,并从各面片中确定第一面片和第二面片。为了加快遍历面片,终端可以对面片的各物理顶点的坐标进行哈希计算,根据计算出的哈希值查找对应的面片。
本实施例中,由于第一面片满足夹角条件,故第一面片的顶点法线与面片的法线距离较远,不利于顶点向面片投影,而第二面片不满足夹角条件,更利于面片投影,从而提高了确定映射面片的准确度。
在一些实施例中,从物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点包括:从物理网格模型的各面片中确定第二渲染顶点对应的目标面片;第二渲染顶点位于目标面片的包围盒中;确定各目标面片的各物理顶点分别与第二渲染顶点之间的距离;基于各目标面片的各物理顶点与第二渲染顶点之间的距离,从各目标面片的各物理顶点中确定第二渲染顶点对应的映射物理顶点。
具体地,终端可以为物理网格模型中的每个面片生成对应的包围盒,从每个面片的包围盒中确定第二渲染顶点所位于的包围盒,得到目标包围盒,并将目标包围盒对应的面片确定为第二渲染顶点对应的目标面片。可以有一个或多个目标面片,多个是指至少两个。
在一些实施例中,针对每个目标面片中的每个物理顶点,终端计算该物理顶点与第二渲染顶点之间的距离。终端将距离最小的物理顶点确定为第二渲染顶点对应的映射物理顶点。
本实施例中,基于各目标面片的各物理顶点与第二渲染顶点之间的距离,从各目标面片的各物理顶点中确定第二渲染顶点对应的映射物理顶点,从而可以将距离最近的物理顶点确定为映射物理顶点,提高了映射物理顶点的合理性。
在一些实施例中,物理网格模型为第一物理网格模型,渲染网格模型为第一渲染网格模型,预设形态为第一形态;方法还包括:对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;第二物理网格模型用于表示第二形态下的柔体对象;针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息;第二渲染网格模型用于表示第二形态下的柔体对象;基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型;对影响后的渲染网格模型进行渲染得到柔体对象的渲染结果。
其中,第二渲染顶点与对应的映射物理顶点之间的相对位置信息,用于建立映射物理顶点的坐标与第二渲染顶点的坐标之间的关系,例如,可以是相对位置信息可以仿射变换矩阵,该仿射变换矩阵用于在建立映射物理顶点的坐标与第二渲染顶点的坐标之间的关系,通过仿射变换矩阵对物理映射顶点进行变换所得到的结果为第二渲染顶点的坐标。例如,仿射变换矩阵为M,映射物理顶点的坐标为P1,第二渲染顶点的坐标为P2,则P2= P1×M。
具体地,由于同一个物理顶点在第一物理网格模型和第二物理网格模型中的位置即坐标可能不同。从而根据第二渲染顶点与对应的映射物理顶点之间的相对位置信息,可以在映射物理顶点发生变化时,对第二渲染顶点进行相应的移动,从而使得外力影响间接的施加到第二渲染顶点上,使得第二外力影响间接的施加第二渲染网格模型中,使得影响后的渲染网格模型呈现外力影响后的效果。
在一些实施例中,终端从第二物理网格模型中确定该映射物理顶点的位置,得到第一位置,通过第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对第一位置进行变换得到第二渲染顶点的预测位置,例如,第二渲染顶点与对应的映射物理顶点之间的相对位置信息为仿射变换矩阵M,第二物理网格模型中该映射物理顶点的坐标为P3,则第二渲染顶点的预测位置P4= P3×M。其中,P4为第二渲染顶点的预测位置。
在一些实施例中,终端可以确定柔体对象中受到外力影响的部位,得到外力影响部位,将第二渲染网格模型中用于表示该外力影响部位的各第二渲染顶点分别确定为受外力影响的第二渲染顶点。
在一些实施例中,第二渲染网格模型中至少一个第一渲染顶点受外力影响,第二渲染网格中至少一个第二渲染顶点受外力影响。终端对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型,针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息,基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动,并针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型。
在一些实施例中,在柔体对象为角色的多层服饰的情况下,实时渲染时,终端先用第二物理网格模型对角色进行骨骼蒙皮,骨骼蒙皮是指将角色的骨骼与第二物理网格模型中的物理顶点进行绑定,以使得骨骼的运动带动物理顶点运动。如图3中的(1)展示了骨骼,图3中的(2)展示了第二物理网格模型对骨骼进行蒙皮后的结果,包括骨骼和第二物理网格模型。然后,终端对第二物理网格模型进行物理模拟。图3中的(3)中展示了物理模拟后的结果,可以看出图3的(1)和图3的(3)中第二物理网格模型中部分物理顶点发生了移动。物理模型后得到影响后的物理网格模型,然后终端可以根据模型映射信息和影响后的物理网格模型,对第二渲染网格模型中的渲染顶点进行移动得到影响后的渲染网格模型。图3的(4)中,展示了影响后的渲染网格模型,图3的(4)中为了便于观察还展示了影响后的物理网格模型。图3中的整个过程可以称为布料模拟映射,布料模拟映射指的是一种计算机图形学技术,用于模拟和渲染各种不同类型的布料材质。通过对可变形表面进行精细控制,并结合物理仿真算法,我们可以实现布料运动和形变效果。同时,在渲染过程中还需要考虑光照、阴影、反射等多种因素,以进一步提升视觉效果。可以看出布料模拟映射包括蒙皮、物理模拟和映射三个阶段。以柔体对象为多层服饰为例,如图4所示,展示了影响后的渲染网格模型。
本实施例中,由于物理网格模型的精度低于渲染网格模型,从而物理网格模型中受外力影响的顶点的数量少于渲染网格模型中受外力影响的顶点的数量,例如,柔体对象中某个部位受到外力影响,物理网格模型中表示该部位的顶点的数量为10个,而渲染网格模型中表示该部位的顶点的数量为100个,由于根据外力对顶点进行移动的复杂度较高,先根据外力移动第二物理网格模型中的顶点,再根据相对位置信息对第二渲染网格模型进行移动,从而降低了计算复杂度,提高了计算效率。
在一些实施例中,方法还包括:响应于为渲染网格模型中第一类的网格区域中的渲染顶点设置标签值,并响应于为渲染网格模型中第二类的网格区域中的渲染顶点设置标签值,得到渲染网格模型中各渲染顶点的标签值;第一类的网格区域中渲染顶点设置的标签值小于标签阈值,第二类的网格区域中渲染顶点设置的标签值大于或等于标签阈值;确定第一渲染顶点和第二渲染顶点的步骤包括:从渲染网格模型中确定标签值小于标签阈值的渲染顶点,得到第一渲染顶点,并从渲染网格模型中确定标签值大于或等于标签阈值的渲染顶点,得到第二渲染顶点。
其中,标签值均为数值,例如可以为整数,可以为大于或等于0的正整数,第一类的网格区域中各渲染顶点可以设置相同的标签值。为网格区域设置标签值是指为网格区域中的顶点设置标签值。标签阈值可以根据需要设置,例如,标签阈值为10000。则第一渲染顶点的标签值小于10000,第二渲染顶点的标签值大于或等于10000。各第一类的网格区域可以设置相同的标签值或不同的标签值。例如,若两个第一类的网格区域代表柔体对象的同一组成部分,则这两个第一类的网格区域可以设置相同的标签值,例如,柔体对象为多层服饰,该多层服饰的组成部分包括裤子,若裤子通过两个第一类的网格区域来表示,则该两个第一类的网格区域可以设置相同的标签值。若两个第一类型的网格区域代表柔体对象的不同组成部分,例如,一个用于代表裤子,一个用于代表飘带,则这两个第一类型的网格区域设置不同的标签值。
具体地,终端可以通过三维建模软件实现设置标签值的目的。例如,三维建模软件中可以提供用于设置顶点权重的笔刷工具,可以将笔刷工具中设置的权重设置为标签值,通过笔刷工具对网格区域设置标签值。三维建模软件例如可以为3ds Max。3ds Max是三维建模、动画、渲染和可视化软件。如图5中,步骤502中,导入物理网格模型和渲染网格模型,步骤504中的“笔刷控制多层网格编辑权重”中的“多层网格”是指物理网格模型或渲染网格模型,物理网格模型可以包括多层网格,多层是指至少两层,例如,柔体对象为复杂服装,该复杂服装包括裙子和飘带,则物理网格模型中采用两层网格分别表示裙子和飘带。“权重”是指标签值。步骤504的意思是通过笔刷工具设置标签值。
在一些实施例中,终端将渲染网格模型中标签值小于标签阈值的渲染顶点,作为第一渲染顶点,将渲染网格模型中标签值大于或等于标签阈值的渲染顶点,作为第二渲染顶点。如图5中,步骤506“网格上点的权重”是指渲染顶点的标签值,“权重值>=10000”中的权重值是指标签值,10000是指标签阈值,若权重值>=10000则执行步骤510,步骤510“进行点对点局部映射”是指确定第二渲染顶点对应的映射物理顶点。
本实施例中,通过设置标签值的方法方便且准确的将第一类型的网格区域与第二类型的网格进行了区分,从渲染网格模型中确定标签值小于标签阈值的渲染顶点,得到第一渲染顶点,并从渲染网格模型中确定标签值大于或等于标签阈值的渲染顶点,得到第二渲染顶点,准确的获取了分别属于不同类型的网格区域的第一渲染顶点和第二渲染顶点。
在一些实施例中,若物理网格模型中第一类型的网格区域与渲染网格模型中第一类型的网格区域,表示柔体对象的同一部位,则物理网格模型中第一类型的网格区域的标签值、与渲染网格模型中第一类型的网格区域的标签值具有对应关系;从物理网格模型的各面片中确定第一渲染顶点对应的映射面片包括:确定第一渲染顶点的标签值得到第一标签值,确定与第一标签值具有对应关系的标签值得到第二标签值;从物理网格模型中确定标签值为第二标签值的面片得到候选面片;从各候选面片中确定第一渲染顶点对应的映射面片。
其中,与渲染网格模型类似,物理网格模型可以划分为第一类型的网格区域和第二类型的网格区域。候选面片的各物理顶点具有第二标签值。
具体地,物理网格模型中各物理顶点也设置有标签值。计算机设备响应于为物理网格模型中第一类型的网格区域设置标签值,并响应于为物理网格模型中第二类型的网格区域设置标签值,得到物理网格模型中各物理顶点的标签值。同样的,针对物理网格模型,第一类型的网格区域中物理顶点设置的标签值小于标签阈值,第二类的网格区域中物理顶点设置的标签值大于或等于标签阈值。
在一些实施例中,若物理网格模型中第一类型的网格区域与渲染网格模型中第一类型的网格区域,表示柔体对象的同一部位,则物理网格模型中第一类型的网格区域的标签值、与渲染网格模型中第一类型的网格区域的标签值具有对应关系。从而由于第一标签值与第二标签值对应,从而候选面片与第一渲染顶点对应柔体对象的同一部位。
在一些实施例中,物理网格模型中第一类型的网格区域设置的标签值为偶数,渲染网格模型中第一类型的网格区域设置的标签值为奇数。若物理网格模型中第一类型的网格区域A与渲染网格模型中第一类型的网格区域B,表示柔体对象的同一部位,则网格区域A的标签值与网格区域B的标签值为相邻的奇偶数,例如,网格区域A的标签值为2n,网格区域B的标签值为2n+1。如图5所示,若权重值<10000则执行步骤508,若权重值>=10000则执行步骤510。步骤508“根据奇偶关系进行点到三角形重心映射”中的“奇偶关系”即2n与2n+1对应的关系,在第一标签值小于10000,例如第一标签值为4的情况下,根据“奇偶关系”则第二标签值为5。步骤508中的“点到三角形重心映射”是指从物理网格模型中确定第一渲染顶点对应的映射面片、且第一相对位置信息为投影点的重心坐标。步骤512“烘焙阶段整合映射预计算数据”是指基于各相对位置信息生成柔体对象对应的模型映射信息。映射预计算数据是指模型映射信息。步骤514“布料模拟过程根据映射预计算数据进行实时映射”是指根据模型映射信息进行实时映射。实时映射的过程为:针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息,基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动,并针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型。如图6所示,展示了为物理网格模型设置标签值的示意图,图6中展示了角色穿的多层服饰对应的第一物理网格模型,并展示了第一物理网格模型的各个网格区域设置的权重即标签值。同样的图7中展示了角色穿的多层服饰对应的第一渲染网格模型,并展示了第一渲染网格模型中各网格区域,通过笔刷工具可以为各网格区域设置对应的权重即标签值。以柔体对象为角色穿的多层服饰为例,如图8所示,展示了“烘焙阶段整合映射预计算数据”即得到模型映射信息的示意图,图8中的30%表示得到模型映射信息的进度。
在一些实施例中,得到各候选面片后,终端从各候选面片中确定第一渲染顶点的邻近面片。第一渲染顶点位于邻近面片的包围盒中。然后,终端将第一渲染顶点向邻近面片所处的平面进行投影,得到第一渲染顶点在邻近面片所处平面上的投影点。终端可以从各邻近面片中确定第一渲染顶点对应的映射面片。其中,第一渲染顶点在映射面片所处平面上的投影点位于映射面片中。
本实施例中,由于从而候选面片与第一渲染顶点对应柔体对象的同一部位,从而映射面片和第一渲染顶点对应柔体对象的同一部位,例如,均对应裤子,从而提升了映射面片的合理性,提高了模型映射信息的合理性,从而可以提升渲染效果。
在一些实施例中,如图9所示,提供了一种柔体对象渲染方法,该方法可以由终端执行,还可以由终端和服务器共同执行,以该方法应用于终端为例进行说明,包括以下步骤:
步骤902,获取柔体对象在第一物理网格模型和第一渲染网格模型。
其中,第一物理网格模型的精度小于第二渲染网格模型的精度。
步骤904,从第一渲染网格模型中确定第一渲染顶点和第二渲染顶点。
其中,第一渲染顶点,是第一渲染网格模型中第一类的网格区域中的渲染顶点。第二渲染顶点,是第一渲染网格模型中第二类的网格区域中的渲染顶点。第二类的网格区域的复杂度高于第一类的网格区域的复杂度。
步骤906,从第一物理网格模型的各面片中确定第一渲染顶点对应的映射面片,将第一渲染顶点向映射面片进行投影,确定第一渲染顶点在映射面片上的投影点,确定投影点与映射面片之间的第一相对位置信息,并确定投影点与第一渲染顶点之间的第二相对位置信息。
其中,投影点的位置通过第一相对位置信息与映射面片的位置建立关系,第一渲染顶点的位置通过第二相对位置信息与投影点的位置建立关系;
步骤908,基于第一相对位置信息和第二相对位置信息,得到第一渲染顶点与映射面片之间的相对位置信息。
步骤910,从第一物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息。
步骤912,基于各相对位置信息生成柔体对象对应的模型映射信息。
步骤914,在实时渲染过程中,对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型。
步骤916,针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息,并基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动。
步骤918,针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型。
步骤920,对影响后的渲染网格模型进行渲染得到柔体对象的渲染结果。
本实施例中,复杂度较高的网格区域建立顶点与顶点之间的关系,复杂度较低的网格区域建立顶点到面片的关系,使得模型映射信息更加合理,从而通过模型映射信息,在渲染时基于物理网格模型的变换对渲染网格模型进行变换,可以提升变换后的渲染网格模型的效果,从而对变换后的渲染网格模型进行渲染可以提高渲染效果。
本申请提供的柔体对象渲染方法,可以应用于任意的虚拟场景中,用于生成该虚拟场景中的柔体对象,虚拟场景包括但不限于是影视特效、游戏、可视化设计、虚拟现实、工业仿真和数字文创等场景。
例如,在游戏场景中,柔体对象可以是角色穿着的多层服饰,该多层服饰可以是单层也可以是多层的。为了实时渲染游戏场景中多层服饰,终端可以获取多层服饰在第一物理网格模型和第一渲染网格模型,从第一渲染网格模型中确定第一渲染顶点和第二渲染顶点。终端可以从第一物理网格模型的各面片中确定第一渲染顶点对应的映射面片,将第一渲染顶点向映射面片进行投影,确定第一渲染顶点在映射面片上的投影点,确定投影点与映射面片之间的第一相对位置信息,并确定投影点与第一渲染顶点之间的第二相对位置信息。终端可以基于第一相对位置信息和第二相对位置信息,得到第一渲染顶点与映射面片之间的相对位置信息。终端可以从第一物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,并基于各相对位置信息生成多层服饰对应的模型映射信息。
在实时渲染该多层服饰过程中,终端获取多层服饰在当前状态下的第二物理网格模型和在当前状态下的第二渲染网格模型。终端对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型,针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息,并基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动,针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型,并对影响后的渲染网格模型进行渲染得到多层服饰的渲染结果。
本申请提供的柔体对象渲染方法,应用于游戏场景中,可以提高游戏制作的灵活性和多样性、提高了制作效率和质量、提高了映射效果和稳定性、提高模拟效果和精度等方面,为布料模拟的实现提供了更多的可能性和灵活性。
在工业仿真场景中,被仿真的物体具有柔体对象,例如,被仿真的物体具有窗帘或旗子。采用本申请的方法可以实时生成工业仿真场景中柔体对象,以被仿真的物体为建筑物,柔体对象为该建筑物上的窗帘为例,终端可以获取窗帘在第一物理网格模型和第一渲染网格模型,从第一渲染网格模型中确定第一渲染顶点和第二渲染顶点。终端可以从第一物理网格模型的各面片中确定第一渲染顶点对应的映射面片,将第一渲染顶点向映射面片进行投影,确定第一渲染顶点在映射面片上的投影点,确定投影点与映射面片之间的第一相对位置信息,并确定投影点与第一渲染顶点之间的第二相对位置信息。终端可以基于第一相对位置信息和第二相对位置信息,得到第一渲染顶点与映射面片之间的相对位置信息。终端可以从第一物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,并基于各相对位置信息生成窗帘对应的模型映射信息。
在实时渲染该窗帘过程中,终端获取窗帘在当前状态下的第二物理网格模型和在当前状态下的第二渲染网格模型。终端对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型,针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息,并基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动,针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息,基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型,并对影响后的渲染网格模型进行渲染得到窗帘的渲染结果。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的柔体对象渲染方法的柔体对象渲染装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个柔体对象渲染装置实施例中的具体限定可以参见上文中对于柔体对象渲染方法的限定,在此不再赘述。
在一些实施例中,如图10所示,提供了一种柔体对象渲染装置,包括:网格模型获取模块1002、第一信息确定模块1004、第二信息确定模块1006和映射信息确定模块1008,其中:
网格模型获取模块1002,用于获取柔体对象在预设形态下的物理网格模型和渲染网格模型;物理网格模型的精度小于渲染网格模型的精度。
第一信息确定模块1004,用于从物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定第一渲染顶点与映射面片之间的相对位置信息;第一渲染顶点,是渲染网格模型中第一类的网格区域中的渲染顶点。
第二信息确定模块1006,用于从物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息;第二渲染顶点,是渲染网格模型中第二类的网格区域中的渲染顶点;第二类的网格区域的复杂度高于第一类的网格区域的复杂度。
映射信息确定模块1008,用于基于各相对位置信息生成柔体对象对应的模型映射信息;模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于柔体对象的渲染。
在一些实施例中,第一信息确定模块1004,还用于将第一渲染顶点向映射面片进行投影,确定第一渲染顶点在映射面片上的投影点;确定投影点与映射面片之间的第一相对位置信息,并确定投影点与第一渲染顶点之间的第二相对位置信息;投影点的位置通过第一相对位置信息与映射面片的位置建立关系,第一渲染顶点的位置通过第二相对位置信息与投影点的位置建立关系;基于第一相对位置信息和第二相对位置信息,得到第一渲染顶点与映射面片之间的相对位置信息。
在一些实施例中,第一信息确定模块1004,还用于通过映射面片中各物理顶点的坐标和投影点的坐标,确定投影点与映射面片之间的第一相对位置信息;其中,投影点与映射面片之间的第一相对位置信息,用于建立映射面片中各物理顶点的坐标与投影点的坐标之间的线性关系。
在一些实施例中,物理网格模型为第一物理网格模型,渲染网格模型为第一渲染网格模型,预设形态为第一形态;装置,还用于对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;第二物理网格模型用于表示第二形态下的柔体对象;针对第二渲染网格模型中受外力影响的第一渲染顶点,从模型映射信息中确定第一渲染顶点与对应的映射面片之间的相对位置信息;第二渲染网格模型用于表示第二形态下的柔体对象;基于第一渲染顶点与对应的映射面片之间的相对位置信息,对受外力影响的第一渲染顶点进行移动得到影响后的渲染网格模型;对影响后的渲染网格模型进行渲染得到柔体对象的渲染结果。
在一些实施例中,第一信息确定模块1004,还用于从物理网格模型的各面片中确定第一渲染顶点的邻近面片;第一渲染顶点位于邻近面片的包围盒中;基于第一渲染顶点的邻近面片确定第一渲染顶点对应的映射面片。
在一些实施例中,第一信息确定模块1004,还用于针对每个邻近面片,将第一渲染顶点向邻近面片所处的平面进行投影,得到第一渲染顶点在邻近面片所处平面上的投影点;从各邻近面片中确定第一渲染顶点对应的映射面片;第一渲染顶点在映射面片所处平面上的投影点位于映射面片中。
在一些实施例中,第一信息确定模块1004,还用于为物理网格模型中的面片生成对应的包围盒;面片对应的包围盒是指包围面片的几何体;从生成的各包围盒中确定第一渲染顶点所位于的包围盒,得到邻近包围盒;将邻近包围盒对应的面片确定为第一渲染顶点的邻近面片。
在一些实施例中,第一信息确定模块1004,还用于针对物理网格模型的每个面片,获取面片中各物理顶点的法线向量和面片的面法线向量;确定各物理顶点的法线向量分别与面法线向量之间的向量夹角;基于向量夹角从各从物理网格模型中确定满足夹角条件的第一面片;其中,夹角条件包括最小的向量夹角大于第一夹角阈值或最大的向量夹角大于第二夹角阈值中的至少一个;为物理网格模型中除第一面片之外的第二面片生成对应的包围盒。
在一些实施例中,第二信息确定模块1006,还用于从物理网格模型的各面片中确定第二渲染顶点对应的目标面片;第二渲染顶点位于目标面片的包围盒中;确定各目标面片的各物理顶点分别与第二渲染顶点之间的距离;基于各目标面片的各物理顶点与第二渲染顶点之间的距离,从各目标面片的各物理顶点中确定第二渲染顶点对应的映射物理顶点。
在一些实施例中,物理网格模型为第一物理网格模型,渲染网格模型为第一渲染网格模型,预设形态为第一形态;装置,还用于对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;第二物理网格模型用于表示第二形态下的柔体对象;针对第二渲染网格模型中受外力影响的第二渲染顶点,从模型映射信息中确定第二渲染顶点与对应的映射物理顶点之间的相对位置信息;第二渲染网格模型用于表示第二形态下的柔体对象;基于第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型;对影响后的渲染网格模型进行渲染得到柔体对象的渲染结果。
在一些实施例中,装置还用于:响应于为渲染网格模型中第一类的网格区域中的渲染顶点设置标签值,并响应于为渲染网格模型中第二类的网格区域中的渲染顶点设置标签值,得到渲染网格模型中各渲染顶点的标签值;第一类的网格区域中渲染顶点设置的标签值小于标签阈值,第二类的网格区域中渲染顶点设置的标签值大于或等于标签阈值;装置还包括顶点确定模块,顶点确定模块,用于从渲染网格模型中确定标签值小于标签阈值的渲染顶点,得到第一渲染顶点,并从渲染网格模型中确定标签值大于或等于标签阈值的渲染顶点,得到第二渲染顶点。
在一些实施例中,若物理网格模型中第一类型的网格区域与渲染网格模型中第一类型的网格区域,表示柔体对象的同一部位,则物理网格模型中第一类型的网格区域的标签值、与渲染网格模型中第一类型的网格区域的标签值具有对应关系;第一信息确定模块1004,还用于确定第一渲染顶点的标签值得到第一标签值,确定与第一标签值具有对应关系的标签值得到第二标签值;从物理网格模型中确定标签值为第二标签值的面片得到候选面片;从各候选面片中确定第一渲染顶点对应的映射面片。
上述柔体对象渲染装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储柔体对象渲染方法中涉及到的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种柔体对象渲染方法。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过***总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到***总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种柔体对象渲染方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11和图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述柔体对象渲染方法中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述柔体对象渲染方法中的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述柔体对象渲染方法中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive RandomAccess Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(PhaseChange Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(StaticRandom Access Memory,SRAM)或动态随机存取存储器(Dynamic Random AccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (16)

1.一种柔体对象渲染方法,其特征在于,所述方法包括:
获取柔体对象在预设形态下的物理网格模型和渲染网格模型;所述物理网格模型的精度小于所述渲染网格模型的精度;
从所述物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定所述第一渲染顶点与所述映射面片之间的相对位置信息;所述第一渲染顶点,是所述渲染网格模型中第一类的网格区域中的渲染顶点;
从所述物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息;所述第二渲染顶点,是所述渲染网格模型中第二类的网格区域中的渲染顶点;所述第二类的网格区域的复杂度高于所述第一类的网格区域的复杂度;
基于各所述相对位置信息生成所述柔体对象对应的模型映射信息;所述模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于所述柔体对象的渲染。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第一渲染顶点与所述映射面片之间的相对位置信息包括:
将所述第一渲染顶点向所述映射面片进行投影,确定所述第一渲染顶点在所述映射面片上的投影点;
确定所述投影点与所述映射面片之间的第一相对位置信息,并确定所述投影点与所述第一渲染顶点之间的第二相对位置信息;所述投影点的位置通过所述第一相对位置信息与所述映射面片的位置建立关系,所述第一渲染顶点的位置通过所述第二相对位置信息与所述投影点的位置建立关系;
基于所述第一相对位置信息和所述第二相对位置信息,得到所述第一渲染顶点与所述映射面片之间的相对位置信息。
3.根据权利要求2所述的方法,其特征在于,所述确定所述投影点与所述映射面片之间的第一相对位置信息包括:
通过所述映射面片中各物理顶点的坐标和所述投影点的坐标,确定所述投影点与所述映射面片之间的第一相对位置信息;
其中,所述投影点与所述映射面片之间的第一相对位置信息,用于建立所述映射面片中各物理顶点的坐标与所述投影点的坐标之间的线性关系。
4.根据权利要求2所述的方法,其特征在于,所述物理网格模型为第一物理网格模型,所述渲染网格模型为第一渲染网格模型,所述预设形态为第一形态;所述方法还包括:
对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;所述第二物理网格模型用于表示第二形态下的所述柔体对象;
针对第二渲染网格模型中受外力影响的第一渲染顶点,从所述模型映射信息中确定所述第一渲染顶点与对应的映射面片之间的相对位置信息;所述第二渲染网格模型用于表示第二形态下的所述柔体对象;
基于所述第一渲染顶点与对应的映射面片之间的相对位置信息,对所述受外力影响的第一渲染顶点进行移动得到影响后的渲染网格模型;
对所述影响后的渲染网格模型进行渲染得到所述柔体对象的渲染结果。
5.根据权利要求1所述的方法,其特征在于,所述从所述物理网格模型的各面片中确定第一渲染顶点对应的映射面片包括:
从所述物理网格模型的各面片中确定所述第一渲染顶点的邻近面片;所述第一渲染顶点位于所述邻近面片的包围盒中;
基于所述第一渲染顶点的邻近面片确定所述第一渲染顶点对应的映射面片。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第一渲染顶点的邻近面片确定所述第一渲染顶点对应的映射面片包括:
针对每个所述邻近面片,将所述第一渲染顶点向所述邻近面片所处的平面进行投影,得到所述第一渲染顶点在所述邻近面片所处平面上的投影点;
从各所述邻近面片中确定所述第一渲染顶点对应的映射面片;所述第一渲染顶点在所述映射面片所处平面上的投影点位于所述映射面片中。
7.根据权利要求5所述的方法,其特征在于,所述从所述物理网格模型的各面片中确定所述第一渲染顶点的邻近面片包括:
为所述物理网格模型中的面片生成对应的包围盒;所述面片对应的包围盒是指包围所述面片的几何体;
从生成的各包围盒中确定所述第一渲染顶点所位于的包围盒,得到邻近包围盒;
将所述邻近包围盒对应的面片确定为所述第一渲染顶点的邻近面片。
8.根据权利要求7所述的方法,其特征在于,所述为所述物理网格模型中的面片生成对应的包围盒包括:
针对所述物理网格模型的每个面片,获取所述面片中各物理顶点的法线向量和所述面片的面法线向量;
确定各所述物理顶点的法线向量分别与所述面法线向量之间的向量夹角;
基于向量夹角从各从所述物理网格模型中确定满足夹角条件的第一面片;其中,夹角条件包括最小的向量夹角大于第一夹角阈值或最大的向量夹角大于第二夹角阈值中的至少一个;
为所述物理网格模型中除第一面片之外的第二面片生成对应的包围盒。
9.根据权利要求1所述的方法,其特征在于,所述从所述物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点包括:
从所述物理网格模型的各面片中确定第二渲染顶点对应的目标面片;所述第二渲染顶点位于所述目标面片的包围盒中;
确定各所述目标面片的各物理顶点分别与所述第二渲染顶点之间的距离;
基于各所述目标面片的各物理顶点与所述第二渲染顶点之间的距离,从各所述目标面片的各物理顶点中确定所述第二渲染顶点对应的映射物理顶点。
10.根据权利要求9所述的方法,其特征在于,所述物理网格模型为第一物理网格模型,所述渲染网格模型为第一渲染网格模型,所述预设形态为第一形态;所述方法还包括:
对第二物理网格模型中受外力影响的物理顶点进行移动,得到影响后的物理网格模型;所述第二物理网格模型用于表示第二形态下的所述柔体对象;
针对第二渲染网格模型中受外力影响的第二渲染顶点,从所述模型映射信息中确定所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息;所述第二渲染网格模型用于表示第二形态下的所述柔体对象;
基于所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息,对所述受外力影响的第二渲染顶点进行移动,得到影响后的渲染网格模型;
对所述影响后的渲染网格模型进行渲染得到所述柔体对象的渲染结果。
11.根据权利要求1至10任意一项所述的方法,其特征在于,所述方法还包括:
响应于为所述渲染网格模型中第一类的网格区域中的渲染顶点设置标签值,并响应于为所述渲染网格模型中第二类的网格区域中的渲染顶点设置标签值,得到所述渲染网格模型中各渲染顶点的标签值;所述第一类的网格区域中渲染顶点设置的标签值小于标签阈值,所述第二类的网格区域中渲染顶点设置的标签值大于或等于所述标签阈值;
确定所述第一渲染顶点和所述第二渲染顶点的步骤包括:
从所述渲染网格模型中确定标签值小于所述标签阈值的渲染顶点,得到所述第一渲染顶点,并从所述渲染网格模型中确定标签值大于或等于所述标签阈值的渲染顶点,得到所述第二渲染顶点。
12.根据权利要求11所述的方法,其特征在于,若所述物理网格模型中第一类型的网格区域与所述渲染网格模型中第一类型的网格区域,表示所述柔体对象的同一部位,则所述物理网格模型中第一类型的网格区域的标签值、与所述渲染网格模型中第一类型的网格区域的标签值具有对应关系;
所述从所述物理网格模型的各面片中确定第一渲染顶点对应的映射面片包括:
确定所述第一渲染顶点的标签值得到第一标签值,确定与所述第一标签值具有对应关系的标签值得到第二标签值;
从所述物理网格模型中确定标签值为所述第二标签值的面片得到候选面片;
从各所述候选面片中确定所述第一渲染顶点对应的映射面片。
13.一种柔体对象渲染装置,其特征在于,所述装置包括:
网格模型获取模块,用于获取柔体对象在预设形态下的物理网格模型和渲染网格模型;所述物理网格模型的精度小于所述渲染网格模型的精度;
第一信息确定模块,用于从所述物理网格模型的各面片中确定第一渲染顶点对应的映射面片,并确定所述第一渲染顶点与所述映射面片之间的相对位置信息;所述第一渲染顶点,是所述渲染网格模型中第一类的网格区域中的渲染顶点;
第二信息确定模块,用于从所述物理网格模型的各物理顶点中确定第二渲染顶点对应的映射物理顶点,并确定所述第二渲染顶点与对应的映射物理顶点之间的相对位置信息;所述第二渲染顶点,是所述渲染网格模型中第二类的网格区域中的渲染顶点;所述第二类的网格区域的复杂度高于所述第一类的网格区域的复杂度;
映射信息确定模块,用于基于各所述相对位置信息生成所述柔体对象对应的模型映射信息;所述模型映射信息,用于在渲染时基于物理网格模型的变换对渲染网格模型进行变换,变换后的渲染网格模型用于所述柔体对象的渲染。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202310810160.1A 2023-07-04 2023-07-04 柔体对象渲染方法、装置、计算机设备和存储介质 Active CN116543093B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310810160.1A CN116543093B (zh) 2023-07-04 2023-07-04 柔体对象渲染方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310810160.1A CN116543093B (zh) 2023-07-04 2023-07-04 柔体对象渲染方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN116543093A true CN116543093A (zh) 2023-08-04
CN116543093B CN116543093B (zh) 2024-04-02

Family

ID=87445598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310810160.1A Active CN116543093B (zh) 2023-07-04 2023-07-04 柔体对象渲染方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116543093B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090237400A1 (en) * 2008-02-01 2009-09-24 Microsoft Corporation Efficient geometric tessellation and displacement
CN111028320A (zh) * 2019-12-11 2020-04-17 腾讯科技(深圳)有限公司 布料动画的生成方法、装置、计算机可读存储介质
CN111080798A (zh) * 2019-12-02 2020-04-28 网易(杭州)网络有限公司 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法
CN111714885A (zh) * 2020-06-22 2020-09-29 网易(杭州)网络有限公司 游戏角色模型生成、角色调整方法、装置、设备及介质
CN111773688A (zh) * 2020-06-30 2020-10-16 完美世界(北京)软件科技发展有限公司 柔性对象的渲染方法和装置、存储介质、电子装置
CN113398583A (zh) * 2021-07-19 2021-09-17 网易(杭州)网络有限公司 游戏模型的贴花渲染方法、装置、存储介质及电子设备
CN115984447A (zh) * 2023-03-16 2023-04-18 腾讯科技(深圳)有限公司 图像渲染方法、装置、设备和介质
CN115984440A (zh) * 2023-03-20 2023-04-18 腾讯科技(深圳)有限公司 对象渲染方法、装置、计算机设备和存储介质
CN116051709A (zh) * 2023-02-07 2023-05-02 网易(杭州)网络有限公司 基于超分贴图的渲染方法、装置、设备及存储介质
CN116362133A (zh) * 2023-04-04 2023-06-30 浙江大学 一种基于骨架的预测目标姿势下布料静态变形的双相流网络方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090237400A1 (en) * 2008-02-01 2009-09-24 Microsoft Corporation Efficient geometric tessellation and displacement
CN111080798A (zh) * 2019-12-02 2020-04-28 网易(杭州)网络有限公司 虚拟场景的可见性数据处理方法及虚拟场景的渲染方法
CN111028320A (zh) * 2019-12-11 2020-04-17 腾讯科技(深圳)有限公司 布料动画的生成方法、装置、计算机可读存储介质
CN111714885A (zh) * 2020-06-22 2020-09-29 网易(杭州)网络有限公司 游戏角色模型生成、角色调整方法、装置、设备及介质
CN111773688A (zh) * 2020-06-30 2020-10-16 完美世界(北京)软件科技发展有限公司 柔性对象的渲染方法和装置、存储介质、电子装置
CN113398583A (zh) * 2021-07-19 2021-09-17 网易(杭州)网络有限公司 游戏模型的贴花渲染方法、装置、存储介质及电子设备
CN116051709A (zh) * 2023-02-07 2023-05-02 网易(杭州)网络有限公司 基于超分贴图的渲染方法、装置、设备及存储介质
CN115984447A (zh) * 2023-03-16 2023-04-18 腾讯科技(深圳)有限公司 图像渲染方法、装置、设备和介质
CN115984440A (zh) * 2023-03-20 2023-04-18 腾讯科技(深圳)有限公司 对象渲染方法、装置、计算机设备和存储介质
CN116362133A (zh) * 2023-04-04 2023-06-30 浙江大学 一种基于骨架的预测目标姿势下布料静态变形的双相流网络方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T. BOUBEKEUR AND C. SCHLICK: ""A Flexible Kernel for Adaptive Mesh Refinement on GPU"", "COMPUTER GRAPHICS FORUM - 2007", vol. 27, pages 102 - 113, XP071487441, DOI: 10.1111/j.1467-8659.2007.01040.x *

Also Published As

Publication number Publication date
CN116543093B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US9754410B2 (en) System and method for three-dimensional garment mesh deformation and layering for garment fit visualization
CN107251025B (zh) 用于从三维模型生成虚拟内容的***和方法
CN107251026B (zh) 用于生成虚拟情境的***和方法
Igarashi et al. Clothing manipulation
CN109325990B (zh) 图像处理方法及图像处理装置、存储介质
CN104008557B (zh) 一种服装与人体模型的三维匹配方法
CN113129450B (zh) 虚拟试衣方法、装置、电子设备和介质
Yasseen et al. Sketch-based garment design with quad meshes
JP2012190428A (ja) 立体映像視覚効果処理方法
US20170124753A1 (en) Producing cut-out meshes for generating texture maps for three-dimensional surfaces
CN108364355B (zh) 一种贴合面部表情的ar渲染方法
CN114693856B (zh) 对象生成方法、装置、计算机设备和存储介质
CN108230431B (zh) 一种二维虚拟形象的人体动作动画生成方法及***
WO2023091086A2 (en) Apparatus and method for simulating a three-dimensional object
CN116543093B (zh) 柔体对象渲染方法、装置、计算机设备和存储介质
CN112102470A (zh) 线性可微的参数化服装模型制作方法及其参数的优化方法
KR101680174B1 (ko) 3차원 모델로부터 색칠공부도안 생성 방법, 이를 수행하기 위한 기록 매체 및 장치
CN115984440A (zh) 对象渲染方法、装置、计算机设备和存储介质
CN114254501B (zh) 一种大规模草地渲染与仿真方法
CN105046738A (zh) 服装动态三维的制作方法及制作装置
Cheng et al. A 3D virtual show room for online apparel retail shop
WO2018151612A1 (en) Texture mapping system and method
CN114581288A (zh) 一种图像生成方法、装置、电子设备以及存储介质
Xu et al. Predicting ready-made garment dressing fit for individuals based on highly reliable examples
Achar et al. A Comparative Study of Garment Draping Techniques

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40091468

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant