首页> 中国专利> 渲染剪影光的方法、装置、存储介质及电子装置

渲染剪影光的方法、装置、存储介质及电子装置

摘要

本发明公开了一种渲染剪影光的方法、装置、存储介质及电子装置。该方法包括:获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;利用第二方向信息和色彩信息渲染得到剪影光。本发明解决了相关技术中渲染剪影光的方法其成本高、灵活度低的技术问题。

著录项

  • 公开/公告号CN114820915A

    专利类型发明专利

  • 公开/公告日2022-07-29

    原文格式PDF

  • 申请/专利权人 网易(杭州)网络有限公司;

    申请/专利号CN202210529822.3

  • 发明设计人 孟庆宇;

    申请日2022-05-16

  • 分类号G06T15/50;G06T15/20;G06T15/00;A63F13/52;

  • 代理机构北京博浩百睿知识产权代理有限责任公司;

  • 代理人赵昀彬;谢湘宁

  • 地址 310000 浙江省杭州市滨江区长河街道网商路599号4幢7层

  • 入库时间 2023-06-19 16:09:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-29

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及计算机技术领域,具体而言,涉及一种渲染剪影光的方法、装置、存储介质及电子装置。

背景技术

在虚拟游戏场景中,为虚拟角色或物体添加剪影光效果可以提升该虚拟角色或物体的立体感,丰富画面的层次。相关技术中添加剪影光效果的方法主要有:第一种,直接添加一个用于照亮虚拟角色或物体暗部边缘区域的光源;第二种,制作虚拟角色或物体的模型时对该模型法线朝向的暗部边缘区域进行提亮。然而,第一种方法其渲染成本较高;第二种方法其灵活性较低,在虚拟角色、物体或虚拟相机视角存在旋转时剪影光效果较差。

针对上述的问题,目前尚未提出有效的解决方案。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本发明实施例提供了一种渲染剪影光的方法、装置、存储介质及电子装置,以至少解决相关技术中渲染剪影光的方法其成本高、灵活度低的技术问题。

根据本发明实施例的一个方面,提供了一种渲染剪影光的方法,包括:

获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;利用第二方向信息和色彩信息渲染得到剪影光。

可选地,获取目标光源在观察空间内的第一方向信息包括:获取目标光源在世界空间内的第三方向信息,其中,第三方向信息用于确定虚拟对象在世界空间的受光方向;对第三方向信息进行观察变换,得到第一方向信息。

可选地,目标分量为第一水平分量,基于第一方向信息的目标分量获取第二方向信息包括:基于第一水平分量的第一朝向获取第二水平分量的第二朝向,其中,第二水平分量为第二方向信息的水平分量;依据第二朝向确定第二方向信息。

可选地,基于第一水平分量的第一朝向获取第二水平分量的第二朝向包括:对第一朝向与第二朝向进行比较;响应于第一朝向与第二朝向相反,控制第二朝向保持不变;响应于第一朝向与第二朝向相同,将第二朝向调整至相反方向。

可选地,利用第二方向信息和色彩信息渲染得到剪影光包括:确定目标法线朝向,其中,目标法线朝向是预先在观察空间经过归一化处理得到的法线朝向;对目标法线朝向、第二方向信息和色彩信息进行计算,得到第一计算结果;依据第一计算结果渲染得到剪影光。

可选地,上述渲染剪影光的方法还包括:计算目标分量对应的绝对值,得到第二计算结果;基于第二计算结果与色彩强度参数的比较结果,调整剪影光的色彩强度。

可选地,色彩强度参数包括:第一色彩强度与第二色彩强度,且第一色彩强度小于第二色彩强度,基于第二计算结果与色彩强度参数的比较结果,调整色彩强度包括:响应于通过比较结果确定第二计算结果大于第一色彩强度并且第二计算结果小于第二色彩强度,控制色彩强度逐步减弱;响应于通过比较结果确定第二计算结果小于或等于第一色彩强度,控制色彩强度消失。

可选地,第一色彩强度的取值与第二色彩强度的取值均处于预设取值范围内,并且第一色彩强度的取值与第二色彩强度的取值依据不同渲染风格对应的剪影光出现时机进行自定义配置。

根据本发明实施例的另一方面,还提供了一种渲染剪影光的装置,包括:

