CN114288649A - 一种阴影边缘的确定和渲染方法,存储介质和电子设备 - Google Patents

一种阴影边缘的确定和渲染方法,存储介质和电子设备 Download PDF

Info

Publication number
CN114288649A
CN114288649A CN202111669303.9A CN202111669303A CN114288649A CN 114288649 A CN114288649 A CN 114288649A CN 202111669303 A CN202111669303 A CN 202111669303A CN 114288649 A CN114288649 A CN 114288649A
Authority
CN
China
Prior art keywords
shadow
determining
element model
target element
included angle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111669303.9A
Other languages
English (en)
Inventor
唐孝康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202111669303.9A priority Critical patent/CN114288649A/zh
Publication of CN114288649A publication Critical patent/CN114288649A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Generation (AREA)

Abstract

本申请公开一种阴影边缘的确定和渲染方法,存储介质和电子设备,所述确定方法包括:获取游戏场景中针对目标元素模型设置的第一阴影强度值;根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域;有效降低计算成本和难度。

Description

一种阴影边缘的确定和渲染方法,存储介质和电子设备
技术领域
本申请涉及计算机图形处理技术领域,具体涉及一种阴影边缘的确定方法和装置,以及阴影边缘的渲染方法和装置。本申请同时涉及一种计算机存储介质和电子设备。
背景技术
游戏从早期单纯的游戏机发展到现有依附于电子终端设备的游戏应用软件,是通过计算机技术不断发展而来,包括2D游戏应用和3D游戏应用。
不论是2D形式的游戏应用还是3D形式的游戏应用,游戏场景通常需要多种游戏元素构成,为提高游戏场景的真实感,增加游戏元素的阴影是重要的手段之一。
发明内容
本申请提供一种阴影边缘的确定方法,以解决游戏场景中对阴影贴图进行风格化处理时难度较大,成本较高的技术问题。
本申请提供一种阴影边缘的确定方法,包括:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域。
在一些实施例中,所述根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值,包括:
获取所述目标元素模型光照方向的第一向量;
获取所述目标元素模型顶点法线方向的第二向量;
根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值。
在一些实施例中,所述根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值,包括:
对所述第一向量和所述第二向量进行点积运算,获得点积结果;
根据所述点积结果确定所述夹角的余弦值;
将所述余弦值确定为所述夹角的夹角值。
在一些实施例中,所述根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值,包括:
将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
在一些实施例中,所述根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域,包括:
根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
将选取的绝对值最大的所述变化率对应的第二阴影强度值确定为目标阴影强度值;
将所述目标阴影强度值对应的阴影区域,确定为所述阴影边缘区域。
本申请还提供一种阴影边缘的确定装置,包括:
获取单元,用于获取游戏场景中针对目标元素模型设置的第一阴影强度值;
第一确定单元,用于根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
第二确定单元,用于根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
第三确定单元,用于根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域。
本申请还提供一种阴影边缘的渲染方法,包括:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域;
对所述阴影边缘区域进行边缘渲染。
在一些实施例中,所述对所述阴影边缘区域进行边缘渲染,包括:
根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据;
根据所述目标渲染数据对所述阴影边缘区域进行边缘渲染。
在一些实施例中,所述根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据,包括:
将所述待渲染数据、所述基本渲染数据、所述阴影边缘系数以及所述边缘强度数据进行混合;
将混合后的数据确定为所述目标渲染数据。
本申请还提供一种阴影边缘的渲染装置,包括:
获取单元,用于获取游戏场景中针对目标元素模型设置的第一阴影强度值;
第一确定单元,用于根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
第二确定单元,用于根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
第三确定单元,用于根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域;
渲染单元,用于对所述阴影边缘区域进行边缘渲染。
本申请还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被处理器读取执行时,执行如上所述的阴影边缘的确定方法;或者,执行如上所述的阴影边缘的渲染方法。
本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如上所述的阴影边缘的确定方法;或者,执行如上所述的阴影边缘的渲染方法。
与现有技术相比,本申请具有以下优点:
本申请提供的一种阴影边缘的确定方法实施例中,通过利用目标元素模型顶点法线的向量和光照方向的向量获取二者之间的夹角的夹角值,根据夹角值和预先设置的第一阴影强度值,获取第二阴影强度值,然后确定第二阴影强度值的变化率确定阴影边缘,相比现有技术不需要人为的根据烘焙的阴影贴图确定阴影的边缘区域,有效降低计算成本和难度,并且不会受限于离线场景下的阴影边缘的确定,支持动态下的阴影边缘确定。
本申请提供的一种阴影边缘的渲染方法实施例中,通过采用阴影边缘的确定方法实施例确定阴影边缘区域后,对阴影边缘区域按照设置的填充颜色或图形或图像进行渲染,从而在需求阴影边缘风格化的游戏场景中,能够提高阴影边缘渲染的准确性,而且支持对动态阴影边缘进行渲染,而且阴影边缘的渲染也可以支持动态效果。
附图说明
图1是本申请提供的一种阴影边缘的确定方法实施例的流程图;
图2-1是本申请提供的一种阴影边缘的确定方法实施例中夹角的示意图;
图2-2是本申请提供的一种阴影边缘的确定方法实施例中阴影边缘的示意图;
图3是本申请提供的一种阴影边缘的确定装置实施例的结构示意图;
图4是本申请提供的一种阴影边缘的渲染方法实施例的流程图;
图5是本申请提供的一种阴影边缘的渲染方法实施例中阴影边缘渲染的示意图;
图6是本申请提供的一种阴影边缘的渲染装置实施例的结构示意图;
图7是本申请提供的一种电子设备实施例的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
结合上述背景技术的内容可知,本申请的技术构思源于对游戏场景中游戏元素的阴影处理存在的缺陷而产生,具体地,现有游戏场景中对游戏元素实时阴影的处理通常都是一种颜色,即黑色或灰色,当然也可以是其他颜色。对于阴影边缘的处理可以在离线状态下将光照产生的阴影图提前烘培出一张阴影贴图,在通过Photoshop将阴影贴图边缘填充类似偏向暖色调的颜色,以达到对阴影边缘的处理,实现特定游戏场景或游戏对阴影风格化需求。然而采用烘焙阴影贴图的方式存在如下问题:
1、对阴影贴图的大小要求较高,目前手游中对阴影贴图的大小虽然控制在2048×2048,但是阴影贴图的精度距离目标精度还是存在差距;
2、由于烘培的阴影贴图需要人工手动查找对应的边缘位置方能进行边缘的处理,处理难度和成本较高;
3、由于烘焙的阴影贴图是针对游戏元素生成一张固定贴图,在游戏场景中无法根据光照方向体现出不同的衰减,即无法支持阴影的动态效果。
故此,鉴于上述问题,本申请提供一种阴影边缘的确定方法和一种阴影边缘的渲染方法,下面分别进行描述。
如图1所示,图1是本申请提供的一种阴影边缘的确定方法实施例的流程图,该确定方法实施例包括:
步骤S101:获取游戏场景中针对目标元素模型设置的第一阴影强度值。
所述步骤S101的目的在于获取第一阴影强度值。在本实施例中,所述第一阴影强度值可以预先设置,当然也可以在需要时进行设置。所述目标元素模型可以是游戏场景中的目标元素,具体地,所述目标元素可以是预先设置在模型空间中的游戏元素,即目标元素可以看作是目标模型。通常在游戏场景中,每个模型(目标元素模型)都有自己独立的坐标空间。当模型相对于游戏关卡(游戏场景)的世界中心进行移动旋转缩放时,目标元素模型具有世界空间的变化。在游戏关卡或游戏场景下,目标元素模型因为光照相机的照射具有阴影。
所述步骤S101的具体实现过程可以是通过在shader(着色器)中获取到第一阴影强度,其中shader图形图像处理语言,用于编写图形渲染的计算方式,可以自定义编写计算方式来实现光照效果。一般包含顶点着色器和片段着色器,所述顶点着色器是在世界空间中计算游戏模型(目标元素模型)在相机空间中的位置并且映射到屏幕上,所述片段着色器是在所述顶点着色器之后对游戏模型中的每个像素进行上色的过程。
在通过shader获取游戏引擎设置的第一阴影强度值,本实施例中,可以使用mainLight(主光源)获取shadowAttenuation(阴影信息),其中shadowAttenuation负责使用ShadowCoord对对应的纹理进行采,得到阴影信息(本实施例中的第一阴影强度),即float shadowIntensity=MainLight.shadowAttenuation。
步骤S102:根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值。
如图2-1所示,所述步骤S102的目的在于获取目标元素模型顶点法线方向和光照方向之间的夹角值。
通常,顶点法线就是将目标元素模型共享顶点的几个面的法线求和,然后归一化,即除以面的数量,得到的平均值法线,即本实施例中的所述目标元素模型顶点法线方向,例如:nv=(ns1+ns2)/2,其中,ns1和ns2可以是面法线,目标元素模型的面为两个面s1和s2。当然,顶点法线方向的确定不限于上述方式,能够获取或计算获得目标元素模型顶点法线方向的方式均可以。
所述目标元素模型光照方向可以理解为在游戏场景中或游戏关卡内,光照空间中光源照射所述目标元素模型的方向,可以产生不同的照射方向。
所述步骤S102的具体实现过程可以包括:
步骤S102-1:获取所述目标元素模型光照方向的第一向量;例如为I。所述第一向量可以通过目标元素模型中的参数获取。
步骤S102-2:获取所述目标元素模型顶点法线方向的第二向量;例如:N。所述第二向量也可以通过目标元素模型中的参数获取。
步骤S102-3:根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值;具体地,将所述第一向量I和所述第二向量N通过点积运算,即float ndotl=dot(N,I)获得点积结果;根据所述点积结果,确定所述夹角的余弦值;将所述余弦值确定为所述夹角的夹角值。因为,dot(点积)的结果可以是一个标量,等于向量大小与夹角cos值的乘积,计算公式如下:
Figure BDA0003449156520000061
在本实施例中,因为向量I和N为单位向量即公式前两项的结果为1,所以dot(点积)结果就是两向量夹角的余旋值,即:float ndot1=dot(N,I),当两向量夹角越接进0度的时候余旋值越接近1,当两向量夹角越接进180度的时候余旋值越接近-1,通过这个余旋值即可模拟光照方向与目标元素模型之间的照射强弱关系,即余弦值越接近1,则角度越小,第一向量和第二向量相似度越高,则目标元素模型表面的光照强度越强,反之则越弱。换言之,通过余弦相似度可以衡量空间向量的夹角,从而能够在方向上体现出差异。
步骤S103:根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值。
所述步骤S103具体实现过程可以包括:
步骤S103-1:将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
可以理解的是,本实施例中,阴影强度是游戏场景内游戏元素模型在光照空间中产生的投影的强度,以及游戏元素模型在光照空间中自身暗部区域的阴影强度。阴影强度的衰减可以在投影阴影边缘和暗部区域阴影边缘,阴影边缘区域以外的阴影区域强度在设置的强度值下不会发生变化。所述夹角值是目标元素模型自身结构顶点法线方向与光照方向之间夹角的值,当第一阴影强度值为设置的固定值时,所述目标元素模型结构比较陡峭或凹凸不平,那么在光照方向上产生的所述目标元素模型的阴影轮廓以及暗部区域会存在阴影强度的衰减。将夹角值与第一阴影强度值相乘可以获知既有所述目标元素模型因凹凸不平与光照产生的暗部区域(即光不完全照到的地方)边缘和投影产生的投影区域边缘。
本实施例中关于夹角值的表达可以是:ShadowIntensity=shadowIntensity×ndot1;其中,ShadowIntensity阴影强度,shadowIntensity为第一阴影强度值,ndot1为夹角值。
步骤S104:根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域。
如图2-2所示,所述步骤S104的具体实现过程可以包括:
步骤S104-1:根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
步骤S104-2:将选取的绝对值最大的所述变化率对应的所述第二阴影强度值,确定为目标阴影强度值;
步骤S104-3:将所述目标阴影强度值对应的阴影区域,确定为所述阴影边缘区域。
所述步骤S104-1在本实施例中的实现过程可以是,将所述第二阴影强度值代入到偏导函数中进行计算,计算出第二阴影强度的变化率。所述偏导函数,分为HLSL:ddx和ddy,GLSL:dFdx和dFdy。本实施例中,采用ddx和ddy计算所述第二阴影强度的变化率,所述ddx和ddy为局部差异导数函数,计算片段着色器中的任何指令相对于屏幕空间坐标的变化率。所述ddx和ddy函数主要在shader中的片段着色器中使用,移动端GPU在执行像素渲染的时候,并不是一个一个的执行的,通常会以2×2的块来并行执行,ddx表示是右边的像素块的值减去左边像素块的值,而ddy表示下面像素块的值减去上面像素块的值,其中的x,y代表的是屏幕坐标,因此ddx和ddy函数能够通过这两个块之间的像素差异得出两个像素之间的变化率。计算公式如下:
Float radiance=abs(ddx(shadowIntensity))+abs(ddy(shadowIntenisty));
其中,Float radiance为阴影强度变化率;abs(ddx(shadowIntensity))为第二阴影强度在x轴上像素值的绝对值;abs(ddy(shadowIntenisty))为第二阴影强度在y轴上像素值的绝对值;shadowIntenisty为第二阴影强度值。
对于投影产生的阴影会在阴影边缘处或者对于游戏元素模型自身暗部区域的大角度位置(暗部区域边缘)均会有数值的衰减,通过ddx/ddy可以计算阴影强度的衰减值,衰减值越大,则说明与阴影边缘或暗部区域边缘越接近。
以上是本申请提供的一种阴影边缘的确定方法实施例中,通过利用目标元素模型顶点法线的向量和光照方向的向量获取二者之间的夹角的夹角值,根据夹角值和预先设置的第一阴影强度值,获取第二阴影强度值,然后确定第二阴影强度值的变化率确定阴影边缘,相比现有技术不需要人为的根据烘焙的阴影贴图确定阴影的边缘区域,有效降低计算成本和难度,并且不会受限于离线场景下的阴影边缘的确定,支持动态下的阴影边缘确定。
以上是对本申请提供的一种阴影边缘的确定装置实施例的具体描述,与前述提供的一种阴影边缘的确定方法实施例相对应,本申请还公开一种阴影边缘的确定装置实施例,请参看图3,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图3所示,图3是本申请提供的一种阴影边缘的确定装置实施例的结构示意图,该装置实施例包括:
获取单元301,用于获取游戏场景中针对目标元素模型设置的第一阴影强度值;所述获取单元301的具体内容可以参考上述步骤S101,此处不再重复赘述。
第一确定单元302,用于根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值。
所述第一确定单元302可以包括:第一获取子单元,第二获取子单元和确定子单元。所述第一获取子单元,用于获取所述目标元素模型光照方向的第一向量;所述第二获取子单元,用于获取所述目标元素模型顶点法线方向的第二向量;所述确定子单元,用于根据所述第一获取子单元中获取的所述第一向量和所述第二获取子单元获取的所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值。其中,在本实施例中,所述确定子单元可以包括:获得子单元,用于对所述第一向量和所述第二向量进行点积运算,获得点积结果;余弦值确定子单元,用于根据所述点积结果确定所述夹角的余弦值;夹角值确定子单元,用于将所述余弦值确定为所述夹角的夹角值。所述第一确定单元302的具体实现过程可以参考上述步骤S102的内容。
第二确定单元303,用于根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;在本实施例中,所述第二确定单元303具体可以用于将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值;具体实现过程可以参考上述步骤S103的内容。
第三确定单元304,用于根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域;本实施例中,所述第三确定单元304可以包括:第一确定子单元、第二确定子单元和第三确定子单元;所述第一确定子单元可以用于根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;所述第二确定子单元可以用于将选取的绝对值最大的所述变化率对应所述第二阴影强度值,确定为目标阴影强度值;所述第三确定子单元可以用于将所述目标阴影强度值对应的阴影区域,确定为所述阴影边缘区域。
以上是对本申请提供的一种阴影边缘的确定装置实施例的描述,关于确定装置实施例的具体内容参考上述确定方法实施例即可,此处不再进行重复性描述。
基于上述内容,本申请还提供一种阴影边缘的渲染方法,如图4和图5所述,图4是本申请提供的一种阴影边缘的渲染方法实施例的流程图;图5是本申请提供的一种阴影边缘的渲染方法实施例中阴影边缘渲染的示意图;本实施例中,所述渲染方法可以包括:
步骤S401:获取游戏场景中针对目标元素模型设置的第一阴影强度值;
步骤S402:根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
步骤S403:根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
步骤S404:根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;
步骤S405:对所述阴影边缘区域进行边缘渲染。
本实施例中描述的阴影边缘的渲染方法,与上述阴影边缘的确定方法实施例的区别在于步骤S405,也就是说,阴影边缘的渲染方法实施例中是基于阴影边缘的确定方法实施例在确定阴影边缘后,如何对阴影边缘进行渲染的描述,因此,关于所述步骤S401到步骤S404的内容可以参考上述步骤S101到S104的实施例,此处不再重复赘述。
所述步骤S405的具体实现过程可以包括:
步骤S405-1:根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据。
步骤S405-2:根据所述目标渲染数据对所述阴影边缘区域进行边缘渲染。
其中,所述步骤S405-1的具体实现过程可以包括:
步骤S405-11:将所述待渲染数据(GradientColor)按照确定的所述阴影边缘区域和所述基本渲染数据(baseColor)进行混合;例如:finalColor=lerp(baseColor,GradientColor,radiance×GradientAttenInstensity);其中,finalColor为目标渲染颜色(目标渲染数据),baseColor为基本颜色(基本渲染数据),radiance为用于存储编导函数的自定义变量;GradientAttenInstensity为通过变化率确定的阴影边缘(阴影边缘系数)。
具体混合可以是:假设目标元素模型的基本颜色为baseColor,增加两个参数GradientColor和GradientAttenInstensity用于对阴影边缘颜色进行调整,将GradientColor按照最终得到的阴影边缘(GradientAttenInstensity阴影边缘系数)、自定义变量(radiance)与基本颜色(baseColor)进行混合。
步骤S405-12:将混合后的数据确定为所述目标渲染数据。
根据所述目标渲染数据对所述阴影边缘区域进行渲染。
以上是对本申请提供的一种阴影边缘的渲染方法实施例的描述,该实施例能够通过实时确定的阴影边缘,对阴影边缘进行填充任何需要的颜色或图形或图像,从而使得游戏场景中目标元素对象在光照空间下具有实时动态的风格化阴影边缘的阴影区域,对填充的目标颜色或图像或图形等中的任意一种或多种组合的渲染不再依赖于阴影贴图人为手动的查找阴影边缘,保证边缘渲染的准确性。
以上是对本申请提供的一种阴影边缘的渲染方法实施例的描述,与前述提供的一种阴影边缘的渲染方法实施例相对应,本申请还公开一种阴影边缘的渲染装置实施例,请参看图6,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图6所示,图6是本申请提供的一种阴影边缘的渲染装置实施例的结构示意图,该渲染装置实施例包括:
获取单元601,用于获取游戏场景中针对目标元素模型设置的第一阴影强度值;在本实施例中,所述获取单元301的具体内容可以参考上述步骤S101和步骤S401,此处不再重复赘述。
第一确定单元602,用于根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;本实施例中,所述第一确定单元602可以包括:第一获取子单元,第二获取子单元和确定子单元。所述第一获取子单元,用于获取所述目标元素模型光照方向的第一向量;所述第二获取子单元,用于获取所述目标元素模型顶点法线方向的第二向量;所述确定子单元,用于根据所述第一获取子单元中获取的所述第一向量和所述第二获取子单元获取的所述第二向量,确定所述目标元素模型与所述光照方向之间的夹角的夹角值。其中,在本实施例中,所述确定子单元具体可以用于根据所述第一向量和所述第二向量,采用点积方式计算所述夹角的余弦值。所述第一确定单元302的具体实现过程可以参考上述步骤S102的内容和步骤S402的内容。
第二确定单元603,用于根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;在本实施例中,所述第二确定单元603具体可以用于将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值;具体实现过程可以参考上述步骤S103的内容和步骤S403的内容。
第三确定单元604,用于根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;本实施例中,所述第三确定单元604可以包括:第一确定子单元和第二确定子单元,所述第一确定子单元可以用于根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;所述第二确定子单元可以用于将所述变化率中变化幅度最大值的绝对值对应的阴影区域,确定为所述阴影边缘区域。具体内容可以参考上述步骤S104和步骤S404的内容,此处不再重复赘述。
渲染单元605,用于对所述阴影边缘区域进行边缘渲染;本实施例中,所述渲染单元605可以包括:目标数据确定子单元和渲染子单元;所述目标数据确定子单元,用于根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据;所述渲染子单元,用于根据所述目标渲染数据对所述阴影边缘区域进行边缘渲染。在本实施例中,所述目标数据确定子单元可以包括:混合子单元和确定子单元;所述混合子单元,用于将所述待渲染数据按照确定的所述阴影边缘区域和所述基本渲染数据进行混合;所述确定子单元,用于将混合后的数据确定为所述目标渲染数据。根据所述目标渲染数据对所述阴影边缘区域进行渲染,输出阴影边缘区域具有渲染效果的游戏场景。
关于所述渲染单元605的具体实现过程可以参考上述步骤S405的内容,此处仅为概要性描述。
基于上述内容,本申请还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被处理器读取执行时,执行如下步骤:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域。
在一些实施例中,所述根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值,包括:
获取所述目标元素模型光照方向的第一向量;
获取所述目标元素模型顶点法线方向的第二向量;
根据所述第一向量和所述第二向量,确定所述目标元素模型与所述光照方向之间的夹角的夹角值。
在一些实施例中,所述根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值,包括:
根据所述第一向量和所述第二向量,采用点积方式计算所述夹角的余弦值。
在一些实施例中,所述根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值,包括:
将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
在一些实施例中,所述根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域,包括:
根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
将所述变化率中变化幅度最大值的绝对值对应的阴影区域,确定为所述阴影边缘区域。
或者,所述程序在被处理器读取执行时,执行如下步骤:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;
对所述阴影边缘区域进行边缘渲染。
在一些实施例中,所述根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值,包括:
获取所述目标元素模型顶点法线方向的第一向量;
获取所述目标元素模型光照方向的第二向量;
根据所述第一向量和所述第二向量,确定所述目标元素模型与所述光照方向之间夹角;
将所述夹角的余弦值,确定为所述夹角值。
在一些实施例中,所述根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角,包括:
根据所述第一向量和所述第二向量,采用点积方式计算所述夹角的余弦值。
在一些实施例中,所述根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值,包括:
将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
在一些实施例中,所述根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域,包括:
根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
将所述变化率中变化幅度最大值的绝对值对应的阴影区域,确定为所述阴影边缘区域。
在一些实施例中,所述对所述阴影边缘区域进行边缘渲染,包括:
根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据;
根据所述目标渲染数据对所述阴影边缘区域进行边缘渲染。
在一些实施例中,所述根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据,包括:
将所述待渲染数据、所述基本渲染数据、所述阴影边缘系数以及所述边缘强度数据进行混合;
将混合后的数据确定为所述目标渲染数据。
本申请还提供一种电子设备,如图7所示,所述电子设备实施例可以包括:
处理器701;
存储器702,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器701读取执行时,执行如下步骤:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域。
在一些实施例中,所述根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值,包括:
获取所述目标元素模型光照方向的第一向量;
获取所述目标元素模型顶点法线方向的第二向量;
根据所述第一向量和所述第二向量,确定所述目标元素模型与所述光照方向之间的夹角的夹角值。
在一些实施例中,所述根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值,包括:
根据所述第一向量和所述第二向量,采用点积方式计算所述夹角的余弦值。
在一些实施例中,所述根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值,包括:
将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
在一些实施例中,所述根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域,包括:
根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
将所述变化率中变化幅度最大值的绝对值对应的阴影区域,确定为所述阴影边缘区域。
或者,所述程序在被处理器701读取执行时,执行如下步骤:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;
对所述阴影边缘区域进行边缘渲染。
在一些实施例中,所述根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值,包括:
获取所述目标元素模型顶点法线方向的第一向量;
获取所述目标元素模型光照方向的第二向量;
根据所述第一向量和所述第二向量,确定所述目标元素模型与所述光照方向之间夹角;
将所述夹角的余弦值,确定为所述夹角值。
在一些实施例中,所述根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角,包括:
根据所述第一向量和所述第二向量,采用点积方式计算所述夹角的余弦值。
在一些实施例中,所述根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值,包括:
将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
在一些实施例中,所述根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域,包括:
根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
将所述变化率中变化幅度最大值的绝对值对应的阴影区域,确定为所述阴影边缘区域。
在一些实施例中,所述对所述阴影边缘区域进行边缘渲染,包括:
根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据;
根据所述目标渲染数据对所述阴影边缘区域进行边缘渲染。
在一些实施例中,所述根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据,包括:
将所述待渲染数据、所述基本渲染数据、所述阴影边缘系数以及所述边缘强度数据进行混合;
将混合后的数据确定为所述目标渲染数据。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

