一种基于多渲染目标的2D光照渲染方法技术

技术编号:38386929 阅读:11 留言:0更新日期:2023-08-05 17:41
本发明专利技术公开了一种基于多渲染目标的2D光照渲染方法,包括以下步骤:S1:绘制AlbedoMap;S2:绘制LightDepthMap;S3:对LightDepthMap进行荧光操作;S4:合并计算渲染图。本发明专利技术的有益效果是:通过在TransparentQueue(透明队列)阶段,开启MRT渲染来保存2D光照信息,渲染后计算光影信息,确认可见性,从而实现遮挡与照亮的光照关系,保证了性能和画质的提升。保证了性能和画质的提升。保证了性能和画质的提升。

【技术实现步骤摘要】
一种基于多渲染目标的2D光照渲染方法


[0001]本专利技术涉及2D光照渲染
,特别是一种基于多渲染目标的2D光照渲染方法。

技术介绍

[0002]2D游戏对象的渲染主要是在渲染管线的Transparent Queue(透明队列)队列中,在该队列中,GPU按照画家算法的机制,画家算法表示画家首先绘制距离较远的场景,然后用绘制距离较近的场景覆盖较远的部分,画家算法首先将场景中的多边形根据深度进行排序,然后按照顺序进行描绘,这种方法通常会将不可见的部分覆盖,这样就可以解决可见性问题,从CPU中提供的DrawCall(绘制命令)来先后绘制场景中的2D对象。
[0003]但在2D游戏的开发过程中,因为二维世界没有三维世界的物理位置关系,这就导致了可信的光影关系模拟变得十分困难,目前在Unity3D中开发2D游戏,常见的2D光照解决方案是在光源所在的层嵌入一张全屏尺寸的图来保存光影信息,这就会导致以下几个问题:
[0004]其一:不同层的光源会占用额外的一张全屏尺寸的图内存,多个不同层的光源就会导致内存开销巨大,崩溃几率上升明显;
[0005]其二:插入额外的层方式会极大增加CPU生成DrawCall的负担,导致帧率下降;
[0006]其三:额外的光照层需要制作人员手动调整光源层级进行合批来降低性能损耗,而且场景是动态的,这就导致了制作复杂度大幅上升。

技术实现思路

[0007]本专利技术的目的在于克服现有技术的缺点,提供一种基于多渲染目标的2D光照渲染方法。
[0008]本专利技术的目的通过以下技术方案来实现:一种基于多渲染目标的2D光照渲染方法,包括以下步骤:
[0009]S1:绘制Albedo Map;
[0010]S2:绘制LightDepth Map;
[0011]S3:对LightDepth Map进行荧光操作;
[0012]S4:合并计算渲染图。
[0013]优选的,步骤S1中,从贴图获取像素的红色、绿色、蓝色和透明色,
[0014]DstColor
new
=SrcAlpha
×
SrcColor+(1

ScrAlpha)
×
DstColor
old
[0015]其中Color代表红色、绿色和蓝色,Alpha代表透明色,Src代表当前要绘制的图案,Dst代表已经绘制好的图案。
[0016]优选的,步骤S2中,从贴图获取颜色之后,
[0017]SrcLightDepth=(SrcColor
×
LightSwitch
×
LightAttensity,SrcAlpha);
[0018]其中LightSwitch代表光照开关变量,LightAttensity代表光照强度变量,当图片
需要发光时,则LightSwitch为1,LightAttensity大于0,得到需要显示的光的位置,当图片不需要发光时,LightSwitch为0或者LightAttensity为0。
[0019]优选的,步骤S4中,
[0020]Color
final
=Mix(Color
albedo
,Bloom(SrcLightDepth));
[0021]其中,Bloom为荧光操作,使用卷积核对SrcLightDepth进行卷积操作可得荧光效果,Mix为常见颜色混合公式。
[0022]本专利技术具有以下优点:本专利技术通过在Transparent Queue(透明队列)阶段,开启MRT渲染来保存2D光照信息,渲染后计算光影信息,确认可见性,从而实现遮挡与照亮的光照关系,保证了性能和画质的提升。
附图说明
[0023]图1为渲染流程的结构示意图。
具体实施方式
[0024]为使本专利技术实施方式的目的、技术方案和优点更加清楚,下面将结合本专利技术实施方式中的附图,对本专利技术实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本专利技术一部分实施方式,而不是全部的实施方式。通常在此处附图中描述和示出的本专利技术实施方式的组件可以以各种不同的配置来布置和设计。
[0025]因此,以下对在附图中提供的本专利技术的实施方式的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施方式。基于本专利技术中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本专利技术保护的范围。
[0026]需要说明的是,在不冲突的情况下,本专利技术中的实施方式及实施方式中的特征可以相互组合。
[0027]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0028]在本专利技术的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该专利技术产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0029]在本专利技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。
[0030]在本实施例中,如图1所示,一种基于多渲染目标的2D光照渲染方法,包括以下步骤:
[0031]S1:绘制Albedo Map;
[0032]S2:绘制LightDepth Map;
[0033]S3:对LightDepth Map进行荧光操作;
[0034]S4:合并计算渲染图。通过在Transparent Queue(透明队列)阶段,开启MRT渲染来保存2D光照信息,渲染后计算光影信息,确认可见性,从而实现遮挡与照亮的光照关系,保证了性能和画质的提升。在本实施例中,当需要法线和光影时,在绘制LightDepth Map之后填充Normal Map以及计算Shadow Map,通过对光源方向进行模拟计算可得到屏幕空间内的阴影区域,其中填充Normal Map以及计算Shadow Map均是通过现有方法实现,这里就不再进行赘述。
[0035]进一步的,步骤S1中,从贴图获取像素的红色、绿色、蓝色和透明色,
[0036]DstColor
new
=本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多渲染目标的2D光照渲染方法,其特征在于:包括以下步骤:S1:绘制Albedo Map;S2:绘制LightDepth Map;S3:对LightDepth Map进行荧光操作;S4:合并计算渲染图。2.根据权利要求1所述的一种基于多渲染目标的2D光照渲染方法,其特征在于:所述步骤S1中,从贴图获取像素的红色、绿色、蓝色和透明色,DstColor
new
=SrcAlpha
×
SrcColor+(1

ScrAlpha)
×
DstColor
old
其中Color代表红色、绿色和蓝色,Alpha代表透明色,Src代表当前要绘制的图案,Dst代表已经绘制好的图案。3.根据权利要求2所述的一种基于多渲染目标的2D光照渲染方法,其特征在于:所述步骤S2中,从贴图获取颜色之后,SrcLi...

【专利技术属性】
技术研发人员:苟谆王川肖佳胡凡张啸
申请(专利权)人:成都力比科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1