第一获取模块,用于获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;第二获取模块,用于基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;确定模块,用于确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;渲染模块,用于利用第二方向信息和色彩信息渲染得到剪影光。

可选地,上述第一获取模块还用于:获取目标光源在世界空间内的第三方向信息,其中,第三方向信息用于确定虚拟对象在世界空间的受光方向;对第三方向信息进行观察变换,得到第一方向信息。

可选地,目标分量为第一水平分量,上述第二获取模块还用于:基于第一水平分量的第一朝向获取第二水平分量的第二朝向,其中,第二水平分量为第二方向信息的水平分量;依据第二朝向确定第二方向信息。

可选地,上述第二获取模块还用于:对第一朝向与第二朝向进行比较;响应于第一朝向与第二朝向相反,控制第二朝向保持不变;响应于第一朝向与第二朝向相同,将第二朝向调整至相反方向。

可选地,上述渲染模块,还用于:确定目标法线朝向,其中,目标法线朝向是预先在观察空间经过归一化处理得到的法线朝向;对目标法线朝向、第二方向信息和色彩信息进行计算,得到第一计算结果;依据第一计算结果渲染得到剪影光。

可选地,渲染剪影光的装置还包括:调整模块,用于计算目标分量对应的绝对值,得到第二计算结果;基于第二计算结果与色彩强度参数的比较结果,调整剪影光的色彩强度。

可选地,色彩强度参数包括:第一色彩强度与第二色彩强度,且第一色彩强度小于第二色彩强度,上述调整模块还用于:响应于通过比较结果确定第二计算结果大于第一色彩强度并且第二计算结果小于第二色彩强度,控制色彩强度逐步减弱;响应于通过比较结果确定第二计算结果小于或等于第一色彩强度,控制色彩强度消失。

根据本发明实施例的另一方面,还提供了一种非易失性存储介质,存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的渲染剪影光的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括:包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的渲染剪影光的方法。

在本发明至少部分实施例中,首先获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向,并基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置,通过确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向,利用第二方向信息和色彩信息渲染得到剪影光,达到了基于游戏场景的主光源方向渲染对应的剪影光效果的目的,从而实现了以较低成本提升游戏场景中渲染剪影光的灵活性技术效果,进而解决了相关技术中渲染剪影光的方法其成本高、灵活度低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种渲染剪影光的方法的移动终端的硬件结构框图;

图2是根据本发明其中一实施例的一种渲染剪影光的方法的流程图;

图3是根据本发明实施例的一种可选的在虚拟场景中展示虚拟角色的示意图;

图4是根据本发明其中一实施例的一种渲染剪影光的装置的结构框图;

图5是根据本发明实施例的一种可选的渲染剪影光的装置的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明其中一实施例,提供了一种渲染剪影光的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本发明其中一种实施例中的渲染剪影光的方法可以运行于终端设备或者是服务器。终端设备可以为本地终端设备。当渲染剪影光的方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。

在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,渲染剪影光的方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行信息处理的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。

在一可选的实施方式中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。

在一种可能的实施方式中,本发明实施例提供了一种渲染剪影光的方法,通过终端设备提供图形用户界面,其中,终端设备可以是前述提到的本地终端设备,也可以是前述提到的云交互系统中的客户端设备。

以运行在本地终端设备中的移动终端上为例,该移动终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,简称为MID)、PAD、游戏机等终端设备。图1是本发明实施例的一种渲染剪影光的方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器104。可选地,上述移动终端还可以包括用于通信功能的传输设备106、输入输出设备108以及显示设备110。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的渲染剪影光的方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的渲染剪影光的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

输入输出设备108中的输入可以来自多个人体学接口设备(Human InterfaceDevice,简称为HID)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。

显示设备110可以例如平视显示器(HUD)、触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。

在本实施例中提供了一种运行于上述移动终端的一种渲染剪影光的方法,图2是根据本发明其中一实施例的一种渲染剪影光的方法的流程图,如图2所示,该方法包括如下步骤:

步骤S21,获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;

上述目标光源可以是游戏场景中使用的主光源,该主光源是虚拟场景中的虚拟光源,用于照亮虚拟角色以提升虚拟对象在虚拟场景中的显示效果。上述虚拟对象可以是虚拟角色、虚拟物体等。在实际应用场景中,该主光源的方向可以由游戏场景下的实时(Timeof Day,TOD)天气系统确定,也可以由美术设计人员根据实际场景需求预先指定。

上述第一方向信息可以用于确定游戏场景中虚拟对象在观察空间的受光方向。获取目标光源在观察空间内的该第一方向信息,可以包括获取主光源在观察空间内的光照方向,根据该光照方向可以确定该主光源照亮的虚拟物体在观察空间的的受光方向。

具体地,获取目标光源在观察空间内的第一方向信息包括的其他方法步骤还可以参照下文中对于本发明实施例的进一步介绍,此处不予赘述。

步骤S22,基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;

上述目标分量可以是上述第一方向信息的横向分量。例如:当以虚拟相机视角方向为Z轴正方向时,横向分量可以是用于表示虚拟相机视野中的左右方向的X分量。

需要说明的是,上述第一方向信息通常为归一化处理后的方向信息,也就是说,通常X分量的取值区间为[-1,1]。

上述待渲染的剪影光可以用于在主光源的基础上照亮虚拟对象的暗部边缘区域。该待渲染的第二方向信息可以用于确定待渲染的剪影光在观察空间的出现方向,根据该出现方向,可以进一步获取剪影光在虚拟对象上的分布位置。例如,如果待渲染的剪影光在观察空间的出现方向为右侧,则可以确定该剪影光在对应的虚拟角色模型上分布的位置为模型右侧暗部边缘区域。

具体地,基于第一方向信息的目标分量可以确定待渲染的第二方向信息包括的其他方法步骤还可以参照下文中对于本发明实施例的进一步介绍,此处不予赘述。

步骤S23,确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;

上述待渲染的色彩信息可以是技术人员预先设定的多个参数信息。该待渲染的色彩信息可以用于预先设定待渲染的剪影光的色彩强度与色彩倾向。

例如:通过预先设定待渲染的剪影光的RGB参数值,直接确定该剪影光的色彩强度和色彩倾向。

再例如:预先设定待渲染的剪影光的亮度、色阶、饱和度等参数以指定该剪影光的色彩强度,预先设定待渲染的剪影光的颜色、色温等参数以指定该剪影光的色彩倾向。

步骤S24,利用第二方向信息和色彩信息渲染得到剪影光。

利用上述待渲染的第二方向信息和上述待渲染的色彩信息,可以进行渲染操作,以得到对应的虚拟对象上的剪影光,进而提升该虚拟对象的展示效果。

可选地,执行上述渲染操作可以使用常见的三维模型渲染软件,例如:Maya、3Dmax、Rhino、C4D等。

具体地,利用第二方向信息和色彩信息渲染得到剪影光包括的其他方法步骤还可以参照下文中对于本发明实施例的进一步介绍,此处不予赘述。

在本发明至少部分实施例中,首先获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向,并基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置,通过确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向,利用第二方向信息和色彩信息渲染得到剪影光,达到了基于游戏场景的主光源方向渲染对应的剪影光效果的目的,从而实现了以较低成本提升游戏场景中渲染剪影光的灵活性技术效果,进而解决了相关技术中渲染剪影光的方法其成本高、灵活度低的技术问题。

下面对本实施例的上述方法进行进一步介绍。

可选地,在步骤S21中,获取目标光源在观察空间内的第一方向信息可以包括以下执行步骤:

步骤S211,获取目标光源在世界空间内的第三方向信息,其中,第三方向信息用于确定虚拟对象在世界空间的受光方向;

步骤S212,对第三方向信息进行观察变换,得到第一方向信息。

上述目标光源可以是游戏场景中使用的主光源。上述第三方向信息可以用于确定虚拟对象在世界空间的受光方向。获取目标光源在世界空间内的该第三方向信息,可以包括获取主光源在世界空间内的光照方向,根据该光照方向可以确定该主光源照亮的虚拟物体在世界空间的受光方向。

对上述目标光源的第三方向信息进行观察变换,可以是将该目标光源在世界空间的第三方向信息变换为该目标光源在观察空间的第一方向信息。

图3是根据本发明实施例的一种可选的在虚拟场景中展示虚拟角色的示意图,如图3所示,为在虚拟场景中展示虚拟角色A,使用预设渲染引擎为该虚拟角色A添加了主光源MainLight。从该预设渲染引擎中获取该主光源MainLight在世界空间的方向矢量,记为MainLightDirInWorldSpace。根据如下述公式(1)计算得到该主光源MainLight在观察空间的方向矢量MainLightDirInCameraSpace:

