一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟场景的渲染方法、装置和电子设备与流程

2023-02-10 19:28:59 来源:中国专利 TAG:


1.本发明涉及渲染技术领域,尤其是涉及一种虚拟场景的渲染方法、装置和电子设备。


背景技术:

2.在游戏开发过程中,通常需要制作游戏中的虚拟场景,比如,具有光照或灯光、以及各种色彩效果的虚拟场景。相关技术中,场景中的光影信息通常是通过光照构建的方式生成的,但是由于生成时间较长,通常需要反复修改才能得到较好的光影效果。且通过该方式生成的场景的光影信息为固定的光影信息,也就是说,当场景中的物体发生变化,光影信息不会实时改变,这就需要重新根据当前场景信息更新光影信息,操作繁琐且时间成本较高。尤其是针对需要频繁更新物体的场景,无法实现光影效果的实时更新。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种虚拟场景的渲染方法、装置和电子设备,通过虚拟场景中的目标材质和灰度蒙版可以实时调整虚拟场景的色彩,以降低场景色彩的渲染时间,提高场景色彩的渲染效率和渲染效果。
4.第一方面,本发明实施例提供了一种虚拟场景的渲染方法,该方法包括:获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
5.第二方面,本发明实施例提供了一种虚拟场景的渲染装置,该装置包括:获取模块,用于获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;生成模块,用于从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;调整模块,用于基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
6.第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现第一方面任一项的虚拟场景的渲染方法。
7.第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现第一方面任一项的虚拟场景的渲染方法。
8.本发明实施例带来了以下有益效果:
9.本发明提供了一种虚拟场景的渲染方法、装置和电子设备,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
10.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
11.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
12.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1为本发明实施例提供的一种虚拟场景的渲染方法的流程图;
14.图2为本发明实施例提供的一种虚拟场景的示意图;
15.图3为本发明实施例提供的另一种虚拟场景的示意图;
16.图4为本发明实施例提供的一种虚拟场景的渲染装置的结构示意图;
17.图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
18.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.在游戏开发过程中,通常需要制作游戏中的虚拟场景,比如,具有光照或灯光、以及各种色彩效果的虚拟场景。相关技术中,场景中的光影信息通常是通过光照构建的方式生成的。其中,游戏引擎实时计算场景内的灯光效果和阴影效果对显卡的性能要求很高,所以出于优化考虑,美术工作人员通常会使用引擎提供的光照构建功能一次计算完成场景内的所有光影信息,计算完成之后场景的光影信息就固定了,移动任意物体的影子不会实时改变。大概的过程为,光照构建之前设置一个聚光灯,可以设置红色的光,该聚光灯为静态光源,光照构建完成之后,得到更加精确的红色光影效果。如果聚光灯移除,光影信息依旧保留,也就是说场景中的光影效果依然存在,但是移动物体后,光影效果不会同步根据物体移动后的场景变化,需要再次构建光照才会更新光影信息。
shader或者fragment shader阶段会对每一个顶点或者每一个像素进行光照计算,随着场景顶点总数的增加导致渲染每一帧所花费的时间是呈指数级增长的。所以为了解决这个问题,延迟渲染(deferred rendering)管线就诞生了。
28.延迟渲染与前向渲染的区别,就是把光照信息处理这一步骤做了延后处理。具体做法就是将光照处理这一步放在场景几何体绘制并完成遮挡剔除操作之后再整体拿到所有绘制完成的顶点信息进行光照计算。正是因为灯光计算之后才进行,所以这些计算完成的数据就可以储存为一个临时信息,称为帧缓存信息,也可以称为g.buffer。
29.步骤s104,从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;
30.上述场景深度信息可以通过材质编辑器获取,并通过材质编辑器界面可以直接显示虚拟场景的场景深度画面。如果通过材质编辑器获取的是虚拟场景的正常场景画面,则会通过材质编辑器界面显示虚拟场景的正常场景画面。上述场景深度信息主要包括虚拟场景中每个场景位置的深度值,该深度值可以理解为虚拟场景中每个场景位置距离采集设备的距离。具体的,可以将虚拟场景中每个场景位置,其中距离采集设备最近的场景位置可以设置其深度值为0,距离采集设备最远的场景位置可以设置其深度值为1,基于此生成灰度蒙版,使得灰度蒙版中每个像素点的灰度值与虚拟场景中对应的场景位置的深度值相同。
31.步骤s106,基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
32.具体的,可以使用材质编辑器(也可以理解为目标材质的材质节点)比如“scenetexture”节点拦截渲染的内容,也就是获取帧缓存信息中的场景深度信息,然后生成灰度蒙版。根据该灰度蒙版可以对虚拟场景进行颜色混合,以改变虚拟场景的场景颜色;还可以根据需要对场景的深度信息进行平滑等处理,该方式可以改变虚拟场景的光照效果等。
33.实际实现时,可以通过调整目标材质的材质参数集,调整虚拟场景的色彩,比如调整颜色参数,调整混合颜色的颜色值,进而调整虚拟场景的场景色彩。还可以调整其他材质参数,调整虚拟场景的滤镜、饱和度、色温、对比度等。
34.本发明实施例提供了一种虚拟场景的渲染方法,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
35.上述步骤s106中,基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤,一种可能的实施方式:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
36.上述第一预设颜色和第二预设颜色可以预先根据虚拟场景的实际需要进行设置
的,比如第一预设颜色为红色,第二预设颜色为蓝色等。上述调整虚拟场景的场景颜色的方式可以是通过颜色插值的方式,具体可以是根据灰度蒙版中每个像素点的灰度值进行颜色插值,也可以理解为颜色混合。或者以灰度蒙版中每个像素点的灰度值为第一预设颜色和第二预设颜色的权重,进行颜色混合。
37.上述根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色的步骤,一种可能的实施方式:
38.针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
39.具体的,可以从灰度值中确定一个阈值,灰度值大于该阈值的像素点对应的场景位置的场景颜色为第一预设颜色,灰度值小于该阈值的像素点对应的场景位置的场景颜色为第二预设颜色。或者,可以将灰度值作为第一虚设颜色和第二预设颜色的权重,比如,直接将像素点的灰度值作为第一预设颜色的权重,将1减去灰度值的差值作为第二预设颜色的权重,计算颜色的加权值,得到该像素点对应的场景位置的目标场景颜色。或者,可以根据灰度值将虚拟场景划分多个不同的区域,在不同的区域设置不同的预设颜色,比如,像素点的灰度值在第一数值和第二数值之间时,对应的场景位置设置第一预设颜色,像素点的灰度值在第三数值和第四数值之间时,对应的场景位置设置第二预设颜色,像素点的灰度值在第五数值和第六数值之间时,对应的场景位置设置第一预设颜色和第二预设颜色的混合颜色等。
40.上述根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色的步骤,一种可能的实施方式:
41.通过下述公式计算场景位置的目标场景颜色:
42.color=lerp(y1,y2,weight)=(1-weight)
×
y1 weight
×
y2;
43.其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
44.具体的,在材质编辑器中设置第一预设颜色的颜色值,比如(1,0,0)表示红色,设置第二预设颜色的颜色值,比如(0,0,1)表示蓝色。然后,针对每个像素点,计算该像素点的灰度值乘以第二预设颜色的颜色值,加上1减去该像素点的灰度值的差值与第一预设颜色的颜色值乘积,得到该像素点对应的场景位置的目标场景颜色,比如第一预设颜色的颜色值为(1,0,0),第二预设颜色的颜色值为(0,0,1),灰度蒙版的其中一个像素点的灰度值为0.3,则该像素点对应的场景位置的目标场景颜色为0.7*(1,0,0) 0.3*(0,0,1)=(0.7,0,0.3)。
45.为了进一步提高虚拟场景的光影效果,在基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法还包括:调整灰度蒙版的灰度值。
46.通常情况下,模型场景的帧缓存信息中的场景深度信息的视觉效果可能不符合美术工作人员的要求,或者后期由于光照或者场景中的物品移动更新等,需要重新调整场景深度信息,也就是调整灰度蒙版的灰度值,以满足美术工作人员的要求,或者更新后的虚拟场景的要求。具体主要是调整场景深度信息的过渡效果,也就是使虚拟场景能够呈现不同的视觉效果,进而可以调整虚拟场景的光照效果。
47.实际实现时,可以通过数学计算的方式,在最大灰度值和最小灰度值之间,对灰度值进行修改,使最大灰度值和最小灰度值之间的灰度值过渡的更加自然。比如可以通过平滑函数修改不同像素点的灰度值。该方式中,通过调整灰度蒙版的灰度值,可以对深度信息进行过渡修改,进一步提高了虚拟场景的场景效果。
48.上述调整灰度蒙版的灰度值的步骤,一种可能的实施方式:
49.通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。
50.上述平滑阶梯函数通常是指smoothstep函数,该平滑阶梯函数有三个输入,value,max和min,其中value为灰度蒙版的灰度值,max可以上述第一数值也可以是上述第二数值,min可以是上述第二数值也可以是上述第一数值,本实施例中,max为上述第一数值,min为上述第二数值。具体的,可以在获取到灰度值以后先向灰度值进行数据处理,比如除以一个指定数值,以缩小灰度值的范围,然后通过修改第一数值和第二数值,调整灰度蒙版的灰度值。实际上,smoothstep函数可以用来生成0到1的平滑过渡值,其实就是求解第一数值与第二数值之间的样条插值。第一数值表示样条插值函数的上界,第二数值表示样条插值函数的下界,灰度值表示插值的源输入。
51.下述为公式源码:
[0052]052]
其中,t2为上述第一数值,t1为上述第二数值,x为上述灰度值。通常情况下,在游戏引擎内一般使用该函数做渐变效果。
[0053]
示例代码:
[0054][0054]
示例性的,如图2所示的渐变效果。
[0055]
示例性的,如图3所示,不同第一数值和第二数值情况下,虚拟场景的场景效果。如图3中的(a)所示,第一数值为4.0,第二数值为0.0,如图3中的(b)所示,第一数值为4.0,第二数值为1.0,如图3中的(c)所示,第一数值为2.0,第二数值为1.5。该方式中,通过平滑阶梯函数对场景深度进行过渡处理,进一步提高了渲染效果。
[0056]
为了进一步提高虚拟场景的色彩效果,在基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法包括:
[0057]
步骤1,从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;
[0058]
可以使用“scenetexture”节点拦截渲染的内容,本实施例通过“scenetexture”节点获取帧缓存信息的默认效果信息,即帧缓存信息类型为“postprocessinput 0”,就可以获取虚拟场景的场景信息。具体的,可以对场景位置的颜色值进行处理,比如归一化处理,使得每个场景位置的颜色值在0-1之间,然后基于位于0-1之间的颜色值,得到上述颜色蒙版,即颜色蒙版的每个像素点的像素值(也可以称为颜色值),与虚拟场景中场景位置的像素值对应。
[0059]
步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩。
[0060]
具体的,可以通过材质编辑器提供的材质节点,比如对色彩进行处理的节点,可以对虚拟场景的色彩进行进一步调整,一般可以调整场景的饱和度、色温、色相、对比度等。该方式中,通过目标材质编辑器提供的对色彩进行处理的节点对帧缓存信息做另外色彩调整,进一步提高了虚拟场景渲染效果。
[0061]
上述步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,一种可能的实施方式:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
[0062]
具体的,可以通过desaturation(饱和度调整)函数,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。通过给fraction赋值,调整目标材质的饱和度参数,当赋予fraction为0时,无作用,数值越靠近1,去色越明显。
[0063]
上述步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,另一种可能的实施方式:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
[0064]
具体的,可以通过multipl(乘法)函数,混合或者叠加指定颜色,以调整虚拟场景的场景颜色。通过不同的颜色值,为虚拟场景叠加不同的颜色。其实就是直接在虚拟场景的基础上直接与一个颜色做乘法处理,为虚拟场景叠加不同的颜色。
[0065]
上述步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,另一种可能的实施方式:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
[0066]
具体的,可以通过hueshift(色调改变)函数,使输入颜色的当前色调值偏移给定的百分比。此百分比基于1,并以色环为中心。例如,变动0.5%(50%)将改变为互补色调,即色环上对面的色调。变动1.0(100%)不会进行更改,因为这相当于正好绕色环旋转一周。通过设置不同的百分比,虚拟场景可以调整不同的场景色相,即场景色调。
[0067]
前述方式中,在不修改已经构建光照完成的情况下,通过开发者手动编写的材质逻辑,通过后期材质获取场景深度信息,其中,该场景深度信息为延迟渲染(deferred rendering)的g.buffer数据中的场景深度。然后通过后期材质并基于屏幕空间对场景做色彩的整体修改,通过蓝图整合功能让美术工作人员摆脱常规通过修改灯光、材质模型以及贴图等耗时长、见效慢的修改方式,做到快速修改整个场景且能够实时生效的效果,并实现游戏引擎自带的后期功能无法实现的效果。
[0068]
对应上述方法实施例,本发明实施例提供了一种虚拟场景的渲染装置,如图4所示,该装置包括:
[0069]
获取模块41,用于获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目
标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;
[0070]
生成模块42,用于从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;
[0071]
调整模块43,用于基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
[0072]
本发明提供了一种虚拟场景的渲染装置,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
[0073]
上述调整模块还用于:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
[0074]
上述调整模块还用于:针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
[0075]
上述调整模块还用于:通过下述公式计算场景位置的目标场景颜色:color=lerp(y1,y2,weight)=(1-weight)
×
y1 weight
×
y2;其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
[0076]
上述装置还包括灰度值调整模块,用于:调整灰度蒙版的灰度值。
[0077]
上述灰度值调整模块还用于:通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。
[0078]
上述装置还包括第二调整模块,用于:从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;基于颜色蒙版和目标材质,调整虚拟场景的色彩。
[0079]
上述第二调整模块还用于:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
[0080]
上述第二调整模块还用于:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
[0081]
上述第二调整模块还用于:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
[0082]
本发明实施例提供的虚拟场景的渲染装置,与上述实施例提供的虚拟场景的渲染方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
[0083]
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述虚拟场景的渲染方法。该电子设备可以是服务器,也可以是终端设备。
[0084]
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述虚拟场景的渲染方法。
[0085]
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
[0086]
其中,存储器101可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0087]
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤,具体包括:
[0088]
获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
[0089]
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
[0090]
上述根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色
的步骤,包括:针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
[0091]
上述根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色的步骤,包括:通过下述公式计算场景位置的目标场景颜色:color=lerp(y1,y2,weight)=(1-weight)
×
y1 weight
×
y2;其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
[0092]
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,方法还包括:调整灰度蒙版的灰度值。该方式中,通过调整灰度蒙版的灰度值,可以对深度信息进行过渡修改,进一步提高了虚拟场景的场景效果。
[0093]
上述调整灰度蒙版的灰度值的步骤,包括:通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。该方式中,通过平滑阶梯函数对场景深度进行过渡处理,进一步提高了渲染效果。
[0094]
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法包括:从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;基于颜色蒙版和目标材质,调整虚拟场景的色彩。该方式中,通过目标材质编辑器提供的对色彩进行处理的节点对帧缓存信息做另外色彩调整,进一步提高了虚拟场景渲染效果。
[0095]
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
[0096]
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
[0097]
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
[0098]
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述虚拟场景的渲染方法,具体包括:
[0099]
获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
[0100]
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景
颜色。
[0101]
上述根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色的步骤,包括:针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
[0102]
上述根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色的步骤,包括:通过下述公式计算场景位置的目标场景颜色:color=lerp(y1,y2,weight)=(1-weight)
×
y1 weight
×
y2;其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
[0103]
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,方法还包括:调整灰度蒙版的灰度值。该方式中,通过调整灰度蒙版的灰度值,可以对深度信息进行过渡修改,进一步提高了虚拟场景的场景效果。
[0104]
上述调整灰度蒙版的灰度值的步骤,包括:通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。该方式中,通过平滑阶梯函数对场景深度进行过渡处理,进一步提高了渲染效果。
[0105]
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法包括:从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;基于颜色蒙版和目标材质,调整虚拟场景的色彩。该方式中,通过目标材质编辑器提供的对色彩进行处理的节点对帧缓存信息做另外色彩调整,进一步提高了虚拟场景渲染效果。
[0106]
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
[0107]
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
[0108]
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
[0109]
本发明实施例所提供的虚拟场景的渲染方法、装置以及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0110]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0111]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0112]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0113]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0114]
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献