一种基于虚拟光照环境和光线查询的模型混合渲染方法

文档序号:34549563发布日期:2023-06-28 00:08阅读:68来源:国知局
一种基于虚拟光照环境和光线查询的模型混合渲染方法

本发明涉及计算机图形渲染技术,具体是一种基于虚拟光照环境和光线查询的模型混合渲染方法。


背景技术:

1、模型渲染,是图形处理中很重要的一个环节。在虚拟环境下,为了使渲染效果更加真实,需要渲染目标与周围虚拟环境进行光照交互,从而达到更好的光照效果。

2、全局光照是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。当我们使用常见的引擎渲染模型的时候,一般只有直接光照(漫反射,高光),而间接光照需要使用额外的着色器语言进行添加。不同的间接光照对应不同的解决方案,虚拟光源就是间接光照中的一个方案,而采用虚拟光照需要生成深度图像,如果此时再采用阴影图像的方式进行阴影渲染,会造成额外的负担,所以需要另一种阴影生成方式。

3、光线追踪是现在主流图形api都拥有的功能,这使得我们使用光线追踪的相关功能的时候不需要手动做模拟光线,可以直接调用硬件光线追踪的功能,并且光线追踪技术相对于传统光栅化渲染阴影拥有更加明了的方式。


技术实现思路

1、本发明的目的在于提供一种基于虚拟光照环境和光线查询的模型混合渲染方法,使渲染环境的光照效果更加逼真,并且阴影效果更加真实。

2、为了实现上述目的,本发明采用以下技术方案予以实现:

3、一种基于虚拟光照环境和光线查询的模型混合渲染方法,包括如下步骤:

4、1)、利用光源对周围环境进行直接光照,并记录通过光源的直接照射而产生的渲染画面,从而获取光源视角的信息;

5、2)、从光源的视角对环境进行渲染从而得到从光源视角看到的发光区域,将世界空间位置信息、normal法线信息和flux颜色信息保存至纹理中;

6、3)、用步骤2保存的normal法线信息将发光区域拟合成虚拟的平面光源,用截断余弦分布的brdf计算虚拟的平面光源下的间接光照;

7、4)、将间接光照和直接光照融合起来,使用glsl着色器中的光线查询对环境进行阴影渲染。

8、进一步地,所述步骤1)中光源视角的信息包括三维坐标系下model矩阵、透视矩阵和模型的position。

9、进一步地,所述步骤2)具体包括如下步骤:

10、2.1)、先从光源视角对环境进行渲染,在整体场景渲染的顶点着色器的加载模型中获得模型的顶点position和模型的法线normal,然后通过光源视角的照射获得光源视角的法线,最后通过光源视角的三维坐标系下model矩阵与模型的position的乘积获得光源视角下的世界坐标点worldposition;

11、2.2)、先通过顶点着色器中的fs_normal获得normal法线信息,并从顶点着色器中的fs_position获得已知相机视角下的worldposition坐标,然后通过纹理中自带的纹理信息获得环境空间的flux颜色信息,最后将normal信息和flux颜色信息和相机视角下的worldposition保存至纹理中。

12、进一步地,所述步骤1)中光源视角的信息包括三维坐标系下model矩阵、透视矩阵和模型的position。

13、进一步地,所述步骤3)中虚拟的平面光源由每个像素p的深度值dp、世界空间位置xp、法线np和可见表面点的反射辐射通量φp逆合而成。

14、进一步地,所述步骤3)具体包括如下步骤:

15、3.1)通过已知的光源视角下的透视矩阵乘以相机视角下的worldposition,计算出片段着色器中要用到的光源空间坐标fragposinlightspace值;

16、3.2)使用截断余弦分布的brdf计算虚拟的平面光源下的间接光照,通过公式(8)计算间接光照的效果,在基于虚拟平面光源的间接光照阶段,通过每一个虚拟的平面光源计算的光照效果均乘以距离权值,将总体的光照效果和每一次采样的光照效果相加得出来的结果就是次级虚拟光源的光照效果:

17、

18、式中:p为多边形,d是截断余弦变换过后的多边形光照积分,il是光照效果,dwi为立体角的微分,l为光源在立体角ωi方向的辐照度。