MainLightDirInCameraSpace

=transform(MainLightDirInWorldSpace,MatrixWorldToView) 公式(1)

在上述公式(1)中,MatrixWorldToView表示世界空间到观察空间的变换矩阵。该变换矩阵可以是预设渲染引擎给定的,也可以是技术人员根据实际应用场景指定的。

需要说明的是,当使用的预设渲染引擎可以直接提供主光源MainLight在观察空间的方向矢量时,则无需进行上述转换操作,直接获取该主光源MainLight在观察空间的方向矢量用于后续操作即可。

可选地,在步骤S22中,目标分量为第一水平分量,基于第一方向信息的目标分量获取第二方向信息可以包括以下执行步骤:

步骤S221,基于第一水平分量的第一朝向获取第二水平分量的第二朝向,其中,第二水平分量为第二方向信息的水平分量;

步骤S222,依据第二朝向确定第二方向信息。

在上述可选的实施例中,目标分量是第一水平分量,该第一水平分量是第一方向信息的水平分量。该第一方向信息可以用于确定游戏场景中虚拟对象在观察空间的受光方向。

上述第二方向信息是待渲染的剪影光对应的方向信息,可以用于确定该待渲染的剪影光在观察空间的出现方向。上述第二水平分量可以是该第二方向信息的水平分量。

基于上述第一水平分量的第一朝向,可以获取该第二水平分量的第二朝向。该第一朝向可以用于表示观察空间中主光源在该第一水平分量对应的方向上的朝向。该第二朝向可以用于表示观察空间中待渲染的剪影光在该第二水平分量对应的方向上的朝向。根据该第二朝向,可以确定上述第二方向信息。

可选地,在步骤S221中,基于第一水平分量的第一朝向获取第二水平分量的第二朝向可以包括以下执行步骤:

步骤S2211,对第一朝向与第二朝向进行比较;

步骤S2212,响应于第一朝向与第二朝向相反,控制第二朝向保持不变;

步骤S2213,响应于第一朝向与第二朝向相同,将第二朝向调整至相反方向。

上述第一朝向可以用于表示观察空间中主光源在该第一水平分量对应的方向上的朝向。上述第二朝向可以用于表示观察空间中待渲染的剪影光在该第二水平分量对应的方向上的朝向。对该第一朝向与该第二朝向进行比较,可以是比较并判断该第一朝向与该第二朝向是相同还是相反。

根据第一朝向和第二朝向的比较结果,进行可选的调整以使该第一朝向与该第二朝向相反。具体地,当上述第一朝向与上述第二朝向相反时,可以控制该第二朝向保持不变。当上述第一朝向与上述第二朝向相同时,可以控制该第二朝向调整至相反方向。

仍然如图3所示,在虚拟场景的观察空间中,以虚拟相机视角方向为z方向的正方向,此时,x方向表示虚拟相机视野中的左右方向,y方向表示虚拟相机视野中的上下方向,z方向表示虚拟相机视野中的景深方向。确定主光源MainLight在观察空间的方向矢量MainLightDirInCameraSpace的x方向分量(相当于上述第一水平分量),记为MainLightDirInCameraSpace.x(取值可能为正也可能为负,本例中指定x方向分量朝右为正朝左为负)。美术设计人员在创建虚拟角色A时,为该虚拟角色A指定了初始的剪影光方向矢量,记为SilhouetteLightDir。获取该初始的剪影光方向矢量的x方向分量(相当于上述第二水平分量),记为SilhouetteLightDir.x。

上述主光源MainLight在观察空间的x方向分量MainLightDirInCameraSpace.x和初始剪影光在观察空间的x方向分量SilhouetteLightDir.x的取值均可能为正也可能为负,本例中指定x方向分量朝右为正朝左为负。通过判断MainLightDirInCameraSpace.x的正负值可以控制剪影光在虚拟角色A上的分布范围。

