一种基于阴影渲染的真实环境模拟方法及装置制造方法及图纸

技术编号:38330106 阅读:10 留言:0更新日期:2023-07-29 09:12
本发明专利技术涉及一种基于阴影渲染的真实环境模拟方法及装置,方法至少包括:将要渲染的立体场景放置在一虚拟地球的相应位置上;设定移动的光源作为要渲染的立体场景内的虚拟太阳;在限定要渲染的立体场景的全部或者部分的体的包络盒且确定第一深度基准面Z1之后,确定第一深度基准面Z1的向量与立体场景内设定的水平面之间的夹角;根据夹角确定阴影的颜色深度;根据真实世界的当前时间和当前时间内真实太阳相对于地球的运动轨迹控制虚拟太阳相对于虚拟地球的运动轨迹。本发明专利技术能够让游戏者能够根据阴影颜色深浅变化和位置变化感受真实世界的时间,防止部分游戏者沉沦游戏而不能感受时间消逝的问题,相当于对其起到心理暗示的作用。作用。作用。

【技术实现步骤摘要】
一种基于阴影渲染的真实环境模拟方法及装置
[0001]本专利技术是申请号为201910013863.5,申请日为2019年01月07日,申请名称为一种在三维可视化图形中的阴影渲染方法,申请类型为专利技术的专利技术专利的分案申请。


[0002]本专利技术涉及真实环境模拟
,尤其涉及一种基于阴影渲染的真实环境模拟方法及装置。

技术介绍

[0003]现实场景中,阴影是一种常见的光照现象,通常是指由于光沿直线传播被不透明物体阻挡而产生的黑暗区域。而在虚拟场景中,由三维建模生成的对象表示的阴影对于大体上可视化屏幕以及检测对象之间的相对关系是非常重要的。在实时渲染中,目前已有多种阴影渲染算法,这些算法主要分为三类,即全局光照算法、阴影映射算法和阴影体算法,其中以光线追踪为代表的全局光照算法虽然效果逼真,但计算量巨大,很难进行实时绘制,阴影映射算法和阴影体算法可视为全局光照方法的近似方法。阴影体算法由于对场景中的物体几何复杂程度有严重的依赖,且对场景中物体形状的构成有严格限制,因此适用性较差。而阴影映射算法对场景复杂度几乎没有任何限制,并且原理简单,绘制速度快,使得阴影映射算法成为了目前实时渲染领域最常用的阴影渲染算法,其基本原理是以光源为视点可看到场景中所有被照亮的部分,而光源看不到的区域则是阴影区域。
[0004]传统的阴影映射方法主要分为两步:
[0005]步骤1:以光源位置为视点对整个场景进行绘制,记录场景中每个可见像素的深度,这些深度信息代表了某像素上距离光源最近物体与光源之间的距离,将这些深度信息储存后构成深度纹理;
[0006]步骤2:从真实视点的角度绘制场景,对于绘制的每个点,计算其距离光源的距离,并将距离光源的距离与第一步绘制中生成的深度贴图中相应的深度值进行比较,若距离光源的距离>深度值,则表示该点与光源之间还有其他物体,该点位于阴影中,否则,该点不在阴影中。
[0007]为了进行深度比较,每个点的深度都要处理为[0~1]中的一个数字。根据现有技术的三维场景的阴影生成方法,离光源近的一个基准面为深度为0的基准面,离光源远的一个基准面为深度为1的基准面,然后基于则两个基准面来判断深度。这种基准面的设定方法虽然符合人们的认知习惯,但是导致的问题是靠近1的区域,浮点数精度明显劣于靠近0的区域,而三维场景中为了让灯光尽可能地照射到三维场景中的每个点和更好地模拟太阳光接近于平行照射地球的效果,会将灯光设置在远离三维场景的地方,以致于三维视图的阴影会出现闪动。而这种闪动不仅会对视觉效果造成影响,还可能影响观察者的情绪和造成观察者的视觉疲劳。
[0008]公开号为CN104103092A的中国专利公开了一种基于聚光灯实时动态阴影的实现方法,主要包括:a、遍历场景中可见对象列表,只对场景中的可见或者部分可见的对象进行
渲染;b、在灯光空间下渲染场景时,获取离光源最近所有像素投射的深度图;c、正常渲染场景时,将相机空间转化到灯光空间下得到的像素的新位置的深度值进行比较,当像素的新位置深度值大于深度图时,该像素处于阴影中;然后将阴影与场景颜色混合,投射到屏幕上。但是,该技术方案中所涉及的深度基准面的设置并非针对同一参照空间设定的,需要进行不同坐标空间的转换,该技术方案通过将灯光空间位置转换到视锥体投影空间,并通过转化后的矩阵计算每个点的投影坐标,其中的投影坐标的Z值即为深度值,当正常渲染场景时,基于相机空间渲染了一张纹理图,包含物体的纹理以及深度值,然后先转化为世界空间位置,灯光空间也是基于世界空间位置来说,如果做深度比较,必须把世界空间位置转化到灯光空间才可以做比较。
[0009]本专利技术中,根据映射或者设定的最大深度基准Z
max
和映射或者设定的最小深度基准Z
min
确定相应的像素是否处于阴影中,由于将第一深度基准面Z1和第二深度基准面Z2中相对更靠近光源300的第一深度基准面Z1的深度值设定为最大深度基准Z
max
,将第一深度基准面Z1和第二深度基准面Z2中相对更远离光源300的第二深度基准面Z2的深度值设定为最小深度基准Z
min
。这与该技术专利是完全相反的。

