技术新讯 > 计算推算,计数设备的制造及其应用技术 > 阴影渲染方法、装置、电子设备、存储介质及程序产品与流程  >  正文

阴影渲染方法、装置、电子设备、存储介质及程序产品与流程

  • 国知局
  • 2024-07-31 22:36:34

本技术涉及计算机,尤其涉及一种阴影渲染方法、装置、电子设备、存储介质及程序产品。

背景技术:

1、随着图像渲染技术的发展,为了模拟出更加逼真的虚拟场景,通常会实时地对虚拟场景中的待投影对象的阴影进行渲染。

2、相关技术中,在对于阴影的渲染,通常通过阴影映射等方式实现,通过相关技术对待投影对象的阴影进行渲染时,所渲染的阴影边缘呈锯齿状,且阴影区域呈现单一色调,不符合现实世界中的阴影呈现规律,导致所渲染的阴影的真实性较差。

技术实现思路

1、本技术实施例提供一种阴影渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够有效提高所渲染的阴影的真实性。

2、本技术实施例的技术方案是这样实现的:

3、本技术实施例提供一种阴影渲染方法,包括:

4、获取虚拟场景中的投影平面以及至少一个待投影对象,所述投影平面是所述虚拟场景中的各所述待投影对象的阴影所在的虚拟平面;

5、在所述投影平面中,确定各所述待投影对象分别对应的投影区域;

6、获取各所述投影区域中各投影点与相应的所述待投影对象之间的最短距离,并基于所述最短距离,确定相应的所述投影点的着色参数;

7、基于所述着色参数,绘制各所述投影区域分别对应的目标阴影贴图;

8、将各所述目标阴影贴图分别叠加至相应的所述投影区域,得到所述虚拟场景中各所述待投影对象的阴影渲染结果。

9、本技术实施例提供一种阴影渲染装置,包括:

10、获取模块,用于获取虚拟场景中的投影平面以及至少一个待投影对象,所述投影平面是所述虚拟场景中的各所述待投影对象的阴影所在的虚拟平面;

11、区域确定模块,用于在所述投影平面中,确定各所述待投影对象分别对应的投影区域;

12、参数确定模块,用于获取各所述投影区域中各投影点与相应的所述待投影对象之间的最短距离,并基于所述最短距离,确定相应的所述投影点的着色参数;

13、绘制模块,用于基于所述着色参数,绘制各所述投影区域分别对应的目标阴影贴图;

14、贴图模块,用于将各所述目标阴影贴图分别叠加至相应的所述投影区域,得到所述虚拟场景中各所述待投影对象的阴影渲染结果。

15、在一些实施例中,上述绘制模块,还用于针对各所述投影区域分别执行以下处理:获取所述投影区域对应的初始阴影贴图,所述投影区域中的各所述投影点分别与所述初始阴影贴图中的至少一个像素点对应;基于各所述投影点的着色参数,对所述初始阴影贴图中相应的像素点进行阴影绘制,得到所述投影区域对应的候选阴影贴图;对所述候选阴影贴图进行边缘模糊处理,得到所述投影区域对应的目标阴影贴图。

16、在一些实施例中,上述绘制模块,还用于当所述着色参数包括灰度值时,基于各所述投影点的灰度值,确定各所述投影点对应的像素点的灰度值;其中,所述投影点的灰度值为,所述投影点对应的各所述像素点的灰度值之和;基于各所述像素点的灰度值,对所述初始阴影贴图中各所述像素点进行阴影绘制,得到所述投影区域对应的候选阴影贴图。

17、在一些实施例中,上述绘制模块,还用于获取所述投影区域中各所述投影点的投影坐标;基于所述投影坐标,对所述投影区域进行光栅化,得到所述投影区域对应的投影贴图;对所述投影贴图进行平滑处理,得到所述投影区域对应的初始阴影贴图。

18、在一些实施例中,上述绘制模块,还用于将位于所述候选阴影贴图的边缘位置的各所述像素点,确定为边缘像素点,并确定各所述边缘像素点分别对应的至少一个相邻像素点;获取所述边缘像素点的像素参数,以及所述边缘像素点对应的各所述相邻像素点的像素参数;基于所述边缘像素点的像素参数,以及所述边缘像素点对应的各所述相邻像素点的像素参数,对各所述边缘像素点进行模糊处理,得到所述投影区域对应的目标阴影贴图。

19、在一些实施例中,上述绘制模块,还用于当所述像素参数包括灰度值时,针对各所述边缘像素点,将所述边缘像素点的灰度值及各所述相邻像素点的灰度值,进行加权平均,得到所述边缘像素点的目标灰度值;将所述候选阴影贴图中各所述边缘像素点的灰度值,更新为对应的所述目标灰度值,得到所述投影区域对应的所述目标阴影贴图。