具体地,当初始剪影光在观察空间的x方向分量朝右,即SilhouetteLightDir.x≥0时:如果主光源在观察空间的x方向分量朝左,即MainLightDirInCameraSpace.x<0,则说明初始的剪影光处于虚拟角色A的暗部边缘区域,SilhouetteLightDir.x保持不变;如果主光源在观察空间的x方向分量朝右,即MainLightDirInCameraSpace.x≥0,则说明初始的剪影光处于虚拟角色A的亮部区域,则将SilhouetteLightDir.x取相反数,即SilhouetteLightDir.x=SilhouetteLightDir.x×(-1)。

具体地,当初始剪影光在观察空间的x方向分量朝左,即SilhouetteLightDir.x<0时:如果主光源在观察空间的x方向分量朝右,即MainLightDirInCameraSpace.x≥0,则说明初始的剪影光处于虚拟角色A的暗部边缘区域,SilhouetteLightDir.x保持不变;如果主光源在观察空间的x方向分量朝左,即MainLightDirInCameraSpace.x<0,则说明初始的剪影光处于虚拟角色A的亮部区域,则将SilhouetteLightDir.x取相反数,即SilhouetteLightDir.x=SilhouetteLightDir.x×(-1)。

根据调整后的剪影光在观察空间的x方向分量SilhouetteLightDir.x,可以确定最终待渲染的剪影光在观察空间的方向矢量SilhouetteLightDir(相当于上述第二方向信息)。

可选地,在步骤S24中,利用第二方向信息和色彩信息渲染得到剪影光可以包括以下执行步骤:

步骤S241,确定目标法线朝向,其中,目标法线朝向是预先在观察空间经过归一化处理得到的法线朝向;

步骤S242,对目标法线朝向、第二方向信息和色彩信息进行计算,得到第一计算结果;

步骤S243,依据第一计算结果渲染得到剪影光。

上述目标法线朝向是预先在观察空间经过归一化处理得到的法线朝向。归一化处理可以是通过对观察空间的多个法线朝向进行叉乘以得到归一化法线朝向的操作。

基于上述目标法线朝向、待渲染的剪影光对应的第二方向信息以及待渲染的剪影光对应的色彩信息,可以进行计算以得到上述第一计算结果。该第一计算结果可以用于渲染并得到虚拟对象的剪影光。

仍然如图3所示,美术设计人员在创建虚拟角色A时,可以为该虚拟角色设定多个色彩参数,以控制剪影光的渲染效果。例如:美术设计人员可以预设一个RGB三维矢量用于控制剪影光的色彩强度和色彩倾向,记为ColorSet(相当于上述色彩信息)。

仍然如图3所示,美术设计人员在创建虚拟角色A时,还可以根据实际应用场景(例如游戏场景类型、虚拟对象类型、虚拟对象姿态、虚拟对象摆放位置等),通过归一化处理为该虚拟角色指定一个三维矢量作为在观察空间中的归一化法线朝向,记为NormalInCameraSpace(相当于上述目标法线朝向)。

仍然如图3所示,在观察空间中,基于虚拟角色A对应的待渲染的剪影光的方向矢量SilhouetteLightDir(相当于上述第二方向信息)、RGB三维矢量ColorSet(相当于上述色彩信息)以及归一化法线朝向NormalInCameraSpace(相当于上述目标法线朝向),可以进行如下述公式(2)的计算得到剪影光渲染参数ColorSilhouetteLight(相当于上述第一计算结果):

ColorSilhouetteLight=

ColorSet×dot(NormalInCameraSpace,SilhouetteLightDir) 公式(2)

在上述公式(2)中,dot(D1,D2)函数表示两个三维矢量D1和D2的点乘,这里表示NormalInCameraSpace与SilhouetteLightDir的点乘。

基于剪影光渲染参数ColorSilhouetteLight(相当于上述第一计算结果)进行渲染,可以得到虚拟角色A对应的剪影光。

可选地,上述渲染剪影光的方法还可以包括以下执行步骤:

步骤S25,计算目标分量对应的绝对值,得到第二计算结果;

步骤S26,基于第二计算结果与色彩强度参数的比较结果,调整剪影光的色彩强度。

在上述可选的实施例中,目标分量可以是观察空间中主光源的第一方向信息的水平分量。计算该目标分量的绝对值,得到上述第二计算结果。该第二计算结果可以用于表示观察空间中主光源的方向与虚拟相机视角方向的相对角度关系。通常可以将观察空间中主光源的方向与虚拟相机视角方向共线(包括夹角为0度和夹角为180度)的情况称为“对虚拟对象正向打光”。

将上述第二计算结果与色彩强度参数进行比较,可以得到上述比较结果。基于该第二计算结果与色彩强度参数的比较结果,可以调整剪影光的色彩强度。

可选地,在步骤S26中,色彩强度参数包括:第一色彩强度与第二色彩强度,且第一色彩强度小于第二色彩强度,基于第二计算结果与色彩强度参数的比较结果,调整色彩强度可以包括以下执行步骤:

步骤S261,响应于通过比较结果确定第二计算结果大于第一色彩强度并且第二计算结果小于第二色彩强度,控制色彩强度逐步减弱;

步骤S262,响应于通过比较结果确定第二计算结果小于或等于第一色彩强度,控制色彩强度消失。

上述色彩强度参数可以包括:第一色彩强度与第二色彩强度。该第一色彩强度可以用于确定剪影光的色彩强度完全消失的时机。该第二色彩强度可以用于确定剪影光的色彩强度开始减弱的时机。该第一色彩强度小于该第二色彩强度。

上述第二计算结果可以用于表示观察空间中主光源的方向与虚拟相机视角方向的相对角度关系。根据该第二计算结果,可以确定该主光源是否对虚拟对象正向打光。

将上述第二计算结果与第一色彩强度与第二色彩强度进行比较:当确定第二计算结果大于第一色彩强度并且第二计算结果小于第二色彩强度时,说明观察空间中主光源的方向与虚拟相机视角方向的接近程度足以影响剪影光效果但不能看作主光源对虚拟对象正向打光,此时控制剪影光的色彩强度逐步减弱;当确定第二计算结果小于或等于第一色彩强度时,说明观察空间中主光源的方向与虚拟相机视角方向可以看作主光源对虚拟对象正向打光,此时控制色彩强度消失。

可选地,在上述渲染剪影光的方法中,第一色彩强度的取值与第二色彩强度的取值均处于预设取值范围内,并且第一色彩强度的取值与第二色彩强度的取值依据不同渲染风格对应的剪影光出现时机进行自定义配置。

上述第一色彩强度可以用于确定剪影光的色彩强度完全消失的时机。上述第二色彩强度可以用于确定剪影光的色彩强度开始减弱的时机。该第一色彩强度小于该第二色彩强度,且该第一色彩强度的取值与该第二色彩强度的取值均处于预设取值范围内。该预设取值范围可以是美术设计人员根据实际应用场景的需求预先指定的。

在上述预设取值范围内,第一色彩强度的取值与第二色彩强度的取值依据不同渲染风格对应的剪影光出现时机进行自定义配置。

仍然以为虚拟角色A渲染剪影光为例,假设虚拟角色正面始终朝向z轴负方向(即与虚拟相机视角方向相反),当采用以y轴为旋转轴的水平旋转的视角查看该虚拟角色A时,如果视角方向在z轴正方向或z轴负方向附近变化,由于主光源方向与虚拟相机视角方向一致,此时,主光源的方向矢量MainLightDirInCameraSpace对应的x方向分量MainLightDirInCameraSpace.x取值在0附近变化(可正可负),此时,主光源对于虚拟角色A近似于正向打光,不存在左侧或者右侧的暗部边缘区域,因此,应当控制虚拟角色A的剪影光渐变或者消失以增强虚拟现实,优化渲染效果。

具体地,美术设计人员可以根据实际应用场景(例如游戏场景类型、虚拟对象类型、虚拟对象姿态、虚拟对象摆放位置等)预先设定两个阈值以及该两个阈值的取值范围。此处,两个阈值分别为ForwardIntensitySet01(用于确定剪影光的色彩强度完全消失的时机,相当于上述第一色彩强度)和ForwardIntensitySet02(用于确定剪影光的色彩强度开始减弱的时机,相当于上述第二色彩强度)。两个阈值满足如下关系:0

具体地,计算MainLightDirInCameraSpace.x的绝对值记为参数h,实时监测该参数h的取值。在h逐渐向0减小的过程中:当h开始小于ForwardIntensitySet02且仍大于ForwardIntensitySet01时,控制虚拟角色A的剪影光的色彩强度减弱;当h开始小于ForwardIntensitySet01时,认为主光源对虚拟角色A正向打光,控制虚拟角色A的剪影光的色彩强度消失(即控制剪影光的色彩强度为0)。