19、进一步地,所述步骤3.2)使用截断余弦分布的brdf计算虚拟的平面光源下的间接光照的过程为:

20、3.2.1)、先设定光源对环境渲染生成的深度缓冲区称为阴影贴图,对于阴影贴图中的每个像素,都额外存储从撞击表面反射的光;再将步骤2)存储的信息分块和拟合,变成若干个小平面并存储平面信息;

21、3.2.2)、探寻被渲染点的每个表面的贡献度积分,表示为:

22、i=∫pli(wi)ρ(wv,wl)cosθidwi (1)

23、式中:ρ为brdf函数,p为多边形,i为光照积分的贡献度积分结果,θ为着色点法线与光源照射方向的夹角,dwi为立体角的微分;

24、根据漫反射brdf贡献公式(2),经过先行球形变换之后使用ltc进行拟合余弦加权的brdf对着色点进行着色,在间接光照的情况下,仅考虑漫反射brdf,可以设定成一个常用的恒定强度的值,通常可设定为一个自定义光照强度与π的比值;

25、i=ρl∫pcosθidwi(2)

26、式中:ρ为常用的brdf固定值,p为多边形,θ为着色点法线与光源照射方向的夹角,dwi为立体角的微分;

27、将多边形光源各个地方的强度设定为恒定的值,推导出公式(3)~(5):

28、i=∫pl(wi)()dwi(3)

29、i=l∫pd(wi)dwi (4)

30、i=l*e(p0)(5)

31、式中:e代表虚拟多边形,p0是入射通量或能量;

32、3.2.3)、假设用一张2d颜色纹理表示光源发射的radiance,将公式(3)改写为公式(6),继而推导出公式(7)和公式(8):

33、a≈∫pl(wi)()dwi=idil(6)

34、id≈∫pd(wi)(7)

35、

36、式中:p为多边形,a为光照积分结果,id是对原光源形状积分的结果,il是多边形光颜色的积分结果,dwi为立体角的微分;

37、进一步地,所述步骤4)中通过增量方式将光线追踪效果添加到公式(6)得到的光照效果中,或者使用栅格化混合方法实现主要光线的可见性。

38、进一步地,所述步骤4)具体包括如下步骤:

39、4.1)、引用vulkan图形api中的光线追踪以及光线查询扩展,通过uniform传输加速结构toplevelas,通过加速结构进行光线追踪;

40、4.2)、通过记录渲染帧从而在glsl着色器程序中模拟随机数,达成随机采样效果,使用随机采样的方式确定虚拟平面光源的一个位置,每一个虚拟平面光源用若干个点处理,通过rayqueryinitializeext函数对光线进行初始化,并通过rayquerygetintersectiontypeext函数判断由虚拟平面光源上采样完成后确定位置的点作为初始点而发出的光线与着色点是否发生了相交,如果没有发生任何交集则定义为着色点处在阴影当中;

41、4.3)、每一个虚拟平面上的光源都进行了若干次的采样,将采样后的结果记录下来,通过光线追踪对其结果进行判断是否对为着色点进行间接光照的着色效果,每一个着色点的渲染结果均由不同光源照射效果累加而成的,经过累加之后达成全局光照下的阴影效果的渲染。

42、进一步地,所述步骤4.1)的加速结构分为底层和顶层两个层次的加速度结构,所述底层加速度结构包含构成场景的自定义几何体的三角形或轴对齐边界框;所述顶级加速度结构包含对一组底层加速度结构的引用,每个引用都包含该引用的着色和变换信息。

43、进一步地,所述底层加速度结构采用给定类型的多组几何图形。

44、本发明具有如下有益效果:

45、本发明首先对渲染环境进行光源角度进行渲染,然后将保存的世界空间位置信息、normal法线信息和flux颜色信息,用normal法线信息将发光区域拟合成虚拟的平面光源,用截断余弦分布的brdf计算虚拟的平面光源下的间接光照,通过光线查询等相关技术将光线追踪融入到光栅化当中,对环境进行阴影渲染,使得渲染环境的光照效果更加逼真,并且阴影效果更加真实,解决了传统虚拟动画渲染光照场景不够真实,间接阴影渲染开销大等问题。

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