CN115700775A - 虚拟场景的渲染方法、装置和电子设备 - Google Patents
虚拟场景的渲染方法、装置和电子设备 Download PDFInfo
- Publication number
- CN115700775A CN115700775A CN202211229399.1A CN202211229399A CN115700775A CN 115700775 A CN115700775 A CN 115700775A CN 202211229399 A CN202211229399 A CN 202211229399A CN 115700775 A CN115700775 A CN 115700775A
- Authority
- CN
- China
- Prior art keywords
- scene
- color
- virtual scene
- target material
- adjusting
- 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
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明提供了一种虚拟场景的渲染方法、装置和电子设备,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
Description
技术领域
本发明涉及渲染技术领域,尤其是涉及一种虚拟场景的渲染方法、装置和电子设备。
背景技术
在游戏开发过程中,通常需要制作游戏中的虚拟场景,比如,具有光照或灯光、以及各种色彩效果的虚拟场景。相关技术中,场景中的光影信息通常是通过光照构建的方式生成的,但是由于生成时间较长,通常需要反复修改才能得到较好的光影效果。且通过该方式生成的场景的光影信息为固定的光影信息,也就是说,当场景中的物体发生变化,光影信息不会实时改变,这就需要重新根据当前场景信息更新光影信息,操作繁琐且时间成本较高。尤其是针对需要频繁更新物体的场景,无法实现光影效果的实时更新。
发明内容
有鉴于此,本发明的目的在于提供一种虚拟场景的渲染方法、装置和电子设备,通过虚拟场景中的目标材质和灰度蒙版可以实时调整虚拟场景的色彩,以降低场景色彩的渲染时间,提高场景色彩的渲染效率和渲染效果。
第一方面,本发明实施例提供了一种虚拟场景的渲染方法,该方法包括:获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
第二方面,本发明实施例提供了一种虚拟场景的渲染装置,该装置包括:获取模块,用于获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;生成模块,用于从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;调整模块,用于基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现第一方面任一项的虚拟场景的渲染方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现第一方面任一项的虚拟场景的渲染方法。
本发明实施例带来了以下有益效果:
本发明提供了一种虚拟场景的渲染方法、装置和电子设备,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟场景的渲染方法的流程图;
图2为本发明实施例提供的一种虚拟场景的示意图;
图3为本发明实施例提供的另一种虚拟场景的示意图;
图4为本发明实施例提供的一种虚拟场景的渲染装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在游戏开发过程中,通常需要制作游戏中的虚拟场景,比如,具有光照或灯光、以及各种色彩效果的虚拟场景。相关技术中,场景中的光影信息通常是通过光照构建的方式生成的。其中,游戏引擎实时计算场景内的灯光效果和阴影效果对显卡的性能要求很高,所以出于优化考虑,美术工作人员通常会使用引擎提供的光照构建功能一次计算完成场景内的所有光影信息,计算完成之后场景的光影信息就固定了,移动任意物体的影子不会实时改变。大概的过程为,光照构建之前设置一个聚光灯,可以设置红色的光,该聚光灯为静态光源,光照构建完成之后,得到更加精确的红色光影效果。如果聚光灯移除,光影信息依旧保留,也就是说场景中的光影效果依然存在,但是移动物体后,光影效果不会同步根据物体移动后的场景变化,需要再次构建光照才会更新光影信息。
但是场景经过光照构建之后虽然可以实现更为精确的光影信息,但是由于其过程耗时较长,通常需要反复修改才能得到较好的光影效果。且通过该方式生成的场景的光影信息为固定的光影信息,也就是说,当场景中的物体发生变化,光影信息不会实时改变,这就需要重新根据当前场景信息更新光影信息,操作繁琐且时间成本较高。尤其是针对需要频繁更新物体的场景,无法实现光影效果的实时更新。基于此,本发明实施例提供的一种虚拟场景的渲染方法、装置和电子设备,该技术可以应用于计算机,笔记本电脑等设备。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种虚拟场景的渲染方法进行详细介绍,如图1所示,该方法包括如下步骤:
步骤S102,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;
上述虚拟场景通常是指游戏中的游戏虚拟场景,其中包括各种几何体(也就是游戏中的虚拟物品),场景灯光,场景背景等。上述目标材质是指虚拟场景中虚拟物品所使用的材质,比如虚拟课桌的材质可以为光滑的具有反射效果的材质,道路的材质可以为粗糙的材质等。上述帧缓存信息是针对当前的游戏引擎渲染每一帧画面所经历的步骤而提出的一个概念,其中会包括虚拟场景在前期的渲染过程中的场景信息,具体包括:Normal(法线信息),Specular(高光信息)、Roughness(粗糙度信息)、Diffuse Color(漫反射颜色信息)、Position(位置信息),Depth(场景深度信息)等,游戏引擎可以通过材质编辑器的节点(也可以理解为上述目标材质的材质节点)使开发者可以直接获取到帧缓存信息并使用。
上述目标材质的材质域主要用于控制目标材质的使用方式,其中包括表面、延迟贴花、光照函数、体积、后期处理等使用方式。本实施例中将目标材质的材质域设置为后期处理,可以使用材质编辑器改变屏幕的渲染方式,比如使用“SceneTexture”节点拦截渲染的内容,SceneTexture可以拦截许多不同图层,如基础色、屏幕颜色、屏幕深度等进行制作材质。如过要输出最终的后期处理效果,需要选择帧缓存信息类型为“PostProcessInput0”,即可获取当前场景的场景效果。
需要说明的是,目前的渲染技术通常包括延迟渲染和前向渲染。在计算机渲染游戏的每一帧画面的时候,以前向渲染为例,OpenGL(Open Graphics Library,开放图形库或者“开放式图形库”)作为底层API(Application Program Interface,应用程序接口),会通过下述步骤实现:
步骤1,Geometry:CPU(Central Processing Unit,中央处理器)从硬盘读取模型数据,翻译成GPU(Graphics Processing Unit,图形处理器)可识别的语言进行处理;步骤2,Vertex Shader:GPU获取到CPU发送过来的指令和模型数据信息,进行顶点绘制。步骤3,Tessellation Shader:GPU在完成基础模型顶点信息绘制之后会有一个额外的可选绘制过程,也就是细分曲面。步骤4,Geometry Shader:GPU在完成基础模型顶点信息绘制和细分曲面过程之后,会有一个对几何信息做修改的过程。步骤5,Fragment Shader:GPU在完成所有模型顶点绘制之后,紧接着进入像素级别的处理,也就是处理模型在场景受到的灯光信息的绘制。步骤6,Frame Buffer:CPU和GPU在共同完成所有模型顶点的绘制和光影信息计算之后将画面传输给显示器。
但是上述渲染方式有一个问题,若场景中存在大量灯光信息,那么在VertexShader或者Fragment Shader阶段会对每一个顶点或者每一个像素进行光照计算,随着场景顶点总数的增加导致渲染每一帧所花费的时间是呈指数级增长的。所以为了解决这个问题,延迟渲染(Deferred Rendering)管线就诞生了。
延迟渲染与前向渲染的区别,就是把光照信息处理这一步骤做了延后处理。具体做法就是将光照处理这一步放在场景几何体绘制并完成遮挡剔除操作之后再整体拿到所有绘制完成的顶点信息进行光照计算。正是因为灯光计算之后才进行,所以这些计算完成的数据就可以储存为一个临时信息,称为帧缓存信息,也可以称为G.Buffer。
步骤S104,从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;
上述场景深度信息可以通过材质编辑器获取,并通过材质编辑器界面可以直接显示虚拟场景的场景深度画面。如果通过材质编辑器获取的是虚拟场景的正常场景画面,则会通过材质编辑器界面显示虚拟场景的正常场景画面。上述场景深度信息主要包括虚拟场景中每个场景位置的深度值,该深度值可以理解为虚拟场景中每个场景位置距离采集设备的距离。具体的,可以将虚拟场景中每个场景位置,其中距离采集设备最近的场景位置可以设置其深度值为0,距离采集设备最远的场景位置可以设置其深度值为1,基于此生成灰度蒙版,使得灰度蒙版中每个像素点的灰度值与虚拟场景中对应的场景位置的深度值相同。
步骤S106,基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
具体的,可以使用材质编辑器(也可以理解为目标材质的材质节点)比如“SceneTexture”节点拦截渲染的内容,也就是获取帧缓存信息中的场景深度信息,然后生成灰度蒙版。根据该灰度蒙版可以对虚拟场景进行颜色混合,以改变虚拟场景的场景颜色;还可以根据需要对场景的深度信息进行平滑等处理,该方式可以改变虚拟场景的光照效果等。
实际实现时,可以通过调整目标材质的材质参数集,调整虚拟场景的色彩,比如调整颜色参数,调整混合颜色的颜色值,进而调整虚拟场景的场景色彩。还可以调整其他材质参数,调整虚拟场景的滤镜、饱和度、色温、对比度等。
本发明实施例提供了一种虚拟场景的渲染方法,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
上述步骤S106中,基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤,一种可能的实施方式:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
上述第一预设颜色和第二预设颜色可以预先根据虚拟场景的实际需要进行设置的,比如第一预设颜色为红色,第二预设颜色为蓝色等。上述调整虚拟场景的场景颜色的方式可以是通过颜色插值的方式,具体可以是根据灰度蒙版中每个像素点的灰度值进行颜色插值,也可以理解为颜色混合。或者以灰度蒙版中每个像素点的灰度值为第一预设颜色和第二预设颜色的权重,进行颜色混合。
上述根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色的步骤,一种可能的实施方式:
针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
具体的,可以从灰度值中确定一个阈值,灰度值大于该阈值的像素点对应的场景位置的场景颜色为第一预设颜色,灰度值小于该阈值的像素点对应的场景位置的场景颜色为第二预设颜色。或者,可以将灰度值作为第一虚设颜色和第二预设颜色的权重,比如,直接将像素点的灰度值作为第一预设颜色的权重,将1减去灰度值的差值作为第二预设颜色的权重,计算颜色的加权值,得到该像素点对应的场景位置的目标场景颜色。或者,可以根据灰度值将虚拟场景划分多个不同的区域,在不同的区域设置不同的预设颜色,比如,像素点的灰度值在第一数值和第二数值之间时,对应的场景位置设置第一预设颜色,像素点的灰度值在第三数值和第四数值之间时,对应的场景位置设置第二预设颜色,像素点的灰度值在第五数值和第六数值之间时,对应的场景位置设置第一预设颜色和第二预设颜色的混合颜色等。
上述根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色的步骤,一种可能的实施方式:
通过下述公式计算场景位置的目标场景颜色:
color=lerp(y1,y2,weight)=(1-weight)×y1+weight×y2;
其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
具体的,在材质编辑器中设置第一预设颜色的颜色值,比如(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)。
为了进一步提高虚拟场景的光影效果,在基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法还包括:调整灰度蒙版的灰度值。
通常情况下,模型场景的帧缓存信息中的场景深度信息的视觉效果可能不符合美术工作人员的要求,或者后期由于光照或者场景中的物品移动更新等,需要重新调整场景深度信息,也就是调整灰度蒙版的灰度值,以满足美术工作人员的要求,或者更新后的虚拟场景的要求。具体主要是调整场景深度信息的过渡效果,也就是使虚拟场景能够呈现不同的视觉效果,进而可以调整虚拟场景的光照效果。
实际实现时,可以通过数学计算的方式,在最大灰度值和最小灰度值之间,对灰度值进行修改,使最大灰度值和最小灰度值之间的灰度值过渡的更加自然。比如可以通过平滑函数修改不同像素点的灰度值。该方式中,通过调整灰度蒙版的灰度值,可以对深度信息进行过渡修改,进一步提高了虚拟场景的场景效果。
上述调整灰度蒙版的灰度值的步骤,一种可能的实施方式:
通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。
上述平滑阶梯函数通常是指SmoothStep函数,该平滑阶梯函数有三个输入,Value,Max和Min,其中Value为灰度蒙版的灰度值,Max可以上述第一数值也可以是上述第二数值,Min可以是上述第二数值也可以是上述第一数值,本实施例中,Max为上述第一数值,Min为上述第二数值。具体的,可以在获取到灰度值以后先向灰度值进行数据处理,比如除以一个指定数值,以缩小灰度值的范围,然后通过修改第一数值和第二数值,调整灰度蒙版的灰度值。实际上,SmoothStep函数可以用来生成0到1的平滑过渡值,其实就是求解第一数值与第二数值之间的样条插值。第一数值表示样条插值函数的上界,第二数值表示样条插值函数的下界,灰度值表示插值的源输入。
下述为公式源码:
示例代码:
示例性的,如图3所示,不同第一数值和第二数值情况下,虚拟场景的场景效果。如图3中的(a)所示,第一数值为4.0,第二数值为0.0,如图3中的(b)所示,第一数值为4.0,第二数值为1.0,如图3中的(c)所示,第一数值为2.0,第二数值为1.5。该方式中,通过平滑阶梯函数对场景深度进行过渡处理,进一步提高了渲染效果。
为了进一步提高虚拟场景的色彩效果,在基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法包括:
步骤1,从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;
可以使用“SceneTexture”节点拦截渲染的内容,本实施例通过“SceneTexture”节点获取帧缓存信息的默认效果信息,即帧缓存信息类型为“PostProcessInput 0”,就可以获取虚拟场景的场景信息。具体的,可以对场景位置的颜色值进行处理,比如归一化处理,使得每个场景位置的颜色值在0-1之间,然后基于位于0-1之间的颜色值,得到上述颜色蒙版,即颜色蒙版的每个像素点的像素值(也可以称为颜色值),与虚拟场景中场景位置的像素值对应。
步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩。
具体的,可以通过材质编辑器提供的材质节点,比如对色彩进行处理的节点,可以对虚拟场景的色彩进行进一步调整,一般可以调整场景的饱和度、色温、色相、对比度等。该方式中,通过目标材质编辑器提供的对色彩进行处理的节点对帧缓存信息做另外色彩调整,进一步提高了虚拟场景渲染效果。
上述步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,一种可能的实施方式:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
具体的,可以通过Desaturation(饱和度调整)函数,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。通过给Fraction赋值,调整目标材质的饱和度参数,当赋予Fraction为0时,无作用,数值越靠近1,去色越明显。
上述步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,另一种可能的实施方式:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
具体的,可以通过Multipl(乘法)函数,混合或者叠加指定颜色,以调整虚拟场景的场景颜色。通过不同的颜色值,为虚拟场景叠加不同的颜色。其实就是直接在虚拟场景的基础上直接与一个颜色做乘法处理,为虚拟场景叠加不同的颜色。
上述步骤2,基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,另一种可能的实施方式:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
具体的,可以通过HueShift(色调改变)函数,使输入颜色的当前色调值偏移给定的百分比。此百分比基于1,并以色环为中心。例如,变动0.5%(50%)将改变为互补色调,即色环上对面的色调。变动1.0(100%)不会进行更改,因为这相当于正好绕色环旋转一周。通过设置不同的百分比,虚拟场景可以调整不同的场景色相,即场景色调。
前述方式中,在不修改已经构建光照完成的情况下,通过开发者手动编写的材质逻辑,通过后期材质获取场景深度信息,其中,该场景深度信息为延迟渲染(DeferredRendering)的G.Buffer数据中的场景深度。然后通过后期材质并基于屏幕空间对场景做色彩的整体修改,通过蓝图整合功能让美术工作人员摆脱常规通过修改灯光、材质模型以及贴图等耗时长、见效慢的修改方式,做到快速修改整个场景且能够实时生效的效果,并实现游戏引擎自带的后期功能无法实现的效果。
对应上述方法实施例,本发明实施例提供了一种虚拟场景的渲染装置,如图4所示,该装置包括:
获取模块41,用于获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;
生成模块42,用于从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;
调整模块43,用于基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。
本发明提供了一种虚拟场景的渲染装置,获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;目标材质的材质域具有后期处理属性,用于指示在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
上述调整模块还用于:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
上述调整模块还用于:针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
上述调整模块还用于:通过下述公式计算场景位置的目标场景颜色:color=lerp(y1,y2,weight)=(1-weight)×y1+weight×y2;其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
上述装置还包括灰度值调整模块,用于:调整灰度蒙版的灰度值。
上述灰度值调整模块还用于:通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。
上述装置还包括第二调整模块,用于:从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;基于颜色蒙版和目标材质,调整虚拟场景的色彩。
上述第二调整模块还用于:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
上述第二调整模块还用于:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
上述第二调整模块还用于:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
本发明实施例提供的虚拟场景的渲染装置,与上述实施例提供的虚拟场景的渲染方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述虚拟场景的渲染方法。该电子设备可以是服务器,也可以是终端设备。
参见图5所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述虚拟场景的渲染方法。
进一步地,图5所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤,具体包括:
获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
上述根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色的步骤,包括:针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
上述根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色的步骤,包括:通过下述公式计算场景位置的目标场景颜色:color=lerp(y1,y2,weight)=(1-weight)×y1+weight×y2;其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,方法还包括:调整灰度蒙版的灰度值。该方式中,通过调整灰度蒙版的灰度值,可以对深度信息进行过渡修改,进一步提高了虚拟场景的场景效果。
上述调整灰度蒙版的灰度值的步骤,包括:通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。该方式中,通过平滑阶梯函数对场景深度进行过渡处理,进一步提高了渲染效果。
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法包括:从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;基于颜色蒙版和目标材质,调整虚拟场景的色彩。该方式中,通过目标材质编辑器提供的对色彩进行处理的节点对帧缓存信息做另外色彩调整,进一步提高了虚拟场景渲染效果。
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述虚拟场景的渲染方法,具体包括:
获取虚拟场景中的目标材质和虚拟场景的帧缓存信息;其中,目标材质的材质域具有后期处理属性;后期处理属性用于指示:在虚拟场景渲染完成之前,通过修改目标材质的指定属性,调整虚拟场景的视觉效果;从帧缓存信息中获取虚拟场景的场景深度信息,根据场景深度信息生成虚拟场景的灰度蒙版;其中,灰度蒙版中像素点的灰度值与虚拟场景中场景位置的深度值对应;基于灰度蒙版和目标材质,调整虚拟场景的色彩,以完成渲染虚拟场景。该方式中,通过具有后期处理属性的目标材质和虚拟场景的灰度蒙版,能够在虚拟场景渲染完成之前,通过修改目标材质的指定属性,实时调整虚拟场景的色彩,操作简单便捷,降低了场景色彩的渲染时间,提高了场景色彩的渲染效率和渲染效果。
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色。
上述根据第一预设颜色,第二预设颜色,以及灰度蒙版,调整虚拟场景的场景颜色的步骤,包括:针对虚拟场景中的每个场景位置执行下述步骤:从灰度蒙版中获取场景位置对应的像素点的灰度值;根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色;将虚拟场景的场景颜色调整为目标场景颜色。
上述根据第一预设颜色,第二预设颜色,以及灰度值,计算场景位置的目标场景颜色的步骤,包括:通过下述公式计算场景位置的目标场景颜色:color=lerp(y1,y2,weight)=(1-weight)×y1+weight×y2;其中,y1为第一预设颜色的颜色值;y2第二预设颜色的颜色值;weight为灰度蒙版中与场景位置对应的像素点的灰度值;color为场景位置的目标场景颜色。
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,方法还包括:调整灰度蒙版的灰度值。该方式中,通过调整灰度蒙版的灰度值,可以对深度信息进行过渡修改,进一步提高了虚拟场景的场景效果。
上述调整灰度蒙版的灰度值的步骤,包括:通过平滑阶梯函数,预设的第一数值和预设的第二数值,将灰度蒙版中像素点的灰度值调整至第一数值和第二数值之间,得到调整后的灰度蒙版,其中,第一数值与第二数值不同。该方式中,通过平滑阶梯函数对场景深度进行过渡处理,进一步提高了渲染效果。
上述基于灰度蒙版和目标材质,调整虚拟场景的色彩的步骤之后,上述方法包括:从帧缓存信息中获取虚拟场景的场景信息,根据场景信息中的颜色信息生成虚拟场景的颜色蒙版;其中,颜色蒙版中像素点的像素值与虚拟场景中场景位置的像素值对应;基于颜色蒙版和目标材质,调整虚拟场景的色彩。该方式中,通过目标材质编辑器提供的对色彩进行处理的节点对帧缓存信息做另外色彩调整,进一步提高了虚拟场景渲染效果。
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的饱和度处理节点,调整目标材质的饱和度参数,以调整虚拟场景的饱和度。
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的乘法节点,调整目标材质的材质颜色参数,以调整虚拟场景的场景颜色。
上述基于颜色蒙版和目标材质,调整虚拟场景的色彩的步骤,包括:通过目标材质的色相节点,调整目标材质的色相参数,以调整虚拟场景的场景色相。
本发明实施例所提供的虚拟场景的渲染方法、装置以及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种虚拟场景的渲染方法,其特征在于,所述方法包括:
获取虚拟场景中的目标材质和所述虚拟场景的帧缓存信息;其中,所述目标材质的材质域具有后期处理属性;所述后期处理属性用于指示:在所述虚拟场景渲染完成之前,通过修改所述目标材质的指定属性,调整所述虚拟场景的视觉效果;
从所述帧缓存信息中获取所述虚拟场景的场景深度信息,根据所述场景深度信息生成所述虚拟场景的灰度蒙版;其中,所述灰度蒙版中像素点的灰度值与所述虚拟场景中场景位置的深度值对应;
基于所述灰度蒙版和所述目标材质,调整所述虚拟场景的色彩,以完成渲染所述虚拟场景。
2.根据权利要求1所述的方法,其特征在于,基于所述灰度蒙版和所述目标材质,调整所述虚拟场景的色彩的步骤,包括:
通过所述目标材质的色彩处理节点,根据第一预设颜色,第二预设颜色,以及所述灰度蒙版,调整所述虚拟场景的场景颜色。
3.根据权利要求2所述的方法,其特征在于,根据第一预设颜色,第二预设颜色,以及所述灰度蒙版,调整所述虚拟场景的场景颜色的步骤,包括:
针对所述虚拟场景中的每个场景位置执行下述步骤:
从所述灰度蒙版中获取所述场景位置对应的像素点的灰度值;
根据所述第一预设颜色,所述第二预设颜色,以及所述灰度值,计算所述场景位置的目标场景颜色;
将所述虚拟场景的场景颜色调整为所述目标场景颜色。
4.根据权利要求3所述的方法,其特征在于,根据所述第一预设颜色,所述第二预设颜色,以及所述灰度值,计算所述场景位置的目标场景颜色的步骤,包括:
通过下述公式计算所述场景位置的目标场景颜色:
color=lerp(y1,y2,weight)=(1-weight)×y1+weight×y2;
其中,y1为所述第一预设颜色的颜色值;y2所述第二预设颜色的颜色值;hweight为所述灰度蒙版中与所述场景位置对应的像素点的灰度值;color为所述场景位置的目标场景颜色。
5.根据权利要求1所述的方法,其特征在于,基于所述灰度蒙版和所述目标材质,调整所述虚拟场景的色彩的步骤之后,所述方法还包括:调整所述灰度蒙版的灰度值。
6.根据权利要求5所述的方法,其特征在于,调整所述灰度蒙版的灰度值的步骤,包括:
通过平滑阶梯函数,预设的第一数值和预设的第二数值,将所述灰度蒙版中像素点的灰度值调整至所述第一数值和所述第二数值之间,得到调整后的所述灰度蒙版,其中,所述第一数值与所述第二数值不同。
7.根据权利要求1所述的方法,其特征在于,基于所述灰度蒙版和所述目标材质,调整所述虚拟场景的色彩的步骤之后,所述方法包括:
从所述帧缓存信息中获取所述虚拟场景的场景信息,根据所述场景信息中的颜色信息生成所述虚拟场景的颜色蒙版;其中,所述颜色蒙版中像素点的像素值与所述虚拟场景中场景位置的像素值对应;
基于所述颜色蒙版和所述目标材质,调整所述虚拟场景的色彩。
8.根据权利要求7所述的方法,其特征在于,基于所述颜色蒙版和所述目标材质,调整所述虚拟场景的色彩的步骤,包括:
通过所述目标材质的饱和度处理节点,调整所述目标材质的饱和度参数,以调整所述虚拟场景的饱和度。
9.根据权利要求7所述的方法,其特征在于,基于所述颜色蒙版和所述目标材质,调整所述虚拟场景的色彩的步骤,包括:
通过所述目标材质的乘法节点,调整所述目标材质的材质颜色参数,以调整所述虚拟场景的场景颜色。
10.根据权利要求7所述的方法,其特征在于,基于所述颜色蒙版和所述目标材质,调整所述虚拟场景的色彩的步骤,包括:
通过所述目标材质的色相节点,调整所述目标材质的色相参数,以调整所述虚拟场景的场景色相。
11.一种虚拟场景的渲染装置,其特征在于,所述装置包括:
获取模块,用于获取虚拟场景中的目标材质和所述虚拟场景的帧缓存信息;其中,所述目标材质的材质域具有后期处理属性;所述后期处理属性用于指示:在所述虚拟场景渲染完成之前,通过修改所述目标材质的指定属性,调整所述虚拟场景的视觉效果;
生成模块,用于从所述帧缓存信息中获取所述虚拟场景的场景深度信息,根据所述场景深度信息生成所述虚拟场景的灰度蒙版;其中,所述灰度蒙版中像素点的灰度值与所述虚拟场景中场景位置的深度值对应;
调整模块,用于基于所述灰度蒙版和所述目标材质,调整所述虚拟场景的色彩,以完成渲染所述虚拟场景。
12.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1-10任一项所述的虚拟场景的渲染方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现权利要求1-10任一项所述的虚拟场景的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211229399.1A CN115700775A (zh) | 2022-10-09 | 2022-10-09 | 虚拟场景的渲染方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211229399.1A CN115700775A (zh) | 2022-10-09 | 2022-10-09 | 虚拟场景的渲染方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115700775A true CN115700775A (zh) | 2023-02-07 |
Family
ID=85121046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211229399.1A Pending CN115700775A (zh) | 2022-10-09 | 2022-10-09 | 虚拟场景的渲染方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115700775A (zh) |
-
2022
- 2022-10-09 CN CN202211229399.1A patent/CN115700775A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112316420B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN108537861B (zh) | 贴图生成方法、装置、设备和存储介质 | |
CN106537459B (zh) | 图形处理系统、操作该系统的方法和计算机可读存储介质 | |
JP2010519618A (ja) | 効率的な2d及び3dグラフィックス処理 | |
US10089782B2 (en) | Generating polygon vertices using surface relief information | |
CN113272865A (zh) | 具有实时3d可视化的点云着色系统 | |
US10134171B2 (en) | Graphics processing systems | |
KR20170016301A (ko) | 그래픽 처리 | |
EP3355279A1 (en) | Method and computer programs for identifying differences between 3-dimensional scenes | |
CN112190935A (zh) | 动态体积云的渲染方法、装置及电子设备 | |
CN110969688B (zh) | 一种实景三维模型实时匀色方法 | |
CN111951369B (zh) | 一种细节纹理的处理方法和装置 | |
CN115700775A (zh) | 虚拟场景的渲染方法、装置和电子设备 | |
CN114549732A (zh) | 模型的渲染方法、装置及电子设备 | |
US20210027533A1 (en) | Graphics processing systems | |
CN114288671A (zh) | 贴图制作方法、装置、设备及计算机可读介质 | |
CN112465941B (zh) | 一种体积云处理方法、装置、电子设备及存储介质 | |
CN114549733A (zh) | 一种图像处理方法、装置、设备及介质 | |
CN115131480A (zh) | 跑马灯特效的制作方法、装置及电子设备 | |
KR100603134B1 (ko) | 단색광을 이용한 3차원 렌더링 처리 방법 및 그 장치 | |
US9514566B2 (en) | Image-generated system using beta distribution to provide accurate shadow mapping | |
US20230410406A1 (en) | Computer-readable non-transitory storage medium having image processing program stored therein, image processing apparatus, image processing system, and image processing method | |
CN111986303B (zh) | 流体渲染方法、装置、存储介质及终端设备 | |
US11657552B2 (en) | Generating illuminated two-dimensional vector graphics using path tracing | |
CN113436306B (zh) | 图像的渲染方法、装置及存储介质 |
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 |