20、在一些实施例中,所述着色参数包括灰度值,所述灰度值的大小与所述投影点的明亮程度呈反比;上述参数确定模块,还用于获取投影点与待投影对象之间的距离与灰度值之间的映射关系,所述距离的大小与所述灰度值的大小呈反比;基于所述最短距离及所述映射关系,确定相应的所述投影点的灰度值。

21、在一些实施例中,上述区域确定模块,还用于针对各所述待投影对象分别执行以下处理:获取用于拍摄所述虚拟场景的虚拟相机,以及所述虚拟场景的虚拟光源;获取所述投影平面中的各平面点分别与所述虚拟相机的第一连线,以及所述投影平面中的各平面点分别与所述虚拟光源的第二连线;基于所述第一连线和所述第二连线,确定各所述平面点的区域类型,所述区域类型,用于指示所述平面点是否归属于所述待投影对象对应的投影区域;基于各所述平面点的区域类型,确定所述待投影对象对应的投影区域。

22、在一些实施例中,上述区域确定模块,还用于针对各所述平面点分别执行以下处理:当所述平面点的第一连线与所述待投影对象之间没有交点,且所述平面点的第二连线与所述待投影对象之间没有交点时,将所述平面点的区域类型确定为第一区域类型;其中,所述第一区域类型,用于指示所述平面点不归属于所述待投影对象对应的投影区域;当所述平面点的第一连线与所述待投影对象之间存在交点,或者所述平面点的第二连线与所述待投影对象之间存在交点时,将所述平面点的区域类型确定为第二区域类型;其中,所述第二区域类型,用于指示所述平面点归属于所述待投影对象对应的投影区域。

23、在一些实施例中,上述阴影渲染装置,还包括:对象渲染模块,用于针对各所述待投影对象分别执行以下处理:分别获取所述待投影对象的各对象点与所述虚拟光源之间的深度,所述深度,用于指示所述对象点与所述虚拟光源在投影空间的竖轴上的距离;基于所述深度,确定相应的所述对象点的灰度值,所述深度的大小与所述灰度值的大小呈正比,所述灰度值的大小与所述对象点的明亮程度呈反比;基于所述对象点的灰度值,绘制所述待投影对象的对象贴图,并将所述对象贴图叠加至所述待投影对象所在的区域,得到所述待投影对象的对象渲染结果,其中,所述对象渲染结果,用于结合相应的所述待投影对象的阴影渲染结果,生成相应的所述待投影对象在所述虚拟场景中的渲染结果。

24、在一些实施例中,上述对象渲染模块,还用于分别获取所述待投影对象的各所述对象点与所述投影平面之间的第一投影距离,以及所述虚拟光源与所述投影平面之间的第二投影距离;确定所述第二投影距离分别与各所述对象点的第一投影距离之间的距离差值;将各所述对象点对应的距离差值,确定为相应的所述对象点的所述深度。

25、在一些实施例中,上述阴影渲染装置,还包括:写入模块,用于将各所述投影点对应的最短距离写入显存;读取模块,用于从所述显存中读取所述最短距离;删除模块,用于将所述显存中存储的所述最短距离,从所述显存中删除,以释放所述显存的存储空间。

26、本技术实施例提供一种电子设备,包括:

27、存储器,用于存储计算机可执行指令或者计算机程序;

28、处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本技术实施例提供的阴影渲染方法。

29、本技术实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于引起处理器执行时,实现本技术实施例提供的阴影渲染方法。

30、本技术实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本技术实施例上述的阴影渲染方法。

31、本技术实施例具有以下有益效果:

32、通过获取虚拟场景中的投影平面以及至少一个待投影对象,确定各待投影对象分别对应的投影区域,通过投影区域中的各投影点与待投影对象之间的最短距离,确定各投影点的着色参数,并基于各个投影点的着色参数,绘制投影区域对应的目标阴影贴图,并将目标阴影贴图叠加至投影区域,得到待投影对象的阴影渲染结果。如此,由于投影点的着色参数是通过投影点与待投影对象之间的最短距离而确定的,使得所确定的投影点的着色参数能够反映虚拟场景的空间位置关系(投影点与待投影对象之间的最短距离),从而通过着色参数绘制目标阴影贴图,并将目标阴影贴图叠加至投影区域,得到阴影渲染结果,从而使得阴影渲染结果能够准确反映虚拟场景的空间位置关系,从而能够有效提高所渲染的阴影的真实性。

本文地址:https://www.jishuxx.com/zhuanli/20240731/193838.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。