可选地,在上述示例中,美术设计人员预设的两个阈值ForwardIntensitySet01与ForwardIntensitySet02可以根据(例如游戏场景类型、虚拟对象类型、虚拟对象姿态、虚拟对象摆放位置等)进行灵活取值。例如:对于指定类别的虚拟对象可以为ForwardIntensitySet01与ForwardIntensitySet02指定偏小的取值,以控制水平旋转镜头下剪影光出现的时机较多;对于另一指定类别的虚拟对象,可以为ForwardIntensitySet01与ForwardIntensitySet02指定偏大的取值,以控制水平旋转镜头下剪影光出现的时机较少。

容易注意到的是,通过本发明提供的方法,可以在渲染虚拟对象的剪影光效果时,根据视角方向灵活确定剪影光的方向和强度,使剪影光始终出现在虚拟对象的暗部边缘区域,解决了相关技术渲染的虚拟对象剪影光分布方向固定的问题,提高了剪影光渲染效果,进一步提升用户的体验。

容易注意的是,通过本发明提供的方法,可以在确保剪影光始终出现在虚拟对象的暗部边缘区域的同时,实现在旋转视角下虚拟对象剪影光渐变的效果,进一步增强虚拟现实,提升用户的体验。

容易注意的是,与相关技术提供的方法相比,本发明提供的渲染剪影光的方法无需额外添加光源即可灵活地渲染出剪影光效果,有利于在实际场景中应用。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种渲染剪影光的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是根据本发明其中一实施例的一种渲染剪影光的装置的结构框图,如图4所示,该装置包括:第一获取模块401,用于获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;第二获取模块402,用于基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;确定模块403,用于确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;渲染模块404,用于利用第二方向信息和色彩信息渲染得到剪影光。

可选地,上述第一获取模块401还用于:获取目标光源在世界空间内的第三方向信息,其中,第三方向信息用于确定虚拟对象在世界空间的受光方向;对第三方向信息进行观察变换,得到第一方向信息。

可选地,目标分量为第一水平分量,上述第二获取模块402还用于:基于第一水平分量的第一朝向获取第二水平分量的第二朝向,其中,第二水平分量为第二方向信息的水平分量;依据第二朝向确定第二方向信息。

可选地,上述第二获取模块402还用于:对第一朝向与第二朝向进行比较;响应于第一朝向与第二朝向相反,控制第二朝向保持不变;响应于第一朝向与第二朝向相同,将第二朝向调整至相反方向。

可选地,上述渲染模块404,还用于:确定目标法线朝向,其中,目标法线朝向是预先在观察空间经过归一化处理得到的法线朝向;对目标法线朝向、第二方向信息和色彩信息进行计算,得到第一计算结果;依据第一计算结果渲染得到剪影光。

可选地,图5是根据本发明实施例的一种可选的渲染剪影光的装置的结构框图,如图5所示,该装置除包括图4所示的所有模块外,还包括:调整模块405,用于计算目标分量对应的绝对值,得到第二计算结果;基于第二计算结果与色彩强度参数的比较结果,调整剪影光的色彩强度。

可选地,色彩强度参数包括:第一色彩强度与第二色彩强度,且第一色彩强度小于第二色彩强度,上述调整模块405还用于:响应于通过比较结果确定第二计算结果大于第一色彩强度并且第二计算结果小于第二色彩强度,控制色彩强度逐步减弱;响应于通过比较结果确定第二计算结果小于或等于第一色彩强度,控制色彩强度消失。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本发明的实施例还提供了一种非易失性存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;

S2,基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;

S3,确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;

S4,利用第二方向信息和色彩信息渲染得到剪影光。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,获取目标光源在观察空间内的第一方向信息,其中,目标光源为游戏场景中使用的主光源,第一方向信息用于确定游戏场景中虚拟对象在观察空间的受光方向;

S2,基于第一方向信息的目标分量获取待渲染的第二方向信息,其中,第二方向信息用于确定待渲染的剪影光在观察空间的出现方向,以获取剪影光在虚拟对象上的分布位置;

S3,确定待渲染的色彩信息,其中,色彩信息用于预先设定剪影光的色彩强度与色彩倾向;

S4,利用第二方向信息和色彩信息渲染得到剪影光。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号