一种体积云地面阴影渲染方法、装置和存储介质

文档序号:37242707发布日期:2024-03-06 17:12阅读:171来源:国知局
一种体积云地面阴影渲染方法、装置和存储介质

本技术涉及环境仿真模拟,特别是涉及一种体积云地面阴影渲染方法、装置和存储介质。


背景技术:

1、云是自然场景中的重要组成部分,体积云模拟技术在动漫、游戏、影视、气象、飞行模拟、军事仿真等领域具有广泛应用。在一些特定场景下,例如虚拟作战环境仿真中,云的地面阴影会影响无人机对地面目标的侦察检测,同时云团作为一类可以透光的介质,不同的云团厚度密度决定云的透光性不同,地面阴影明暗程度也不同。云层地面阴影的准确模拟可以使得场景更加逼真更有沉浸感,反映出云层对地面建筑等的遮挡关系。目前大部分云模拟技术中,或使用深度等参数设置阴影强度,使得云模拟效果不够理想,或通过采样累积云密度来计算阴影强度,效率较低。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够兼顾阴影准确性和计算效率的体积云地面阴影渲染方法、装置和存储介质。

2、一种体积云地面阴影渲染方法,所述方法包括:

3、获取指定地理位置处的气象数据,所述气象数据包括相对湿度数据;

4、根据所述相对湿度数据生成所述指定地理位置处的云纹理数据;

5、基于所述云纹理数据,以太阳光方向为视口,采用投影方式获得所述云纹理数据对应的阴影纹理数据,所述阴影纹理数据包括阴影深度信息和阴影强度信息;

6、以相机位置为视口,根据所述阴影深度信息和地面像素点的场景深度信息,如果判断出任一地面像素点处于阴影中,则根据该地面像素点的场景深度信息和阴影强度信息确定该地面像素点处的阴影颜色信息。

7、在其中一个实施例中,将所述指定地理位置划分为若干个位置点,每一位置点的位置信息采用经纬度信息和云层高度信息进行描述;所述云纹理数据包括每一位置点处的云量值;

8、获取指定位置处的气象数据,具体包括:

9、获取每一位置点处的相对湿度数据与该位置点对应的位置信息组成所述指定地理位置处的二维相对湿度数值矩阵;以及

10、根据所述相对湿度数据生成所述指定地理位置处的云纹理数据,具体包括:

11、针对每一位置点,根据该位置点对应的相对湿度数据,采用基于相对湿度的云量诊断公式生成该位置点处的云量值。

12、在其中一个实施例中,针对每一位置点,根据该位置点对应的相对湿度数据,采用基于相对湿度的云量诊断公式,按照以下方法生成该位置点处的云量值:

13、

14、

15、其中:

16、cmc表示该位置点处的云量值;

17、rh和rhcr分别表示该位置点处的相对湿度和成云的相对湿度临界值,low cloud、medium cloud和heigh cloud均表示相对湿度临界值,相对湿度临界值随云层高度发生变化。

18、在其中一个实施例中,使用指数阴影图esm作为渲染目标纹理rtt;

19、基于所述云纹理数据,以太阳光方向为视口,采用投影方式获得所述云纹理数据对应的阴影纹理数据,具体包括:

20、以太阳光方向为视口,采用光线步进的投影方式获得每一位置点处的云深度信息;

21、根据所述云深度信息和esm参数确定所述阴影深度信息;

22、基于太阳光视口坐标系到世界坐标系的转换矩阵,确定每一位置点在世界坐标系下对应的目标位置点;

23、从所述云纹理数据中查找所述目标位置点对应的目标云量值;

24、根据所述目标云量值确定相应位置点处的阴影强度信息。

25、在其中一个实施例中,

26、根据所述目标云量值,按照以下方法确定相应位置点处的阴影强度信息:

27、其中:

28、cmc表示目标位置点处对应的目标云量值;

29、cmcmax表示所述云纹理数据中的最大云量值;

30、p表示阴影强度系数。

31、在其中一个实施例中,按照以下方法判断任一地面像素点是否处于阴影中:

32、基于相机视口坐标系到世界坐标系的转换矩阵和世界坐标系到太阳光视口坐标系的转换矩阵,确定相机视口坐标系到太阳光视口坐标系的转换矩阵;

33、根据相机视口坐标系到太阳光视口坐标系的转换矩阵,确定任一地面像素点的场景深度信息在太阳光视口坐标系下对应的目标深度信息;

34、针对任一位置点,比较该位置点的阴影深度信息和该位置点对应的地面像素点在太阳光视口坐标系下的目标深度信息;

35、如果该位置点的阴影深度信息小于该位置点对应的地面像素点在太阳光视口坐标系下的目标深度信息,则确定相应的地面像素点处于阴影中。

36、在其中一个实施例中,根据该地面像素点的场景深度信息和阴影强度信息,按照以下公式确定该地面像素点处的阴影颜色信息:

37、

38、其中:

39、saturate为饱和函数;

40、depthesm=e(k*depth),k表示esm参数,depth表示任一位置点处的阴影深度信息;depthcamera_sun表示任一位置点对应的地面像素点在太阳光视口坐标系下的目标深度信息。

41、一种体积云地面阴影渲染装置,所述装置包括:

42、获取单元,用于获取指定地理位置处的气象数据,所述气象数据包括相对湿度数据;

43、生成单元,用于根据所述相对湿度数据生成所述指定地理位置处的云纹理数据;

44、获得单元,用于基于所述云纹理数据,以太阳光方向为视口,采用投影方式获得所述云纹理数据对应的阴影纹理数据,所述阴影纹理数据包括阴影深度信息和阴影强度信息;

45、确定单元,用于以相机位置为视口,根据所述阴影深度信息和地面像素点的场景深度信息,如果判断出任一地面像素点处于阴影中,则根据该地面像素点的场景深度信息和阴影强度信息确定该地面像素点处的阴影颜色信息。

46、在其中一个实施例中,将所述指定地理位置划分为若干个位置点,每一位置点的位置信息采用经纬度信息和云层高度信息进行描述;所述云纹理数据包括每一位置点处的云量值;

47、所述获取单元,具体用于获取每一位置点处的相对湿度数据与该位置点对应的位置信息组成所述指定地理位置处的二维相对湿度数值矩阵;

48、所述生成单元,具体用于针对每一位置点,根据该位置点对应的相对湿度数据,采用基于相对湿度的云量诊断公式生成该位置点处的云量值。

49、在其中一个实施例中,所述生成单元,具体用于按照以下方法生成该位置点处的云量值:

50、

51、

52、其中:

53、cmc表示该位置点处的云量值;

54、rh和rhcr分别表示该位置点处的相对湿度和成云的相对湿度临界值,low cl0ud、medium cloud和heigh cloud均表示相对湿度临界值,相对湿度临界值随云层高度发生变化。

55、在其中一个实施例中,使用指数阴影图esm作为渲染目标纹理rtt;

56、所述获得单元,具体用于以太阳光方向为视口,采用光线步进的投影方式获得每一位置点处的云深度信息;根据所述云深度信息和esm参数确定所述阴影深度信息;基于太阳光视口坐标系到世界坐标系的转换矩阵,确定每一位置点在世界坐标系下对应的目标位置点;从所述云纹理数据中查找所述目标位置点对应的目标云量值;根据所述目标云量值确定相应位置点处的阴影强度信息。

57、在其中一个实施例中,所述获得单元,具体用于根据所述目标云量值,按照以下方法确定相应位置点处的阴影强度信息:

58、其中:cmc表示目标位置点处对应的目标云量值;cmcmax表示所述云纹理数据中的最大云量值;p表示阴影强度系数。

59、在其中一个实施例中,所述确定单元,具体用于按照以下方法判断任一地面像素点是否处于阴影中:基于相机视口坐标系到世界坐标系的转换矩阵和世界坐标系到太阳光视口坐标系的转换矩阵,确定相机视口坐标系到太阳光视口坐标系的转换矩阵;根据相机视口坐标系到太阳光视口坐标系的转换矩阵,确定任一地面像素点的场景深度信息在太阳光视口坐标系下对应的目标深度信息;针对任一位置点,比较该位置点的阴影深度信息和该位置点对应的地面像素点在太阳光视口坐标系下的目标深度信息;如果该位置点的阴影深度信息小于该位置点对应的地面像素点在太阳光视口坐标系下的目标深度信息,则确定相应的地面像素点处于阴影中。

60、在其中一个实施例中,所述确定单元,具体用于根据该地面像素点的场景深度信息和阴影强度信息,按照以下公式确定该地面像素点处的阴影颜色信息:

61、

62、其中:

63、saturate为饱和函数;

64、depthesm=e(k*depth),k表示esm参数,depth表示任一位置点处的阴影深度信息;depthcamera_sun表示任一位置点对应的地面像素点在太阳光视口坐标系下的目标深度信息。

65、一种计算装置,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以上任一实施例所述方法的步骤。

66、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一实施例所述方法的步骤。

67、上述体积云地面阴影渲染方法、装置和存储介质,使用气象数据生成云纹理数据,基于云纹理数据来确定地面阴影强度,基于确定出的地面阴影强度采用阴影图算法绘制阴影,替代一般阴影图算法的参数设置方法,更准确有效的反映云对地面阴影明暗程度的影响,避免了复杂的云密度累加计算,从而提高了体积云地面阴影渲染的准确性和计算效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1