CN112700541B - 一种模型更新方法、装置、设备及计算机可读存储介质 - Google Patents
一种模型更新方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112700541B CN112700541B CN202110041773.4A CN202110041773A CN112700541B CN 112700541 B CN112700541 B CN 112700541B CN 202110041773 A CN202110041773 A CN 202110041773A CN 112700541 B CN112700541 B CN 112700541B
- Authority
- CN
- China
- Prior art keywords
- model
- sphere
- vertex
- target
- information
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000009877 rendering Methods 0.000 claims description 57
- 230000015654 memory Effects 0.000 claims description 23
- 239000011248 coating agent Substances 0.000 claims description 16
- 238000000576 coating method Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 24
- 230000000694 effects Effects 0.000 description 17
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001795 light effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种模型更新方法、装置、设备及计算机可读存储介质;方法包括:显示虚拟对象模型和球体模型控件,虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;响应于作用在球体模型控件上的包覆操作,在包覆虚拟对象模型的位置处显示球体模型,球体模型包括多个球体顶点、以及与多个球体顶点对应的多个球体顶点切线信息;响应于针对虚拟对象模型的切线更新操作,基于多个球体顶点和多个球体顶点切线信息,遍历更新每个模型顶点对应的待更新切线信息,得到目标切线信息,在遍历完多个模型顶点时,获得目标虚拟对象模型。通过本申请实施例,针对虚拟对象模型的切线信息的更新,能够提升智能性和可执行性。
Description
技术领域
本申请涉及计算机应用领域中的渲染技术,尤其涉及一种模型更新方法、装置、设备及计算机可读存储介质。
背景技术
屏幕上所渲染的虚拟对象,通常是通过构建三维的虚拟对象模型,再基于虚拟对象模型生成渲染数据,进而基于渲染数据实现的渲染。其中,虚拟对象在屏幕上的渲染效果,与虚拟对象模型中各顶点的三维信息相关,比如,虚拟对象模型中各顶点的切线信息,影响着虚拟对象在屏幕上的高光效果。
一般来说,虚拟对象模型中各顶点的切线信息通常是杂乱的,容易导致高光破碎;为了获得较好的高光效果,通常需要手动地修改虚拟对象模型中各顶点的切线信息;然而,针对虚拟对象模型中各顶点的切线信息一个个地手动地进行修改,智能性和可执行较差。
发明内容
本申请实施例提供一种模型更新方法、装置、设备及计算机可读存储介质,针对虚拟对象模型的切线信息的更新,能够提升智能性和可执行性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种模型更新方法,包括:
在模型更新页面上显示虚拟对象模型和球体模型控件,其中,所述虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;
响应于作用在所述球体模型控件上的包覆操作,在包覆所述虚拟对象模型的位置处显示球体模型,其中,所述球体模型包括多个球体顶点、以及与所述多个球体顶点一一对应的多个球体顶点切线信息,所述多个球体顶点切线信息均为预定方向上的切线信息;
响应于针对所述虚拟对象模型的切线更新操作,基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而
在遍历完所述多个模型顶点时,获得目标虚拟对象模型,其中,所述目标虚拟对象模型包括多个目标模型顶点、以及所述每个目标模型顶点对应的所述目标切线信息。
本申请实施例提供一种模型更新装置,包括:
信息显示模块,用于在模型更新页面上显示虚拟对象模型和球体模型控件,其中,所述虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;
模型包覆模块,用于响应于作用在所述球体模型控件上的包覆操作,在包覆所述虚拟对象模型的位置处显示球体模型,其中,所述球体模型包括多个球体顶点、以及与所述多个球体顶点一一对应的多个球体顶点切线信息,所述多个球体顶点切线信息均为预定方向上的切线信息;
遍历更新模块,用于响应于针对所述虚拟对象模型的切线更新操作,基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完所述多个模型顶点时,获得目标虚拟对象模型,其中,所述目标虚拟对象模型包括多个目标模型顶点、以及所述每个目标模型顶点对应的所述目标切线信息,所述多个目标模型顶点为遍历后的所述多个模型顶点。
在本申请实施例中,所述遍历更新模块,还用于从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的遍历到的模型顶点法线信息;确定所述遍历到的模型顶点法线信息对应方向上的射线;从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点;从所述多个球体顶点切线信息中,获取与所述目标球体顶点对应的目标球体顶点切线信息;将所述遍历到的每个模型顶点对应的待更新切线信息,更新为所述目标球体顶点切线信息,从而得到所述每个目标模型顶点对应的所述目标切线信息。
在本申请实施例中,所述遍历更新模块,还用于以距离阈值为半径、以射线为圆柱中心线构建圆柱体;获取所述多个球体顶点中被所述圆柱体覆盖的球体顶点覆盖结果。
在本申请实施例中,所述遍历更新模块,还用于当所述球体顶点覆盖结果为所述多个球体顶点中存在被所述圆柱体覆盖的球体顶点集合时,从所述球体顶点集合中,确定与所述射线的垂直距离最近的所述目标球体顶点。
在本申请实施例中,所述遍历更新模块,还用于当所述球体顶点覆盖结果为所述多个球体顶点中不存在被所述圆柱体覆盖的球体顶点集合时,从最新虚拟对象模型中,获取与所述遍历到的每个模型顶点相邻的模型顶点集合,其中,所述最新虚拟对象模型为遍历更新过程中最新的所述虚拟对象模型;基于所述模型顶点集合中的各个模型顶点分别对应的切线信息,确定目标更新切线信息,其中,所述模型顶点集合中的各个模型顶点分别对应的切线信息包括所述目标切线信息和/或所述待更新切线信息,所述目标更新切线信息包括所述模型顶点集合中的各个模型顶点分别对应的切线信息的平均切线信息、任一切线信息和众数切线信息中的一种或多种;将所述遍历到的每个模型顶点对应的待更新顶点切线信息,更新为所述目标更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息。
在本申请实施例中,所述遍历更新模块,还用于获取所述多个球体顶点中,与所述射线在维度上有重叠的球体顶点集合;从所述球体顶点集合中,确定与所述射线的垂直距离最近的所述初始目标球体顶点;当所述初始目标球体顶点与所述射线的垂直距离小于距离阈值时,将所述初始目标球体顶点作为所述目标球体顶点。
在本申请实施例中,所述遍历更新模块,还用于当所述初始目标球体顶点与所述射线的垂直距离不小于所述距离阈值时,基于所述遍历到的每个模型顶点相邻的模型顶点,更新所述每个模型顶点对应的所述待更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息。
在本申请实施例中,所述模型更新装置还包括切线修正模块,用于获取初始球体模型,其中,所述初始球体模型包括与多个初始球体顶点、以及与所述初始球体顶点一一对应的多个初始球体顶点切线信息;基于所述预定方向,修正所述多个初始球体顶点切线信息,得到所述多个球体顶点一一对应的所述多个球体顶点切线信息,从而得到包括所述多个球体顶点和所述多个球体顶点切线信息的所述球体模型,其中,所述预定方向为球体纬线上的任一方向。
在本申请实施例中,所述模型更新装置还包括客户端加载模块,用于在模型创建客户端中,响应于针对模型切线更新客户端的客户端加载操作,加载所述模型切线更新客户端,其中,所述模型切线更新客户端用于基于所述球体模型更新所述虚拟对象模型中的所述每个模型顶点对应的所述待更新切线信息。
在本申请实施例中,所述信息显示模块,还用于当完成所述模型切线更新客户端在所述模型创建客户端的加载时,显示所述模型更新页面,以及在所述模型更新页面的模型工具区域上显示所述球体模型控件;响应于针对所述虚拟对象模型的加载操作,在所述模型更新页面的模型更新区域上显示所述虚拟对象模型。
在本申请实施例中,所述模型更新装置还包括信息调整模块,用于从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的待调整法线信息和待调整副法线信息;基于所述目标切线信息,调整所述待调整法线信息和所述待调整副法线信息,分别得到目标法线信息和目标副法线信息,其中,所述目标切线信息、所述目标法线信息和所述目标副法线信息用于对所述目标虚拟对象模型进行渲染处理。
在本申请实施例中,所述模型更新页面上还显示有存储设置控件和切线更新控件时,所述切线更新操作包括作用在所述存储设置控件上的存储设置操作和作用在所述存储设置控件上的更新触发操作;所述遍历更新模块,还用于响应于所述存储设置操作,显示设置的存储信息,其中,所述存储信息为更新的所述虚拟对象模型对应的存储路径;所述响应于针对所述虚拟对象模型的所述更新触发操作,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息,从而在遍历完所述多个模型顶点时,获得所述目标虚拟对象模型。
在本申请实施例中,所述模型更新装置还包括切线应用模块,用于基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述目标切线信息,获取所述目标虚拟对象模型的高光渲染数据;基于所述高光渲染数据,生成所述待渲染模型,其中,所述待渲染模型用于渲染虚拟对象。
在本申请实施例中,所述模型更新装置还包括坐标转换模块,用于获取目标坐标系信息和渲染客户端的渲染坐标系信息,其中,所述目标坐标系信息为所述目标切线信息对应的坐标系信息;基于所述目标坐标系信息和所述渲染坐标系信息的对应关系,将所述目标切线信息的坐标信息转换为与所述渲染坐标系信息适配的坐标信息,得到转换后的目标切线信息。
在本申请实施例汇总,所述切线应用模块,还用于在所述渲染客户端中,基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述转换后的目标切线信息,获取所述目标虚拟对象模型的高光渲染数据。
本申请实施例提供一种模型更新设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的模型更新方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的模型更新方法。
本申请实施例至少具有以下有益效果:由于球体模型的外表面的平整性较高,球体模型的各球体顶点在预定方向上的切线信息的平整性也就较高;因此,在模型更新页面上,通过在包覆虚拟对象模型的位置处显示球体模型,使虚拟对象模型与球体模型较强地结合,基于球体模型上各顶点中的切线信息,遍历更新虚拟对象模型上每个模型顶点对应的切线信息,所获得的目标虚拟对象模型的顶点的切线信息也具有较高的平滑性;并且,每个模型顶点对应的切线信息的更新过程是批量自动进行的;从而,针对虚拟对象模型的切线信息的更新,能够提升智能性和可执行性。
附图说明
图1是一种示例性的顶点的示意图;
图2是一种示例性的“UV”信息的排列示意图;
图3是另一种示例性的“UV”信息的排列示意图;
图4是又一种示例性的“UV”信息的排列示意图;
图5是另又一种示例性的“UV”信息的排列示意图;
图6是再又一种示例性的“UV”信息的排列示意图;
图7是本申请实施例提供的模型更新系统的一个可选的架构示意图;
图8是本申请实施例提供的一种图7中的终端的组成结构示意图;
图9是本申请实施例提供的模型更新方法的一个可选的流程示意图;
图10是本申请实施例提供的一种示例性的球体模型的示意图;
图11是本申请实施例提供的遍历更新过程的一个可选的流程示意图;
图12是本申请实施例提供的一种示例性的模型更新流程示意图;
图13是本申请实施例提供的一种示例性的导入原始模型的示意图;
图14是本申请实施例提供的一种示例性的显示模型的示意图;
图15是本申请实施例提供的一种示例性的确定目标球体顶点的示意图;
图16是本申请实施例提供的一种示例性的球体的模型的示意图;
图17是本申请实施例提供的一种示例性的修正后的球体的模型的示意图;
图18是本申请实施例提供的一种示例性的模型顶点集合的示意图;
图19是本申请实施例提供的一种示例性的原始模型的示意图;
图20是本申请实施例提供的一种示例性的修改后的原始模型的示意图;
图21是本申请实施例提供的一种示例性的原始模型对应的高光效果的示意图;
图22是本申请实施例提供的一种示例性的修改后的原始模型对应的高光效果的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)控件,是一种通过按钮、图标、链接、文本、选择框、输入框、页签等形式展示的可触发的信息;其中,触发的方式,可以是接触式触发,还可以是无接触式触发,又可以是接收指令式的触发等;另外,本申请实施例中的控件可以是单个控件,又可以是多个控件的总称。
2)操作,是一种用于触发设备执行处理的方式,比如,点击操作、双击操作、长按操作、滑动操作、手势操作、接收到的触发指令等;另外,在本申请实施例中的各种操作可以是单个操作,又可以是多个操作的总称。
3)客户端,终端中运行的用于提供各种服务的应用程序,比如,建模客户端;而模型更新设备即运行客户端的设备。
4)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
5)虚拟对象,虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的可活动对象;该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。另外,虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象,虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。以及,虚拟对象是基于虚拟对象模型渲染出的。另外,本申请实施例中的虚拟对象还可以是虚拟场景中对象的部分信息,比如,虚拟人物的发型,虚拟动物的毛发,虚拟场景中的对象的服饰等。
6)各向异性,是指物质的全部或部分化学、物理等性质随着方向的改变而有所变化,在不同的方向上呈现出差异的性质。
7)高光,是一种美术用语,指光源照射到物体然后反射到人的眼睛里时,物体上最亮的部分;在本申请实施例中又称为高光效果、反光效果。
需要说明的是,三维的虚拟对象模型的切线信息,通常用于计算各向异性的高光效果,比如,用于计算头发拉丝状的高光效果,或者用于计算舞台服装流动的反光效果等。然而,虚拟对象模型中各顶点的切线信息通常是杂乱的,并且三维建模客户端不支持切线的编辑,因此,容易导致高光破碎。
一般来说,为了获得较好的高光效果,通常需要手动地修改虚拟对象模型中各顶点的切线信息;然而,针对虚拟对象模型中各顶点的切线信息一个个地手动地进行修改,智能性较差和可执行较差。比如,当虚拟对象模型复杂时,无法针对虚拟对象模型中各顶点的切线信息一个个地手动地进行修改,也就无法获得方向统一、整齐的切线。
由于针对三维的虚拟对象模型,对应的拓扑结构上的顶点,通常由法线、切线和副法线3个轴构建的坐标系来表示;参见图1,图1是一种示例性的顶点的示意图;如图1所示,针对三维的虚拟对象模型的顶点1-1,坐标轴1-2对应顶点1-1的法线、坐标轴1-3对应顶点1-1的切线、以及坐标轴1-4对应顶点1-1的副法线。又由于三维建模客户端不支持切线的编辑,因此,要实现对切线的修改,可以沿着“UV”空间的U方向排列虚拟对象模型的“UV”信息,以调整切线的方向。其中,排列虚拟对象模型的“UV”信息,即将虚拟对象模型的表面“展平”的过程。示例性地,参见图2,图2是一种示例性的“UV”信息的排列示意图;如图2所示,信息2-1描述了排列的虚拟对象模型的“UV”信息,其中,坐标轴2-2与切线对应,坐标轴2-3与副法线对应。参见图3,图3是另一种示例性的“UV”信息的排列示意图;如图3所示,信息3-1为针对正方体模型3-2所排列的“UV”信息,其中,坐标轴3-3与X轴对应,坐标轴3-4与Y轴对应。
这里,切线方向为“UV”空间的U方向,副法线方向为“UV”空间的V方向,从而,“UV”信息的排列方向影响切线和副法线方向,因此,为了获得整齐、方向统一的平滑切线,需要整齐的排列虚拟对象模型的“UV”信息。
示例性地,为了获得较好的高光效果,获取发型模型的整齐、方向统一的平滑切线时,可以将每缕头发的“UV”信息都展成垂直的。参见图4,图4是又一种示例性的“UV”信息的排列示意图;如图4所示,信息4-1为针对发型模型4-2所排列的“UV”信息。
然而,上述排列的“UV”信息的过程中,为了整齐排列“UV”信息,导致“UV”信息严重扭曲、穿插,不利于后续贴图的绘制贴图,甚至由于扭曲、穿插严重,无法再用于贴图的绘制,导致“UV”信息只能用于编辑切线,从而造成“UV”信息的浪费。另外,对于比较复杂的模型,在排列“UV”信息时获得的为不规则的块,无法进行“UV”信息的整齐排列。
示例性地,参见图5,当针对模型5-1进行“UV”信息的排列时,所获得的排列的“UV”信息如信息5-2所示;参见图6,当针对模型6-1进行“UV”信息的排列时,所获得的排列的“UV”信息如信息6-2所示。
需要说明的是,如果强行把上述不规则的块展成直线形式的,会造成很多线交叉、重叠、以及被拉伸等情况。而由于这些块用于绘制贴图,当排列这些块时出现了交叉、重叠时,会造成贴图错乱。
基于此,本申请实施例提供一种模型更新方法、装置、设备和计算机可读存储介质,能够快速智能地获得具有整齐、方向统一的平滑切线信息。下面说明本申请实施例提供的模型更新设备的示例性应用,本申请实施例提供的模型更新设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明模型更新设备实施为终端时的示例性应用。
参见图7,图7是本申请实施例提供的模型更新系统的一个可选的架构示意图;如图7所示,为支撑一个模型更新应用,在模型更新系统100中,终端400(模型更新设备)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。另外,该模型更新系统100中还包括终端500和数据库600,其中,数据库600用于向服务器200提供数据支持,服务器200是终端400和终端500的服务器集群。
终端400,用于通过网络300与服务器200通信,以在服务器200提供的计算服务下实现模型更新;还用于在模型更新页面上显示虚拟对象模型和球体模型控件,其中,虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;响应于作用在球体模型控件上的包覆操作,在包覆虚拟对象模型的位置处显示球体模型,其中,球体模型包括多个球体顶点、以及与多个球体顶点一一对应的多个球体顶点切线信息,多个球体顶点切线信息均为预定方向上的切线信息;响应于针对虚拟对象模型的切线更新操作,基于多个球体顶点和多个球体顶点切线信息,遍历更新每个模型顶点对应的待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完多个模型顶点时,获得目标虚拟对象模型,其中,目标虚拟对象模型包括多个目标模型顶点、以及每个目标模型顶点对应的目标切线信息,多个目标模型顶点为遍历后的多个模型顶点。还用于基于目标虚拟对象模型通过网络300向服务器200发送渲染模型。
终端500,用于通过网络300与服务器200通信,以获取渲染模型,并在图形页面上渲染虚拟对象。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400和终端500可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
参见图8,图8是本申请实施例提供的一种图7中的终端的组成结构示意图;图8所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的模型更新装置可以采用软件方式实现,图8示出了存储在存储器450中的模型更新装置455,其可以是程序和插件等形式的软件,包括以下软件模块:信息显示模块4551、模型包覆模块4552、遍历更新模块4553、切线修正模块4554、客户端加载模块4555、信息调整模块4556、切线应用模块4557和坐标转换模块4558,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的模型更新装置可以采用硬件方式实现,作为示例,本申请实施例提供的模型更新装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的模型更新方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
下面,将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的模型更新方法。
参见图9,图9是本申请实施例提供的模型更新方法的一个可选的流程示意图,将结合图9示出的步骤进行说明。
S901、在模型更新页面上显示虚拟对象模型和球体模型控件,其中,虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息。
在本申请实施例中,当针对虚拟对象模型进行切线信息的更新时,模型更新设备显示模型更新页面,并在模型更新页面上显示虚拟对象模型和球体模型控件。其中,更新是指替换、或编辑、或修改等处理。
需要说明的是,模型更新页面为用户针对虚拟对象模型进行切线信息的更新时,通过触发指定操作,比如打开具有修改切线信息的客户端,而呈现的页面;通过作用在模型更新页面上的操作,能够实现虚拟对象模型的切线信息的自动批量更新。这里,虚拟对象模型是一种用于获取虚拟对象(比如,虚拟场景中的发型、毛发、服饰等)的渲染数据的三维结构模型,且三维结构模型的拓扑结构上各连线的连接点(或交点)即模型顶点,以及虚拟对象模型包括多个模型顶点、多个模型顶点中的每个模型顶点对应的待更新切线信息,其中,待更新切线信息为每个模型顶点的切线信息;也就是说,虚拟对象模型包括与多个模型顶点一一对应的多个待更新切线信息,该多个待更新切线信息对应的切线方向不统一。另外,球体模型控件用于触发球体模型的显示。
S902、响应于作用在球体模型控件上的包覆操作,在包覆虚拟对象模型的位置处显示球体模型,其中,球体模型包括多个球体顶点、以及与多个球体顶点一一对应的多个球体顶点切线信息。
在本申请实施例中,当用户通过触发球体模型控件,以使球体模型以包覆虚拟对象模型的方式显示时,比如,按下球体模型控件并拖拽至虚拟对象模型外时,模型更新设备也就接收到了作用在球体模型控件上的包覆操作;此时,模型更新设备响应于该包覆操作,在包覆虚拟对象模型的位置处显示球体模型,以使虚拟对象模型能够与球体模型紧密地结合。
需要说明的是,球体模型包覆虚拟对象模型的方式可以是虚拟对象模型处于球体模型内;这里,为了提升球体模型与虚拟对象模型结合的紧密性,还可以确定虚拟对象模型的最小外接球体,在虚拟对象模型上显示该最小外接球体的球心,以使得模型更新设备将球体模型的球心与该最小外接球体的球心进行重合,并调整球体模型的大小以使虚拟对象模型处于球体模型内。
另外,球体模型也是一种三维结构模型,球体模型的拓扑结构上各连线的连接点(或交点)即球体顶点;以及球体模型包括多个球体顶点、以及多个球体顶点中的每个球体顶点对应的球体顶点切线信息。这里,球体模型的拓扑结构比如为球体表面的经线和纬线构成的布线结构,而球体顶点即球体模型的布线结构上经线和纬线的交点;并且,球体顶点切线信息为球体顶点对应的预定方向上的切线信息,比如,球体顶点在球体顶点所在的球体经线上的任一方向、球体顶点所在的球体纬线上的任一方向或球体顶点所在的经线与球体顶点所在的纬线之间的预设夹角方向上的切线信息。此外,球体模型可以是圆球体模型,还可以是椭圆球体模型,等等,本申请实施例对此不作具体限定。
示例性地,参见图10,图10是本申请实施例提供的一种示例性的球体模型的示意图;如图10所示,球体模型10-1的拓扑结构为多个经线和多个纬线构成的布线结构,从而,球体顶点10-13为经线10-11和纬线10-12的交点;以及当预定方向为球体顶点10-13所在的纬线10-12上的某一方向时,确定球体顶点10-13对应的球体顶点切线信息10-14。
S903、响应于针对虚拟对象模型的切线更新操作,基于多个球体顶点和多个球体顶点切线信息,遍历更新每个模型顶点对应的待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完多个模型顶点时,获得目标虚拟对象模型。
在本申请实施例中,当用户针对包覆虚拟对象显示的球体模型,触发利用球体模型对虚拟对象模型的切线信息进行更新时,比如,用户点击切线更新按钮(利用球体模型对虚拟对象模型的切线信息进行更新的按钮)时,模型更新设备也就接收到了针对虚拟对象模型的切线更新操作;此时,模型更新设备响应于该切线更新操作,遍历多个模型顶点,基于多个球体顶点与每个模型顶点的对应关系(比如,位置上的对应关系),确定与遍历到的每个模型顶点对应的球体顶点,并基于确定的球体顶点对应的球体顶点切线信息更新待更新切线信息;这里,可以是将遍历到的每个模型顶点对应的待更新切线信息更新为确定的球体顶点对应的球体顶点切线信息,也可以是以确定的球体顶点对应的球体顶点切线信息为基准,针对遍历到的每个模型顶点对应的待更新切线信息进行预设范围的修改,等等,本申请实施例对此不作具体限定。
需要说明的是,模型更新设备针对遍历到的每个模型顶点对应的待更新切线信息完成更新后,切线更新后的模型顶点即目标模型顶点,更新后的待更新切线信息即目标切线信息;从而,在遍历完多个模型顶点时,也就得到了多个目标模型顶点,以及每个目标模型顶点对应的目标切线信息。也就是说,目标虚拟对象模型包括多个目标模型顶点、以及每个目标模型顶点对应的目标切线信息,多个目标模型顶点为遍历后(切线更新后)的多个模型顶点,目标虚拟对象模型为切线更新后的虚拟对象模型。
可以理解的是,由于球体模型的外表面的平整性较高,球体模型的各球体顶点在预定方向上的切线信息的平整性也就较高;因此,在模型更新页面上,通过在包覆虚拟对象模型的位置处显示球体模型,使虚拟对象模型与球体模型较强地结合,基于球体模型上各顶点中的切线信息,遍历更新虚拟对象模型上每个模型顶点对应的切线信息,所获得的目标虚拟对象模型的顶点的切线信息也具有较高的平滑性;并且,每个模型顶点对应的切线信息的更新过程是批量自动进行的;从而,针对虚拟对象模型的切线信息的更新,能够提升智能性和可执行性。
参见图11,图11是本申请实施例提供的遍历更新过程的一个可选的流程示意图;如图11所示,在本申请实施例中,S903中模型更新设备基于多个球体顶点和多个球体顶点切线信息,遍历更新每个模型顶点对应的待更新切线信息,得到每个目标模型顶点对应的目标切线信息,包括S9031-S9035,下面对各步骤分别进行说明。
S9031、从虚拟对象模型中,获取遍历到的每个模型顶点对应的遍历到的模型顶点法线信息。
在本申请实施例中,由于虚拟对象模型的每个模型顶点还对应着法线,从而,模型更新设备针对遍历到的每个模型顶点,能够获取到对应的法线信息,即遍历到的模型顶点法线信息。其中,遍历到的模型顶点法线信息对应的法线方向为指向球体模型外侧的方向。
S9032、确定遍历到的模型顶点法线信息对应方向上的射线。
在本申请实施例中,当模型更新设备沿着遍历到的模型顶点法线信息对应方向生成射线时,也就确定了遍历到的模型顶点法线信息对应方向上的射线。
S9033、从多个球体顶点中,确定与射线距离最近的目标球体顶点。
需要说明的是,由于球体模型位于虚拟对象模型的外侧,而遍历到的模型顶点法线信息对应的法线方向为指向球体模型外侧的方向,以及射线是沿着遍历到的模型顶点法线信息对应方向生成的;因此,模型更新设备能够通过射线,确定与遍历到的每个模型顶点最接近的球体顶点;这里,模型更新设备将多个球体顶点中到射线的垂直距离最近的球体顶点,作为与遍历到的每个模型顶点最接近的球体顶点,即目标球体顶点。
S9034、从多个球体顶点切线信息中,获取与目标球体顶点对应的目标球体顶点切线信息。
需要说明的是,模型更新设备确定目标球体顶点之后,从多个球体顶点切线信息中确定该目标球体顶点对应的球体顶点切线信息,也就得到了目标球体顶点切线信息。
S9035、将遍历到的每个模型顶点对应的待更新切线信息,更新为目标球体顶点切线信息,从而得到每个目标模型顶点对应的目标切线信息。
在本申请实施例中,模型更新设备确定了与遍历到的每个模型顶点最接近的目标球体顶点的目标球体顶点切线之后,将遍历到的每个模型顶点对应的待更新切线信息,更新为目标球体顶点切线信息,也就完成了每个模型顶点对应的待更新切线信息的遍历更新,也就得到了每个目标模型顶点对应的目标切线信息。
继续参见图11,在本申请实施例中,S9033之前还包括S9036和S9037;也就是说,模型更新设备从多个球体顶点中,确定与射线距离最近的目标球体顶点之前,该模型更新方法还包括S9036和S9037,下面对各个步骤分别进行说明。
S9036、以距离阈值为半径、以射线为圆柱中心线构建圆柱体。
在本申请实施例中,模型更新设备中预先设置有距离阈值,或者模型更新设备能够获取到距离阈值,比如,10cm;该距离阈值用于确定与遍历到的每个模型顶点最接近的目标球体顶点的目标球体切线信息是否可用。这里,模型更新设备所构建的圆柱体对应的圆截面的半径为距离阈值,中心线为遍历到的模型顶点法线信息对应方向上的射线。
S9037、获取多个球体顶点中被圆柱体覆盖的球体顶点覆盖结果。
需要说明的是,球体顶点覆盖结果为多个球体顶点中,是否存在位于圆柱体内(包括圆柱体表面)的球体顶点。
继续参见图11,相应地,在本申请实施例中,S9033可通过S90331实现;也就是说,模型更新设备从多个球体顶点中,确定与射线距离最近的目标球体顶点,包括S90331,下面对该步骤进行说明。
S90331、当球体顶点覆盖结果为多个球体顶点中存在被圆柱体覆盖的球体顶点集合时,从球体顶点集合中,确定与射线的垂直距离最近的目标球体顶点。
需要说明的是,模型更新设备确定球体顶点覆盖结果为多个球体顶点中存在位于圆柱体内的球体顶点时,也就确定了球体顶点覆盖结果为多个球体顶点中存在被圆柱体覆盖的球体顶点集合;此时,表明球体模型上的球体顶点与遍历到的模型顶点在位置上较近。其中,球体顶点集合包括至少一个球体顶点。模型更新设备在确定射线对应的距离阈值范围内存在球体顶点时,再从该射线对应的距离阈值范围内存在的球体顶点中确定目标球体顶点。
可以理解的是,模型更新设备通过阈值距离确定目标球体顶点,使得目标球体顶点与遍历到的每个模型顶点之间更接近,从而,再基于目标球体顶点对应的目标球体顶点切线信息进行切线的更新,能够提升目标切线信息的准确度,进而能够提升目标虚拟对象模型对应的高光效果。
继续参见图11,在本申请实施例中,S9037之后还包括S9038-S90310;也就是说,模型更新设备获取多个球体顶点中被圆柱体覆盖的球体顶点覆盖结果之后,该模型更新方法还包括S9038-S90310,下面对各步骤分别进行说明。
S9038、当球体顶点覆盖结果为多个球体顶点中不存在被圆柱体覆盖的球体顶点集合时,从最新虚拟对象模型中,获取与遍历到的每个模型顶点相邻的模型顶点集合。
在本申请实施例中,当模型更新设备确定球体顶点覆盖结果为多个球体顶点中不存在被圆柱体覆盖的球体顶点集合时,表明球体模型上的球体顶点与遍历到的模型顶点在位置上较远,也就确定了此时不基于球体顶点更新遍历到的模型顶点的待更新切线信息;从而,模型更新设备基于遍历到的模型顶点的相邻顶点进行待更新切线信息的更新。
需要说明的是,最新虚拟对象模型为遍历更新过程中最新的虚拟对象模型,即完成了上一个遍历到的模型顶点的待更新切线信息的更新之后的虚拟对象模型。另外,相邻指在模型的拓扑结构中与遍历到的模型顶点的最短距离为1。
S9039、基于模型顶点集合中的各个模型顶点分别对应的切线信息,确定目标更新切线信息。
需要说明的是,模型顶点集合中的各个模型顶点分别对应的切线信息包括目标切线信息和/或待更新切线信息;也就是说,模型更新设备对遍历到的模型顶点的待更新切线信息进行更新时所依据的切线信息,可以是虚拟对象模型的原始切线信息,也可以是虚拟对象模型的完成更新后的切线信息。另外,目标更新切线信息包括模型顶点集合中的各个模型顶点分别对应的切线信息的平均切线信息、任一切线信息和众数切线信息中的一种或多种;其中,平均切线信息为各个模型顶点对应的各个切线信息的平均方向上的切线信息,任一切线信息为个模型顶点对应的各个切线信息中的任一切线信息,众数切线信息为各个模型顶点对应的各个切线信息中相同切线信息数量最多的切线信息。
S90310、将遍历到的每个模型顶点对应的待更新顶点切线信息,更新为目标更新切线信息,得到每个目标模型顶点对应的目标切线信息。
可以理解的是,通过距离阈值确定在球体模型中存在与遍历到的模型顶点接近的球体顶点时,基于球体顶点的球体顶点切线信息更新遍历到的模型顶点的待更新切线信息;而确定在球体模型中不存在与遍历到的模型顶点接近的球体顶点时,基于遍历到的模型顶点的相邻模型顶点的切线信息更新遍历到的模型顶点的待更新切线信息;如此,能够提升目标虚拟对象模型中各目标切线信息的方向统一性,提升多个目标切线信息的平滑性。
在本申请实施例中,模型更新设备还可以通过另一种方法进行切线更新;从而,S9033可通过S90332-S90334实现;也就是说,模型更新设备从多个球体顶点中,确定与射线距离最近的目标球体顶点,包括S90332-S90334,下面对各个步骤分别进行说明。
S90332、获取多个球体顶点中,与射线在维度上有重叠的球体顶点集合。
需要说明的是,与射线在维度上有重叠的球体顶点集合中的各球体顶点,为存在到射线的垂直距离的球体顶点,即射线所对应的三维空间中的球体顶点。
S90333、从球体顶点集合中,确定与射线的垂直距离最近的初始目标球体顶点。
需要说明的是,模型更新设备获取球体顶点集合中各球体顶点到射线的垂直距离,得到与球体顶点集合对应的垂直距离集合;此时,模型更新设备从垂直距离集合中选择最短垂直距离,并从球体顶点集合中确定最短垂直距离对应的球体顶点,也就得到了初始目标球体顶点。
S90334、当初始目标球体顶点与射线的垂直距离小于距离阈值时,将初始目标球体顶点作为目标球体顶点。
在本申请实施例中,模型更新设备获得了初始目标球体顶点之后,为了确定是否以及初始目标球体顶点对应的球体顶点切线信息更新遍历到的模型顶点对应的待更新切线信息,将初始目标球体顶点与射线的垂直距离,与距离阈值比较;当初始目标球体顶点与射线的垂直距离小于距离阈值时,表明初始目标球体顶点与遍历到的模型顶点在位置上较近,能够将初始目标球体顶点作为目标球体顶点,来更新遍历到的模型顶点对应的待更新切线信息。
在本申请实施例中,S90333之后还包括S90335;也就是说,模型更新设备确定与射线的垂直距离最近的初始目标球体顶点之后还包括S90335,下面对该步骤进行说明。
S90335、当初始目标球体顶点与射线的垂直距离不小于距离阈值时,基于遍历到的每个模型顶点相邻的模型顶点,更新每个模型顶点对应的待更新切线信息,得到每个目标模型顶点对应的目标切线信息。
需要说明的是,当初始目标球体顶点与射线的距离不小于距离阈值时,表明球体模型上的初始球体顶点与遍历到的模型顶点在位置上较远,也就确定了此时不基于初始球体顶点更新遍历到的模型顶点的待更新切线信息;此时,模型更新设备更新每个模型顶点对应的待更新切线信息的过程,与球体顶点覆盖结果为多个球体顶点中不存在被圆柱体覆盖的球体顶点集合时的切线更新过程一致,本申请实施例在此不再赘述。
在本申请实施例中,S901之前还包括S904和S905;也就是说,模型更新设备在模型更新页面上显示虚拟对象模型和球体模型控件之前,该模型更新方法还包括S904和S905,下面对各步骤分别进行说明。
S904、获取初始球体模型,其中,初始球体模型包括与多个初始球体顶点、以及与初始球体顶点一一对应的多个初始球体顶点切线信息。
需要说明的是,初始球体模型为各种模型创建客户端中的球体的模型,该初始球体模型包括多个初始球体顶点、以及与初始球体顶点一一对应的多个初始球体顶点切线信息。
S905、基于预定方向,修正多个初始球体顶点切线信息,得到多个球体顶点一一对应的多个球体顶点切线信息,从而得到包括多个球体顶点和多个球体顶点切线信息的球体模型。
需要说明的是,多个初始球体顶点切线信息所对应的切线方向不统一,这里,模型更新设备将多个初始球体顶点信息的切线信息均修正为预定方向上的切线信息;当完成修正时,修正后的多个初始球体顶点即多个球体顶点,修改后的多个初始球体顶点切线信息即多个球体顶点切线信息;其中,预定方向为球体维线的任一方向。另外,易知,如果多个初始球体顶点信息中存在切线方向为预定方向的初始球体顶点时,模型更新设备则针对该初始球体顶点对应的初始球体顶点切线信息不进行修正。
在本申请实施例中,S901之前还包括S906;也就是说,模型更新设备在模型更新页面上显示虚拟对象模型和球体模型控件之前,该模型更新方法还包括S906,下面对该步骤分别进行说明。
S906、在模型创建客户端中,响应于针对模型切线更新客户端的客户端加载操作,加载模型切线更新客户端。
在本申请实施例中,模型更新方法可以是通过客户端实现的,此时,该客户端是加载有模型切线更新客户端的模型创建客户端。这里,,模型创建客户端用于创建虚拟对象的结构模型,比如,“Houdini”客户端、“3dsMax”客户端、“MAYA”客户端或者“Blender”客户端;模型切线更新客户端用于基于球体模型更新虚拟对象模型中的每个模型顶点对应的待更新切线信息。
这里,模型更新设备可以通过修改器和/或功能接口,比如,“Python”计算机语言实现的客户端接入功能,实现模型切线更新客户端向模型创建客户端的加载。
相应地,在本申请实施例中,模型更新设备在模型更新页面上显示虚拟对象模型和球体模型控件,包括S9011和S9012,下面对各步骤分别进行说明。
S9011、当完成模型切线更新客户端在模型创建客户端的加载时,显示模型更新页面,以及在模型更新页面的模型工具区域上显示球体模型控件。
需要说明的是,当模型更新设备完成模型切线更新客户端在模型创建客户端的加载时,表明模型更新设备可以基于加载有模型切线更新客户端的模型创建客户端进行虚拟对象模型的切线更新了;从而,模型更新设备显示模型更新页面,以及在模型更新页面的模型工具区域上显示球体模型控件。
S9012、响应于针对虚拟对象模型的加载操作,在模型更新页面的模型更新区域上显示虚拟对象模型。
需要说明的是,当用户在模型更新页面上加载虚拟对象模型以显示虚拟对象模型时,比如,用户点击加载模型的控件并选择虚拟对象模型模型,以及点击确定加载按钮时,更新设备也就接收到了针对虚拟对象模型的加载操作;此时,模型更新设备响应于该加载操作,也就能够在模型更新页面的模型更新区域上完成虚拟对象模型的显示。
在本申请实施例中,S903中模型更新设备得到每个目标模型顶点对应的目标切线信息之后,该模型更新方法还包括S90311和S90312,下面对各步骤分别进行说明。
S90311、从虚拟对象模型中,获取遍历到的每个模型顶点对应的待调整法线信息和待调整副法线信息。
需要说明的是,由于每个模型顶点的切线、法线和副法线是两两垂直的,比如图1中的切线、法线和副法线;因此,当每个模型顶点对应的待更新切线信息更新之后,还需要获取遍历到的每个模型顶点的法线信息即待调整法线信息,以及遍历到的每个模型顶点的副法线信息即待调整副法线信息,以对待调整法线信息和待调整副法线信息进行调整。
S90312、基于目标切线信息,调整待调整法线信息和待调整副法线信息,分别得到目标法线信息和目标副法线信息。
需要说明的是,目标切线信息、目标法线信息和目标副法线信息用于对目标虚拟对象模型进行渲染处理。
在本申请实施例中,模型更新页面上还显示有存储设置控件和切线更新控件时,切线更新操作包括作用在存储设置控件上的存储设置操作和作用在存储设置控件上的更新触发操作。此时,S903可通过S90313和S90314实现;也就是说,模型更新设备响应于针对虚拟对象模型的切线更新操作,基于多个球体顶点和多个球体顶点切线信息,遍历更新每个模型顶点对应的待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完多个模型顶点时,获得目标虚拟对象模型,包括S90313和S90314,下面对各步骤分别进行说明。
S90313、响应于存储设置操作,显示设置的存储信息。
需要说明的是,存储信息为更新的虚拟对象模型对应的存储路径,用于实现目标虚拟对象模型的存储。
S90314、响应于针对虚拟对象模型的更新触发操作,遍历更新每个模型顶点对应的待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完多个模型顶点时,获得目标虚拟对象模型。
需要说明的是,当用户针对设置的存储信息,触发对虚拟对象模型的切线更新时,比如,当用户针对显示的存储信息,点击更新切线按钮时,模型更新设备也就接收到了针对虚拟对象模型的更新触发操作。
在本申请实施例中,S903之后还包括S907和S908;也就是说,模型更新设备获得目标虚拟对象模型之后,该模型更新方法还包括S907和S908,下面对各步骤分别进行说明。
S907、基于多个目标模型顶点中的每个目标模型顶点对应的目标切线信息,获取目标虚拟对象模型的高光渲染数据。
在本申请实施例中,模型更新设备完成了虚拟对象模型的切线更新之后,可以基于更新后的目标切线信息生成目标虚拟对象模型的高光渲染数据,以实现虚拟对象的高光效果的渲染。
S908、基于高光渲染数据,生成待渲染模型。
需要说明的是,待渲染模型用于渲染虚拟对象;且待渲染模型被渲染之后,所渲染出的虚拟对象的高光效果具有顺滑性。
在本申请实施例中,S907之前还包括S909和S910;也就是说,模型更新设备基于多个目标模型顶点中的每个目标模型顶点对应的目标切线信息,获取目标虚拟对象模型的高光渲染数据之前,该模型更新方法还包括S909和S910,下面对各步骤分别进行说明。
S909、获取目标坐标系信息和渲染客户端的渲染坐标系信息。
需要说明的是,目标坐标系信息为目标切线信息对应的坐标系信息;渲染客户端用于获取渲染数据的客户端,比如,“Unity”客户端。由于各客户端中的坐标系信息可以不同,从而,模型更新设备需要通过获取两个交互的客户端的坐标系,以实现坐标系之间的转换,使得信息能够统一表示。
S910、基于目标坐标系信息和渲染坐标系信息的对应关系,将目标切线信息的坐标信息转换为与渲染坐标系信息适配的坐标信息,得到转换后的目标切线信息。
示例性地,模型更新设备将切线信息的原x轴分量赋给z轴,原z轴分量赋给y轴,原y轴分量翻转后赋给x轴。
相应地,在本申请实施例中,S907中模型更新设备基于多个目标模型顶点中的每个目标模型顶点对应的目标切线信息,获取目标虚拟对象模型的高光渲染数据,包括:在渲染客户端中,模型更新设备基于多个目标模型顶点中的每个目标模型顶点对应的转换后的目标切线信息,获取目标虚拟对象模型的高光渲染数据。也就是说,模型更新设备在获得了目标虚拟对象模型之后,为了实现切线信息表示的统一,对目标虚拟对象模型中的多个目标切线信息进行坐标系转换,并利用转换后的多个目标切线信息在渲染客户端中生成目标虚拟对象模的高光渲染数据。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
参见图12,图12是本申请实施例提供的一种示例性的模型更新流程示意图;如图12所示,该示例性的模型更新流程包括:
S1201、开始。
S1202、三维计算机图形客户端(模型创建客户端,比如,“Houdini”客户端)载入切线更新工具(模型切线更新客户端)。
S1203、三维计算机图形客户端导入待修改切线的原始模型(虚拟对象模型)。
需要说明的是,三维计算机图形客户端完成切线更新工具的载入之后,参见图13,图13是本申请实施例提供的一种示例性的导入原始模型的示意图;如图13所示,当用户在三维计算机图形客户端的页面13-1上点击原始模型导入控件13-11,并选择待修改切线的原始模型时,三维计算机图形客户端也就能够根据点击原始模型导入控件13-11的操作、以及选择待修改切线的原始模型的操作,完成待修改切线的原始模型的导入,从而完成原始模型在模型更新页面上的显示。
S1204、三维计算机图形客户端在原始模型的外侧以包裹原始模型的形式显示预设球体(球体模型)。
需要说明的是,当用户在三维计算机图形客户端的页面上拖拽预设球体至原始模型的外侧并包裹原始模型时,三维计算机图形客户端也就完成了预设球体在原始模型的外侧以包裹原始模型形式的显示。参见图14,图14是本申请实施例提供的一种示例性的显示模型的示意图;如图14所示,模型更新页面14-1上,预设球体14-11是在原始模型14-12的外侧以包裹原始模型14-12的形式进行显示的。
S1205、三维计算机图形客户端接收保存路径设置操作(存储设置操作)和切线修改触发操作(更新触发操作,与保存路径设置操作共同构成切线更新操作)。
继续参见图13,当用户点击保存路径设置控件13-12设置切线修改后的原始模型的保存路径时,三维计算机图形客户端也就接收到了保存路径设置操作;当用户点击切线更新开始控件13-13时,三维计算机图形客户端也就接收到了切线修改触发操作。
S1206、遍历原始模型的顶点(模型顶点)。
这里,S1206是响应于S1205中的保存路径设置操作和切线修改触发操作而执行的步骤。
S1207、判断预设范围内是否存在与遍历到的原始模型的顶点的距离最近的预设球体顶点(目标球体顶点)。如果是,则执行S1208;如果否,则执行S1210。
需要说明的是,三维计算机图形客户端沿着遍历到的原始模型的顶点的法线方向发射射线,判断以射线为中心线10厘米(距离阈值)范围内是否存在预设球体顶点;当存在时,其中与射线的垂直距离最短的球体顶点即为距离最近的预设球体顶点。参见图15,图15是本申请实施例提供的一种示例性的确定目标球体顶点的示意图;如图15所示,示出了针对遍历到的原始模型的顶点15-1,基于对应的法线方向15-2所确定的10厘米范围内距离最近的预设球体顶点15-3。
S1208、获取距离最近的预设球体顶点的切线信息(目标球体顶点切线信息)。
需要说明的是,由于三维建模客户端(包括三维计算机图形客户端)中均包括球体的模型,然而,所包括的球体的模型的切线方向并不统一;参见图16,图16是本申请实施例提供的一种示例性的球体的模型的示意图;如图16所示,球体的模型16-1的顶点是球体的经线和纬线的交点,球体的模型16-1的大部分顶点的切线信息对应的方向为顶点所在纬线的顺时针方向16-2;然而,如区域16-11中,球体的模型16-1的顶点的切线信息对应的方向不统一,有的为右下,有的指向球体的模型16-1的中心。这里,对球体的模型16-1的顶点的切线信息进行修正之后,如图17所示,球体的模型17-1,是球体的模型16-1的顶点的切线信息被修正后的模型,球体的模型17-1的顶点的切线信息对应的方向是统一的,均为顶点所在纬线的顺时针方向17-2。
S1209、利用获取的切线信息替换遍历到的原始模型的顶点的切线信息。
S1210、获取遍历到的原始模型的顶点的相邻顶点(模型顶点集合)的各个切线信息。
需要说明的是,参见图18,图18是本申请实施例提供的一种示例性的模型顶点集合的示意图;如图18所示,遍历到的原始模型的顶点18-1对应的相邻顶点18-2包括7个顶点。
S1211、利用各个切线信息的平均切线信息(目标更新切线信息)替换遍历到的原始模型的顶点的切线信息。
S1212、判断是否完成遍历。如果是,则执行S1213;如果否,则继续执行S1206。
这里,当原始模型为图19示出的模型19-1时,完成遍历之后,所获得的修改后的原始模型如图20中示出的模型20-1。
S1213、基于游戏引擎客户端的坐标系对替换后的切线信息进行坐标转换。
这里,当游戏引擎客户端为“Unity”客户端时,将切线信息的原x轴分量赋给z轴,原z轴分量赋给y轴,原y轴分量翻转后赋给x轴,以实现坐标转换,兼容不同客户端的坐标轴的轴向区别。
S1214、保存至设置的路径。其中,设置的路径为S1205中设置的保存路径。
S1215、结束。
需要说明的是,基于图19中的模型19-1中的切线信息所渲染的发型的高光效果,如图21中示出的虚拟对象21-1,高光错乱没有形状和方向。基于图20中的模型20-1中的切线信息所渲染的发型的高光效果,如图22中示出的虚拟对象22-1,高光平整圆滑,在头顶形成了圆环状的高光。
可以理解的是,本申请实施例通过利用球体模型包覆虚拟对象模型,来利用球体模型中各球体顶点在统一方向上的切线的平滑性,替换虚拟对象模型上各模型顶点的杂乱切线信息,来获得包括方向统一的切线信息的目标虚拟对象模型,为后续获得顺滑高光效果提供了数据支持。且虚拟对象模型上各模型顶点的杂乱切线信息的替换,是批量自动完成的,实现了复杂模型的切线信息的可编辑性,以及编辑复杂模型的切线信息的智能性和高效性。
下面继续说明本申请实施例提供的模型更新装置455的实施为软件模块的示例性结构,在一些实施例中,如图8所示,存储在存储器450的模型更新装置455中的软件模块可以包括:
信息显示模块4551,用于在模型更新页面上显示虚拟对象模型和球体模型控件,其中,所述虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;
模型包覆模块4552,用于响应于作用在所述球体模型控件上的包覆操作,在包覆所述虚拟对象模型的位置处显示球体模型,其中,所述球体模型包括多个球体顶点、以及与所述多个球体顶点一一对应的多个球体顶点切线信息,所述多个球体顶点切线信息均为预定方向上的切线信息;
遍历更新模块4553,用于响应于针对所述虚拟对象模型的切线更新操作,基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完所述多个模型顶点时,获得目标虚拟对象模型,其中,所述目标虚拟对象模型包括多个目标模型顶点、以及所述每个目标模型顶点对应的所述目标切线信息,所述多个目标模型顶点为遍历后的所述多个模型顶点。
在本申请实施例中,所述遍历更新模块4553,还用于从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的遍历到的模型顶点法线信息;确定所述遍历到的模型顶点法线信息对应方向上的射线;从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点;从所述多个球体顶点切线信息中,获取与所述目标球体顶点对应的目标球体顶点切线信息;将所述遍历到的每个模型顶点对应的待更新切线信息,更新为所述目标球体顶点切线信息,从而得到所述每个目标模型顶点对应的所述目标切线信息。
在本申请实施例中,所述遍历更新模块4553,还用于以距离阈值为半径、以射线为圆柱中心线构建圆柱体;获取所述多个球体顶点中被所述圆柱体覆盖的球体顶点覆盖结果。
在本申请实施例中,所述遍历更新模块4553,还用于当所述球体顶点覆盖结果为所述多个球体顶点中存在被所述圆柱体覆盖的球体顶点集合时,从所述球体顶点集合中,确定与所述射线的垂直距离最近的所述目标球体顶点。
在本申请实施例中,所述遍历更新模块4553,还用于当所述球体顶点覆盖结果为所述多个球体顶点中不存在被所述圆柱体覆盖的球体顶点集合时,从最新虚拟对象模型中,获取与所述遍历到的每个模型顶点相邻的模型顶点集合,其中,所述最新虚拟对象模型为遍历更新过程中最新的所述虚拟对象模型;基于所述模型顶点集合中的各个模型顶点分别对应的切线信息,确定目标更新切线信息,其中,所述模型顶点集合中的各个模型顶点分别对应的切线信息包括所述目标切线信息和/或所述待更新切线信息,所述目标更新切线信息包括所述模型顶点集合中的各个模型顶点分别对应的切线信息的平均切线信息、任一切线信息和众数切线信息中的一种或多种;将所述遍历到的每个模型顶点对应的待更新顶点切线信息,更新为所述目标更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息。
在本申请实施例中,所述遍历更新模块4553,还用于获取所述多个球体顶点中,与所述射线在维度上有重叠的球体顶点集合;从所述球体顶点集合中,确定与所述射线的垂直距离最近的所述初始目标球体顶点;当所述初始目标球体顶点与所述射线的垂直距离小于距离阈值时,将所述初始目标球体顶点作为所述目标球体顶点。
在本申请实施例中,所述遍历更新模块4553,还用于当所述初始目标球体顶点与所述射线的垂直距离不小于所述距离阈值时,基于所述遍历到的每个模型顶点相邻的模型顶点,更新所述每个模型顶点对应的所述待更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息。
在本申请实施例中,所述模型更新装置455还包括切线修正模块4554,用于获取初始球体模型,其中,所述初始球体模型包括与多个初始球体顶点、以及与所述初始球体顶点一一对应的多个初始球体顶点切线信息;基于所述预定方向,修正所述多个初始球体顶点切线信息,得到所述多个球体顶点一一对应的所述多个球体顶点切线信息,从而得到包括所述多个球体顶点和所述多个球体顶点切线信息的所述球体模型,其中,所述预定方向为球体纬线上的任一方向。
在本申请实施例中,所述模型更新装置455还包括客户端加载模块4555,用于在模型创建客户端中,响应于针对模型切线更新客户端的客户端加载操作,加载所述模型切线更新客户端,其中,所述模型切线更新客户端用于基于所述球体模型更新所述虚拟对象模型中的所述每个模型顶点对应的所述待更新切线信息。
在本申请实施例中,所述信息显示模块4551,还用于当完成所述模型切线更新客户端在所述模型创建客户端的加载时,显示所述模型更新页面,以及在所述模型更新页面的模型工具区域上显示所述球体模型控件;响应于针对所述虚拟对象模型的加载操作,在所述模型更新页面的模型更新区域上显示所述虚拟对象模型。
在本申请实施例中,所述模型更新装置455还包括信息调整模块4556,用于从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的待调整法线信息和待调整副法线信息;基于所述目标切线信息,调整所述待调整法线信息和所述待调整副法线信息,分别得到目标法线信息和目标副法线信息,其中,所述目标切线信息、所述目标法线信息和所述目标副法线信息用于对所述目标虚拟对象模型进行渲染处理。
在本申请实施例中,所述模型更新页面上还显示有存储设置控件和切线更新控件时,所述切线更新操作包括作用在所述存储设置控件上的存储设置操作和作用在所述存储设置控件上的更新触发操作;所述遍历更新模块4553,还用于响应于所述存储设置操作,显示设置的存储信息,其中,所述存储信息为更新的所述虚拟对象模型对应的存储路径;所述响应于针对所述虚拟对象模型的所述更新触发操作,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息,从而在遍历完所述多个模型顶点时,获得所述目标虚拟对象模型。
在本申请实施例中,所述模型更新装置455还包括切线应用模块4557,用于基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述目标切线信息,获取所述目标虚拟对象模型的高光渲染数据;基于所述高光渲染数据,生成所述待渲染模型,其中,所述待渲染模型用于渲染虚拟对象。
在本申请实施例中,所述模型更新装置455还包括坐标转换模块4558,用于获取目标坐标系信息和渲染客户端的渲染坐标系信息,其中,所述目标坐标系信息为所述目标切线信息对应的坐标系信息;基于所述目标坐标系信息和所述渲染坐标系信息的对应关系,将所述目标切线信息的坐标信息转换为与所述渲染坐标系信息适配的坐标信息,得到转换后的目标切线信息。
在本申请实施例汇总,所述切线应用模块4557,还用于在所述渲染客户端中,基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述转换后的目标切线信息,获取所述目标虚拟对象模型的高光渲染数据。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的模型更新方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的模型更新方法,例如,如图9示出的模型更新方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例,由于球体模型的外表面的平整性较高,球体模型的各球体顶点在预定方向上的切线信息的平整性也就较高;因此,在模型更新页面上,通过在包覆虚拟对象模型的位置处显示球体模型,使虚拟对象模型与球体模型较强地结合,基于球体模型上各顶点中的切线信息,遍历更新虚拟对象模型上每个模型顶点对应的切线信息,所获得的目标虚拟对象模型的顶点的切线信息也具有较高的平滑性;并且,每个模型顶点对应的切线信息的更新过程是批量自动进行的;从而,针对虚拟对象模型的切线信息的更新,能够提升智能性和可执行性。另外,还能提升目标虚拟对象模型的切线信息的平滑性,以及获取目标虚拟对象模型的切线信息的效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种模型更新方法,其特征在于,包括:
在模型更新页面上显示虚拟对象模型和球体模型控件,其中,所述虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;
响应于作用在所述球体模型控件上的包覆操作,在包覆所述虚拟对象模型的位置处显示球体模型,其中,所述球体模型包括多个球体顶点、以及与所述多个球体顶点一一对应的多个球体顶点切线信息,所述多个球体顶点切线信息均为预定方向上的切线信息;
响应于针对所述虚拟对象模型的切线更新操作,基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而
在遍历完所述多个模型顶点时,获得目标虚拟对象模型,其中,所述目标虚拟对象模型包括多个目标模型顶点、以及所述每个目标模型顶点对应的所述目标切线信息,所述多个目标模型顶点为遍历后的所述多个模型顶点;
所述基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,包括:从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的遍历到的模型顶点法线信息;确定所述遍历到的模型顶点法线信息对应方向上的射线;从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点;从所述多个球体顶点切线信息中,获取与所述目标球体顶点对应的目标球体顶点切线信息;将所述遍历到的每个模型顶点对应的待更新切线信息,更新为所述目标球体顶点切线信息,从而得到所述每个目标模型顶点对应的所述目标切线信息。
2.根据权利要求1所述的方法,其特征在于,所述从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点之前,所述方法还包括:
以距离阈值为半径、以射线为圆柱中心线构建圆柱体;
获取所述多个球体顶点中被所述圆柱体覆盖的球体顶点覆盖结果;
所述从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点,包括:
当所述球体顶点覆盖结果为所述多个球体顶点中存在被所述圆柱体覆盖的球体顶点集合时,从所述球体顶点集合中,确定与所述射线的垂直距离最近的所述目标球体顶点。
3.根据权利要求2所述的方法,其特征在于,所述获取所述多个球体顶点中被所述圆柱体覆盖的球体顶点覆盖结果之后,所述方法还包括:
当所述球体顶点覆盖结果为所述多个球体顶点中不存在被所述圆柱体覆盖的球体顶点集合时,从最新虚拟对象模型中,获取与所述遍历到的每个模型顶点相邻的模型顶点集合,其中,所述最新虚拟对象模型为遍历更新过程中最新的所述虚拟对象模型;
基于所述模型顶点集合中的各个模型顶点分别对应的切线信息,确定目标更新切线信息,其中,所述模型顶点集合中的各个模型顶点分别对应的切线信息包括所述目标切线信息和/或所述待更新切线信息,所述目标更新切线信息包括所述模型顶点集合中的各个模型顶点分别对应的切线信息的平均切线信息、任一切线信息和众数切线信息中的一种或多种;
将所述遍历到的每个模型顶点对应的待更新顶点切线信息,更新为所述目标更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息。
4.根据权利要求1所述的方法,其特征在于,所述从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点,包括:
获取所述多个球体顶点中,与所述射线在维度上有重叠的球体顶点集合;
从所述球体顶点集合中,确定与所述射线的垂直距离最近的初始目标球体顶点;
当所述初始目标球体顶点与所述射线的垂直距离小于距离阈值时,将所述初始目标球体顶点作为所述目标球体顶点。
5.根据权利要求4所述的方法,其特征在于,所述从所述球体顶点集合中,确定与所述射线的垂直距离最近的所述初始目标球体顶点之后,所述方法还包括:
当所述初始目标球体顶点与所述射线的垂直距离不小于所述距离阈值时,基于所述遍历到的每个模型顶点相邻的模型顶点,更新所述每个模型顶点对应的所述待更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述在模型更新页面上显示虚拟对象模型和球体模型控件之前,所述方法还包括:
获取初始球体模型,其中,所述初始球体模型包括与多个初始球体顶点、以及与所述初始球体顶点一一对应的多个初始球体顶点切线信息;
基于所述预定方向,修正所述多个初始球体顶点切线信息,得到所述多个球体顶点一一对应的所述多个球体顶点切线信息,从而得到包括所述多个球体顶点和所述多个球体顶点切线信息的所述球体模型,其中,所述预定方向为球体纬线上的任一方向。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述在模型更新页面上显示虚拟对象模型和球体模型控件之前,所述方法还包括:
在模型创建客户端中,响应于针对模型切线更新客户端的客户端加载操作,加载所述模型切线更新客户端,其中,所述模型切线更新客户端用于基于所述球体模型更新所述虚拟对象模型中的所述每个模型顶点对应的所述待更新切线信息;
所述在模型更新页面上显示虚拟对象模型和球体模型控件,包括:
当完成所述模型切线更新客户端在所述模型创建客户端的加载时,显示所述模型更新页面,以及在所述模型更新页面的模型工具区域上显示所述球体模型控件;
响应于针对所述虚拟对象模型的加载操作,在所述模型更新页面的模型更新区域上显示所述虚拟对象模型。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述得到每个目标模型顶点对应的目标切线信息之后,所述方法还包括:
从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的待调整法线信息和待调整副法线信息;
基于所述目标切线信息,调整所述待调整法线信息和所述待调整副法线信息,分别得到目标法线信息和目标副法线信息,其中,所述目标切线信息、所述目标法线信息和所述目标副法线信息用于对所述目标虚拟对象模型进行渲染处理。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述模型更新页面上还显示有存储设置控件和切线更新控件时,所述切线更新操作包括作用在所述存储设置控件上的存储设置操作和作用在所述存储设置控件上的更新触发操作;
所述响应于针对所述虚拟对象模型的切线更新操作,基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完所述多个模型顶点时,获得目标虚拟对象模型,包括:
响应于所述存储设置操作,显示设置的存储信息,其中,所述存储信息为更新的所述虚拟对象模型对应的存储路径;
所述响应于针对所述虚拟对象模型的所述更新触发操作,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到所述每个目标模型顶点对应的所述目标切线信息,从而
在遍历完所述多个模型顶点时,获得所述目标虚拟对象模型。
10.根据权利要求1至5任一项所述的方法,其特征在于,所述获得目标虚拟对象模型之后,所述方法还包括:
基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述目标切线信息,获取所述目标虚拟对象模型的高光渲染数据;
基于所述高光渲染数据,生成待渲染模型,其中,所述待渲染模型用于渲染虚拟对象。
11.根据权利要求10所述的方法,其特征在于,所述基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述目标切线信息,获取所述目标虚拟对象模型的高光渲染数据之前,所述方法还包括:
获取目标坐标系信息和渲染客户端的渲染坐标系信息,其中,所述目标坐标系信息为所述目标切线信息对应的坐标系信息;
基于所述目标坐标系信息和所述渲染坐标系信息的对应关系,将所述目标切线信息的坐标信息转换为与所述渲染坐标系信息适配的坐标信息,得到转换后的目标切线信息;
所述基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述目标切线信息,获取所述目标虚拟对象模型的高光渲染数据,包括:
在所述渲染客户端中,基于所述多个目标模型顶点中的所述每个目标模型顶点对应的所述转换后的目标切线信息,获取所述目标虚拟对象模型的高光渲染数据。
12.一种模型更新装置,其特征在于,包括:
信息显示模块,用于在模型更新页面上显示虚拟对象模型和球体模型控件,其中,所述虚拟对象模型包括多个模型顶点、以及每个模型顶点对应的待更新切线信息;
模型包覆模块,用于响应于作用在所述球体模型控件上的包覆操作,在包覆所述虚拟对象模型的位置处显示球体模型,其中,所述球体模型包括多个球体顶点、以及与所述多个球体顶点一一对应的多个球体顶点切线信息,所述多个球体顶点切线信息均为预定方向上的切线信息;
遍历更新模块,用于响应于针对所述虚拟对象模型的切线更新操作,基于所述多个球体顶点和所述多个球体顶点切线信息,遍历更新所述每个模型顶点对应的所述待更新切线信息,得到每个目标模型顶点对应的目标切线信息,从而在遍历完所述多个模型顶点时,获得目标虚拟对象模型,其中,所述目标虚拟对象模型包括多个目标模型顶点、以及所述每个目标模型顶点对应的所述目标切线信息,所述多个目标模型顶点为遍历后的所述多个模型顶点;
所述遍历更新模块,还用于从所述虚拟对象模型中,获取遍历到的每个模型顶点对应的遍历到的模型顶点法线信息;确定所述遍历到的模型顶点法线信息对应方向上的射线;从所述多个球体顶点中,确定与所述射线距离最近的目标球体顶点;从所述多个球体顶点切线信息中,获取与所述目标球体顶点对应的目标球体顶点切线信息;将所述遍历到的每个模型顶点对应的待更新切线信息,更新为所述目标球体顶点切线信息,从而得到所述每个目标模型顶点对应的所述目标切线信息。
13.一种模型更新设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110041773.4A CN112700541B (zh) | 2021-01-13 | 2021-01-13 | 一种模型更新方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110041773.4A CN112700541B (zh) | 2021-01-13 | 2021-01-13 | 一种模型更新方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112700541A CN112700541A (zh) | 2021-04-23 |
CN112700541B true CN112700541B (zh) | 2023-12-26 |
Family
ID=75514398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110041773.4A Active CN112700541B (zh) | 2021-01-13 | 2021-01-13 | 一种模型更新方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112700541B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113888398B (zh) * | 2021-10-21 | 2022-06-07 | 北京百度网讯科技有限公司 | 头发渲染方法、装置及电子设备 |
CN114401423B (zh) * | 2022-01-13 | 2023-12-12 | 上海哔哩哔哩科技有限公司 | 数据处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109427088A (zh) * | 2017-08-18 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 一种模拟光照的渲染方法及终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6987511B2 (en) * | 2002-10-17 | 2006-01-17 | International Business Machines Corporation | Linear anisotrophic mesh filtering |
US7333273B2 (en) * | 2006-03-24 | 2008-02-19 | Nikon Corporation | Zoom lens system, imaging apparatus and method for varying focal length |
-
2021
- 2021-01-13 CN CN202110041773.4A patent/CN112700541B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109427088A (zh) * | 2017-08-18 | 2019-03-05 | 腾讯科技(深圳)有限公司 | 一种模拟光照的渲染方法及终端 |
Non-Patent Citations (2)
Title |
---|
New structures on the tangent bundles and tangent sphere bundles;MI Munteanu;Mathematics;第43-60页 * |
三角网格模型的特征线提取;刘胜兰, 周儒荣, 张丽艳;计算机辅助设计与图形学学报(04);第 444-448页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112700541A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2021516820A (ja) | マップレンダリング方法、装置、コンピュータ装置及びコンピュータプログラム | |
CN112700541B (zh) | 一种模型更新方法、装置、设备及计算机可读存储介质 | |
US20230120253A1 (en) | Method and apparatus for generating virtual character, electronic device and readable storage medium | |
CN110363839A (zh) | 模型渲染方法、装置、计算机设备及存储介质 | |
CN110750664B (zh) | 图片的显示方法及装置 | |
US20230405452A1 (en) | Method for controlling game display, non-transitory computer-readable storage medium and electronic device | |
CN110134025B (zh) | 一种小型分布式高超声速飞行器实时仿真系统 | |
CN103157281A (zh) | 一种二维游戏场景显示的方法和设备 | |
CN110555900B (zh) | 渲染指令的处理方法及装置、存储介质、电子设备 | |
KR20210045371A (ko) | 이미지 렌더링 방법 및 장치 | |
CN111459501A (zh) | 基于SVG的Web组态画面存储与展示系统和方法及介质 | |
CN114494024B (zh) | 图像渲染方法、装置、设备及存储介质 | |
KR20230163921A (ko) | 목표 대상의 상호작용적 재구성을 위한 제어 방법, 장치, 기기 및 저장 매체 | |
US11194465B2 (en) | Robot eye lamp control method and apparatus and terminal device using the same | |
CN112807695B (zh) | 游戏场景生成方法和装置、可读存储介质、电子设备 | |
CN109598672B (zh) | 一种地图道路渲染方法及装置 | |
KR102184162B1 (ko) | 반응형 웹툰 제작 시스템 및 방법 | |
US20230290095A1 (en) | User-interface-framework based processing method, apparatus, device, and medium | |
US10529100B2 (en) | Interaction-driven format for graph visualization | |
KR101265121B1 (ko) | 음성엔진과 인터렉티브 3차원 어플리케이션을 실시간으로 연동시키는 3차원 가상현실 컨트롤 미들웨어를 이용하는 3차원 가상현실 컨텐츠의 실시간 제어방법. | |
CN115116295A (zh) | 关联性交互训练展示方法、系统、设备及存储介质 | |
CN114049287B (zh) | 面部模型融合方法、装置、设备及计算机可读存储介质 | |
US20240046554A1 (en) | Presenting virtual representation of real space using spatial transformation | |
Lu et al. | Design of immersive and interactive application based on augmented reality and machine learning | |
KR102579463B1 (ko) | 확장현실 기술 기반 미디어아트 시스템 |
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: 40042018 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |