CN111476877A - 一种阴影渲染的方法及装置、电子设备、存储介质 - Google Patents
一种阴影渲染的方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111476877A CN111476877A CN202010311224.XA CN202010311224A CN111476877A CN 111476877 A CN111476877 A CN 111476877A CN 202010311224 A CN202010311224 A CN 202010311224A CN 111476877 A CN111476877 A CN 111476877A
- Authority
- CN
- China
- Prior art keywords
- orientation
- information
- grid
- target
- mesh
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 141
- 238000000034 method Methods 0.000 title claims abstract description 108
- 238000012545 processing Methods 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 17
- 230000035945 sensitivity Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 abstract description 39
- 230000008569 process Effects 0.000 abstract description 29
- 238000009434 installation Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 12
- 238000005286 illumination Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 235000019557 luminance Nutrition 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例提供了一种阴影渲染的方法及装置、电子设备、存储介质,所述方法包括:获取网格模型;确定所述网格模型中目标网格相对于虚拟光源的第一朝向;确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息,实现了通过遮挡强度对网格模型进行阴影渲染,在不依赖实时影和ShadowMap的情况下提供了逼真的阴影效果,减少了终端设备的性能消耗,提高了游戏与终端的兼容性,且渲染过程无需使用大量高精度贴图,降低安装包包体大小。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种阴影渲染的方法及装置、电子设备、存储介质。
背景技术
随着计算机技术发展,游戏中的交互越发频繁,在虚拟游戏世界中存在大量的模拟现实存在的植物景观,为了表现真实,通常会开启自阴影,植被阴影效果在游戏中需要大量的使用。
在现有技术中,可以通过传统的贴图方式烘培自阴影,或者通过采用实时影与ShadowMap结合的技术生成阴影。
然而,若采用实时影和ShadowMap,阴影渲染绘制中,终端设备会产生较大的性能消耗,影响帧率与设备发热,且在中低端设备中兼容度不高,导致部分游戏为了效率删除了自阴影效果,难以为玩家提供逼真的虚拟世界,沉浸感和互动性大大降低
若采用传统的贴图方式烘培自阴影,由于贴图大小与阴影精度有着直接关系,为了提供逼真的阴影效果,需要下载更多的贴图资源,影响安装包包体和内存占用,并且,由于该方法仅仅是根据贴图进行渲染,无法动态适配灯光朝向的变化。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种阴影渲染的方法及装置、电子设备、存储介质,包括:
一种阴影渲染的方法,所述方法包括:
获取网格模型;
确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
可选地,所述确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息,包括:
从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段;
获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息;
根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
可选地,所述从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段,包括:
从所述目标网格的每个顶点出发分别朝所述第一朝向引出一条预设长度的线段;
所述获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息,包括:
确定所述目标网格中每个顶点对应的线段与所述网格模型的相交数量;
根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息。
可选地,所述根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息,包括:
将所述目标网格中每个顶点的相交数量的平均值作为所述目标网格对应的线段与所述网格模型中其他网格的相交数量。
可选地,所述根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息,包括:
获取预置的敏感值参数;
结合所述敏感值参数和所述相交信息,得到所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
可选地,在所述根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息之前,还包括:
获取风格化参数;
采用所述风格化参数,对所述遮挡强度信息进行调整。
可选地,所述方法还包括:
分别获取所述目标网格在第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息;其中,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度。
可选地,所述根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息,包括:
根据所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息,确定用于渲染所述目标网格的纹理坐标信息。
可选地,所述方法还包括:
将所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息中的任意两个遮挡强度信息保存于所述目标网格的顶点的第二套纹理坐标中,将剩余的两个遮挡强度信息保存于所述目标网格的顶点的第三套纹理坐标中。
可选地,所述方法还包括:
获取所述目标网格对应的叶子朝向信息,并存储于所述目标网格的顶点的第四套纹理坐标中;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息。
一种阴影渲染的方法,所述方法包括:
获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
确定所述当前朝向相对于所述第一朝向的权重信息;
结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染。
可选地,所述采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染,包括:
获取预设的阴影控制参数;
采用所述阴影控制参数,确定所述当前遮挡强度信息对应的遮挡强度处理信息;
结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染。
可选地,所述结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染,包括:
获取叶子朝向信息;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息;
结合所述当前遮挡强度信息、所述遮挡强度处理信息,以及所述叶子朝向信息,对所述网格模型进行阴影渲染。
可选地,所述目标网格的纹理坐标信息中还包括所述目标网格在预设的第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度,所述方法还包括:
分别确定所述当前朝向相对于所述第二朝向、所述第三朝向和所述第四朝向的权重信息。
可选地,所述结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息,包括:
结合所述遮挡强度信息和所述当前朝向相对于所述第一朝向、所述第二朝向、所述第三朝向和所述第四朝向的权重信息,得到当前遮挡强度信息。
一种阴影渲染的装置,所述装置包括:
网格模型获取模块,用于获取网格模型;
第一朝向确定模块,用于确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
第一遮挡信息确定模块,用于确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
纹理坐标信息确定模块,用于根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
一种阴影渲染的装置,所述装置包括:
当前朝向获取模块,用于获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
第一权重信息确定模块,用于确定所述当前朝向相对于所述第一朝向的权重信息;
当前遮挡信息确定模块,用于结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
阴影渲染模块,用于采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的阴影渲染的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的阴影渲染的方法的步骤。
本申请实施例具有以下优点:
在本申请实施例中,通过获取网格模型,确定网格模型中目标网格相对于虚拟光源的第一朝向,确定目标网格在第一朝向被网格模型中其他网格遮挡的遮挡强度信息,根据遮挡强度信息确定用于渲染目标网格的纹理坐标信息,实现了通过遮挡强度对网格模型进行阴影渲染,在不依赖实时影和ShadowMap的情况下提供了逼真的阴影效果,减少了终端设备的性能消耗,提高了游戏与终端的兼容性,且渲染过程无需使用大量高精度贴图,降低安装包包体大小。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的一种阴影渲染的方法的步骤流程图;
图2是本申请一实施例提供的另一种阴影渲染的方法的步骤流程图;
图3是本申请一实施例提供的另一种阴影渲染的方法的步骤流程图;
图4是本申请一实施例提供的另一种阴影渲染的方法的步骤流程图;
图5是本申请一实施例提供的阴影灰度图的示意图;
图6是本申请一实施例提供的另一种阴影渲染的方法的步骤流程图;
图7是本申请一实施例提供的阴影渲染过程示意图;
图8a是本申请一实施例提供的一种阴影效果渲染图;
图8b是本申请一实施例提供的另一种阴影效果渲染图;
图8c是本申请一实施例提供的另一种阴影效果渲染图;
图9是本申请一实施例提供的一种阴影渲染的装置的结构示意图;
图10是本申请一实施例提供的一种阴影渲染的装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在计算机图形学领域中,在三维计算机图形中加入阴影的过程可以称为“ShadowMap”。在该过程中,可以先以灯光为视角对场景进行绘制,将场景内物体相对光源的深度信息写入一张阴影图中(Shadow Map)。在第二遍绘制场景时,可以逐像素对比相对光源的深度值与阴影图中的深度,当深度大于阴影图中的深度时,可以确定该像素处于阴影中,可以进一步进行相应的阴影混合。基于ShadowMap的技术特点,该方法在锥光源(spotlight)下可以产生优秀的阴影效果,而在点光源(point light)下利用ShadowMap生成阴影时,可以结合六张阴影图实现全景点光源的ShadowMap(即Cubemap方法)。
另一种加入阴影的方法是通过“Lightmap”实现,即采用预先设置贴图纹理(texture),该贴图纹理存储了从场景(scene)中直接烘焙而来的灯光信息,灯光信息可以是直接光信息或间接光信息;通过该贴图可以还原灯光照明的效果。由于Lightmap可以减少CPU调用图像编程接口的次数,即减少镜头物体的draw call,灯光无需实时计算,可以提升游戏性能。
然而,在游戏过程中进行植物的阴影渲染,若采用实时影和ShadowMap,常常会产生比较大的性能消耗,影响发热与帧率,在中低端设备中兼容度不高,导致部分游戏为了效率删除了自阴影效果,难以为玩家提供逼真的虚拟世界,沉浸感和互动性大大降低
若采用Lightmap等传统的贴图方式烘培自阴影,由于贴图大小与阴影精度有着直接关系,为了提供逼真的阴影效果,需要下载更多的贴图资源,影响包体和内存占用,并且,由于该方法仅仅是根据贴图进行渲染,无法动态适配灯光朝向的变化。
为了提供逼真的阴影效果并降低终端设备的性能消耗、包体大小和内存占用情况,本申请提供了一种阴影渲染的方法及装置、电子设备、存储介质。
参照图1,示出了本申请一实施例提供的一种阴影渲染的方法的步骤流程图,具体可以包括如下步骤:
步骤101,获取网格模型;
作为一示例,网格模型可以是针对游戏中具有特征行为的虚拟对象设置的模型,网格模型可以通过网格物体文件(即Mesh文件)存储。
具体而言,网格模型也可以称为网格物体(即Mesh),网格模型可以是通过三维建模软件编辑点、面等信息后得到的。具体的,可以通过多个三角形的点和面构造三维虚拟对象,例如一个三维球体,可以通过多个形状、大小不一的三角形组成点和面。
网格物体可以包括以下一种或多种属性:
顶点,三角形,UV纹理坐标,法线、切线。
网格物体可以具有如下属性信息:网格顶点数组(vertices);网格的法线数组(normals);网格的切线数组(tangents);UV网格的基础纹理坐标;UV2网格的第二纹理坐标;bounds网格的包围盒;网格的顶点颜色数组(colors);包含所有三角形的顶点索引数组(triangles);网格中的顶点数量(vectexCount);子网格的数量(subMeshCount),三维建模软件中的每个材质都可以有一个独立的网格列表,网格列表中可以记录子网格数量;每个顶点的骨骼权重(bonesWeights);绑定姿势(bindposes),索引对应的姿势可以使用相同的索引骨骼。
在实际应用中,可以在数据库中预先存储针对三维游戏中虚拟对象的网格模型,并从数据库中获取网格模型。
本申请实施例可以应用于三维计算机图形软件中。三维计算机图形软件可运行于Linux、Windows和Mac OS等操作系统,可以是基于节点模式运行的软件,可以处理各种数字内容创作(DCC,Digital Content Creation)软件生成的数据,例如3ds max,maya等软件。
在具体实现中,可以利用三维计算机图形软件的python节点和脚本,读取预设格式的Mesh文件,从Mesh文件中获取一个或多个网格物体属性信息,如顶点位置信息、顶点序列信息、UV纹理坐标、法线信息等,并在三维计算机图形软件中生成与网格物体属性信息对应的网格模型。
在实际应用中,虽然也可以采用Autodesk FBX软件编辑的FBX文件进行跨平台的三维创作和格式交换,通过Autodesk FBX访问、查看三维软件文件,但将其他格式的三维软件文件转换为FBX文件的过程繁琐。
在本申请一示例中,预设格式的Mesh文件可以是应用于跨平台引擎的Mesh文件,如应用于游戏引擎平台中的Mesh文件。通过读取游戏引擎对应格式的Mesh文件,避免通过繁琐的步骤将Mesh文件转换为通用的FBX格式文件后再进行数据读取,降低了网格模型的制作和获取的复杂程度。
步骤102,确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
在具体实现中,网格模型可以由一个或多个网格组成,一个或多个网格中可以包括目标网格,游戏场景中可以预先设置虚拟光源。在获取网格模型后,可以确定网格模型中的目标网格,并确定目标网格相对于虚拟光源的第一朝向。
具体的,在设置虚拟光源时,可以对虚拟光源的光线俯仰角信息α进行设置,则虚拟光源可以是角度为α的一束或多束平行光。在确定光线俯仰角信息后,可以结合光线俯仰角信息确定目标网格相对于虚拟光源的第一朝向。具体而言,当光线俯仰角信息为α时,可以确定目标网格相对于虚拟光源的第一朝向为(cosα,sinα,0)。
在本申请实施例中,通过采用光线俯仰角信息确定相对于虚拟光源的第一朝向,可以令第一朝向与光线俯仰角信息保持对应关系,当光线俯仰角信息发生变化时,在对应平面上的俯仰向量为(cosα,sinα),第一朝向也相应发生变化。
步骤103,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
作为一实例,遮挡强度信息可以确定目标网格被其他网格遮挡的程度。
在实际应用中,物体可以通过互相遮蔽产生阴影效果。网格模型中的多个网格可以互相遮挡产生阴影。在确定第一朝向后,可以确定在第一朝向的方向中,目标网格被网格模型中其他网格遮挡的遮挡强度信息。
在具体实现中,遮蔽可以是对环境光的遮蔽,环境光的遮蔽可以是一种光照模型,通过光照模型可以计算像素亮度与游戏场景中预设范围内的物体之间的关系,具体而言,光照模型可以确定在一预设时刻阻止特定像素接收预设范围内几何体的环境光,使特定像素的亮度值降低,当两个均匀明亮的物体相互靠近时,可以产生变光效果。
步骤104,根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
在确定遮挡强度信息后,可以采用遮挡强度信息确定目标网格的纹理坐标信息,并结合纹理坐标信息对目标网格进行渲染,得到阴影效果。
目标网格可以具有多组纹理坐标信息,纹理坐标信息也可以称为UV,在实际应用中,在确定遮挡强度信息后,可以将遮挡强度信息确定为其中的一组或多组纹理坐标信息。
在本申请实施例中,通过获取网格模型,确定网格模型中目标网格相对于虚拟光源的第一朝向,确定目标网格在第一朝向被网格模型中其他网格遮挡的遮挡强度信息,根据遮挡强度信息确定用于渲染目标网格的纹理坐标信息,实现了通过遮挡强度对网格模型进行阴影渲染,在不依赖实时影和ShadowMap的情况下提供了逼真的阴影效果,减少了终端设备的性能消耗,提高了游戏与终端的兼容性,且渲染过程无需使用大量高精度贴图,降低安装包包体大小。
参照图2,示出了本申请一实施例提供的另一种阴影渲染的方法的步骤流程图。
所述确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息,可以包括:
从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段;
获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息;
根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
所述从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段,可以包括:
从所述目标网格的每个顶点出发分别朝所述第一朝向引出一条预设长度的线段;
所述获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息,可以包括:
确定所述目标网格中每个顶点对应的线段与所述网格模型的相交数量;
根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息。
所述根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息,可以包括:
将所述目标网格中每个顶点的相交数量的平均值作为所述目标网格对应的线段与所述网格模型中其他网格的相交数量。
所述根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息,可以包括:
获取预置的敏感值参数;
结合所述敏感值参数和所述相交信息,得到所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
在所述根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息之前,还可以包括:
获取风格化参数;
采用所述风格化参数,对所述遮挡强度信息进行调整。
具体的,可以包括如下步骤:
步骤201,获取网格模型;
步骤202,确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
步骤203,从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段;
在具体实现中,目标网格可以具有顶点,在确定第一朝向后,可以从目标网格的顶点为起始点,朝第一朝向引出一预设长度的线段。
在引出预设长度为β的线段时,β可以取任意大小的数值,例如取β为10。在β小于预设长度阈值时,线段将无法与大于预设长度阈值外的其他网格相交,基于此,可以设置β大于预设长度阈值。
在本申请一实施例中,步骤203可以包括如下子步骤:
从所述目标网格的每个顶点出发分别朝所述第一朝向引出一条预设长度的线段。
在实际应用中,目标网格可以是渲染的基础单位,当网格模型为针对虚拟植物对象的网格模型时,目标网格也可以称为连续叶片网格。
目标网格可以由一个或多个连续的三角形组成,目标网格中的三角形的顶点可以是目标网格的顶点,具体的,可以分别以目标网格中的每一个顶点为起点,朝第一朝向引出一条预设长度的线段。
例如,当目标网格由一个三角形组成时,目标网格的顶点可以是该三角形的顶点;当目标网格由多个三角形组成时,目标网格的顶点可以是多个三角形的顶点。
步骤204,获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息;
在具体实现中,网格模型中的网格可以互相遮蔽。在引出预设长度的线段后,由于网格之间互相遮蔽,预设长度的线段可以与网格模型中的其他网格相交,进而可以获取目标网格对应的线段与网格模型中其他网格的相交信息。
在本申请一实施例中,步骤204可以包括如下子步骤:
子步骤11,确定所述目标网格中每个顶点对应的线段与所述网格模型的相交数量;
在实际应用中,目标网格可以具有多个顶点,可以从每个顶点引出预设长度的限度,并确定每个顶点对应的线段与网格模型中其他网格的相交数量,相交数量可以是线段与网格模型中其他网格相交的次数。
子步骤12,根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息。
在确定每个顶点的相交数量后,可以采用目标网格中多个顶点对应的相交数量,确定从目标网格顶点引出的线段与网格模型中其他网格的相交信息。
在本申请一实施例中,子步骤12可以包括如下子步骤:
将所述目标网格中每个顶点的相交数量的平均值作为所述目标网格对应的线段与所述网格模型中其他网格的相交数量。
在确定目标网格对应的线段与其他网格的相交信息时,可以采用每个顶点的相交数量和顶点数量确定每个顶点相交数量的平均值,并将该平均值确定为相交数量和该目标网格的相交信息。
例如,目标网格包括两个三角形,则目标网格对应的顶点数为4,在第一朝向下,光线俯仰角信息为α,则4个顶点对应的朝向信息可以都为(cosα,sinα,0)。分别以每一顶点为起始点,可以作长度为10、第一朝向为(cosα,sinα,0)的线段,当检查到4条线段与网格模型中其他网格的相交数量分别为3、4、4、5时,可以得到平均值4,并确定目标网格的相交信息为4。
步骤205,根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
在得到相交信息后,可以采用相交信息确定目标网格在第一朝向中,被网格模型中其他网格遮挡的遮挡强度信息。
在本申请一实施例中,步骤205可以包括如下子步骤:
获取预置的敏感值参数;结合所述敏感值参数和所述相交信息,得到所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
在实际应用中,可以预先在数据库中存储敏感值参数,在获取相交信息后,可以获取预置的敏感值参数,并采用敏感值参数和相交信息,确定目标网格在第一朝向中,被网格模型中其他网格遮挡的遮挡强度信息。
具体的,可以计算相交信息与敏感值参数的比值,并将该比值确定为第一朝向的遮挡强度信息,遮挡强度信息可以是属于区间[0,1]的数值。
例如,当敏感值参数为8,相交信息为4时,可以得到遮挡强度信息为0.5。
步骤206,获取风格化参数;
作为一示例,风格化参数可以包括以下一项或多项:
光线俯仰角信息、灰阶数量信息、第一阴影阈值、第二阴影阈值、第三阴影阈值、线段长度信息、预览方向信息。
在具体实现中,可以在数据库中预先存储风格化参数,在确定遮挡强度信息后,可以获取风格化参数。
步骤207,采用所述风格化参数,对所述遮挡强度信息进行调整;
在获取风格化参数后,可以采用风格化参数对遮挡强度信息进行调整。通过结合风格化参数对遮挡强度信息进行调整,可以获取不同的渲染效果,
具体的,第一阴影阈值可以小于第二阴影阈值,第二阴影阈值可以小于第三阴影阈值。
当遮挡强度信息小于第一阴影阈值时,可以将遮挡强度信息调整为0,在进行阴影渲染时。
当遮挡强度信息大于第一阴影阈值且小于第二阴影阈值时,可以将遮挡强度信息调整为0.33;当遮挡强度信息大于第二阴影阈值且小于第三阴影阈值时,可以将遮挡强度信息调整为0.66。当遮挡强度信息大于第三阴影阈值时,可以将遮挡强度信息调整为1。
在具体实现中,当遮挡强度信息小于0.33时,可以将目标网格对应的虚拟对象完全覆盖在阴影之中;当遮挡强度信息大于0.66时,目标网格对应的虚拟对象可以不渲染阴影;当遮挡强度信息大于0.33且小于0.66时,目标网格对应的虚拟对象可以具有动态变化的阴影效果。
步骤208,根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
在确定遮挡强度信息后,可以采用遮挡强度信息确定目标网格的纹理坐标信息,并结合纹理坐标信息对目标网格进行渲染,得到阴影效果。
在本申请实施例中,通过从目标网格的顶点出发朝第一朝向引出预设长度的线段,获取目标网格对应的线段与网格模型中其他网格的相交信息,根据相交信息,确定目标网格在第一朝向被网格模型中其他网格遮挡的遮挡强度信息,获取风格化参数,采用风格化参数对遮挡强度信息进行调整,并根据遮挡强度信息确定用于渲染目标网格的纹理坐标信息,实现了通过从目标网格引出的线段对遮挡强度信息进行量化,更精准地确定遮挡强度,且可以根据游戏场景对遮挡强度进行调整,提高了虚拟对象的渲染层次。
参照图3,示出了本申请一实施例提供的另一种阴影渲染的方法的步骤流程图。
所述根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息,可以包括:
根据所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息,确定用于渲染所述目标网格的纹理坐标信息。
具体的,可以包括如下步骤:
步骤301,获取网格模型;
步骤302,确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
步骤303,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
步骤304,分别获取所述目标网格在第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息;其中,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度;
在确定第一朝向中目标网格的遮挡强度信息后,可以分别获取在第二朝向、第三朝向和第四朝向中,目标网格被网格模型中的其他网格遮挡的遮挡强度信息。第二朝向、第三朝向和第四朝向可以是目标网格相对于虚拟光源的朝向,在第二朝向、第三朝向和第四朝向中,虚拟光源的光线俯仰角信息可以与第一朝向的光线俯仰角信息相同。
在同一平面中,第二朝向与第一朝向相差90度,第三朝向与第一朝向相差180度,第四朝向与第一朝向相差270度。具体的,在采用预设长度的线段获取第一朝向的遮挡强度信息后,可以将该线段依次水平逆时针旋转90度、180度和270度,获取目标网格在第二朝向、第三朝向和第四朝向的遮挡强度信息。
步骤305,根据所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息,确定用于渲染所述目标网格的纹理坐标信息;
在确定第二朝向、第三朝向和第四朝向的遮挡强度信息后,可以采用第一朝向的遮挡强度信息、第二朝向的遮挡强度信息、第三朝向的遮挡强度信息和第四朝向的遮挡强度信息,确定目标网格的纹理坐标信息。
步骤306,将所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息中的任意两个遮挡强度信息保存于所述目标网格的顶点的第二套纹理坐标中,将剩余的两个遮挡强度信息保存于所述目标网格的顶点的第三套纹理坐标中。
在实际应用中,目标网格中的每个顶点可以具有多套纹理坐标。在确定目标网格在第一朝向的遮挡强度信息、在第二朝向的遮挡强度信息、在第三朝向的遮挡强度信息,以及在第四朝向的遮挡强度信息后,可以将其中的任意两个遮挡强度信息保存于目标网格对应顶点的二套纹理坐标中,并将剩余的两个遮挡强度信息保存于该顶点的第三套纹理坐标中。
具体的,可以利用三维计算机图形软件的python节点,将遮挡强度信息保存于网格模型对应顶点的UV中。在保存遮挡强度信息时,可以确定游戏引擎中Mesh文件的数据组织方式,采用遮挡强度信息替换Mesh文件中UV部分的数据。
由于每个顶点的一套UV可以记录2个浮点信息,当顶点具有四个朝向对应的遮挡强度信息时,可以采用UV2(第二套纹理坐标)和UV3(第三套纹理坐标)分别记录四个遮挡强度信息。
在采用光照贴图进行渲染时,顶点的UV2可以记录光照贴图的纹理坐标。而在本申请的实施例中,由于可以不依赖光照贴图以及包含光照贴图纹理坐标的原始UV2,可以采用遮挡强度信息对网格模型中的UV进行替换,使得在阴影渲染过程中无需依赖原UV2信息以及光照贴图,并且通过覆盖原始UV2的通道记录,可以避免数据冗余。
当然,也可以不对原始UV2的通道记录进行覆盖,而是将四个遮挡强度信息写入UV3、UV4中,在进行渲染时,可以从UV3和UV4对应的通道中读取遮挡强度信息。
在一示例中,在对数据进行处理时,还可以自定义三维计算机图形软件的批处理节点,遍历每个文件夹中的Mesh文件,并根据命名规则筛选出于命名规则对应的Mesh文件,批量完成Mesh文件的读取、修改、写入和操作。
在本申请一实施例中,所述方法还可以包括如下步骤:
获取所述目标网格对应的叶子朝向信息,并存储于所述目标网格的顶点的第四套纹理坐标中;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息。
具体的,网格模型可以是针对虚拟植物对象的网格模型,虚拟植物对象的网格模型可以由多个网格组成,多个网格中可以包括针对虚拟植物对象的叶子的网格。在游戏中,虚拟植物对象有着透明、双面显示、镜头下重叠部分面积大等特点。
针对叶子的目标网格可以具有对应的叶子朝向信息,叶子朝向信息可以是叶片指向叶尖的朝向信息,也可以是叶根指向叶尖的朝向信息。
在实际应用中,可以获取目标网格的叶子朝向信息,并将叶子朝向信息存储于目标网格顶点的第四套纹理坐标中。
具体而言,虚拟植物对象中的大部分叶片可以被设置为纵向布置,即底部为根部,顶端为尖端,在进行渲染时,结合呈现效果和效率、成本的考虑,可以不在顶点对应的纹理坐标中记录叶子朝向信息,而默认采用(0,1)为叶子朝向信息对目标网格进行调整。
而在本申请实施例中,可以获取叶片或叶根指向叶尖的叶子方向信息,并采用叶子方向信息对目标网格进行调整,针对每一目标网格分别获取叶子朝向信息,更准确地确定目标网格的朝向,并在目标网格顶点的UV4(第四套纹理坐标)中记录切线空间中的叶子朝向信息。通过结合目标网格叶子朝向信息对目标网格进行调整,可以提供更真实逼真的渲染效果。
例如,当虚拟植物对象的叶片对应的UV以及贴图采用横向布置,即左边为叶尖,右边为叶根,则可以及时调整叶子方向信息为(-1,0)。
在本申请实施例中,通过确定目标网格在第一朝向被网格模型中其他网格遮挡的遮挡强度信息,分别获取目标网格在第二朝向、第三朝向和第四朝向被网格模型中其他网格遮挡的遮挡强度信息,根据目标网格在第一朝向的遮挡强度信息、在第二朝向的遮挡强度信息、在第三朝向的遮挡强度信息和在第四朝向的遮挡强度信息,确定用于渲染目标网格的纹理坐标信息,实现了通过多个朝向的遮挡强度确定目标网格的纹理坐标信息,通过预先获取不同朝向的遮挡强度,在阴影渲染过程中,既可以准确地展示在不同方向上的阴影渲染效果,也可以避免完全依赖实时计算,降低设备的性能消耗,且渲染过程无需使用大量高精度贴图,显著降低安装包包体大小。
参照图4,示出了本申请一实施例提供的另一种阴影渲染的方法的步骤流程图,具体可以包括如下步骤:
步骤401,获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
在具体实现中,可以在游戏过程中确定网格模型中目标网格相对于虚拟光源的当前朝向,目标网格可以具有纹理坐标信息,纹理坐标信息中可以存储有目标网格在预设的第一朝向中,被网格模型中其他网格遮挡的遮挡强度信息。
具体的,本申请实施例可以应用于游戏引擎中,目标网格相对于虚拟光源的当前朝向,可以是在预先设置游戏场景时所利用的模型空间中,目标网格相对于虚拟光源的朝向。
例如,目标网格在模型空间中相对于虚拟光源的朝向为(0.5,0.5,-0.5),在模型空间转移至世界空间的过程中,可以对该朝向进行标准化向量操作,将向量的长度归为1,转换为normalize(0.5,0.5,0),该朝向为世界空间中目标网格相对于虚拟光源的朝向。
在转换过程中,若朝向没有进行旋转变化,则世界空间中目标网格相对于虚拟光源的朝向与模型空间中的相同,可以将世界空间中目标网格相对于虚拟光源的朝向确定为当前朝向。
若目标网格在进行了旋转变化,比如水平顺时针旋转了90度,则可以将得到在模型空间中,目标网格相对于虚拟光源的当前朝向为normalize(-0.5,0.5,0)。
步骤402,确定所述当前朝向相对于所述第一朝向的权重信息;
在确定当前朝向后,可以进一步确定当前朝向相对于第一朝向的权重信息。
具体的,可以预先保存目标网格在模型空间中的第一朝向,在确定目标网格相对于虚拟光源的当前朝向后,可以结合第一朝向和当前朝向,确定当前朝向相对于第一朝向的权重信息。
步骤403,结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
在确定权重信息后,可以从目标网格的纹理坐标信息中获取目标网格在第一朝向的遮挡强度信息,并结合该遮挡强度信息和权重信息,得到目标网格在当前朝向下的当前遮挡强度信息。
步骤404,采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染。
在获取当前遮挡强度信息后,可以采用当前遮挡强度信息对网格模型进行阴影渲染。
相比于在实际渲染过程中进行两次渲染的实时影,本申请实施例中的遮挡强度信息可以在游戏离线状态下,通过计算预先处理得到的,由于可以不依赖ShadowMap,可以避免实时影方法中进行两次绘制的过程,有效降低渲染过程中设备的性能压力,减少发热量,提高了在中低端设备中的兼容性。
在具体实现中,可以预先设置一阴影灰度图,如图5所示,该阴影灰度图可以通过二维软件制作。通过使用阴影灰度图,可以产生叶片阴影斑驳的模拟效果,阴影灰度图中的叶片轮廓可以与实际叶片一致,根据叶片种类预设对应的阴影灰度图;或者,在叶片种类近似时可以采用相同的阴影灰度图。
在具体实现中,可以在游戏引擎数据处理过程中的vertex层(顶点层)获取当前遮挡强度信息,并在确定遮挡强度处理信息后,可以在引擎中导入阴影灰度图,在pixel(像素)层中通过Shader(着色器),对网格模型进行阴影渲染,实现动态阴影效果。
在计算机图形学领域中,着色器是一种计算机程序,可以用于进行图像的浓淡处理,如计算图像中的光照、亮度、颜色等。
随着科学技术的发展,着色器也被用于完成很多不同领域的工作,比如处理CG(Computer Graphics,计算机动画)特效、进行与浓淡处理无关的影片后期处理、或者用于一些与计算机图形学无关的其它领域。
使用着色器在图形硬件上计算渲染效果可以有很高的自由度。大多数着色器可以针对GPU开发,通过GPU的可编程绘图管线,可以使用着色器语言对其编程,构成最终图像的像素、顶点、纹理,它们的位置、色相、饱和度、亮度、对比度也都可以利用着色器中定义的算法进行动态调整。在实际应用中,可以调用着色器的外部程序,也可以利用它向着色器提供的外部变量、纹理来修改这些着色器中的参数。
在在图像图像处理过程,可以划分顶点层和像素层。顶点层可以逐一根据目标网格中的顶点进行逻辑计算,再通过硬件插值给像素层逐像素使用,通过分别在顶点层和像素层进行数据里,比直接在像素层中进行计算消耗更低,在实际应用中,可以把精度要求低于预设预置的计算移到顶点层,降低渲染压力。
在本申请实施例中,通过获取网格模型中目标网格相对于虚拟光源的当前朝向,目标网格的纹理坐标信息中包括目标网格在预设的第一朝向被网格模型中其他网格遮挡的遮挡强度信息,确定当前朝向相对于第一朝向的权重信息,结合权重信息和遮挡强度信息,得到当前遮挡强度信息,采用当前遮挡强度信息,对网格模型进行阴影渲染,实现了利用实时获取的当前朝向和预计算得到遮挡强度对网格模型进行阴影渲染,阴影可以根据游戏场景中光照水平朝向的变化而变化,在不依赖实时影和ShadowMap的情况下提供了逼真的阴影效果,减少了终端设备的性能消耗,提高了游戏与终端的兼容性,且渲染过程无需使用大量高精度贴图,降低安装包包体大小。
参照图6,示出了本申请一实施例提供的另一种阴影渲染的方法的步骤流程图。
所述采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染,可以包括:
获取预设的阴影控制参数;
采用所述阴影控制参数,确定所述当前遮挡强度信息对应的遮挡强度处理信息;
结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染。
所述结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染,可以包括:
获取叶子朝向信息;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息;
结合所述当前遮挡强度信息、所述遮挡强度处理信息,以及所述叶子朝向信息,对所述网格模型进行阴影渲染。
所述结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息,可以包括:
结合所述遮挡强度信息和所述当前朝向相对于所述第一朝向、所述第二朝向、所述第三朝向和所述第四朝向的权重信息,得到当前遮挡强度信息。
具体的,可以包括如下步骤:
步骤601,获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
步骤602,确定所述当前朝向相对于所述第一朝向的权重信息;
步骤603,结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
在确定权重信息后,可以从目标网格的纹理坐标信息中获取目标网格在第一朝向的遮挡强度信息,并结合该遮挡强度信息和权重信息,得到目标网格在当前朝向下的当前遮挡强度信息。
在本申请一实施例中,目标网格的纹理坐标信息中还可以包括目标网格在预设的第二朝向、第三朝向和第四朝向被网格模型中其他网格遮挡的遮挡强度信息,第二朝向、第三朝向和第四朝向都可以是目标网格相对于虚拟光源的朝向,且第二朝向、第三朝向和第四朝向与第一朝向在同一平面分别相差90度、180度和270度。所述方法还可以包括:
分别确定所述当前朝向相对于所述第二朝向、所述第三朝向和所述第四朝向的权重信息。
具体的,可以获取预设的第二朝向、第三朝向和第四朝向,并分别确定当前朝向相对于第二朝向、第三朝向和第四朝向的权重信息。
在实际应用中,可以预先设置不同的朝向与第一朝向、第二朝向、第三朝向和第四朝向的权重信息对应关系。在确定当前朝向后,可以从预置的权重信息对应关系中获取第一朝向、第二朝向、第三朝向和第四朝向的权重信息。
在本申请一实施例中,步骤603可以包括如下子步骤:
结合所述遮挡强度信息和所述当前朝向相对于所述第一朝向、所述第二朝向、所述第三朝向和所述第四朝向的权重信息,得到当前遮挡强度信息。
在确定第一朝向、第二朝向、第三朝向和第四朝向的权重信息后,可以结合遮挡强度信息和各个朝向下的权重信息,得到当前遮挡强度信息。
具体的,可以采用第一朝向、第二朝向、第三朝向和第四朝向的权重信息组成向量信息,并采用该向量信息与存储于目标网格纹理坐标信息中第一朝向、第二朝向、第三朝向和第四朝向的遮挡强度信息进行计算,确定当前遮挡强度信息。
例如,X轴的负半轴方向阴影强度为0.4,Y轴的正半轴方向阴影强度为0.6,当前朝向为normalize(-0.5,0.5,0),可以计算得到插值后的当前遮挡强度信息为0.5。
在具体实现中,第一朝向、第二朝向、第三朝向和第四朝向的权重信息组成向量信息也可以称为float4,float4可以是4个浮点数所组成的向量,在GPU采用四维向量为基本单位进行计算时,float4可以是GPU内置的数据类型。在计算当前遮挡强度信息时,可以将float4与记录在纹理坐标信息中的遮挡强度信息进行点乘。
在一实例中,在当前朝向为中间值时,如第一朝向为X轴的正半轴方向(即+X),第二朝向为Z轴的正半轴反向(即+Z),当前朝向为45度时,中间值的对比度不足,可以加强此时的对比度,避免发灰。
步骤604,获取预设的阴影控制参数;
在实际应用中,可以在数据库中预设阴影控制参数(shadow_range),在确定当前遮挡强度信息后,可以从数据库中获取预设的阴影控制参数。
在本申请实施例中,通过调整阴影控制参数,可以控制渲染过程中阴影强度的偏移与缩放。具体而言,阴影控制参数可以包括第一阴影控制参数和第二阴影控制参数,其中,第一阴影控制参数也可以称为整体偏移值,第二阴影参数与第一阴影参数的差值可以称为整体缩放值,通过整体偏移值与整体缩放值,可以根据游戏资源调整阴影的实际表现效果。
步骤605,采用所述阴影控制参数,确定所述当前遮挡强度信息对应的遮挡强度处理信息;
在获取阴影控制参数后,可以采用阴影控制参数对当前遮挡强度信息进行调整,得到遮挡强度处理信息。
例如,当前遮挡强度信息为0.5,在结合阴影控制参数进行调整后,可以提亮得到遮挡强度处理信息为0.6,或者调暗得到遮挡强度信息为0.4。
在本申请实施例中,可以结合clamp函数进行寻址,并采用阴影控制参数对当前遮挡强度信息进行偏移调整,使得在渲染过程中,让阴影可以在树叶表面进行预设范围内的偏移。合理的偏移方向,可以避免阴影过于靠近树干而导致本应该有阴影的因为移动而没有阴影覆盖,或者在不应渲染阴影的区域却布满阴影的情况发生。
步骤606,结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染。
在确定遮挡强度处理信息后,可以结合当前遮挡强度信息和遮挡强度处理信息,对网格模型进行阴影渲染。
在本申请一实施例中,步骤606可以包括如下子步骤:
子步骤21,获取叶子朝向信息;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息;
在实际应用中,网格模型可以是针对虚拟植物对象的网格模型,虚拟植物对象的网格模型可以由多个网格组成,多个网格中可以包括针对虚拟植物对象的叶子的网格。
针对叶子的目标网格可以具有对应的叶子朝向信息,叶子朝向信息可以是叶片指向叶尖的朝向信息,也可以是叶根指向叶尖的朝向信息;叶子朝向信息可以存储于目标网格顶点的纹理坐标中。
在确定遮挡强度处理信息后,可以获取叶子朝向信息,例如从目标网格顶点的纹理坐标中读取。
子步骤22,结合所述当前遮挡强度信息、所述遮挡强度处理信息,以及所述叶子朝向信息,对所述网格模型进行阴影渲染。
在获取叶子朝向信息后,可以结合当前遮挡强度信息、遮挡强度处理信息和叶子朝向信息进行计算,对网格模型进行阴影渲染。
具体的,可以采用叶子朝向信息与当前遮挡强度信息进行点乘,并将点乘得到的结果乘以遮挡强度处理信息,获取自阴影值,结合自阴影值对网格模型进行阴影渲染。
在本申请实施例中,通过结合权重信息和遮挡强度信息,得到当前遮挡强度信息,获取预设的阴影控制参数,采用阴影控制参数,确定当前遮挡强度信息对应的遮挡强度处理信息,结合当前遮挡强度信息和所述遮挡强度处理信息,对网格模型进行阴影渲染,实现了实时渲染过程中对当前遮挡强度的调整,生成与虚拟对象实际状态更匹配的阴影效果。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请实施例并不限于此。
如图7所示,可以通过三维计算机图形软件中的python脚本读取Mesh文件,获取虚拟植物对象的网格模型(即获取网格模型)。在获取Mesh文件后,可以计算+X(即第一朝向)、-X(即第二朝向)、+Z(即第三朝向)和-Z(即第四朝向)四个朝向中,光源(即预设长度的线段)至网格模型中其他叶面的穿透数量(即相交信息),并确定四个朝向的朝向数据(即遮挡强度信息)。
在获取四个朝向数据,可以采用风格化参数,进行数据调整(即采用风格化参数,对遮挡强度信息进行调整),并将调整后的朝向数据分别写入UV2(即第二套纹理坐标)、UV3(即第三套纹理坐标)中。
在将遮挡强度信息保存于UV2、UV3后,可以通过预设规则确定的默认参数,或者计算切线空间中叶子内外的向量,进一步确定叶子朝向信息(即获取目标网格对应的叶子朝向信息),并采用修改后的UV2、UV3和叶子朝向信息,修改Mesh文件中的对应部分,达到覆写Mesh文件的效果。
在实际应用中,可以通过图片制作软件生成影子纹理(即阴影灰度图),在生成过程中,可以根据叶片的种类生成对应的影子纹理。在获取影子纹理后,可以将影子纹理和修改后的Mesh文件导入至游戏引擎中,由游戏引擎的Shader利用网格模型的顶点数据和影子纹理模拟自阴影效果(即对网格模型进行阴影渲染)。
以下对本申请、实时影和烘焙影进行如下对比:
兼容性:
1、本申请与实时影比较
由于本申请不依赖ShadowMap,无需进行两次绘制,相较于实时影性能压力更小,终端设备发热量减少,在中低端设备中兼容性高。
2、本申请与烘焙影比较
烘焙影常用于中低端设备,本申请与烘焙影方法在中低端设备中的兼容性相近。
显示效果:
1、本申请与实时影比较
如图8a所示,本申请的阴影层次更加丰富可控;如图8b所示,实时影比较锐利,但阴影边缘会产生较明显线性切割。
2、本申请与烘焙影比较
烘培影的效果受烘培方式和lightmap精度的影响很大,如图8c所示,因为叶片数量众多,而固定尺寸的贴图总的像素量是固定的,所有叶片各自独自占有各自的像素。导致在像素量固定的情况下,在平展UV后,分摊到每个叶片可用的像素量会急剧减少,能表现的精度也大大降低。这也使得在烘焙影中,对lightmap尺寸具有较高要求,在精度不够时,烘焙影表现上会显得脏乱,结合透明属性和双面属性,烘焙影对烘培技巧要求也较高。
包体大小:
1、本申请与实时影比较
本申请在模型上每个顶点可以增加2个UV通道(UV2和UV3)写入遮挡强度信息,以及可以增加上一张128*128的单通道的阴影灰度图,单棵树的资源会有几十KB的增量。
而实时影无需额外离线资源,包体最小。
2、本申请与烘焙影比较
烘培影的每种树都需要制作精度较高的LightMap贴图,对包体影响最大。
动态光照:
1、本申请与实时影比较
本申请可以使虚拟对象的阴影跟随物体与灯光的水平变化而变化,例如东方升起的直射光可以给树的西侧产生密集投影,而东侧投影稀疏。西方下落时的直射光可以给树的东侧产生密集的投影,而西侧投影比较稀疏。
实时影则可以匹配动态光照。
2、本申请与烘焙影比较
烘培影在采用单方向固定烘培时,无法适配动态光照;若采用3至4个朝向烘培后插值,则导致LightMap贴图尺寸增加3-4倍。
内存影响:
1、本申请与实时影比较
因本申请无需依赖ShadowMap,在采用一张128*128的阴影灰度图和没有开启实时影时,内存消耗相较于实时影更低。
2、本申请与烘焙影比较
相对传统的烘培影所需的LightMap,本申请在采用一张128*128的阴影灰度图时可以保证锐利效果,而且树叶种类类似时,可以通用。当场景中树的种类达到一定的数量级时,本申请的内存消耗远低于烘焙影的内存消耗。
游戏表现效果与性能
1、本申请与实时影比较
本申请相对于实时影,保留了阴影产生的斑驳细节与层次,相较于实时影,本申请可以提供更自然逼真的阴影效果,不会过分生硬。并且,在游戏过程中,提升了约10帧的帧率,本申请的DP次数也有下降,例如在相同游戏场景中,可以从实时影的134DP下降至本申请的110DP。
在实际中,每一次引擎准备数据并通知GPU的过程可以称为一个DP,在该过程中,可以调用绘制函数以命令对顶点进行渲染,并启动渲染管线,例如调用glDrawElements、glDrawArrays等绘制函数。
2、本申请与烘焙影比较
本申请相对于烘焙影,在画面层次与细节效果上得到了明显的提高,在游戏过程中,帧率下降了约4帧,而DP数值也与烘焙影相近。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图9,示出了本申请一实施例提供的一种阴影渲染的装置的结构示意图,具体可以包括如下模块:
网格模型获取模块901,用于获取网格模型;
第一朝向确定模块902,用于确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
第一遮挡信息确定模块903,用于确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
第一纹理坐标信息确定模块904,用于根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
在本申请一实施例中,所述第一遮挡信息确定模块903包括:
线段子模块,用于从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段;
相交信息获取子模块,用于获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息;
目标网格遮挡信息确定子模块,用于根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
在本申请一实施例中,所述线段子模块包括:
顶点线段引出单元,用于从所述目标网格的每个顶点出发分别朝所述第一朝向引出一条预设长度的线段;
所述相交信息获取子模块包括:
相交数量确定单元,用于确定所述目标网格中每个顶点对应的线段与所述网格模型的相交数量;
相交信息确定单元,用于根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息。
在本申请一实施例中,所述相交信息确定单元包括:
平均值确定子单元,用于将所述目标网格中每个顶点的相交数量的平均值作为所述目标网格对应的线段与所述网格模型中其他网格的相交数量。
在本申请一实施例中,所述目标网格遮挡信息确定子模块包括:
敏感值参数获取单元,用于获取预置的敏感值参数;
遮挡强度信息计算单元,用于结合所述敏感值参数和所述相交信息,得到所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
在本申请一实施例中,所述装置还包括:
风格化参数获取模块,用于获取风格化参数;
遮挡强度信息调整模块,用于采用所述风格化参数,对所述遮挡强度信息进行调整。
在本申请一实施例中,所述装置还包括:
第二遮挡强度获取模块,用于分别获取所述目标网格在第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息;其中,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度。
在本申请一实施例中,所述第一纹理坐标信息确定模块904包括:
第二纹理坐标信息确定子模块,用于根据所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息,确定用于渲染所述目标网格的纹理坐标信息。
在本申请一实施例中,所述装置还包括:
纹理坐标信息存储模块,用于将所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息中的任意两个遮挡强度信息保存于所述目标网格的顶点的第二套纹理坐标中,将剩余的两个遮挡强度信息保存于所述目标网格的顶点的第三套纹理坐标中。
在本申请一实施例中,所述装置还包括:
叶子朝向信息存储模块,用于获取所述目标网格对应的叶子朝向信息,并存储于所述目标网格的顶点的第四套纹理坐标中;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息。
在本申请实施例中,通过获取网格模型,确定网格模型中目标网格相对于虚拟光源的第一朝向,确定目标网格在第一朝向被网格模型中其他网格遮挡的遮挡强度信息,根据遮挡强度信息确定用于渲染目标网格的纹理坐标信息,实现了通过遮挡强度对网格模型进行阴影渲染,在不依赖实时影和ShadowMap的情况下提供了逼真的阴影效果,减少了终端设备的性能消耗,提高了游戏与终端的兼容性,且渲染过程无需使用大量高精度贴图,降低安装包包体大小。
参照图10,示出了本申请一实施例提供的一种阴影渲染的装置的结构示意图,具体可以包括如下模块:
当前朝向获取模块1001,用于获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
第一权重信息确定模块1002,用于确定所述当前朝向相对于所述第一朝向的权重信息;
当前遮挡信息确定模块1003,用于结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
第一阴影渲染模块1004,用于采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染。
在本申请一实施例中,所述第一阴影渲染模块1004包括:
阴影控制参数获取子模块,用于获取预设的阴影控制参数;
遮挡强度处理信息确定子模块,用于采用所述阴影控制参数,确定所述当前遮挡强度信息对应的遮挡强度处理信息;
第二阴影渲染子模块,用于结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染。
在本申请一实施例中,所述第二阴影渲染子模块包括:
叶子朝向信息获取单元,用于获取叶子朝向信息;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息;
第三阴影渲染单元,用于结合所述当前遮挡强度信息、所述遮挡强度处理信息,以及所述叶子朝向信息,对所述网格模型进行阴影渲染。
在本申请一实施例中,所述目标网格的纹理坐标信息中还包括所述目标网格在预设的第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度,所述装置还包括:
第二权重信息确定模块,用于分别确定所述当前朝向相对于所述第二朝向、所述第三朝向和所述第四朝向的权重信息。
在本申请一实施例中,所述当前遮挡信息确定模块1003包括:
当前遮挡强度信息计算子模块,用于结合所述遮挡强度信息和所述当前朝向相对于所述第一朝向、所述第二朝向、所述第三朝向和所述第四朝向的权重信息,得到当前遮挡强度信息。
在本申请实施例中,通过获取网格模型中目标网格相对于虚拟光源的当前朝向,目标网格的纹理坐标信息中包括目标网格在预设的第一朝向被网格模型中其他网格遮挡的遮挡强度信息,确定当前朝向相对于第一朝向的权重信息,结合权重信息和遮挡强度信息,得到当前遮挡强度信息,采用当前遮挡强度信息,对网格模型进行阴影渲染,实现了利用实时获取的当前朝向和预计算得到遮挡强度对网格模型进行阴影渲染,阴影可以根据游戏场景中光照水平朝向的变化而变化,在不依赖实时影和ShadowMap的情况下提供了逼真的阴影效果,减少了终端设备的性能消耗,提高了游戏与终端的兼容性,且渲染过程无需使用大量高精度贴图,降低安装包包体大小。
本申请一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上阴影渲染的方法的步骤。
本申请一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上阴影渲染的的方法的步骤。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种阴影渲染的方法及装置、电子设备、存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (19)
1.一种阴影渲染的方法,其特征在于,所述方法包括:
获取网格模型;
确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息,包括:
从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段;
获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息;
根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
3.根据权利要求2所述的方法,其特征在于,所述从所述目标网格的顶点出发朝所述第一朝向引出预设长度的线段,包括:
从所述目标网格的每个顶点出发分别朝所述第一朝向引出一条预设长度的线段;
所述获取所述目标网格对应的线段与所述网格模型中其他网格的相交信息,包括:
确定所述目标网格中每个顶点对应的线段与所述网格模型的相交数量;
根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标网格中每个顶点的相交数量确定所述目标网格对应的线段与所述网格模型中其他网格的相交信息,包括:
将所述目标网格中每个顶点的相交数量的平均值作为所述目标网格对应的线段与所述网格模型中其他网格的相交数量。
5.根据权利要求2所述的方法,其特征在于,所述根据所述相交信息,确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息,包括:
获取预置的敏感值参数;
结合所述敏感值参数和所述相交信息,得到所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息。
6.根据权利要求1所述的方法,其特征在于,在所述根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息之前,还包括:
获取风格化参数;
采用所述风格化参数,对所述遮挡强度信息进行调整。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别获取所述目标网格在第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息;其中,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度。
8.根据权利要求7所述的方法,其特征在于,所述根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息,包括:
根据所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息,确定用于渲染所述目标网格的纹理坐标信息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
将所述目标网格在所述第一朝向的遮挡强度信息、在所述第二朝向的遮挡强度信息、在所述第三朝向的遮挡强度信息和在所述第四朝向的遮挡强度信息中的任意两个遮挡强度信息保存于所述目标网格的顶点的第二套纹理坐标中,将剩余的两个遮挡强度信息保存于所述目标网格的顶点的第三套纹理坐标中。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标网格对应的叶子朝向信息,并存储于所述目标网格的顶点的第四套纹理坐标中;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息。
11.一种阴影渲染的方法,其特征在于,所述方法包括:
获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
确定所述当前朝向相对于所述第一朝向的权重信息;
结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染。
12.根据权利要求11所述的方法,其特征在于,所述采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染,包括:
获取预设的阴影控制参数;
采用所述阴影控制参数,确定所述当前遮挡强度信息对应的遮挡强度处理信息;
结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染。
13.根据权利要求12所述的方法,其特征在于,所述结合所述当前遮挡强度信息和所述遮挡强度处理信息,对所述网格模型进行阴影渲染,包括:
获取叶子朝向信息;其中,所述网格模型为针对虚拟植物对象的网格模型,所述目标网格为针对虚拟植物对象的叶子的网格,所述叶子朝向信息为所述目标网格中叶片或叶根指向叶尖的朝向信息;
结合所述当前遮挡强度信息、所述遮挡强度处理信息,以及所述叶子朝向信息,对所述网格模型进行阴影渲染。
14.根据权利要求11所述的方法,其特征在于,所述目标网格的纹理坐标信息中还包括所述目标网格在预设的第二朝向、第三朝向和第四朝向被所述网格模型中其他网格遮挡的遮挡强度信息,所述第二朝向、所述第三朝向和所述第四朝向均为所述目标网格相对于所述虚拟光源的朝向,且所述第二朝向、所述第三朝向和所述第四朝向与所述第一朝向在同一平面分别相差90度、180度和270度,所述方法还包括:
分别确定所述当前朝向相对于所述第二朝向、所述第三朝向和所述第四朝向的权重信息。
15.根据权利要求14所述的方法,其特征在于,所述结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息,包括:
结合所述遮挡强度信息和所述当前朝向相对于所述第一朝向、所述第二朝向、所述第三朝向和所述第四朝向的权重信息,得到当前遮挡强度信息。
16.一种阴影渲染的装置,其特征在于,所述装置包括:
网格模型获取模块,用于获取网格模型;
第一朝向确定模块,用于确定所述网格模型中目标网格相对于虚拟光源的第一朝向;
第一遮挡信息确定模块,用于确定所述目标网格在所述第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
纹理坐标信息确定模块,用于根据所述遮挡强度信息确定用于渲染所述目标网格的纹理坐标信息。
17.一种阴影渲染的装置,其特征在于,所述装置包括:
当前朝向获取模块,用于获取网格模型中目标网格相对于虚拟光源的当前朝向;其中,所述目标网格的纹理坐标信息中包括所述目标网格在预设的第一朝向被所述网格模型中其他网格遮挡的遮挡强度信息;
第一权重信息确定模块,用于确定所述当前朝向相对于所述第一朝向的权重信息;
当前遮挡信息确定模块,用于结合所述权重信息和所述遮挡强度信息,得到当前遮挡强度信息;
阴影渲染模块,用于采用所述当前遮挡强度信息,对所述网格模型进行阴影渲染。
18.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至15中任一项所述的阴影渲染的方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至15中任一项所述的阴影渲染的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311224.XA CN111476877B (zh) | 2020-04-16 | 2020-04-16 | 一种阴影渲染的方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311224.XA CN111476877B (zh) | 2020-04-16 | 2020-04-16 | 一种阴影渲染的方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111476877A true CN111476877A (zh) | 2020-07-31 |
CN111476877B CN111476877B (zh) | 2024-01-26 |
Family
ID=71755445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010311224.XA Active CN111476877B (zh) | 2020-04-16 | 2020-04-16 | 一种阴影渲染的方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111476877B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112270726A (zh) * | 2020-10-12 | 2021-01-26 | 杭州电魂网络科技股份有限公司 | 描边效果的渲染优化的方法、系统、电子装置和存储介质 |
CN112396683A (zh) * | 2020-11-30 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
CN113570697A (zh) * | 2021-09-24 | 2021-10-29 | 深圳易帆互动科技有限公司 | 基于模型预烘焙的阴影渲染方法、装置及可读存储介质 |
CN113599818A (zh) * | 2021-08-16 | 2021-11-05 | 北京字跳网络技术有限公司 | 植被渲染方法、装置、电子设备及可读存储介质 |
CN113827960A (zh) * | 2021-09-01 | 2021-12-24 | 广州趣丸网络科技有限公司 | 一种游戏视野生成方法、装置、电子设备及存储介质 |
CN113947657A (zh) * | 2021-10-18 | 2022-01-18 | 网易(杭州)网络有限公司 | 目标模型的渲染方法、装置、设备及存储介质 |
CN114219885A (zh) * | 2021-12-13 | 2022-03-22 | 在线途游(北京)科技有限公司 | 一种用于移动终端的实时阴影渲染方法和装置 |
CN114419233A (zh) * | 2021-12-31 | 2022-04-29 | 网易(杭州)网络有限公司 | 模型生成方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1844445A1 (en) * | 2004-10-27 | 2007-10-17 | Pacific Data Images Llc | Volumetric shadows for computer animation |
CN104205173A (zh) * | 2012-03-29 | 2014-12-10 | 汤姆逊许可公司 | 用于估计场景中的不透明度水平的方法及相应的设备 |
US9576389B2 (en) * | 2013-10-22 | 2017-02-21 | Samsung Electronics Co., Ltd. | Method and apparatus for generating acceleration structure in ray tracing system |
US20170249779A1 (en) * | 2016-02-25 | 2017-08-31 | Qualcomm Incorporated | Start node determination for tree traversal for shadow rays in graphics processing |
CN108010118A (zh) * | 2017-11-28 | 2018-05-08 | 网易(杭州)网络有限公司 | 虚拟对象处理方法、虚拟对象处理装置、介质和计算设备 |
CN110390714A (zh) * | 2018-04-16 | 2019-10-29 | 脸谱科技有限责任公司 | 用于渲染凹形效果的系统、方法和非暂时性存储介质 |
-
2020
- 2020-04-16 CN CN202010311224.XA patent/CN111476877B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1844445A1 (en) * | 2004-10-27 | 2007-10-17 | Pacific Data Images Llc | Volumetric shadows for computer animation |
CN104205173A (zh) * | 2012-03-29 | 2014-12-10 | 汤姆逊许可公司 | 用于估计场景中的不透明度水平的方法及相应的设备 |
US9576389B2 (en) * | 2013-10-22 | 2017-02-21 | Samsung Electronics Co., Ltd. | Method and apparatus for generating acceleration structure in ray tracing system |
US20170249779A1 (en) * | 2016-02-25 | 2017-08-31 | Qualcomm Incorporated | Start node determination for tree traversal for shadow rays in graphics processing |
CN108010118A (zh) * | 2017-11-28 | 2018-05-08 | 网易(杭州)网络有限公司 | 虚拟对象处理方法、虚拟对象处理装置、介质和计算设备 |
CN110390714A (zh) * | 2018-04-16 | 2019-10-29 | 脸谱科技有限责任公司 | 用于渲染凹形效果的系统、方法和非暂时性存储介质 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112270726A (zh) * | 2020-10-12 | 2021-01-26 | 杭州电魂网络科技股份有限公司 | 描边效果的渲染优化的方法、系统、电子装置和存储介质 |
CN112396683A (zh) * | 2020-11-30 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
CN112396683B (zh) * | 2020-11-30 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 虚拟场景的阴影渲染方法、装置、设备及存储介质 |
CN113599818A (zh) * | 2021-08-16 | 2021-11-05 | 北京字跳网络技术有限公司 | 植被渲染方法、装置、电子设备及可读存储介质 |
CN113599818B (zh) * | 2021-08-16 | 2023-07-21 | 北京字跳网络技术有限公司 | 植被渲染方法、装置、电子设备及可读存储介质 |
CN113827960A (zh) * | 2021-09-01 | 2021-12-24 | 广州趣丸网络科技有限公司 | 一种游戏视野生成方法、装置、电子设备及存储介质 |
CN113827960B (zh) * | 2021-09-01 | 2023-06-02 | 广州趣丸网络科技有限公司 | 一种游戏视野生成方法、装置、电子设备及存储介质 |
CN113570697A (zh) * | 2021-09-24 | 2021-10-29 | 深圳易帆互动科技有限公司 | 基于模型预烘焙的阴影渲染方法、装置及可读存储介质 |
CN113947657A (zh) * | 2021-10-18 | 2022-01-18 | 网易(杭州)网络有限公司 | 目标模型的渲染方法、装置、设备及存储介质 |
CN114219885A (zh) * | 2021-12-13 | 2022-03-22 | 在线途游(北京)科技有限公司 | 一种用于移动终端的实时阴影渲染方法和装置 |
CN114419233A (zh) * | 2021-12-31 | 2022-04-29 | 网易(杭州)网络有限公司 | 模型生成方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111476877B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111476877B (zh) | 一种阴影渲染的方法及装置、电子设备、存储介质 | |
CN110458930B (zh) | 三维地图的渲染方法、装置及存储介质 | |
CN111508052B (zh) | 三维网格体的渲染方法和装置 | |
CN111968216B (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
US7583264B2 (en) | Apparatus and program for image generation | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
EP0745246A1 (en) | Real-time image generation system for simulating physical paint, drawing media, and feature modeling with 3-d graphics | |
CN110599574A (zh) | 游戏场景的渲染方法、装置及电子设备 | |
US6078333A (en) | Images and apparatus for carrying out the method | |
AU2693700A (en) | Method and apparatus for processing images | |
Eck | Introduction to Computer Graphics | |
CN113593027B (zh) | 一种三维航电显控界面装置 | |
CN113269863B (zh) | 一种基于视频图像的前景物体阴影实时生成方法 | |
CN113658316B (zh) | 三维模型的渲染方法和装置、存储介质及计算机设备 | |
CN106898040A (zh) | 虚拟资源对象渲染方法和装置 | |
CN105184843B (zh) | 一种基于OpenSceneGraph的三维动画制作方法 | |
CN110223372A (zh) | 模型渲染的方法、装置、设备及存储介质 | |
US7133052B1 (en) | Morph map based simulated real-time rendering | |
CN110400366B (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN109658494B (zh) | 一种在三维可视化图形中的阴影渲染方法 | |
WO1996013018A1 (en) | Methods and apparatus for rapidly rendering photo-realistic surfaces on 3-dimensional wire frames automatically | |
CN111739074A (zh) | 一种场景多点光源渲染方法及装置 | |
CN114119836A (zh) | 渲染方法、装置、电子设备及可读存储介质 | |
CN114119821A (zh) | 虚拟对象的毛发渲染方法、装置及设备 | |
Birukov et al. | Elaboration of visualization modes for lighting simulation in catia cad system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |