三维场景中相机可视区域渲染方法、装置、介质和设备制造方法及图纸

技术编号:34774837 阅读:21 留言:0更新日期:2022-08-31 19:44
本发明专利技术涉及一种三维场景中相机可视区域渲染方法,包括获取相机成像参数计算相机成像矩阵Mc;基于相机成像参数在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D;将世界坐标缓冲P、成像矩阵Mc与深度缓冲D传入着色器中,计算当前像素世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录区域遮罩值M;将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除,并进行深度测试;将多个相机遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C。本发明专利技术基于相机真实的参数和场景深度检测,可以正确分析场景中物体的可见性。本发明专利技术还涉及一种三维场景中相机可视区域渲染装置、设备与介质。与介质。与介质。

【技术实现步骤摘要】
三维场景中相机可视区域渲染方法、装置、介质和设备


[0001]本专利技术涉及计算机
,尤其涉及一种三维场景中相机可视区域渲染方法、装置、介质和设备。

技术介绍

[0002]现有数字孪生场景中对监控可视区域进行分析,主要是使用平面截锥体模型代替来分析监控可视区域,具体只能描述可视区域的大致轮廓,无法对场景物体做可见性分析,也无法清晰准确地描述哪些物体处在监控范围内。现有的孪生场景中对于监控可视区域分析来说不能满足用户需求。
[0003]为此本领域迫切需要一种能够解决上述技术问题的方法。

技术实现思路

[0004]本专利技术所要解决的技术问题是针对现有技术的不足,提供一种三维场景中相机可视区域渲染方法、装置、介质和设备。
[0005]本专利技术解决上述技术问题的技术方案如下:
[0006]一种三维场景中相机可视区域渲染方法,所述方法包括:
[0007]获取相机成像参数,所述成像参数包括水平方向视野角度FOV、相机分辨率R、最近有效成像距离Np、最远有效成像距离Fp、相机位置Pc与相机方向Pd,并基于所述相机成像参数计算相机成像矩阵Mc;
[0008]基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D;
[0009]获取场景世界坐标缓冲P,将所述世界坐标缓冲P、成像矩阵Mc与深度缓冲D传入着色器中,计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M;
[0010]将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除,对剔除处理后的模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M;
[0011]将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C。
[0012]进一步地,所述基于所述相机成像参数计算相机成像矩阵Mc包括:
[0013]基于所述相机成像参数中所述水平方向视野角度FOV与相机分辨率R计算构造所述成像矩阵Mc所需参数水平方向视野角度R
fov
与成像比例A;
[0014]R
fov
=FOV/180
°

[0015][0016]其中R.w为分辨率宽度,R.h为分辨率高度;
[0017]基于所述相机位置Pc与相机方向Pd构造模型视图矩阵M
mv

[0018]基于水平方向视野角度R
fov
、最近有效成像距离Np、最远有效成像距离Fp与成像比例A利用透视矩阵公式构造透视矩阵Mp;
[0019][0020]基于所述模型视图矩阵M
mv
与透视矩阵Mp构造相机的成像矩阵Mc;
[0021]M
c
=M
mv
*M
p

[0022]进一步地,所述基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D包括:
[0023]创建深度缓冲D纹理对象,并将纹理对象尺寸设置为相机分辨率R降采样一倍的尺寸;
[0024]基于所述相机位置Pc与相机方向Pd,执行三维引擎渲染命令将相机所渲染的场景深度存储至深度缓冲D。
[0025]进一步地,所述计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M包括:
[0026]将所述世界坐标缓冲P(x,y,z,1)基于所述成像矩阵Mc转换到裁剪坐标系下位置P
cs
(x,y,z,w);
[0027]P
cs
=mul(M
c
,P)
[0028]将所述裁剪坐标系位置P
cs
转换到标准设备坐标系下位置P
NDC

[0029][0030]标准设备坐标系中x,y,z范围均为[

1,1],若P
NDC
的x、y、z分量均在[

1,1]内,则认为当前像素的世界坐标缓冲P在相机的成像矩阵Mc内,将世界坐标缓冲P在相机的成像矩阵Mc内的区域遮罩值M标记为1,同时将世界坐标缓冲P不在相机的成像矩阵Mc内的区域遮罩值M标记为0。
[0031]进一步地,所述将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除包括:
[0032]通过三维渲染引擎获取世界法线缓冲N;
[0033]基于所述世界法线缓冲N与相机方向Pd对模型背面进行剔除,具体通过相机和模型表面之间的角度C
θ
进行判断,C
θ
=cos(N,Pd),C
θ
代表相机和模型表面之间的角度,若C
θ
小于0标记区域遮罩值M为1,若C
θ
大于0标记区域遮罩值M为0。
[0034]进一步地,所述对剔除处理后的模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M包括:
[0035]基于世界坐标缓冲P、相机位置Pc、最近有效成像距离Np与最远有效成像距离Fp,
通过saturate算法计算当前像素的世界坐标缓冲P相对于相机的深度值D
P
,saturate算法将小于0的值计算为0,大于0的值计算为1;
[0036][0037]将当前像素的世界坐标缓冲P转换到相机的屏幕坐标系下位置为Pss,并利用位置Pss采样深度缓冲D得到场景深度Ds;
[0038]Pss.x=P
NDC
.x*0.5+0.5
[0039]Pss.y=P
NDC
.y*

0.5+0.5
[0040]基于所述深度值D
P
与场景深度Ds进行深度测试,并更新遮罩值M;
[0041]其中,若D
P
<Ds,则说明区域可见并标记遮罩值M为1;
[0042]若D
P
>Ds,则说明区域不可见并标记遮罩值M为0。
[0043]进一步地,所述将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C包括:
[0044]将多个相机的遮罩值M相加混合得到新遮罩值M,通过所述新遮罩值M来判断区域是否可见,若新遮罩值M大于等于1则说明区域可见;若新遮罩值M等于0则说明区域不可见;
[0045]将新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C;
[0046]C=C
s
*M+C
s
*0.5*(1

M)
[0047]其中Cs*0.5表示降低本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种三维场景中相机可视区域渲染方法,其特征在于,所述方法包括:获取相机成像参数,所述成像参数包括水平方向视野角度FOV、相机分辨率R、最近有效成像距离Np、最远有效成像距离Fp、相机位置Pc与相机方向Pd,并基于所述相机成像参数计算相机成像矩阵Mc;基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D;获取场景世界坐标缓冲P,将所述世界坐标缓冲P、成像矩阵Mc与深度缓冲D传入着色器中,计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M;将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除,对剔除处理后的模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M;将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C。2.根据权利要求1所述的三维场景中相机可视区域渲染方法,其特征在于,所述基于所述相机成像参数计算相机成像矩阵Mc包括:基于所述相机成像参数中所述水平方向视野角度FOV与相机分辨率R计算构造所述成像矩阵Mc所需参数水平方向视野角度R
fov
与成像比例A;R
fov
=FOV/180
°
*π其中R.w为分辨率宽度,R.h为分辨率高度;基于所述相机位置Pc与相机方向Pd构造模型视图矩阵M
mv
;基于水平方向视野角度R
fov
、最近有效成像距离Np、最远有效成像距离Fp与成像比例A利用透视矩阵公式构造透视矩阵Mp;基于所述模型视图矩阵M
mv
与透视矩阵Mp构造相机的成像矩阵Mc;M
c
=M
mv
*M
p
。3.根据权利要求1所述的三维场景中相机可视区域渲染方法,其特征在于,所述基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D包括:创建深度缓冲D纹理对象,并将纹理对象尺寸设置为相机分辨率R降采样一倍的尺寸;
基于所述相机位置Pc与相机方向Pd,执行三维引擎渲染命令将相机所渲染的场景深度存储至深度缓冲D。4.根据权利要求1所述的三维场景中相机可视区域渲染方法,其特征在于,所述计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M包括:将所述世界坐标缓冲P(x,y,z,1)基于所述成像矩阵Mc转换到裁剪坐标系下位置Pcs(x,y,z,w);P
cs
=mul(M
c
,P)将所述裁剪坐标系位置Pcs转换到标准设备坐标系下位置P
NDC
;标准设备坐标系中x,y,z范围均为[

1,1],若P
NDC
的x、y、z分量均在[

1,1]内,则认为当前像素的世界坐标缓冲P在相机的成像矩阵Mc内,将世界坐标缓冲P在相机的成像矩阵Mc内的区域遮罩值M标记为1,同时将世界坐标缓冲P不在相机的成像矩阵Mc内的区域遮罩值M标记为0。5.根据权利要求4所述的三维场景中相机可视区域渲染方法,其特征在于,所述将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除包括:通过三维渲染引擎获取世界法线缓冲N;基于所述世界法线缓冲N与相机方向Pd对模型背面进行剔除,具体通过相机和模型表面之间的角度C
θ

【专利技术属性】
技术研发人员:董伟黄正雨张佳亮李鉴井刚
申请(专利权)人:北京优锘科技有限公司
类型:发明
国别省市:

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

1