CN116485967A - 一种虚拟模型的渲染方法及相关装置 - Google Patents
一种虚拟模型的渲染方法及相关装置 Download PDFInfo
- Publication number
- CN116485967A CN116485967A CN202211467159.5A CN202211467159A CN116485967A CN 116485967 A CN116485967 A CN 116485967A CN 202211467159 A CN202211467159 A CN 202211467159A CN 116485967 A CN116485967 A CN 116485967A
- Authority
- CN
- China
- Prior art keywords
- special effect
- rendered
- range
- opacity
- virtual model
- 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
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000000694 effects Effects 0.000 claims abstract description 781
- 230000007704 transition Effects 0.000 claims description 112
- 238000013507 mapping Methods 0.000 claims description 82
- 238000005070 sampling Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000036961 partial effect Effects 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 description 31
- 239000000463 material Substances 0.000 description 30
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 16
- 230000008034 disappearance Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开一种虚拟模型的渲染方法及相关装置,根据特效位置参数、特效控制方向和空间位置信息,可以确定待渲染虚拟模型上的各个像素点的不透明度,使根据不透明度生成的待展示特效的特效贴图中,位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明,根据待展示特效的特效贴图对待渲染虚拟模型进行渲染。由于显示区域和隐藏区域的实际位置由各个像素点的不透明度表征,而各个像素点的不透明度根据空间位置信息和特效控制方向确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,从而可以对待展示特效也可以实现精确的结构化控制,使得待展示特效更加自然,提高特效施加的质量。
Description
技术领域
本申请涉及计算机图形技术领域,特别是涉及一种虚拟模型的渲染方法及相关装置。
背景技术
随着硬件技术和互联网技术的不断发展,虚拟场景可以向用户展示的虚拟模型越来越丰富,进而使得虚拟模型被广泛应用到各种领域,例如增强现实(Augmented Reality,AR)、游戏、影视制作等领域。
为了丰富虚拟模型的视觉效果,还可以为虚拟模型的展示施加特效,例如虚拟模型的显示特效、虚拟模型的消失特效等等。目前,通过一张遮罩贴图对虚拟模型的材质进行UV偏移控制,从而达到控制虚拟模型实现对应特效。
然而,这种方式中遮罩贴图一般是跟随给定的噪波贴图进行变化,难以达到对于虚拟模型的特效的结构化控制,进而导致对于特效方向和结构的控制不精确。
发明内容
为了解决上述技术问题,本申请提供了一种虚拟模型的渲染方法及相关装置,对特征进行精确的结构化控制,使得特效展示更加自然,提高特效施加的质量。
本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种虚拟模型的渲染方法,所述方法包括:
获取待渲染视频帧中待展示特效的特效参数和特效控制方向,所述特效参数包括特效位置参数,所述特效控制方向用于指示所述待渲染虚拟模型的显示区域与隐藏区域的相对位置关系;
获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息;
根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,以根据所述不透明度生成所述待展示特效的特效贴图,在所述特效贴图中位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明;
根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
又一方面,本申请实施例提供一种虚拟模型的渲染装置,所述装置包括:
参数获取单元,用于获取待渲染视频帧中待展示特效的特效参数和特效控制方向,所述特效参数包括特效位置参数,所述特效控制方向用于指示所述待渲染虚拟模型的显示区域与隐藏区域的相对位置关系;
位置信息获取单元,用于获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息;
不透明度确定单元,用于根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,以根据所述不透明度生成所述待展示特效的特效贴图,在所述特效贴图中位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明;
渲染单元,用于根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
另一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行前述任一方面所述的方法。
另一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行前述任一方面所述的方法。
另一方面,本申请实施例提供一种计算机程序产品,包括计算机程序,当其在计算机设备上运行时,使得所述计算机设备执行时实现前述任一方面所述的方法。
由上述技术方案可以看出,可以获取待渲染视频帧中待展示特效的特效参数和特效控制方向,以及待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息,特效参数包括特效位置参数,用于指示施加特效的位置,特效控制方向用于指示待渲染虚拟模型的显示区域和隐藏区域的相对位置关系,这样根据特效位置参数、特效控制方向和空间位置信息,可以确定待渲染虚拟模型上的各个像素点的不透明度,使根据不透明度生成的待展示特效的特效贴图中,位于显示区域的像素点对应的显示效果为不透明,从而实现显示区域的显示效果,位于隐藏区域的像素点对应的显示效果为透明,从而实现隐藏区域的隐藏效果。由于显示区域和隐藏区域的实际位置由各个像素点的不透明度表征,而各个像素点的不透明度根据空间位置信息和特效控制方向确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,从而可以对显示区域和隐藏区域的实际位置进行精确的结构化控制,这样根据待展示特效的特效贴图对待渲染虚拟模型进行渲染后,可以得到待渲染视频帧中的特效模型,特效模型是具有待展示特效的模型,由显示区域和隐藏区域构成的待展示特效也可以实现精确的结构化控制,使得待展示特效更加自然,提高特效施加的质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种虚拟模型的渲染方法的应用场景示意图;
图2为本申请实施例提供的一种虚拟模型的渲染方法的流程图;
图3为本申请实施例提供的一种特效参数的配置界面的示意图;
图4为本申请实施例提供的一种材质编辑器的示意图;
图5为本申请实施例提供的另一种材质编辑器的示意图;
图6为本申请实施例提供的一种渲染过程示意图;
图7为本申请实施例提供的又一种材质编辑器的示意图;
图8-10为本申请实施例提供的多种视频帧的示意图;
图11为本申请实施例提供的一种材质编辑器中映射关系的示意图;
图12为本申请实施例提供的又一种材质编辑器的示意图;
图13为本申请实施例提供的一种虚拟模型的渲染装置的结构示意图;
图14为本申请实施例提供的一种终端的结构图;
图15为本申请实施例提供的一种服务器的结构图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
目前,可以通过一张遮罩贴图对虚拟模型的材质进行UV偏移控制,从而达到控制虚拟模型实现对应特效。然而,这种方式中遮罩贴图一般是跟随给定的噪波贴图进行变化,难以达到对于虚拟模型的特效的结构化控制,进而导致对于特效方向和结构的控制不精确。
为了解决上述技术问题,本申请实施例提供了一种虚拟模型的渲染方法及相关装置,待渲染虚拟模型上各个像素点的不透明度根据空间位置信息和特效控制方向确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,从而可以对显示区域和隐藏区域的实际位置进行精确的结构化控制,由显示区域和隐藏区域构成的待展示特效也可以实现精确的结构化控制,使得待展示特效更加自然,提高特效施加的质量。
本申请实施例所提供的虚拟模型的渲染方法可以通过计算机设备实施,该计算机设备可以是终端设备或服务器,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
为了便于理解本申请提供的技术方案,接下来,将结合一种实际应用场景,对本申请实施例提供的一种虚拟模型的渲染方法进行介绍。
参见图1,图1为本申请实施例提供的一种虚拟模型的渲染方法的应用场景示意图。在图1所示的应用场景中,包括终端设备10和服务器20,终端设备10中安装有提供服务的应用程序,该程序对应的服务器20和终端设备10之间可以通过网络进行交互。
在终端设备10通过应用程序实现服务的过程中,服务器20可以向终端设备10提供渲染特效需要的参数,以便终端设备10根据该参数进行虚拟模型的渲染,并进行包括完成渲染的虚拟模型的虚拟场景的展示,或者服务器20可以向终端设备10发送完成渲染的虚拟模型,以便终端设备10进行包括完成渲染的虚拟模型的展示。下面以服务器20向终端设备10发送完成渲染的虚拟模型为例进行说明,即服务器20执行虚拟模型的渲染方法。
具体的,服务器20可以获取待渲染视频帧中待展示特效的特效参数和特效控制方向,以及待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息,特效参数包括特效位置参数,用于指示施加特效的位置,特效控制方向用于指示待渲染虚拟模型的显示区域和隐藏区域的相对位置关系。
之后,服务器20可以根据特效位置参数、特效控制方向和空间位置信息,可以确定待渲染虚拟模型上的各个像素点的不透明度,使根据不透明度生成的待展示特效的特效贴图中,位于显示区域的像素点对应的显示效果为不透明,从而实现显示区域的显示效果,位于隐藏区域的像素点对应的显示效果为透明,从而实现隐藏区域的隐藏效果。
由于显示区域和隐藏区域的实际位置由各个像素点的不透明度表征,而各个像素点的不透明度根据空间位置信息和特效控制方向确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,从而可以对显示区域和隐藏区域的实际位置进行精确的结构化控制,这样服务器20在根据待展示特效的特效贴图对待渲染虚拟模型进行渲染后,可以得到待渲染视频帧中的特效模型,特效模型是具有待展示特效的模型,由显示区域和隐藏区域构成的待展示特效也可以实现精确的结构化控制,使得待展示特效更加自然,提高特效施加的质量。
接下来,将结合附图,对本申请实施例提供的一种虚拟模型的渲染方法进行介绍。参见图2,图2为本申请实施例提供的一种虚拟模型的渲染方法的流程图,该实施例中以服务器20作为执行主体进行说明,该方法包括:
S101,获取待渲染视频帧中待展示特效的特效参数和特效控制方向。
本申请实施例中,可以在待渲染视频帧中展示待展示特效,待展示特效是指由处理设备作出的现实中一般不会出现的特殊效果,例如虚拟模型的部分区域显示,而其他区域隐藏,可以作为显示特效或隐藏特效。若随着展示时间变化,显示区域逐渐增加而隐藏区域逐渐减小,可以展示为虚拟模型逐渐显示的特殊效果,也可称为虚拟模型的显示动态特效;或者随着展示时间变化,显示区域逐渐减小而隐藏区域逐渐增加,可以展示为虚拟模型逐渐隐藏的特殊效果,也可称为虚拟模型的消失动态特效。
这种虚拟模型的显示动态特效或消失动态特效,可以通过多个视频帧依次展示来实现。具体的,多个视频帧中具有同样的虚拟模型,且虚拟模型具有不同的待展示特效,不同的待展示特效体现在虚拟模型的显示区域的范围不同,且顺次排列的多个视频帧中的显示区域的范围逐渐增大,相应的隐藏区域的范围之间减小,这样通过顺序播放多个视频帧即可实现虚拟模型的显示动态特效,通过逆序播放多个视频帧即可实现虚拟模型的消失动态特效。
虚拟模型可以通过虚幻引擎(UNREAL ENGINE,简称UE或Unreal)渲染得到,虚幻引擎是世界知名授权最广的游戏引擎之一,虚幻引擎可以基于网格体(mesh)构建场景几何体(即前述虚拟模型),网格体是虚幻引擎中的一个基本单位,场景几何体可以包括场景道具和虚拟角色等。网格体在外部建模程序中创建,并通过内容浏览器导入到虚幻引擎中,使虚幻引擎中具有网格体,并能够基于网格体构建游戏场景中的场景几何体,外部建模程序例如3dsMax、Maya、Blender等。
网格体例如可以包括静态网格体(Static Meshes)或骨骼网格体等,静态网格体可以用于构建游戏道具等不需要制作动画的模型,骨骼网格体可以用于构建虚拟人物等需要制作动画的模型。使用虚幻引擎制作的关卡中,一部分内容由静态网格体组成,这些内容以静态网格体Actor的形式存在;使用虚幻引擎制作的关卡中,还有部分内容可以由骨骼网格体组成。本申请实施例中,虚拟模型可以由静态网格体组成,也可以由骨骼网格体组成。
虚拟引擎中的材质(Materials)可以定义虚拟场景中场景几何体的表面属性,从广义角度讲,材质可以视为涂在网格体上用来控制其视觉外观的“涂料”,从技术性的角度讲,材质可以指示渲染引擎网格体的表面应该如何与场景中的光线交互,其定义了表面的各个方面,例如颜色、反射型、粗糙度和透明度等,执行前述光线交互的计算时,使用了从作为网格体纹理的图像、基于节点的材质表达式(Material expressions)以及从材质本身固有的各种属性设置输入到材质属性的数据。材质节点是虚拟引擎中可视化编程材质内容的工具,可以将功能作为一个个节点来调用,通过不同节点的调用能够实现具有更加丰富的功能,以使网格体的渲染可以实现各种各样丰富的效果,材质节点可以展示在材质编辑器中,通过材质节点之间的连线表示所调用的功能的输入和输出,实现材质参数的可视化编辑。
也就是说,为了对虚拟模型施加待展示特效,可以设置虚拟模型的特效参数,通过特效参数定义虚拟模型的材质特性,使虚拟模型的表面与场景中的光具有特定的交互。目前对于模型的消失控制方式中,可以通过一张遮罩贴图对虚拟模型的材质进行UV偏移控制,即特效参数用于指示遮罩贴图的偏移控制参数,从而达到控制虚拟模型消失隐藏的效果,然而这种方式中遮罩贴图一般是跟随给定的噪波贴图进行变化,这种变化与虚拟模型本身的结构不具有关联性,无法达到跟随虚拟模型的结构,例如可以控制虚拟模型的各个部位有部分区域消失,而无法控制控制虚拟模型的某一高度以上部分消失或以下部分消失,因此难以达到对于虚拟模型的特效的结构化控制,进而导致对于特效方向和结构的控制不精确。
本申请实施例中,可以将显示动态特效或消失动态特效中的特效移动方向作为特效控制方向,显示区域和隐藏区域之间的边界可以和特效控制方向垂直,这样显示动态特效中显示区域逐渐向隐藏区域外扩直到完全显示,消失动态特效中隐藏区域逐渐向显示区域外扩直到完全消失,这种定义特效控制方向的方法中,需要根据特效控制方向和特效类型确定显示区域和隐藏区域的相对位置关系,特效类型包括显示动态特效或消失动态特效。
本申请实施例中,也可以将显示区域指向隐藏区域的方向作为特效控制方向,或将隐藏区域指向显示区域的方向作为特效控制方向,显示区域靠近隐藏区域的边界与特效控制方向垂直。以将显示区域指向隐藏区域的方向作为特效控制方向为例,显示动态特效中显示区域从模型的第一侧向第二侧外扩直到完全显示,则特效控制方向为从第一侧指向第二侧的方向,消失动态特效中隐藏区域从第二侧向第一侧外扩直到完全消失,特效控制方向依然为从第一侧指向第二侧的方向,这样在设计初期,针对单帧图像而渲染而言,无需考虑后期的动态特效即可确定显示区域和隐藏区域的相对位置关系。后续将以这种特效控制方向的定义为例进行说明。
作为一种示例,特效控制方向为虚拟模型在虚拟场景中的高度所在方向,高度所在方向可以为由下至上或由上至下,这样使显示动态特效或消失动态特效可以跟随虚拟模型的高度,符合竖直方向逐渐“生长”的逻辑,使特效更符合用户的预期。若以显示区域指向隐藏区域的方向作为特效控制方向,且特效控制方向为由下至上,则在显示特效中显示区域从下至上逐渐增大,即虚拟模型从脚部至头部逐渐显示,类似于虚拟模型从脚部开始“生长”出来,同理在消失特效中隐藏区域由上至下逐渐增大,即虚拟模型从头部至脚部逐渐消失。
具体的,为了实现视频帧中虚拟模型的待展示特效的添加,进而使多个视频帧构成显示动态特效或消失动态特效,可以根据特效控制方向和当前帧所对应的特效参数进行当前帧中的虚拟模型的渲染,多个视频帧对应的特效参数可以不同,使各个视频帧对应显示动态特效或消失动态特效中的不同状态。将当前帧作为待渲染视频帧,在进行待渲染视频帧中的虚拟模型的渲染之前,可以获取待渲染视频帧中待展示特效的特效参数和特效控制方向,特效参数用于指示虚拟模型的显示区域和隐藏区域之间的分界线(或称为边界)的具体位置(也可以称为施加特效的位置),从而利用显示区域和隐藏区域渲染得到待展示特效。
其中,特效参数可以包括特效位置参数,特效位置参数用于指示所施加特效的位置,特效控制方向用于指示待渲染虚拟模型的显示区域和隐藏区域的相对位置关系。如前所述,特效控制方向可以为显示区域指向隐藏区域的方向,或隐藏区域指向显示区域的方向,还可以为显示动态特效或消失动态特效中的特效移动方向,例如特效控制方向为待渲染模型在虚拟场景中的高度所在方向,高度所在方向可以为由下至上或由上至下。
作为一种可能的实施方式,特效位置参数可以为特效位置,特效位置用于指示所施加特效在待渲染虚拟模型的位置,即用于指示显示区域和隐藏区域之间的边界位置,这样根据特效位置和特效控制方向可以确定显示区域与边界位置的相对位置关系,以及隐藏区域与边界位置的相对位置关系,从而界定显示区域和隐藏区域,例如特效位置可以为虚拟模型的边界位置的高度,若特效控制方向指示显示为区域指向隐藏区域的方向为由下至上,则显示区域位于特效位置的下方,隐藏区域位于特效位置的上方。
作为另一种可能的实施方式,特效位置参数可以为特效权重(select),用于指示待展示特效在特效控制方向上相对于特效范围的占比,即用于指示在特效控制方向上显示区域或隐藏区域在特效范围之内的占比。这样通过特效范围、特效控制方向和特效位置参数,可以确定特效位置,特效位置用于指示所施加特效在待渲染虚拟模型的位置,即用于指示显示区域和隐藏区域之间的边界位置,根据特效位置和空间位置信息可以确定显示区域与边界位置的相对位置关系,以及隐藏区域与边界位置的相对位置关系,从而界定显示区域和隐藏区域。
其中,特效范围用于指示待渲染虚拟模型施加的待展示特效的在特效控制方向上的范围,该特效范围内的像素点的透明度可根据特效参数设定,使该特效范围的显示效果为显示效果或隐藏效果,通过设定特效范围、特效控制方向和特效权重的方式来界定特效位置,可以使特效施加在特定特效范围,便于特效的精准控制,且特效权重可以适用于不同特效范围,且适用于不同的待渲染虚拟模型。特效范围可以覆盖整个虚拟模型,也可以对应虚拟模型的部分区域,特效范围可以自定义,也可以为默认值,默认值可以为虚拟模型所在的全部范围。例如特效范围具有最大值和最小值,若特效控制方向为待渲染模型在虚拟场景中的高度所在方向,则特效范围的最大值为高度最大值(Maxhight),特效范围的最小值为高度最小值(Minhight)。
本申请实施例中,特效参数还可以包括特效过渡范围(range),特效过渡范围用于指示过渡区域在特效控制方向上的尺寸,过渡区域为隐藏区域中与显示区域相邻的部分区域,过渡区域的显示效果为过渡效果,过渡效果的设置可以使特效的视觉效果为平滑过渡。特效参数还可以边缘参数,边缘参数用于指示过渡区域的过渡效果的渲染方式,使过渡效果可自定义,丰富了虚拟模型的展示效果。
参考图3所示,为本申请实施例提供的一种特效参数的配置界面的示意图,配置界面包括参数配置区1001和特效展示区1002,参数配置区1001用于配置特效参数,特效展示区1002用于展示当前特效参数对应的预览示意图,可以包括特效位置参数(DissolveRange),特效位置参数包括高度最大值(Maxhight)、高度最小值(Minhight)、特效过渡范围(range)和特效权重(select),其中Maxhight可以设置为300,Minhight可以设置为-100,range可以设置为111.4,select可以设置为0.4。各个特效位置参数可以通过对复选框的操作而被选中,被选中的特效位置参数的数值可以通过输入框中的数值而被定义,未被选中时可以被设置为默认值。
本申请实施例中,特效参数还可以包括待渲染虚拟模型的材质参数,用于定义待渲染虚拟模型的表面与场景中的光线的交互特性,材质参数可以包括颜色参数和透明度参数,其中颜色参数用于定义待渲染虚拟模型的颜色分布,可以包括自发光颜色(EmissiveColor)和底色(BaseColor)中的至少一种,不透明度参数(OpacityMask)用于定义待渲染虚拟模型的不透明度分布。此外,材质参数还可以包括金属属性参数(Metallic)、反射型属性(Specular)、粗糙度属性(Roughness)、各向异性属性(Anisotropy)、法线属性(Normal)、切线属性(Tangent)、全局位移偏置属性(world pasition offset)、环境光遮蔽属性(ambient occlusion)、像素深度偏移属性(pixel depth offset)等,以丰富待渲染虚拟模型的材质属性。材质参数也可以通过特效参数的配置界面进行配置,图中未示出。
S102,获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息。
本申请实施例中,还可以获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息,这样可以根据像素点的空间位置信息为各个像素点配置不透明度,以使待渲染虚拟模型在显示区域中的像素点的显示效果为不透明,在隐藏区域中的像素点的显示效果为透明,实现显示区域的显示,以及隐藏区域的隐藏。由于各个像素点的不透明度根据空间位置信息确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,实现对不透明度的位置的精确控制,提高特效施加的质量。
每个像素点在虚拟场景中的空间位置信息,可以包括每个像素点在虚拟场景中的空间坐标,若特效控制方向为待渲染模型在虚拟场景中的高度所在方向,则每个像素点在虚拟场景中的空间位置信息为每个像素点在虚拟场景中的高度信息,这样可以不考虑各个像素点在虚拟场景中的水平位置,减少数据量,简化运算。
需要说明的是,S101可以在S102之前执行,也可以在S102之后执行,S101和S102可以同时执行,不影响本申请实施例的实现。
S103,根据特效位置参数、特效控制方向和空间位置信息,确定待渲染虚拟模型上的各个像素点的不透明度,以根据不透明度生成待展示特效的特效贴图。
在获取到特效位置参数、特效控制方向和空间位置信息之后,可以根据特效位置参数、特效控制方向和空间位置信息,确定待渲染虚拟模型上的各个像素点的不透明度,进而根据不透明度生成待展示特效的特效贴图,在特效贴图中,位于显示区域的像素点对应的显示效果为不透明,从而实现显示区域的显示效果,位于隐藏区域的像素点对应的显示效果为透明,从而实现隐藏区域的隐藏效果。由于显示区域和隐藏区域的实际位置由各个像素点的不透明度表征,而各个像素点的不透明度根据空间位置信息和特效控制方向确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,从而可以对显示区域和隐藏区域的实际位置进行精确的结构化控制。
若特效位置参数为特效位置,则可以根据特效位置、特效控制方向和空间位置信息,确定待渲染虚拟模型的各个像素点的不透明度,确定方式可以参考如下S1032。
若特效位置参数为特效权重,且特效参数还包括对待渲染虚拟模型施加待展示特效的特效范围,则S103可以包括:
S1031,根据特效权重、特效控制方向和特效范围,在特效范围内确定特效位置;
S1032,根据特效位置、特效控制方向和空间位置信息,确定待渲染虚拟模型的各个像素点的不透明度。
之后可以根据不透明度生成待展示特效的特效贴图,特效贴图中包括各个像素点的不透明度,可以表示为Range3。
这样特效权重可以适用于不同的待渲染虚拟模型,同一待渲染虚拟模型,可以通过设置相同的特效范围和不同的特效权重实现不同的特效,也可以通过设置相同的特效权重和不同的特效范围实现不同的特效,还可以通过设置不同的特效权重和不同的特效范围实现不同的特效。S1031~S1032的具体实现参考后文描述。
S104,根据待展示特效的特效贴图对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型。
在确定待展示特效的特效贴图后,可以根据待展示特效的特效贴图对待渲染虚拟模型进行渲染后,可以得到待渲染视频帧中的特效模型,特效模型是具有待展示特效的模型,由显示区域和隐藏区域构成的待展示特效可以实现精确的结构化控制,使得待展示特效更加自然,提高特效施加的质量。当然,待渲染视频帧中还可以有特效模型之外的其他模型,其他模型可以通过本申请实施例提供的方式进行渲染,也可以通过其他方式进行渲染,在此不进行举例说明。
本申请实施例中,在特效参数包括待渲染虚拟模型的材质参数时,可以基于特效贴图更新材质参数中的不透明度参数,基于包括更新后的不透明度参数的材质参数,对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型。具体的,更新后的不透明度参数可以为待渲染虚拟模型的不透明度参数和特效贴图的乘积。
本申请实施例中,可以在过渡区域增加自发光边缘,以使过渡区域的显示更加有层次感。具体的,特效参数可以包括边缘参数,参考图3所示,,边缘参数(Line)可以包括边缘宽度(LineW)和边缘颜色(EmissiveColor1),则可以根据边缘宽度和特效贴图进行偏移计算,得到特效贴图中过渡区域内的多条边缘,对多条边缘进行融合得到融合边缘,根据融合边缘和边缘颜色得到边缘自发光颜色。在对待渲染虚拟模型进行渲染的过程中,可以根据特效贴图和边缘自发光颜色对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型,这样可以使过渡区域具有多丰富的展示形式,提高渲染质量。如图3中所示,LineW例如可以为0.18,边缘颜色可以为灰色。各个边缘参数可以通过对复选框的操作而被选中,被选中的边缘参数的数值可以通过输入框中的数值而被定义,未被选中时可以被设置为默认值。
其中,边缘宽度可以为边缘在特效控制方向上的尺寸,也可以为边缘在过渡区域中的比例,以边缘宽度为边缘在过渡区域中的比例为例,其范围为0~1。边缘参数还可以包括边缘亮度,边缘自发光颜色可以根据融合边缘、边缘亮度和边缘颜色确定,使不同边缘可以有不同的发光颜色或发光强度,使得边缘的效果有强有弱,达到更加自然的感觉。
特效贴图可以体现过渡区域的不透明度,以及显示区域相对于隐藏区域的位置,边缘宽度可以体现边缘在过渡区域中的位置,则根据特效贴图和边缘宽度,可以计算得到过渡区域中的多条边缘。
具体的,可以将特效贴图进行边界约束处理得到映射结果,根据该映射结果确定多个边缘,其中边界约束处理可以根据边界约束函数实现,边界约束函数表示为Clamp,可以将大于约束范围的最大值的数据调整为该最大值,将小于约束范围的最小值的数据调整为该最小值,使边界约束函数输出的结果属于该约束范围,这样将特效贴图Range3作为边界约束函数的输入值,将0作为约束范围的最小值,将边缘宽度作为约束范围的最大值,则映射结果可以确定为clamp(Range3,0,LineW)。
以两条边缘为例,第一条边缘和第二条边缘的边缘宽度差值为预设宽度值,预设宽度值定义为0.9,则第一条边缘Line1的边缘宽度为LineW,第一条边缘可以表示为:Line1=1-abs((clamp(Range3,0,LineW)*(1/LineW)-0.5)*2),第二条边缘Line2的边缘宽度可以为LineW+0.9,第二条边缘可以表示为:Line2=1-abs((clamp(Range3,0,(LineW+0.9))*(1/(LineW+0.9))-0.5)*2),其中abs为取绝对值的运算符号。
对多条边缘进行融合得到融合边缘,可以通过多条边缘的线性插值计算得到,线性插值计算可以通过插值函数表示,插值函数可以表示为Lerp,线性插值计算还需要设定插值参数LineBlend,插值参数可以定义多条边缘对应的权重,则特效参数还可以包括差值参数LineBlend,参考图3所示,LineBlend可以为0.0375,表示其中一条边缘(例如Line1)的权重,另一条边缘的权重为1-LineBlend。以前述两条边缘为例,融合边缘Line3可以表示为Line3=Lerp(Line1,Line2,LineBlend),Line3融合了Line1和line2的数值,通过LineBlend做线性插值融合。
根据融合边缘和边缘颜色得到边缘自发光颜色,可以具体为,将边缘颜色和融合边缘的乘积,作为边缘自发光颜色,边缘自发光颜色OutEmissiveColor可以表示为:OutEmissiveColor=EmissiveColor1*Line3。渲染得到的渲染模型可以参考图3中特效展示区1002中的模型,渲染模型包括显示区域11、过渡区域13和隐藏区域12,其中隐藏区域12在实际模型中并未被显示,因此在图中以虚线示意,过渡区域13中包括第一边缘131和第二边缘132,第一边缘131的边缘宽度小于第二边缘132的边缘宽度,二者在第一边缘131所在区域内重叠。
特效参数还可以包括待渲染虚拟模型的不透明度参数和待渲染虚拟模型的自发光颜色参数,这样在对待渲染虚拟模型的渲染过程中,可以将边缘自发光颜色和自发光颜色参数结合得到更新的自发光颜色参数,将特效贴图和不透明度参数结合得到更新的不透明度参数,根据更新的自发光颜色参数和更新的不透明度参数,对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型,这样通过对自发光颜色参数和不透明度参数进行调整,可以丰富过渡区域的显示效果,使过渡区域的显示具有层次,显示区域和隐藏区域之间实现平滑过渡。其中,更新的自发光颜色参数可以为边缘自发光颜色和自发光颜色参数的和值,更新的不透明参数可以为特效贴图和不透明度参数的乘积。
本申请实施例中,可以在过渡区域增加其他显示效果,以使过渡区域的显示更加丰富。具体的,在对待渲染虚拟模型进行渲染的过程中,可以根据待展示特效的特效贴图和附加贴图进行贴图混合,得到混合特效贴图,附加贴图包括待渲染噪波(Noise)贴图和待渲染遮罩(Mask)贴图中的至少一个,利用混合特效贴图对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型,这样过渡区域中设置有遮罩贴图可以定义不同的形状,从而更加符合定制化边缘效果的需求,使特效更加符合颜色的表现效果,设置有噪波贴图可以对边缘进行随机扰动,使过渡区域的过渡效果更加自然。其中,待渲染噪波贴图可以通过程序化生成,这样引入不同的程序化噪波,使效果控制更加方便和随机,已产生更多的效果。
其中,待渲染噪波贴图是根据第一采样尺寸(NoiseSize)对候选噪波贴图进行采样得到,待渲染遮罩贴图是根据第二采样尺寸(MaskSize)对候选遮罩贴图进行采样得到,采样的操作通过贴图采样节点实现,通过向采样节点输入的输入对UV,确定采样对范围。纹理坐标(Texcoord)默认的UV空间是0-1,通过乘以一个数字,可以对贴图进行放大采样或缩小采样,数字越大则重复度越高,该数字即为第一采样尺寸或第二采样尺寸。
参考图3所示,特效参数还可以包括待渲染噪波参数(NoiseTexure)和待渲染遮罩参数(MaskTexure),待渲染噪波参数(NoiseTexure)包括候选噪波贴图(Mask)的选择框和第一采样尺寸(NoiseSize)的输入框,待渲染遮罩参数(MaskTexure)包括候选遮罩贴图(Noise)的选择框和第二采样尺寸(MaskSize)的输入框,其中候选遮罩贴图为爱心状(名称为Mask),第二采样尺寸为90,候选噪波贴图为线条状(名称为A1),第一采样尺寸为1.0。在图3中的特效展示区1002,候选遮罩贴图133分布在过渡区域13的各个位置,候选噪波贴图134随机出现在过渡区域13中。
在附加贴图包括待渲染噪波贴图时,得到的混合特效贴图NoiseOut可以表示为:NoiseOut=clamp(Noise*Range3+Range3,0,1);在附加贴图包括待渲染遮罩贴图时,得到的混合特效贴图NoiseOut可以表示为NoiseOut=clamp(Mask*Range3+Range3,0,1);在附加贴图包括待渲染遮罩贴图时,得到的混合特效贴图NoiseOut可以表示为NoiseOut=clamp(Mask*Noise*Range3+Range3,0,1)。
参考图4所示,为本申请实施例提供的一种材质编辑器的示意图,材质编辑器中具有多个材质节点,材质节点用于实现各种运算。纹理坐标(TexCoord)节点用于提供候选噪波贴图和候选遮罩贴图,以候选遮罩贴图为例,候选噪波贴图作为乘法(Multiply)节点的输入,MaskSize节点用于提供MaskSize的数据,并输出给Multiply节点,使Multiply节点可以输出待渲染遮罩贴图的数据至Mask节点,Mask节点为待渲染遮罩贴图确定配色后得到待渲染遮罩贴图,同理,NoiseSize用于提供NoiseSize的数据,并输出给Multiply节点,Noise为待渲染噪波贴图确定配色后得到待渲染噪波贴图。之后,通过两个Multiply节点将Mask、Noise、Range3相乘,得到Mask*Noise*Range3,而后将输出结果输入到加法(Add)节点,Add的另一个输入为Range3,则Add节点输出Mask*Noise*Range3+Range3到Clamp节点,使Clamp节点输出clamp(Mask*Noise*Range3+Range3,0,1),即为NoiseOut。
混合特效贴图可以输入到透明通道,即透明通道的附加参数OutOpacity=NoiseOut,将透明通道的附加参数和待渲染虚拟模型的不透明度参数结合得到更新的不透明度参数,根据更新的不透明度参数,可以对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型。
本申请实施例中,可以在过渡区域同时增加自发光边缘和前述其他显示效果,则利用混合特效贴图对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型,可以具体为,将根据边缘宽度和混合特效贴图进行偏移计算,得到混合特效贴图中过渡区域内的多条边缘,对多条边缘进行融合得到融合边缘,根据融合边缘和边缘颜色得到边缘自发光颜色。在对待渲染虚拟模型进行渲染的过程中,可以根据混合特效贴图和边缘自发光颜色对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型,这样可以使过渡区域具有多丰富的展示形式,提高渲染质量。
与前述边缘的确定方式类似,以两条边缘为例,第一条边缘和第二条边缘的边缘宽度差值为预设宽度值,预设宽度值定义为0.9,则第一条边缘Line1的边缘宽度为LineW,第一条边缘可以表示为:Line1=1-abs((clamp(NoiseOut,0,LineW)*(1/LineW)-0.5)*2),第二条边缘Line2的边缘宽度可以为LineW+0.9,第二条边缘可以表示为:Line2=1-abs((clamp(NoiseOut,0,(LineW+0.9))*(1/(LineW+0.9))-0.5)*2),其中abs为取绝对值的运算符号。
边缘自发光颜色的确定可以参考前述说明,根据混合特效贴图和边缘自发光颜色对待渲染虚拟模型进行渲染,可以具体为,将边缘自发光颜色和自发光颜色参数结合得到更新的自发光颜色参数,将混合特效贴图和不透明度参数结合得到更新的不透明度参数,根据更新的自发光颜色参数和更新的不透明度参数,对待渲染虚拟模型进行渲染,得到待渲染视频帧中的特效模型,使过渡区域的显示具有层次,显示区域和隐藏区域之间实现平滑过渡。其中,更新的自发光颜色参数可以为边缘自发光颜色(OutEmissiveColor)和自发光颜色参数(EmissiveColor)的和值,更新的不透明参数可以为混合特效贴图(OutOpacity)和不透明度参数的乘积,使不透明度为0的区域完全隐藏,不透明度为1的区域完全显示。
参考图5所示,为本申请实施例提供的另一种材质编辑器的示意图,材质编辑器中具有多个材质节点,材质节点用于实现各种运算。其中,第一边缘通过上排的Clamp节点、乘法(Multiply)节点、除法(Divide)节点、减法(Subtract)节点、乘法(Multiply)节点、绝对值(abs)节点、1-x节点计算得到,具体的,LineW节点可以提供LineW的数值,并输入到Clamp节点的max端、以及Divide节点的B端,使Divide节点输出1/LineW,Clamp节点的输入端还用于输入NoiseOut,使Clamp节点输出clamp(NoiseOut,0,LineW),Clamp节点和Divide节点的输出分别作为Multiply节点的输入,使Multiply节点输出clamp(NoiseOut,0,LineW)*(1/LineW)到Subtract节点,使Subtract节点的输出clamp(NoiseOut,0,(LineW+0.9))*(1/(LineW+0.9))-0.5到下一个Multiply节点,该节点输出(clamp(NoiseOut,0,LineW)*(1/LineW)-0.5)*2到abs节点,abs节点输出abs((clamp(NoiseOut,0,LineW)*(1/LineW)-0.5)*2),通过1-x节点输出1-abs((clamp(NoiseOut,0,LineW)*(1/LineW)-0.5)*2),即为Line1。第二边缘通过下排的Add节点、Clamp节点、Multiply节点、Divide节点、Subtract节点、Multiply节点、abs节点、1-x节点计算得到,各节点的功能参考第一边缘的计算过程,在此不进行详细说明。
在计算得到第一边缘和第二边缘后,可以将第一边缘和第二边缘输入到Lerp节点,LineBlend节点用于产生LineBlend的数据,并向Lerp节点提供,以使Lerp节点根据LineBlend融合第一边缘和第二边缘得到融合边缘Line3。
参考图6所示,为本申请实施例提供的一种渲染过程示意图,可以根据特效参数确定特效贴图,而后确定混合特效贴图,之后根据混合特效贴图和边缘自发光颜色对待渲染虚拟模型进行渲染,具体的,可以将混合特效贴图输出到透明通道,将边缘自发光颜色输出到发光通道,以利用边缘自发光颜色和自发光颜色参数结合得到更新的自发光颜色参数,利用混合特效贴图和不透明度参数结合得到更新的不透明度参数,根据更新的自发光颜色参数和更新的不透明度参数,对待渲染虚拟模型进行渲染。
参考图7所示,为本申请实施例提供的又一种材质编辑器的示意图,材质编辑器中具有多个材质节点,材质节点用于实现各种运算。通过BreakMaterialAttributes节点可以获取到材质参数,材质参数可以包括底色(BaseColor)、金属属性参数(Metallic)、反射型属性(Specular)、粗糙度属性(Roughness)、各向异性属性(Anisotropy)、自发光颜色(EmissiveColor)、不透明度参数(OpacityMask)、法线属性(Normal)、切线属性(Tangent)、全局位移偏置属性(world pasition offset)、环境光遮蔽属性(ambient occlusion)、像素深度偏移属性(pixel depth offset)等。
此外,通过DissolveFunction节点可以获取到来自透明通道的混合特效贴图,以及来自发光通道的边缘自发光颜色,分别通过两个输出端OpacityMask和EmissiveColor输出至Multiply节点和Add节点,以进行乘法运算和加法运算,Multiply节点的另一个输入为材质参数中的OpacityMask,输出为更新的不透明度参数,Add节点的另一个输入为材质参数中的EmissiveColor,输出为更新的自发光颜色参数,更新的不透明度参数和更新的自发光颜色参数分别输入到M_Male_Body节点的OpacityMask和EmissiveColor端口,M_Male_Body节点的其他输入端口与BreakMaterialAttributes节点中对应的输出端口连接,可以获取相应的数据,以使M_Male_Body节点得到完整的材质参数。
以上,可以根据特效权重对待渲染视频帧中的待渲染虚拟模型进行渲染,得到待渲染视频帧中的渲染模型,之后,可以获取各个特效权重对应的待渲染视频帧,这些待渲染视频帧中包括所对应的特效权重对应的特效模型;之后,按照特效权重从小到大的顺序或者按照特效权重从大到小的顺序,依次展示待渲染视频帧,以控制待展示特效从特效起始位置沿着特效控制方向逐渐覆盖至特效终止位置,这样可以通过多个视频帧的切换,实现显示特效或消失特效,使显示特效或消失特效被精确控制。
参考图8、图9和图10,为本申请实施例提供的多种视频帧的示意图,其中隐藏区域12在实际显示中被隐藏,为了便于说明,利用虚线表示其轮廓,图8中的渲染模型包括隐藏区域12和过渡区域13,隐藏区域12位于过渡区域13的上方,过渡区域13中具有自发光颜色;图9中的渲染模型包括隐藏区域12、过渡区域13和显示区域11,过渡区域13中具有自发光颜色,相比于图4中的渲染模型,图5中的渲染模型增加了显示区域11,且过渡区域13向上移动,隐藏区域12的范围减小;图10中的渲染模型包括显示区域11,而不包括过渡区域13和隐藏区域12,表示渲染模型显示完全。
若将图8、图9、和图10中的视频帧顺次播放,则显示区域11从下至上外扩,隐藏区域从下至上内缩,若特效控制方向为显示区域11指向隐藏区域12的方向,则特效控制方向为向上;若将图10、图9和图8的视频帧顺序播放,则显示区域11从上至下内缩,隐藏区域12从上至下外扩,若特效控制方向为显示区域11指向隐藏区域12的方向,则特效控制方向为向上。
下面进行S1031~S1032的介绍。
在S1031中,若特效参数不包括特效过渡范围,隐藏区域不具有过渡区域,则特效位置可以根据特效权重、特效控制方向和特效范围直接确定。具体的,特效权重指示在特效控制方向上显示区域或隐藏区域在特效范围之内的比例,则可以利用特效权重和特效范围所指示的特效总尺寸的乘积,确定特效权重对应的显示区域或隐藏区域的尺寸,进而根据该尺寸,结合特效范围的最大值或最小值确定特效位置,参考图8、图9和图10所示,特效位置可以为水平虚线所示的高度。而特效控制方向可以指示显示区域和隐藏区域的相对位置关系,则可以根据特效控制方向,确定具体结合特效范围的最大值或最小值确定特效位置。
举例来说,特效范围中,高度最大值表示为Maxhight,高度最小值表示为Minhight,则特效权重对应的显示区域的尺寸为select*(Maxhight-Minhight),若特效控制方向指示显示区域位于特效位置的下方,隐藏区域位于特效位置的上方,特效位置的高度可以表示为Minhight+(select*(Maxhight-Minhight)),参考图8、图9和他10中的水平虚线所在位置;反之,若显示区域位于特效位置的上方,隐藏区域位于特效位置的上方,则特效位置的高度可以表示为Maxhight-(select*(Maxhight-Minhight))。
在S1031中,若特效参数包括特效过渡范围,隐藏区域中与显示区域相邻的部分作为过渡区域,则可以根据特效权重、特效控制方向、特效过渡范围和特效范围,计算特效位置,形成的特效贴图中还包括过渡区域,过渡区域为隐藏区域中与显示区域相邻的部分区域,在特效贴图中位于过渡区域的像素点对应的显示效果为过渡效果,过渡效果的设置可以使特效的视觉效果为平滑过渡。
具体的,可以根据特效过渡范围和特效范围确定目标范围,根据目标范围对特效权重进行重映射得到目标范围中的第二映射值(表示为Range1),之后根据第二映射值、特效控制方向和特效范围,计算特效位置,这是因为特效权重指示在特效控制方向上显示区域或隐藏区域在特效范围之内的比例,由于特效过渡范围的引入,在特效权重指示显示区域的面积为0时,依然存在过渡区域,而并未使待渲染虚拟模型完全消失,这是不符合常理的,且在特效权重指示隐藏区域的面积为0时,过渡区域容易超出特效范围,这也是不符合常理的,前述过程中,通过特效权重向第二映射值的映射,得到的第二映射值作为可以对应特效范围的新权重,基于该新权重计算特效位置,不会出现前述不符合常理的情况。
具体实施时,假设特效权重属于特效权重范围,特效权重范围由权重最小值和权重最大值界定,可以根据权重最小值,以及特效过渡范围在特效范围中的比例,确定目标范围的最小值,并根据权重最大值,以及特效过渡范围在特效范围中的比例,确定目标范围的最大值,这样目标范围的最小值和最大值考虑了权重最小值和权重最大值,也考虑的特效过渡范围,使映射的到的目标范围能够对应特效范围。
举例来说,高度最大值表示为Maxhight,高度最小值表示为Minhight,权重最小值表示为m1,权重最大值表示为m2,则目标范围的最小值可以为权重最小值和特效过渡范围在特效范围中的比例的差值,表示为m1-Range/(Maxhight-Minhight),目标范围的最大值可以为权重最大值和特效过渡范围在特效范围中的比例的和值,表示为m2+Range/(Maxhight-Minhight),这样,将范围在权重范围[m1,m2]的特效权重,映射到范围在目标范围[m1-Range/(Maxhight-Minhight),m2+Range/(Maxhight-Minhight)],得到第二映射值。作为一种示例,m1可以为0,m2可以为1。
将数据从一个范围向另一个范围的映射,可以通过映射关系实现,映射关系例如函数或对应关系,下面以映射关系为函数为例,该函数表示为RemapValueRange,该函数可以包括5个输入和1个输出,5个输入分别为输入值(input,In)、输入最低值(inputLow,InL)、输入最高值(inputHigh,InH)、目标最低值(targetLow,TarL)和目标最高值(targetHigh,TarH),其输出值为Output,这样通过输入最低值和输入最高值定义输入值的初始范围,通过目标最低值和目标最高值定义输入值的目标范围,即输出值的范围,实现将输入值从初始范围到目标范围的映射,得到目标范围内的输出值。
作为一种示例,RemapValueRange函数的计算方式可以表示为:output=((In-InL)/(InH-InL))*(TarL-TarH)+TarL。参考图11所示,为本申请实施例提供的一种材质编辑器中映射关系的示意图,该映射关系为RemapValueRange函数,材质编辑器中具有多个材质节点,材质节点用于实现各种运算。Input Input节点、Input Input Low节点、InputInput High节点、Input Target Low节点、Input Target High节点分别用于获取输入值(input,In)、输入最低值(inputLow,InL)、输入最高值(inputHigh,InH)、目标最低值(targetLow,TarL)和目标最高值(targetHigh,TarH),Input Input节点、Input Input Low节点的输出结果输入到减法(Subtract)节点中进行减法运算,得到In-InL,Input InputLow节点、Input Input High节点的输出结果输入到减法(Subtract)节点中进行减法运算,得到InH-InL,Input Target Low节点、Input Target High节点的输出结果输入到Subtract节点中进行减法运算,得到TarL-TarH,In-InL和InH-InL输入到除法(Divide)节点中做除法运算,得到(In-InL)/(InH-InL),(In-InL)/(InH-InL)和(TarL-TarH)输入到乘法(Multiply)节点中进行乘法运算,该节点的输出结果为(In-InL)/(InH-InL))*(TarL-TarH),通过加法(Add)节点进行(In-InL)/(InH-InL))*(TarL-TarH)和TarL的加法运算,得到输出结果为output=((In-InL)/(InH-InL))*(TarL-TarH)+TarL,作为函数的输出结果(Output Result)。
这样将特效权重select作为输入值In,将权重范围中的最小值作为输入最低值InL,将权重范围中的最大值作为输入最高值InH,将目标范围的最小值作为目标最低值TarL,将目标范围的最大值作为目标最高值TraH,输入到RemapValueRange函数中,可以确定:
Range1=RemapValueRange(Select,m1,m2,m1+(Range/(Maxhight-Minhight))*-1,(Range/(Maxhight-Minhight))+m2),
在m1为0,m2为1时,可以确定:
Range1=RemapValueRange(Select,0,1,(Range/(Maxhight-Minhight))*-1,(Range/(Maxhight-Minhight))+1)
=((Select-0)/(1-0))*(((Range/(Maxhight-Minhight))*-1)-((Range/(Maxhigh t-Minhight))+1))+(Range/(Maxhight-Minhight))*-1。
参考图12所示,为本申请实施例提供的又一种材质编辑器的示意图,材质编辑器中具有多个材质节点,材质节点用于实现各种运算。其中Select节点、0节点、1节点、Range节点、MaxHight节点、MinHight节点和1节点,分别用于提供Select、0、1、Range、MaxHight、MinHight和1,MaxHight节点、MinHight节点的输出输入到减法(Subtract)节点中进行减法运算,得到Maxhight-Minhight,Range节点和Subtract节点的输出结果输入到除法(Divide)节点中,使其输出Range/(Maxhight-Minhight)到乘法(Multiply)节点中与(-1)进行乘法运算,得到(Range/(Maxhight-Minhight))*-1,Divide节点输出Range/(Maxhight-Minhight)到加法(Add)节点,使其和Add节点的另一输入相加得到Add节点的输出结果Range/(Maxhight-Minhight))+1,将Select、0、1、(Range/(Maxhight-Minhight))*-1和Range/(Maxhight-Minhight))+1分别输入到RemapValueRange节点中,使RemapValueRange节点输出RemapValueRange(Select,0,1,(Range/(Maxhight-Minhight))*-1,(Range/(Maxhight-Minhight))+1),即输出Range1,作为RemapValueRange节点的输出结果(Result)。
在通过映射得到目标范围内的第二映射值后,第二映射值可以表示目标范围内的新权重,则可以根据第二映射值、特效控制方向和特效范围,计算特效位置,具体的,可以利用第二映射值、特效控制方向和特效范围所指示的特效总尺寸的乘积,确定特效权重对应的显示区域或隐藏区域的尺寸,进而根据该尺寸,结合特征范围的最大值或最小值,确定特效位置。而特效控制方向可以指示显示区域和隐藏区域的相对位置关系,则可以根据特效控制方向,确定具体结合特效范围的最大值或最小值确定特效位置。
举例来说,特效范围中,高度最大值表示为Maxhight,高度最小值表示为Minhight,则特效权重对应的显示区域的尺寸为select*(Maxhight-Minhight),若特效控制方向指示显示区域位于特效位置的下方,隐藏区域位于特效位置的上方,特效位置可以表示为Minhight+(Range1*(Maxhight-Minhight)),反之,若显示区域位于特效位置的上方,隐藏区域位于特效位置的上方,则特效位置的高度可以表示为Maxhight-(select*(Maxhight-Minhight))。
参考图12所示,Subtract节点输出的Maxhight-Minhight可以输入到Multiply节点中,该节点中的另一输入为RemapValueRange节点的输出结果Range1,则Multiply节点输出Range1*(Maxhight-Minhight)到Add节点,以利用Add节点的另一输入Minhight与其进行加法运算,得到Add的输出结果Minhight+(Range1*(Maxhight-Minhight)),即特效位置。
S1032中,在确定特效位置后,可以根据特效位置、特效控制方向和空间位置信息,确定待渲染虚拟模型上的各个像素点的不透明度。
具体的,可以根据特效位置对空间位置信息进行重映射,得到空间位置信息在预设不透明度范围内的第一映射值,而后根据每个像素点的第一映射值,确定待渲染虚拟模型上的像素点的不透明度,特效控制方向用于确定预设不透明度范围,或用于确定各个像素点的不透明度。
为了使待渲染虚拟模型的各个区域的隐藏或显示通过该区域内的像素点的不透明度的设置来实现,可以设置显示区域的像素点的不透明度为第一不透明度,隐藏区域的像素点的不透明度为第二不透明度,第一不透明度对应的显示效果为不透明,第二不透明度对应的显示效果为透明,预设不透明度范围可以利用第一不透明度和第二不透明度界定,过渡区域的像素点的不透明度可以介于第一不透明度和第二不透明度之间,使过渡区域相比于显示区域有一定隐藏效果,相比于隐藏区域有一定显示效果,使隐藏区域和显示区域之间的过渡更加自然。其中,第一不透明度可以为1,第二不透明度可以为0。
若特效控制方向用于确定预设不透明度范围,则预设不透明度范围与空间位置方向在特效控制方向上的范围之间的对应关系,可以体现特效控制方向,则映射得到的第一映射值可以体现特效控制方向,根据第一映射值确定的各个像素点的不透明度可以体现特效控制方向。其中,每个像素点的第一映射值,可以作为每个像素点的不透明度,也可以通过映射或其他处理得到每个像素点的不透明度。实际上,这种方式中,每个像素点的第一映射值,可以作为每个像素点的不透明度,即可以将空间位置信息映射为不透明度,简化了操作步骤,简化算法。
在预设不透明度范围与空间位置方向在特效控制方向上的范围之间的对应关系的确定过程中,若将特效控制方向上的较低的空间位置映射到不透明度范围内的较小值(例如0),而将特效控制方向上的较高的空间位置映射到不透明度范围内的较大值(例如1),可以使较高空间位置的像素点具有较大的不透明度,更接近于显示效果,因此可以确定显示区域相比于隐藏区域更加靠上;反之,若将特效控制方向上的较低的空间位置映射到不透明度范围内的较大值(例如1),而将特效控制方向上的较高的空间位置映射到不透明度范围内的较小值(0),可以使较高空间位置的像素点具有较小的不透明度,更加接近于隐藏效果,因此可以确定显示区域相比于隐藏区域更加靠下,这样确定出的不透明度体现了特效控制方向。
若特效控制方向用于确定各个像素点的不透明度,则可以根据特效控制方向和第一映射值,确定各个像素点的不透明度,例如可以根据特效控制方向,将第一映射值映射为各个像素点的不透明度,这样确定出的各个像素点的不透明度可以体现特效控制方向。
将各个像素点的空间位置信息记为Absolute World Position,简称为AWP,在特效控制方向为待渲染模型在虚拟场景中的高度所在方向时,空间位置信息为各个像素点在虚拟场景中的高度信息,即只考虑空间位置信息中的高度对应的通道(Mask(B))的数据,表示为AWP-B。
为了使过渡区域的像素点的不透明度可以介于第一不透明度和第二不透明度之间,可以将过渡区域的像素点的空间位置信息映射到第一不透明度和第二不透明度之间,而位于过渡区域之外的像素点的空间位置信息映射到超出第一不透明度和第二不透明度所界定的范围。
对空间位置信息进行重映射得到映射结果,本质上是将空间位置信息从空间位置信息所处的范围映射到预设不透明度范围,因此可以使用前述的RemapValueRange函数,将过渡区域的范围作为映射前的初始范围,将预设不透明度范围作为映射前的目标范围,进行空间位置信息的映射。
作为一种示例,特效控制方向用于确定预设不透明度范围,在特效控制方向为由下至上时,将空间位置信息AWP-B作为输入值In,将过渡区域的最小高度作为输入最低值InL,将过渡范围的最大高度作为输入最高值InH,将预设不透明度范围的最小值作为目标最低值TarL,将预设不透明度范围的最大值作为目标最高值TraH,输入到RemapValueRange函数中,其中过渡区域的最小高度为特效位置的高度,记为Minhight+(select*(Maxhight-Minhight)),过渡区域的最大高度为特效位置的高度与特效过渡范围的和值,即为Minhight+(select*(Maxhight-Minhight))+Range,预设不透明度范围的最大值为1,预设不透明度范围的最小值为0,则可以确定:Range2=RemapValueRange(AWP-B,MinHight+(Range1*(Maxhight-Minhight)),MinHight+(Range1*(Maxhight-Minhight))+Range,0,1)。
参考图12所示,Add节点在输出特效位置后,由其下一个Add节点进行特效位置和Range的求和,则该下一个Add节点的输出结果为,MinHight+(Range1*(Maxhight-Minhight))+Range,Absolute World Position节点获取各个像素点的空间位置信息,Mask(B)节点获取B通道的数据AWP-B,将AWP-B、MinHight+(Range1*(Maxhight-Minhight))、MinHight+(Range1*(Maxhight-Minhight))+Range、0和1分别输入RemapValueRange节点,RemapValueRange节点的功能参考图11所示,则可以得到RemapValueRange节点的输出结果Range2=RemapValueRange(AWP-B,MinHight+(Range1*(Maxhight-Minhight)),MinHight+(Range1*(Maxhight-Minhight))+Range,0,1)。
相应的,特效控制方向用于确定预设不透明度范围,在特效控制方向为由上至下时,将空间位置信息AWP-B作为输入值In,将过渡区域的最小高度作为输入最低值InL,将过渡范围的最大高度作为输入最高值InH,将预设不透明度范围的最大值作为目标最低值TarL,将预设不透明度范围的最小值作为目标最高值TraH,输入到RemapValueRange函数中,其中过渡区域的最大高度为特效位置的高度,记为Minhight+(select*(Maxhight-Minhight)),过渡区域的最小高度为特效位置的高度与特效过渡范围的差值,即为Minhight+(select*(Maxhight-Minhight))-Range,预设不透明度范围的最大值为1,预设不透明度范围的最小值为0,可以确定:Range2=RemapValueRange(AWP-B,MinHight+(Range1*(Maxhight-Minhight))–Range,MinHight+(Range1*(Maxhight-Minhight)),1,0)。
由于位于过渡区域之外的像素点的空间位置信息映射到超出第一不透明度和第二不透明度所界定的范围,因此可以在根据特效位置对空间位置信息进行重映射,得到映射结果Range2后,对映射结果进行边界约束处理,得到第一映射值Range3,这样将超出第一不透明度和第二不透明度所界定的范围的不透明度归到第一不透明度和第二不透明度所界定的范围之内,得到预设不透明度范围之内的第一映射值。
边界约束处理可以根据边界约束函数实现,边界约束函数标识为Clamp,可以将大于约束范围的最大值的数据调整为该最大值,将小于约束范围的最小值的数据调整为该最小值,使边界约束函数输出的结果属于该约束范围。这样将Range2作为边界约束函数的输入值,将第一不透明度作为约束范围的最大值,将第二不透明度作为约束范围的最小值,从而可以将显示区域的不透明度调整为第一不透明度,将隐藏区域的不透明度调整为第二不透明度。在第一不透明度为1,第二不透明度为0时,可以确定Range3=Clamp(Range2,0,1),使Range2中大于1的值调整为1,小于0的值调整为0。
参考图12所示,RemapValueRange节点的输出结果Range2可以输入到Clamp节点进行边界约束处理,得到Range3。
若特效控制方向用于确定预设不透明度范围,确定出的第一映射值是符合不透明度的定义范围的,也与特效控制方向匹配,因此可以直接作为各个像素点的不透明度,无需后续冗余的映射操作,简化算法。根据第一映射值可以形成待展示特效的特效贴图,表示为Range3,特效贴图中包括各个像素点的不透明度。
需要说明的是,本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
基于图3对应实施例提供的虚拟模型的渲染方法,本申请实施例还提供一种虚拟模型的渲染装置,参考图13所示,为本申请实施例提供的一种虚拟模型的渲染装置的结构示意图,该虚拟模型的渲染装置1100包括:
参数获取单元1301,用于获取待渲染视频帧中待展示特效的特效参数和特效控制方向,所述特效参数包括特效位置参数,所述特效控制方向用于指示所述待渲染虚拟模型的显示区域与隐藏区域的相对位置关系;
位置信息获取单元1302,用于获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息;
不透明度确定单元1303,用于根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,以根据所述不透明度生成所述待展示特效的特效贴图,在所述特效贴图中位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明;
渲染单元1304,用于根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
可选的,所述特效参数还包括对所述待渲染虚拟模型施加所述待展示特效的在所述特效控制方向上的特效范围,所述特效位置参数为特效权重,所述特效权重用于指示所述待展示特效在所述特效控制方向上相对于所述特效范围的占比,所述不透明度确定单元1303,包括:
特效位置确定单元,用于根据所述特效权重、所述特效控制方向和所述特效范围,在所述特效范围内确定特效位置,所述特效位置用于指示所述显示区域和所述隐藏区域之间的边界位置;
不透明度确定子单元,用于根据所述特效位置、所述特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度。
可选的,所述不透明度确定子单元,包括:
第一映射单元,用于根据所述特效位置对所述空间位置信息进行重映射,得到所述空间位置信息在预设不透明度范围内的第一映射值;
不透明度确定二级子单元,用于根据每个像素点的所述第一映射值,确定所述待渲染虚拟模型上的各个像素点的不透明度,所述特效控制方向用于确定所述预设不透明度范围,或用于确定所述各个像素点的不透明度。
可选的,所述特效参数还包括特效过渡范围,所述特效过渡范围用于指示过渡区域在所述特效控制方向上的尺寸;
所述特效位置确定单元,包括:
计算单元,用于根据所述特效权重、所述特效控制方向、所述特效过渡范围和所述特效范围,计算所述特效位置;
相应的,所述特效贴图中还包括过渡区域,所述过渡区域为隐藏区域中与所述显示区域相邻的部分区域,在所述特效贴图中位于所述过渡区域的像素点对应的显示效果为过渡效果。
可选的,所述特效控制方向用于确定所述预设不透明度范围,所述第一映射单元,包括:
映射子单元,用于根据所述特效位置对所述空间位置信息进行重映射,得到映射结果;
边界约束单元,用于对所述映射结果进行边界约束处理,得到所述第一映射值。
可选的,所述显示区域的像素点的不透明度为第一不透明度,所述隐藏区域的像素点的不透明度为第二不透明度,所述过渡区域的像素点的不透明度介于所述第一不透明度和所述第二不透明度之间。
可选的,所述计算单元,包括:
范围确定单元,用于根据所述特效过渡范围和所述特效范围确定目标范围;
第二映射单元,用于根据所述目标范围对所述特效权重进行重映射,得到所述目标范围中的第二映射值;
计算子单元,用于根据所述第二映射值、所述特效控制方向和所述特效范围,计算所述特效位置。
可选的,所述特效权重属于特效权重范围,所述特效权重范围由所述权重最小值和权重最大值界定,所述范围确定单元,包括:
最大值确定单元,用于根据所述权重最小值,以及所述特效过渡范围在所述特效范围中的比例,确定所述目标范围的最小值;
最小值确定单元,用于根据所述权重最大值,以及所述特效过渡范围在所述特效范围中的比例,确定所述目标范围的最大值。
可选的,所述特效参数还包括边缘参数,所述边缘参数包括边缘宽度和边缘颜色,所述装置还包括:
偏移计算单元,用于根据所述边缘宽度和所述特效贴图进行偏移计算,得到所述特效贴图中所述过渡区域内的多条边缘;
融合单元,用于对所述多条边缘进行融合得到融合边缘;
颜色确定单元,用于根据所述融合边缘和所述边缘颜色得到边缘自发光颜色;
所述渲染单元1304,包括:
渲染子单元,用于根据所述特效贴图和所述边缘自发光颜色对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
可选的,所述特效参数还包括所述待渲染虚拟模型的不透明度参数和所述待渲染虚拟模型的自发光颜色参数,所述渲染子单元,包括:
颜色更新单元,用于将所述边缘自发光颜色和所述自发光颜色参数结合得到更新的自发光颜色参数;
不透明度更新单元,用于将所述特效贴图和所述不透明度参数结合得到更新的不透明度参数;
渲染二级子单元,用于根据所述更新的自发光颜色参数和所述更新的不透明度参数,对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
可选的,所述特效范围用于指示所述待渲染虚拟模型上所述待展示特效的特效起始位置和特效终止位置,所述装置还包括:
视频帧获取单元,用于获取各个特效权重对应的待渲染视频帧,所述待渲染视频帧中包括所对应的特效权重对应的特效模型;
展示单元,用于按照特效权重从小到大的顺序或者按照特效权重从大到小的顺序,依次展示所述待渲染视频帧,以控制所述待展示特效从所述特效起始位置沿着所述特效控制方向逐渐覆盖至所述特效终止位置。
可选的,所述渲染单元1304,包括:
混合单元,用于根据所述待展示特效的特效贴图和附加贴图进行贴图混合,得到混合特效贴图,所述附加贴图包括待渲染噪波贴图和待渲染遮罩贴图中的至少一个;
渲染子单元,用于利用所述混合特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
可选的,所述待渲染噪波贴图是根据第一采样尺寸对候选噪波贴图进行采样得到,所述待渲染遮罩贴图是根据第二采样尺寸对候选遮罩贴图进行采样得到。
可选的,所述特效控制方向为所述待渲染模型在虚拟场景中的高度所在方向,每个像素点在虚拟场景中的空间位置信息为每个像素点在所述虚拟场景中的高度信息。
由此可见,可以获取待渲染视频帧中待展示特效的特效参数和特效控制方向,以及待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息,特效参数包括特效位置参数,用于指示施加特效的位置,特效控制方向用于指示待渲染虚拟模型的显示区域和隐藏区域的相对位置关系,这样根据特效位置参数、特效控制方向和空间位置信息,可以确定待渲染虚拟模型上的各个像素点的不透明度,使根据不透明度生成的待展示特效的特效贴图中,位于显示区域的像素点对应的显示效果为不透明,从而实现显示区域的显示效果,位于隐藏区域的像素点对应的显示效果为透明,从而实现隐藏区域的隐藏效果。由于显示区域和隐藏区域的实际位置由各个像素点的不透明度表征,而各个像素点的不透明度根据空间位置信息和特效控制方向确定,使显示区域和隐藏区域跟随待渲染虚拟模型的各个位置的像素点,从而可以对显示区域和隐藏区域的实际位置进行精确的结构化控制,这样根据待展示特效的特效贴图对待渲染虚拟模型进行渲染后,可以得到待渲染视频帧中的特效模型,特效模型是具有待展示特效的模型,由显示区域和隐藏区域构成的待展示特效也可以实现精确的结构化控制,使得待展示特效更加自然,提高特效施加的质量。
本申请实施例还提供了一种计算机设备,该计算机设备可以是终端,以终端为智能手机为例:
图14示出的是与本申请实施例提供的智能手机的部分结构的框图。参考图14,智能手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(英文缩写:WiFi)模块1470、处理器1480、以及电源1490等部件。输入单元1430可包括触控面板1431以及其他输入设备1432,显示单元1440可包括显示面板1441,音频电路1460可以包括扬声器1461和传声器1462。本领域技术人员可以理解,图14中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器1420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器1480是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1420内的软件程序和/或模块,以及调用存储在存储器1420内的数据,执行智能手机的各种功能和处理数据。可选的,处理器1480可包括一个或多个处理单元;优选的,处理器1480可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1480中。
在本实施例中,智能手机中的处理器1480可以执行以下步骤:
获取待渲染视频帧中待展示特效的特效参数和特效控制方向,所述特效参数包括特效位置参数,所述特效控制方向用于指示所述待渲染虚拟模型的显示区域与隐藏区域的相对位置关系;
获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息;
根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,以根据所述不透明度生成所述待展示特效的特效贴图,在所述特效贴图中位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明;
根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
本申请实施例提供的计算机设备还可以是服务器,请参见图15所示,图15为本申请实施例提供的服务器1500的结构图,服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器,例如中央处理器(Central Processing Units,简称CPU)1522,以及存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储设备)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。
服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
在本实施例中,由服务器1500中的中央处理器1522执行的步骤可以基于图15所示的结构实现。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于实现前述各个实施例所述的虚拟模型的渲染方法。
根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种虚拟模型的渲染方法,其特征在于,所述方法包括:
获取待渲染视频帧中待展示特效的特效参数和特效控制方向,所述特效参数包括特效位置参数,所述特效控制方向用于指示所述待渲染虚拟模型的显示区域与隐藏区域的相对位置关系;
获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息;
根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,以根据所述不透明度生成所述待展示特效的特效贴图,在所述特效贴图中位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明;
根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
2.根据权利要求1所述的方法,其特征在于,所述特效参数还包括对所述待渲染虚拟模型施加所述待展示特效在所述特效控制方向上的特效范围,所述特效位置参数为特效权重,所述特效权重用于指示所述待展示特效在所述特效控制方向上相对于所述特效范围的占比,所述根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,包括:
根据所述特效权重、所述特效控制方向和所述特效范围,在所述特效范围内确定特效位置,所述特效位置用于指示所述显示区域和所述隐藏区域之间的边界位置;
根据所述特效位置、所述特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度。
3.根据权利要求2所述的方法,其特征在于,所述根据所述特效位置、所述特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,包括:
根据所述特效位置对所述空间位置信息进行重映射,得到所述空间位置信息在预设不透明度范围内的第一映射值;
根据每个像素点的所述第一映射值,确定所述待渲染虚拟模型上的各个像素点的不透明度,所述特效控制方向用于确定所述预设不透明度范围,或用于确定所述各个像素点的不透明度。
4.根据权利要求3所述的方法,其特征在于,所述特效参数还包括特效过渡范围,所述特效过渡范围用于指示过渡区域在所述特效控制方向上的尺寸;
所述根据所述特效权重、所述特效控制方向和所述特效范围,在所述特效范围内确定特效位置,包括:
根据所述特效权重、所述特效控制方向、所述特效过渡范围和所述特效范围,计算所述特效位置;
相应的,所述特效贴图中还包括过渡区域,所述过渡区域为隐藏区域中与所述显示区域相邻的部分区域,在所述特效贴图中位于所述过渡区域的像素点对应的显示效果为过渡效果。
5.根据权利要求4所述的方法,其特征在于,所述特效控制方向用于确定所述预设不透明度范围,所述根据所述特效位置对所述空间位置信息进行重映射,得到所述空间位置信息在预设不透明度范围内的第一映射值,包括:
根据所述特效位置对所述空间位置信息进行重映射,得到映射结果;
对所述映射结果进行边界约束处理,得到所述第一映射值。
6.根据权利要求4所述的方法,其特征在于,所述显示区域的像素点的不透明度为第一不透明度,所述隐藏区域的像素点的不透明度为第二不透明度,所述过渡区域的像素点的不透明度介于所述第一不透明度和所述第二不透明度之间。
7.根据权利要求4所述的方法,其特征在于,所述根据所述特效权重、所述特效控制方向、所述特效过渡范围和所述特效范围,计算所述特效位置,包括:
根据所述特效过渡范围和所述特效范围确定目标范围;
根据所述目标范围对所述特效权重进行重映射,得到所述目标范围中的第二映射值;
根据所述第二映射值、所述特效控制方向和所述特效范围,计算所述特效位置。
8.根据权利要求7所述的方法,其特征在于,所述特效权重属于特效权重范围,所述特效权重范围由所述权重最小值和权重最大值界定,所述根据所述特效过渡范围和所述特效范围确定目标范围,包括:
根据所述权重最小值,以及所述特效过渡范围在所述特效范围中的比例,确定所述目标范围的最小值;
根据所述权重最大值,以及所述特效过渡范围在所述特效范围中的比例,确定所述目标范围的最大值。
9.根据权利要求4所述的方法,其特征在于,所述特效参数还包括边缘参数,所述边缘参数包括边缘宽度和边缘颜色,所述方法还包括:
根据所述边缘宽度和所述特效贴图进行偏移计算,得到所述特效贴图中所述过渡区域内的多条边缘;
对所述多条边缘进行融合得到融合边缘;
根据所述融合边缘和所述边缘颜色得到边缘自发光颜色;
所述根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型,包括:
根据所述特效贴图和所述边缘自发光颜色对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
10.根据权利要求9所述的方法,其特征在于,所述特效参数还包括所述待渲染虚拟模型的不透明度参数和所述待渲染虚拟模型的自发光颜色参数,所述根据所述特效贴图和所述边缘自发光颜色对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型,包括:
将所述边缘自发光颜色和所述自发光颜色参数结合得到更新的自发光颜色参数;
将所述特效贴图和所述不透明度参数结合得到更新的不透明度参数;
根据所述更新的自发光颜色参数和所述更新的不透明度参数,对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
11.根据权利要求2所述的方法,其特征在于,所述特效范围用于指示所述待渲染虚拟模型上所述待展示特效的特效起始位置和特效终止位置,所述方法还包括:
获取各个特效权重对应的待渲染视频帧,所述待渲染视频帧中包括所对应的特效权重对应的特效模型;
按照特效权重从小到大的顺序或者按照特效权重从大到小的顺序,依次展示所述待渲染视频帧,以控制所述待展示特效从所述特效起始位置沿着所述特效控制方向逐渐覆盖至所述特效终止位置。
12.根据权利要求1-8任一项所述的方法,其特征在于,
所述根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型,包括:
根据所述待展示特效的特效贴图和附加贴图进行贴图混合,得到混合特效贴图,所述附加贴图包括待渲染噪波贴图和待渲染遮罩贴图中的至少一个;
利用所述混合特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
13.根据权利要求12所述的方法,其特征在于,所述待渲染噪波贴图是根据第一采样尺寸对候选噪波贴图进行采样得到,所述待渲染遮罩贴图是根据第二采样尺寸对候选遮罩贴图进行采样得到。
14.根据权利要求1-11任一项所述的方法,其特征在于,所述特效控制方向为所述待渲染模型在虚拟场景中的高度所在方向,每个像素点在虚拟场景中的空间位置信息为每个像素点在所述虚拟场景中的高度信息。
15.一种虚拟模型的渲染装置,其特征在于,所述装置包括:
参数获取单元,用于获取待渲染视频帧中待展示特效的特效参数和特效控制方向,所述特效参数包括特效位置参数,所述特效控制方向用于指示所述待渲染虚拟模型的显示区域与隐藏区域的相对位置关系;
位置信息获取单元,用于获取待渲染虚拟模型上每个像素点在虚拟场景中的空间位置信息;
不透明度确定单元,用于根据所述特效位置参数、特效控制方向和所述空间位置信息,确定所述待渲染虚拟模型上的各个像素点的不透明度,以根据所述不透明度生成所述待展示特效的特效贴图,在所述特效贴图中位于显示区域的像素点对应的显示效果为不透明,位于隐藏区域的像素点对应的显示效果为透明;
渲染单元,用于根据所述待展示特效的特效贴图对所述待渲染虚拟模型进行渲染,得到所述待渲染视频帧中的特效模型。
16.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:
所述存储器用于存储计算机程序,并将所述计算机程序传输给所述处理器;
所述处理器用于根据所述计算机程序中的指令执行权利要求1-14任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于实现权利要求1-14任一项所述的方法。
18.一种计算机程序产品,包括计算机程序,其特征在于,当其在计算机设备上运行时,使得所述计算机设备执行权利要求1-14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211467159.5A CN116485967A (zh) | 2022-11-22 | 2022-11-22 | 一种虚拟模型的渲染方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211467159.5A CN116485967A (zh) | 2022-11-22 | 2022-11-22 | 一种虚拟模型的渲染方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116485967A true CN116485967A (zh) | 2023-07-25 |
Family
ID=87222041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211467159.5A Pending CN116485967A (zh) | 2022-11-22 | 2022-11-22 | 一种虚拟模型的渲染方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116485967A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117522760A (zh) * | 2023-11-13 | 2024-02-06 | 书行科技(北京)有限公司 | 图像处理方法、装置、电子设备、介质及产品 |
-
2022
- 2022-11-22 CN CN202211467159.5A patent/CN116485967A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117522760A (zh) * | 2023-11-13 | 2024-02-06 | 书行科技(北京)有限公司 | 图像处理方法、装置、电子设备、介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112215934B (zh) | 游戏模型的渲染方法、装置、存储介质及电子装置 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US5977982A (en) | System and method for modification of the visual characteristics of digital 3D objects | |
US8281281B1 (en) | Setting level of detail transition points | |
CN115049811B (zh) | 一种数字孪生虚拟三维场景的编辑方法、系统及存储介质 | |
CN108399646B (zh) | 一种图像渲染方法及装置 | |
JP2023029984A (ja) | 仮想イメージを生成するための方法、装置、電子機器及び可読記憶媒体 | |
CN106898040A (zh) | 虚拟资源对象渲染方法和装置 | |
CN110276816A (zh) | 区域填色方法、装置、电子设备及计算机可读存储介质 | |
CN112717414A (zh) | 游戏场景编辑方法、装置、电子设备以及存储介质 | |
CN114820990A (zh) | 一种基于数字孪生的流域防洪可视化方法及系统 | |
CN116485967A (zh) | 一种虚拟模型的渲染方法及相关装置 | |
CN116402931A (zh) | 体积渲染方法、装置、计算机设备和计算机可读存储介质 | |
CN117011492B (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN109598672B (zh) | 一种地图道路渲染方法及装置 | |
CN111632376B (zh) | 一种虚拟模型的显示方法、装置、电子设备及存储介质 | |
WO2012033715A1 (en) | Methods and systems for stylized map generation | |
CN113192173B (zh) | 三维场景的图像处理方法、装置及电子设备 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN115063330A (zh) | 头发渲染方法、装置、电子设备及存储介质 | |
CN113947663A (zh) | 植被模型的生成方法、装置、存储介质和电子装置 | |
CN113936080A (zh) | 虚拟模型的渲染方法和装置、存储介质及电子设备 | |
CN114119821A (zh) | 虚拟对象的毛发渲染方法、装置及设备 | |
CN117482530A (zh) | 游戏资源变色处理方法、装置、存储介质及电子装置 | |
CN114419215A (zh) | 体积云的处理方法、装置和电子设备 |
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: 40090372 Country of ref document: HK |