CN114972598B - 三维场景中相机可视区域渲染方法、装置、介质和设备 - Google Patents
三维场景中相机可视区域渲染方法、装置、介质和设备 Download PDFInfo
- Publication number
- CN114972598B CN114972598B CN202210545670.6A CN202210545670A CN114972598B CN 114972598 B CN114972598 B CN 114972598B CN 202210545670 A CN202210545670 A CN 202210545670A CN 114972598 B CN114972598 B CN 114972598B
- Authority
- CN
- China
- Prior art keywords
- camera
- imaging
- buffer
- world coordinate
- depth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000003384 imaging method Methods 0.000 claims abstract description 159
- 239000011159 matrix material Substances 0.000 claims abstract description 91
- 238000012360 testing method Methods 0.000 claims abstract description 22
- 239000003086 colorant Substances 0.000 claims abstract description 20
- 230000000007 visual effect Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000007423 decrease Effects 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims description 4
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract 1
- 238000012544 monitoring process Methods 0.000 description 9
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
Abstract
本发明涉及一种三维场景中相机可视区域渲染方法,包括获取相机成像参数计算相机成像矩阵Mc;基于相机成像参数在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D;将世界坐标缓冲P、成像矩阵Mc与深度缓冲D传入着色器中,计算当前像素世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录区域遮罩值M;将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除,并进行深度测试;将多个相机遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C。本发明基于相机真实的参数和场景深度检测,可以正确分析场景中物体的可见性。本发明还涉及一种三维场景中相机可视区域渲染装置、设备与介质。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种三维场景中相机可视区域渲染方法、装置、介质和设备。
背景技术
现有数字孪生场景中对监控可视区域进行分析,主要是使用平面截锥体模型代替来分析监控可视区域,具体只能描述可视区域的大致轮廓,无法对场景物体做可见性分析,也无法清晰准确地描述哪些物体处在监控范围内。现有的孪生场景中对于监控可视区域分析来说不能满足用户需求。
为此本领域迫切需要一种能够解决上述技术问题的方法。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种三维场景中相机可视区域渲染方法、装置、介质和设备。
本发明解决上述技术问题的技术方案如下:
一种三维场景中相机可视区域渲染方法,所述方法包括:
获取相机成像参数,所述成像参数包括水平方向视野角度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。
进一步地,所述基于所述相机成像参数计算相机成像矩阵Mc包括:
基于所述相机成像参数中所述水平方向视野角度FOV与相机分辨率R计算构造所述成像矩阵Mc所需参数水平方向视野角度Rfov与成像比例A;
Rfov=FOV/180°*π
其中R.w为分辨率宽度,R.h为分辨率高度;
基于所述相机位置Pc与相机方向Pd构造模型视图矩阵Mmv;
基于水平方向视野角度Rfov、最近有效成像距离Np、最远有效成像距离Fp与成像比例A利用透视矩阵公式构造透视矩阵Mp;
基于所述模型视图矩阵Mmv与透视矩阵Mp构造相机的成像矩阵Mc;
Mc=Mmv*Mp。
进一步地,所述基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D包括:
创建深度缓冲D纹理对象,并将纹理对象尺寸设置为相机分辨率R降采样一倍的尺寸;
基于所述相机位置Pc与相机方向Pd,执行三维引擎渲染命令将相机所渲染的场景深度存储至深度缓冲D。
进一步地,所述计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M包括:
将所述世界坐标缓冲P(x,y,z,1)基于所述成像矩阵Mc转换到裁剪坐标系下位置Pcs(x,y,z,w);
Pcs=mul(Mc,P)
将所述裁剪坐标系位置Pcs转换到标准设备坐标系下位置PNDC;
标准设备坐标系中x,y,z范围均为[-1,1],若PNDC的x、y、z分量均在[-1,1]内,则认为当前像素的世界坐标缓冲P在相机的成像矩阵Mc内,将世界坐标缓冲P在相机的成像矩阵Mc内的区域遮罩值M标记为1,同时将世界坐标缓冲P不在相机的成像矩阵Mc内的区域遮罩值M标记为0。
进一步地,所述将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除包括:
通过三维渲染引擎获取世界法线缓冲N;
基于所述世界法线缓冲N与相机方向Pd对模型背面进行剔除,具体通过相机和模型表面之间的角度Cθ进行判断,Cθ=cos(N,Pd),Cθ代表相机和模型表面之间的角度,若Cθ小于0标记区域遮罩值M为1,若Cθ大于0标记区域遮罩值M为0。
进一步地,所述对剔除处理后的模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M包括:
基于世界坐标缓冲P、相机位置Pc、最近有效成像距离Np与最远有效成像距离Fp,通过saturate算法计算当前像素的世界坐标缓冲P相对于相机的深度值DP,saturate算法将小于0的值计算为0,大于0的值计算为1;
将当前像素的世界坐标缓冲P转换到相机的屏幕坐标系下位置为Pss,并利用位置Pss采样深度缓冲D得到场景深度Ds;
Pss.x=PNDC.x*0.5+0.5
Pss.y=PNDC.y*-0.5+0.5
基于所述深度值DP与场景深度Ds进行深度测试,并更新遮罩值M;
其中,若DP<Ds,则说明区域可见并标记遮罩值M为1;
若DP>Ds,则说明区域不可见并标记遮罩值M为0。
进一步地,所述将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C包括:
将多个相机的遮罩值M相加混合得到新遮罩值M,通过所述新遮罩值M来判断区域是否可见,若新遮罩值M大于等于1则说明区域可见;若新遮罩值M等于0则说明区域不可见;
将新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C;
C=Cs*M+Cs*0.5*(1-M)
其中Cs*0.5表示降低颜色亮度。
本方法发明的有益效果是:提出了一种三维场景中相机可视区域渲染方法,获取相机成像参数,所述成像参数包括水平方向视野角度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。本发明可同时对多个相机可视区域进行渲染,联合调试更加有助于视野分析和监控相机位置的排布,具有较好的性能,还通过加入深度测试,可对场景物体做出正确的可见性分析。
本发明还解决上述技术问题的另一种技术方案如下:
一种三维场景中相机可视区域渲染装置,所述装置包括:
获取参数模块,用于获取相机成像参数,所述成像参数包括水平方向视野角度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。
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的三维场景中相机可视区域渲染方法的步骤。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的三维场景中相机可视区域渲染方法的步骤。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所述的一种三维场景中相机可视区域渲染方法的流程示意图;
图2为本发明另一实施例所述的一种三维场景中相机可视区域渲染装置的模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
如图1本发明实施例所述的一种三维场景中相机可视区域渲染方法所示,包括以下步骤:
110、获取相机成像参数,所述成像参数包括水平方向视野角度FOV、相机分辨率R、最近有效成像距离Np、最远有效成像距离Fp、相机位置Pc与相机方向Pd,并基于所述相机成像参数计算相机成像矩阵Mc,以便于进行后续深度测试;
120、基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D;
130、通过三维渲染引擎获取场景世界坐标缓冲P,将所述世界坐标缓冲P、成像矩阵Mc与深度缓冲D传入着色器中,计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M;
140、将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除,对剔除处理后剩余区域进行深度测试,即对模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M;
150、将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C。
进一步地,步骤110中所述基于所述相机成像参数计算相机成像矩阵Mc具体包括:
111、基于所述相机成像参数中所述水平方向视野角度FOV与相机分辨率R计算构造所述成像矩阵Mc所需参数水平方向视野角度Rfov与成像比例A;
Rfov=FOV/180°*π
其中R.w为分辨率宽度,R.h为分辨率高度;
112、基于所述相机位置Pc与相机方向Pd构造模型视图矩阵Mmv;
基于水平方向视野角度Rfov、最近有效成像距离Np、最远有效成像距离Fp与成像比例A利用透视矩阵公式构造透视矩阵Mp;
113、基于所述模型视图矩阵Mmv与透视矩阵Mp构造相机的成像矩阵Mc;
Mc=Mmv*Mp。
进一步地,步骤120所述基于所述相机位置Pc、相机方向Pd与相机分辨率R在三维渲染引擎中执行渲染命令,并记录相机画面深度到深度缓冲D具体包括:
121、创建深度缓冲D纹理对象,并将纹理对象尺寸设置为相机分辨率R降采样一倍的尺寸;也就是说,将纹理对象尺寸设置为相机分辨率的1/4,渲染分辨率越小渲染速度越快,但过小会导致画面细节丢失,所以此处采用降采样一倍的尺寸;
122、配置所述相机位置Pc与相机方向Pd,执行三维引擎渲染命令将相机所渲染的场景深度存储至深度缓冲D。
进一步地,步骤130通过三维渲染引擎获取场景世界坐标缓冲P,将所述世界坐标缓冲P、成像矩阵Mc与深度缓冲D传入着色器中,计算当前像素的世界坐标缓冲P是否在相机的成像矩阵Mc内,并记录世界坐标缓冲P在成像矩阵Mc内的区域遮罩值M具体包括:
131、通过三维渲染引擎获取场景世界坐标缓冲P,将所述世界坐标缓冲P、步骤113中的成像矩阵Mc与步骤120中的渲染结果深度缓冲D通过三维渲染引擎接口传递至GPU着色器程序中;
132、将所述世界坐标缓冲P(x,y,z,1)基于所述成像矩阵Mc转换到裁剪坐标系下位置Pcs(x,y,z,w),该裁剪坐标系为一种齐次坐标系,P(x,y,z,1)为齐次坐标系表示法;
Pcs=mul(Mc,P)
133、将所述裁剪坐标系位置Pcs转换到标准设备坐标系下位置PNDC;
134、标准设备坐标系中x,y,z范围均为[-1,1],若PNDC的x、y、z分量均在[-1,1]内,则认为当前像素的世界坐标缓冲P在相机的成像矩阵Mc内,将世界坐标缓冲P在相机的成像矩阵Mc内的区域遮罩值M标记为1,同时将世界坐标缓冲P不在相机的成像矩阵Mc内的区域遮罩值M标记为0。
在本发明的进一步实施例中,步骤140所述将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除具体包括:
141、通过三维渲染引擎获取世界法线缓冲N;
142、基于所述世界法线缓冲N与相机方向Pd对模型背面进行剔除,具体通过相机和模型表面之间的角度Cθ进行判断,Cθ=cos(N,Pd),Cθ代表相机和模型表面之间的角度或夹角,若Cθ小于0标记区域遮罩值M为1,若Cθ大于0标记区域遮罩值M为0。
进一步地,步骤140中所述对剔除处理后的模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M包括:
143、基于世界坐标缓冲P、相机位置Pc、最近有效成像距离Np与最远有效成像距离Fp,通过saturate算法计算当前像素的世界坐标缓冲P相对于相机的深度值DP,saturate算法将小于0的值计算为0,大于0的值计算为1,DP取值范围为[0,1];
144、将当前像素的世界坐标缓冲P转换到相机的屏幕坐标系下位置为Pss,并利用位置Pss采样深度缓冲D得到场景深度Ds,此处利用步骤133中计算的PNDC通过转换到范围为[0,1]的二维屏幕坐标系Pss,利用Pss作为纹理UV采样深度缓冲D得到场景深度Ds,Ds取值范围为[0,1];
Pss.x=PNDC.x*0.5+0.5
Pss.y=PNDC.y*-0.5+0.5
145、基于所述深度值DP与场景深度Ds进行深度测试,并更新遮罩值M;
其中,若DP<Ds,则说明区域可见并标记遮罩值M为1;
若DP>Ds,则说明当前像素被前方物体遮挡,即区域不可见并标记遮罩值M为0。
进一步地,步骤150所述将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C包括:
将多个相机的遮罩值M(M值为1代表在监控相机视角下可见,M值为0代表在监控相机视角下不可见)相加混合得到新遮罩值M,通过所述新遮罩值M来判断区域是否可见,若新遮罩值M大于等于1则说明区域可见;若新遮罩值M等于0则说明区域依旧不可见;
将新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C;
C=Cs*M+Cs*0.5*(1-M)
其中Cs*0.5表示降低颜色亮度,这样可以对新遮罩值M为0的区域亮度降低处理,从而凸显可见区域。
本方法发明的有益效果是:提出了一种三维场景中相机可视区域渲染方法,包括获取相机成像参数,所述成像参数包括水平方向视野角度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所示,一种三维场景中相机可视区域渲染装置,所述装置包括:
获取参数模块,用于获取相机成像参数,所述成像参数包括水平方向视野角度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。
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的三维场景中相机可视区域渲染方法的步骤。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的三维场景中相机可视区域渲染方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
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所需参数水平方向视野角度Rfov与成像比例A;
Rfov=FOV/180°*π
其中R.w为分辨率宽度,R.h为分辨率高度;
基于所述相机位置Pc与相机方向Pd构造模型视图矩阵Mmv;
基于水平方向视野角度Rfov、最近有效成像距离Np、最远有效成像距离Fp与成像比例A利用透视矩阵公式构造透视矩阵Mp;
基于所述模型视图矩阵Mmv与透视矩阵Mp构造相机的成像矩阵Mc;
Mc=Mmv*Mp。
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);
Pcs=mul(Mc,P)
将所述裁剪坐标系位置Pcs转换到标准设备坐标系下位置PNDC;
标准设备坐标系中x,y,z范围均为[-1,1],若PNDC的x、y、z分量均在[-1,1]内,则认为当前像素的世界坐标缓冲P在相机的成像矩阵Mc内,将世界坐标缓冲P在相机的成像矩阵Mc内的区域遮罩值M标记为1,同时将世界坐标缓冲P不在相机的成像矩阵Mc内的区域遮罩值M标记为0。
5.根据权利要求4所述的三维场景中相机可视区域渲染方法,其特征在于,所述将世界坐标缓冲P在相机的成像矩阵Mc内的模型背面进行剔除包括:
通过三维渲染引擎获取世界法线缓冲N;
基于所述世界法线缓冲N与相机方向Pd对模型背面进行剔除,具体通过相机和模型表面之间的角度Cθ进行判断,Cθ=cos(N,Pd),Cθ代表相机和模型表面之间的角度,若Cθ小于0标记区域遮罩值M为1,若Cθ大于0标记区域遮罩值M为0。
6.根据权利要求4所述的三维场景中相机可视区域渲染方法,其特征在于,所述对剔除处理后的模型正面进行深度测试,检测区域在成像画面中是否可见,并记录可见区域与不可见区域遮罩值M包括:
基于世界坐标缓冲P、相机位置Pc、最近有效成像距离Np与最远有效成像距离Fp,通过saturate算法计算当前像素的世界坐标缓冲P相对于相机的深度值DP,saturate算法将小于0的值计算为0,大于0的值计算为1;
将当前像素的世界坐标缓冲P转换到相机的屏幕坐标系下位置为Pss,并利用位置Pss采样深度缓冲D得到场景深度Ds;
Pss.x=PNDC.x*0.5+0.5
Pss.y=PNDC.y*-0.5+0.5
基于所述深度值DP与场景深度Ds进行深度测试,并更新遮罩值M;
其中,若DP<Ds,则说明区域可见并标记遮罩值M为1;
若DP>Ds,则说明区域不可见并标记遮罩值M为0。
7.根据权利要求1所述的三维场景中相机可视区域渲染方法,其特征在于,所述将多个相机的可见区域与不可见区域遮罩值M进行混合,再基于混合后的新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C包括:
将多个相机的遮罩值M相加混合得到新遮罩值M,通过所述新遮罩值M来判断区域是否可见,若新遮罩值M大于等于1则说明区域可见;若新遮罩值M等于0则说明区域不可见;
将新遮罩值M与原场景颜色Cs进行差值混合输出显示器上显示的颜色C;
C=Cs*M+Cs*0.5*(1-M)
其中Cs*0.5表示降低颜色亮度。
8.一种三维场景中相机可视区域渲染装置,其特征在于,所述装置包括:
获取参数模块,用于获取相机成像参数,所述成像参数包括水平方向视野角度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。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7中任一项所述的三维场景中相机可视区域渲染方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的三维场景中相机可视区域渲染方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210545670.6A CN114972598B (zh) | 2022-05-17 | 2022-05-17 | 三维场景中相机可视区域渲染方法、装置、介质和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210545670.6A CN114972598B (zh) | 2022-05-17 | 2022-05-17 | 三维场景中相机可视区域渲染方法、装置、介质和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114972598A CN114972598A (zh) | 2022-08-30 |
CN114972598B true CN114972598B (zh) | 2024-04-02 |
Family
ID=82984783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210545670.6A Active CN114972598B (zh) | 2022-05-17 | 2022-05-17 | 三维场景中相机可视区域渲染方法、装置、介质和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114972598B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993886B (zh) * | 2023-09-26 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 一种渲染中区域轮廓图的生成方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
KR20170105885A (ko) * | 2016-03-10 | 2017-09-20 | 삼성전자주식회사 | 렌더링 수행 방법 및 장치 |
CN110276791A (zh) * | 2019-06-28 | 2019-09-24 | 北京航空航天大学 | 一种参数可配置的深度相机仿真方法 |
CN112233215A (zh) * | 2020-10-15 | 2021-01-15 | 网易(杭州)网络有限公司 | 轮廓渲染方法、装置、设备及存储介质 |
CN114170367A (zh) * | 2021-12-10 | 2022-03-11 | 北京优锘科技有限公司 | 无限视距椎状热图渲染的方法、装置、存储介质和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8319798B2 (en) * | 2008-12-17 | 2012-11-27 | Disney Enterprises, Inc. | System and method providing motion blur to rotating objects |
US10943387B2 (en) * | 2018-08-30 | 2021-03-09 | Nvidia Corporation | Generating scenes containing shadows using pixel noise reduction techniques |
-
2022
- 2022-05-17 CN CN202210545670.6A patent/CN114972598B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170105885A (ko) * | 2016-03-10 | 2017-09-20 | 삼성전자주식회사 | 렌더링 수행 방법 및 장치 |
CN106056661A (zh) * | 2016-05-31 | 2016-10-26 | 钱进 | 基于Direct3D 11的三维图形渲染引擎 |
CN110276791A (zh) * | 2019-06-28 | 2019-09-24 | 北京航空航天大学 | 一种参数可配置的深度相机仿真方法 |
CN112233215A (zh) * | 2020-10-15 | 2021-01-15 | 网易(杭州)网络有限公司 | 轮廓渲染方法、装置、设备及存储介质 |
CN114170367A (zh) * | 2021-12-10 | 2022-03-11 | 北京优锘科技有限公司 | 无限视距椎状热图渲染的方法、装置、存储介质和设备 |
Non-Patent Citations (3)
Title |
---|
光场相机成像模型及参数标定方法综述;张春萍;王庆;;中国激光;20160610(第06期);全文 * |
基于延迟着色技术的大场景反走样渲染架构设计;罗德宁;张建伟;;工程科学与技术;20170720(第04期);全文 * |
视频图像在三维模型中的渲染;赵凯;全春来;艾飞;周翔;王戈;;计算机工程与设计;20091128(第22期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114972598A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020101832A4 (en) | Image collection and depth image enhancement method and apparatus for kinect | |
WO2019042216A1 (zh) | 图像虚化处理方法、装置及拍摄终端 | |
US8264546B2 (en) | Image processing system for estimating camera parameters | |
US8130244B2 (en) | Image processing system | |
US20170103510A1 (en) | Three-dimensional object model tagging | |
US20100134688A1 (en) | Image processing system | |
CN110366001B (zh) | 视频清晰度的确定方法和装置、存储介质、电子装置 | |
CA2646791A1 (en) | Signal processing device and method, and recording medium | |
CN108694741A (zh) | 一种三维重建方法及装置 | |
CN107451976B (zh) | 一种图像处理方法及装置 | |
CN111031311B (zh) | 成像质量检测方法、装置、电子设备及可读存储介质 | |
KR101589167B1 (ko) | 깊이 정보를 이용한 원근 왜곡 영상의 보정 시스템 및 방법 | |
CN110276831B (zh) | 三维模型的建构方法和装置、设备、计算机可读存储介质 | |
CN114972598B (zh) | 三维场景中相机可视区域渲染方法、装置、介质和设备 | |
JP7479729B2 (ja) | 三次元表現方法及び表現装置 | |
CN112446939A (zh) | 三维模型动态渲染方法、装置、电子设备及存储介质 | |
CN111724317A (zh) | Raw域视频去噪监督数据集构造方法 | |
Zhang et al. | Single image dehazing based on fast wavelet transform with weighted image fusion | |
WO2022105277A1 (zh) | 投影控制方法、装置、投影光机及可读存储介质 | |
CN101729739A (zh) | 一种图像纠偏处理方法 | |
CN111541886A (zh) | 一种应用于浑浊水下的视觉增强系统 | |
Al-Zubaidy et al. | Removal of atmospheric particles in poor visibility outdoor images | |
CN101980299B (zh) | 基于棋盘标定的摄像机映射方法 | |
CN113283543B (zh) | 一种基于WebGL的图像投影融合方法、装置、存储介质和设备 | |
CN115578273A (zh) | 图像多帧融合的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Room 105, first floor, building 82, No. 10, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Applicant after: Beijing Youhao Technology Co.,Ltd. Address before: Room 105, first floor, building 82, No. 10, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Applicant before: BEIJING YOUNUO TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information |