技术实现思路

[0010]针对现有技术之不足,本专利技术提供了一种三维可视化图形中的阴影渲染方法,该方法包括:为要渲染的区域确定第一深度基准面和第二深度基准面,将第一深度基准面和第二深度基准面中相对更靠近光源的第一深度基准面的深度值映射为最大深度基准,将第一深度基准面和第二深度基准面中相对更远离光源的第二深度基准面的深度值映射为最小深度基准。
[0011]根据一个优选实施方式,该方法包括:限定要渲染的立体场景的全部或者部分的体的包络盒,其中,所述包络盒的垂直于光轴的第一虚拟面和第二虚拟面分别作为第一深度基准面和第二深度基准面,将第一和第二深度基准面中相对更靠近光源的第一深度基准面的深度值映射为最大深度基准,将第一和第二深度基准面中相对更远离光源的第二深度基准面的深度值映射为最小深度基准。
[0012]根据一个优选实施方式,一种三维可视化图形中的阴影渲染方法,该方法包括:根据当前视点位置和方向确定当前可见物体;在三维场景确定当前可见物体的光束包络盒;依据所述包络盒的垂直于光轴的切面与所述被照射物体相交的接近顺序来确定第一深度基准面和第二深度基准面;基于第一深度基准面和第二深度基准面来确定所述被照射物体在三维场景中形成的阴影,其中,第一深度基准面被映射为最大深度基准Z
max
,而第二深度基准面被映射为最小深度基准Z
min
,其中,第一深度基准面相对于第二深度基准面更靠近光源。。
[0013]根据一个优选实施方式,,最大深度基准为1,最小深度基准为0。
[0014]根据一个优选实施方式,对于平行光源,投影变换如下:令w=光柱宽度,h=光柱高度,n=Z1,f=Z2,投影变换矩阵M如下:
[0015][0016]由此得到深度映射函数为:其中,Z1≤z≤Z2。
[0017]根据一个优选实施方式,对于点光源,投影变换如下:
[0018]令aspect=光锥的宽高比,fovY=光锥张角,n=Z1,f=Z2,优化后投影变换矩阵M如下:
[0019][0020]只考虑深度方向的分量得到深度映射函数为:其中,Z1≤z≤Z2。
[0021]根据一个优选实施方式,该方法还包括:当从第一深度基准面Z1到相应的像素的直线距离小于对应的深度值之时,确定相应的像素处于阴影中。
[0022]根据一个优选实施方式,一种计算设备,所述计算设备被配置为执行如前述优选实施方式之一所述的方法。
[0023]根据一个优选实施方式,一种中央处理器,所述中央处理器被配置为执行本专利技术的方法。
[0024]根据一个优选实施方式,一种图形处理器,所述图形处理器被配置为执行如前述优选实施方式之一所述的方法。
附图说明
[0025]图1是本专利技术的一个优选实施方式的示意图;
...

【技术保护点】

【技术特征摘要】
1.一种基于阴影渲染的真实环境模拟方法,其特征在于,所述方法至少包括:将要渲染的立体场景(100)放置在一虚拟地球的相应位置上;设定移动的光源作为要渲染的立体场景(100)内的虚拟太阳;在限定要渲染的立体场景(100)的全部或者部分的体的包络盒(200)且确定第一深度基准面(Z1)之后,确定第一深度基准面(Z1)的向量与立体场景(100)内设定的水平面之间的夹角;根据夹角确定阴影的颜色深度;根据真实世界的当前时间和当前时间内真实太阳相对于地球的运动轨迹控制虚拟太阳相对于虚拟地球的运动轨迹。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将深度基准由大到小按照从光源(300)方向往远离光源(300)方向的顺序进行设置,将第一深度基准面(Z1)和第二深度基准面(Z2)中相对更靠近光源(300)的第一深度基准面(Z1)的深度值映射为最大深度基准(Z
max
),将第一深度基准面(Z1)和第二深度基准面(Z2)中相对更远离光源(300)的第二深度基准面(Z2)的深度值映射为最小深度基准(Z
min
)。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述夹角的绝对值越大,阴影的颜色深度越高或者颜色深度越浅。4.根据权利要求1~3任一项所述的方法,其特征在于,所述方法还包括:当从第一深度基准面Z1到相应的像素的直线距离小于对应的深度值之时,确定相应的像素处于阴影中。5.根据权利要求1~4任一项所述的方法,其特征在于,所述方法还包括:根据真实世界的当前时间和当前时间内真实太阳相对于地球的运动轨迹控制虚拟太阳相对于虚拟地球的运动轨迹是周期性控制的。6.根据权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:对于平行光源,投影变换如下:令w=光柱宽度,h=光柱高度,n=Z1,f=...

【专利技术属性】
技术研发人员:赵耀李泳雷尧王瑶瑶
申请(专利权)人:北京达美盛软件股份有限公司
类型:发明
国别省市:

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

1