Claims (12)

1.一种阴影边缘的确定方法,其特征在于,包括:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域。
2.根据权利要求1所述的阴影边缘的确定方法,其特征在于,所述根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值,包括:
获取所述目标元素模型光照方向的第一向量;
获取所述目标元素模型顶点法线方向的第二向量;
根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值。
3.根据权利要求2所述的阴影边缘的确定方法,其特征在于,所述根据所述第一向量和所述第二向量,确定所述目标元素模型顶点法线方向与所述目标元素模型光照方向之间的夹角的夹角值,包括:
对所述第一向量和所述第二向量进行点积运算,获得点积结果;
根据所述点积结果确定所述夹角的余弦值;
将所述余弦值确定为所述夹角的夹角值。
4.根据权利要求1所述的阴影边缘的确定方法,其特征在于,所述根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值,包括:
将所述夹角值与所述第一阴影强度值的乘积,确定为所述第二阴影强度值。
5.根据权利要求1所述的阴影边缘的确定方法,其特征在于,所述根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域,包括:
根据所述第二阴影强度值和偏导函数,确定所述第二阴影强度值的变化率;
将选取的绝对值最大的所述变化率对应的所述第二阴影强度值,确定为目标阴影强度值;
将所述目标阴影强度值对应的阴影区域,确定为所述阴影边缘区域。
6.一种阴影边缘的确定装置,其特征在于,包括:
获取单元,用于获取游戏场景中针对目标元素模型设置的第一阴影强度值;
第一确定单元,用于根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
第二确定单元,用于根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
第三确定单元,用于根据获取的所述第二阴影强度值的变化率,确定所述阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域。
7.一种阴影边缘的渲染方法,其特征在于,包括:
获取游戏场景中针对目标元素模型设置的第一阴影强度值;
根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域;
对所述阴影边缘区域进行边缘渲染。
8.根据权利要求7所述的阴影边缘的渲染方法,其特征在于,所述对所述阴影边缘区域进行边缘渲染,包括:
根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据;
根据所述目标渲染数据对所述阴影边缘区域进行边缘渲染。
9.根据权利要求8所述的阴影边缘的渲染方法,其特征在于,所述根据设置的所述阴影边缘区域的待渲染数据、所述目标元素模型的基本渲染数据,阴影边缘系数以及边缘强度数据,确定目标渲染数据,包括:
将所述待渲染数据、所述基本渲染数据、所述阴影边缘系数以及所述边缘强度数据进行混合;
将混合后的数据确定为所述目标渲染数据。
10.一种阴影边缘的渲染装置,其特征在于,包括:
获取单元,用于获取游戏场景中针对目标元素模型设置的第一阴影强度值;
第一确定单元,用于根据所述目标元素模型顶点法线方向与所述目标元素模型光照方向,确定所述目标元素模型与所述光照方向之间的夹角的夹角值;
第二确定单元,用于根据所述夹角值和所述第一阴影强度值,确定第二阴影强度值;
第三确定单元,用于根据获取的所述第二阴影强度值的变化率,确定阴影边缘区域;其中,所述阴影边缘区域包括所述目标元素模型在光照空间中投影的阴影边缘区域,以及所述目标元素模型在光照空间中自身的阴影边缘区域;
渲染单元,用于对所述阴影边缘区域进行边缘渲染。
11.一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被处理器读取执行时,执行如上述权利要求1-5任意一项所述的阴影边缘的确定方法;或者,执行如上述权利要求7至9任意一项所述的阴影边缘的渲染方法。
12.一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如上述权利要求1-5任意一项所述的阴影边缘的确定方法;或者,执行如上述权利要求7至9任意一项所述的阴影边缘的渲染方法。
CN202111669303.9A 2021-12-30 2021-12-30 一种阴影边缘的确定和渲染方法,存储介质和电子设备 Pending CN114288649A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111669303.9A CN114288649A (zh) 2021-12-30 2021-12-30 一种阴影边缘的确定和渲染方法,存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111669303.9A CN114288649A (zh) 2021-12-30 2021-12-30 一种阴影边缘的确定和渲染方法,存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN114288649A true CN114288649A (zh) 2022-04-08

Family

ID=80973001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111669303.9A Pending CN114288649A (zh) 2021-12-30 2021-12-30 一种阴影边缘的确定和渲染方法,存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN114288649A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118038191A (zh) * 2024-04-11 2024-05-14 山东农业大学 融合阴影动态变化的城市下垫面识别方法、系统、装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118038191A (zh) * 2024-04-11 2024-05-14 山东农业大学 融合阴影动态变化的城市下垫面识别方法、系统、装置

Similar Documents

Publication Publication Date Title
US10621767B2 (en) Fisheye image stitching for movable cameras
US10275928B2 (en) Dual fisheye image stitching for spherical image content
CN111508052B (zh) 三维网格体的渲染方法和装置
TWI578266B (zh) 藉由近似頂點至彎曲視埠上的投影在圖形處理中隨螢幕位置變化有效解析度
US6947057B2 (en) Rendering lines with sample weighting
US8035641B1 (en) Fast depth of field simulation
KR100913459B1 (ko) 픽셀 중심 위치 변위
US10614619B2 (en) Graphics processing systems
KR100896155B1 (ko) 내장형 디바이스의 플렉시블 안티에일리어싱
JP4705357B2 (ja) ナチュラルライティング環境における物体のリアルタイムのリライティングに対する堅牢なサンプリングのためのシステムおよび方法
US9589386B2 (en) System and method for display of a repeating texture stored in a texture atlas
CN111968215A (zh) 一种体积光渲染方法、装置、电子设备及存储介质
US10089776B2 (en) Graphics processing systems
CN108805971B (zh) 一种环境光遮蔽方法
US7038678B2 (en) Dependent texture shadow antialiasing
JP2007066064A (ja) 画像生成装置及びプログラム
US8854392B2 (en) Circular scratch shader
CN114288649A (zh) 一种阴影边缘的确定和渲染方法,存储介质和电子设备
US10672177B2 (en) Using directional irradiance data for selecting the distribution of sampling rays in a final gather step in graphics processing
CN116664752A (zh) 基于图案化光照实现全景显示的方法、系统及存储介质
EP3437072B1 (en) System and method for rendering points without gaps
US20230274493A1 (en) Direct volume rendering apparatus
CN114832375A (zh) 环境光遮蔽处理方法、装置及设备
GB2535792A (en) Graphic processing systems
Isidoro Shadow mapping: Gpu-based tips and techniques

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination