一种LED虚拟拍摄切割合成方法转让专利

申请号 : CN202210677127.1

文献号 : CN115103134B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 桑维东

申请人 : 北京中科深智科技有限公司

摘要 :

本发明公开了一种LED虚拟拍摄切割合成方法,包括:在二维的屏幕空间坐标系下,将LED面板组合体的面片所占据区域分解为多个三角形,表示为一个三角形数组;通过三角形对平面进行裁剪,把投影相机的视锥体分解为平面;遍历所有面片及其所有三角形,通过所有三角形依次对每个投影相机的视锥体的各个面进行裁剪,得到占据区域数据;把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标;占据区域数据输入着色器程序,并在片段着色器阶段对每个像素点进行是否在三角形内的判断;如果在三角形内,则采用真实相机的实拍图像,否则采用虚拟场景的图像。本发明不仅能为演员的表演提供参照,而且不受衣着、妆容的颜色的限制,还不需要绿幕打光。

权利要求 :

1.一种LED虚拟拍摄切割合成方法,其特征在于,包括如下步骤:步骤S1,占据区域表示:在二维的屏幕空间坐标系下,将LED面板组合体的面片所占据区域分解为多个三角形,表示为一个三角形数组;

步骤S2,面向平面的三角形裁剪:通过三角形对平面进行裁剪,把投影相机的视锥体分解为平面;

步骤S3,占据区域计算:遍历所有面片及其所有三角形,通过所有三角形依次对每个投影相机的视锥体的各个面进行裁剪,得到占据区域数据;

步骤S4,投影和屏幕映射:把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标;

步骤S5,合成:步骤S3得到的占据区域数据输入着色器程序,并在片段着色器阶段对每个像素点进行是否在三角形内的判断;如果在三角形内,则采用真实相机的实拍图像,否则采用虚拟场景的图像;

步骤S2中,通过三角形对平面进行裁剪,把投影相机的视锥体分解为平面的方法如下:设在同一坐标系下,平面的法线为n,平面到坐标原点的距离为d,法线的正方向一侧是平面的正面,另一侧是反面;设三角形的三个顶点为A,B,C;A,B,C在平面法线上的投影距离与平面到原点的距离之差依次为pa,pb,pc,则pa=n·A‑d

pb=n·B‑d

pc=n·C‑d

设三角形的三条边AB、BC、CA与平面的交点依次为Vab,Vbc,Vca,则:步骤S3中,投影相机的视锥体的各个面的获取方法为:将LED面板组合体的面片的顶点位置变换到世界空间,再变换到投影相机的观察空间;根据投影相机的视锥体的8个顶点,计算出投影相机的视锥体的6个面;

步骤S5中,对每个像素点进行是否在三角形内的判断的方法为:已知屏幕坐标系下的一点P,以及一个三角形的三个顶点P1,P2,P3,判断点P在不在三角形内,方法是:求解三角形的法线N:

N=(P2‑P1)×(P3‑P1)

三条边与N的叉积:

N12=(P2‑P1)×N

N23=(P3‑P2)×N

N31=(P1‑P3)×N

求P点与N12,N23,N31的关系:

ρToN12=(P‑P1)·N12/mod(N12)ρToN23=(P‑P2)·N23/mod(N23)ρToN31=(P‑P3)·N31/mod(N31)如果ρT0N12、ρT0N23、ρT0N31都不大于零,则说明P点在三角形内。

2.根据权利要求1所述的一种LED虚拟拍摄切割合成方法,其特征在于,步骤S4中,把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标的方法为:对于三角形数组中的每个三角形的每个顶点,都进行投影变换、齐次除法、屏幕映射、竖直翻转,从而将每个三角形的三维顶点映射到屏幕坐标系下的二维坐标。

说明书 :

一种LED虚拟拍摄切割合成方法

技术领域

[0001] 本发明涉及虚拟制作技术领域,尤其涉及一种LED虚拟拍摄切割合成方法。

背景技术

[0002] 在影视行业,虚拟制作(virtual production)是指多种计算机辅助影视制作方法,包括视觉特效(VFX)、表演捕捉、绿幕抠像、LED大屏等。多种虚拟制作技术为影视制作带来了增强效果、降低成本、缩短工期等诸多好处,并且赋予内容制作者更大的想象力。
[0003] 目前大多采用绿幕抠像技术,但绿幕抠像技术容易产生如下问题:背景颜色不匀产生的局部噪点布光不匀;人物服饰部分接近背景,局部颜色接近背景的过渡色范围,在抠像合成时这部分区域会成半透明状态,把背景画面透出来。
[0004] 因此,如何提供一种效果更好的LED虚拟拍摄切割合成方法,成为了本领域技术人员急需解决的技术问题。

发明内容

[0005] 本发明目的是提供了一种LED虚拟拍摄切割合成方法,以解决上述问题。
[0006] 本发明解决技术问题采用如下技术方案:
[0007] 一种LED虚拟拍摄切割合成方法,包括如下步骤:
[0008] 步骤S1,占据区域表示:在二维的屏幕空间坐标系下,将LED面板组合体的面片所占据区域分解为多个三角形,表示为一个三角形数组;
[0009] 步骤S2,面向平面的三角形裁剪:通过三角形对平面进行裁剪,把投影相机的视锥体分解为平面;
[0010] 步骤S3,占据区域计算:遍历所有面片及其所有三角形,通过所有三角形依次对每个投影相机的视锥体的各个面进行裁剪,得到占据区域数据;
[0011] 步骤S4,投影和屏幕映射:把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标;
[0012] 步骤S5,合成:步骤S3得到的占据区域数据输入着色器程序,并在片段着色器阶段对每个像素点进行是否在三角形内的判断;如果在三角形内,则采用真实相机的实拍图像,否则采用虚拟场景的图像。
[0013] 进一步的,步骤S2中,通过三角形对平面进行裁剪,把投影相机的视锥体分解为平面的方法如下:
[0014] 设在同一坐标系下,平面的法线为n,平面到坐标原点的距离为d,法线的正方向一侧是平面的正面,另一侧是反面;设三角形的三个顶点为A,B,C;A,B,C在平面法线上的投影距离与平面到原点的距离之差依次为pa,pb,pc,则
[0015] pa=n·A‑d
[0016] pb=n·B‑d
[0017] pc=n·C‑d
[0018] 设三角形的三条边AB、BC、CA与平面的交点依次为Vab,Vbc,Vca,则:
[0019]
[0020] 进一步的,步骤S3中,投影相机的视锥体的各个面的获取方法为:将LED面板组合体的面片的顶点位置变换到世界空间,再变换到投影相机的观察空间;根据投影相机的视锥体的8个顶点,计算出投影相机的视锥体的6个面。
[0021] 进一步的,把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标的方法为:对于三角形数组中的每个三角形的每个顶点,都进行投影变换、齐次除法、屏幕映射、竖直翻转,从而将每个三角形的三维顶点映射到屏幕坐标系下的二维坐标。
[0022] 进一步的,步骤S5中,对每个像素点进行是否在三角形内的判断的方法为:
[0023] 已知屏幕坐标系下的一点P,以及一个三角形的三个顶点P1,P2,P3,判断点P在不在三角形内,方法是:
[0024] 求解三角形的法线N:
[0025] N=(P2‑P1)×(P3‑P1)
[0026] 三条边与N的叉积:
[0027] N12=(P2‑P1)×N
[0028] N23=(P3‑P2)×N
[0029] N31=(P1‑P3)×N
[0030] 求P点与N12,N23,N31的关系:
[0031] ρToN12=(P‑P1)·N12/mod(N12)
[0032] ρToN23=(P‑P2)·N23/mod(N23)
[0033] ρToN31=(P‑P3)·N31/mod(N31)
[0034] 如果ρT0N12、ρT0N23、ρT0N31都不大于零,则说明P点在三角形内。
[0035] 本发明公开的一种LED虚拟拍摄切割合成方法,具有以下有益效果:
[0036] 本发明使用LED大屏幕的虚拟拍摄技术表现出比绿幕抠像技术更大的发展潜力,不仅能为演员的表演提供参照,而且不受衣着、妆容的颜色的限制,还不需要绿幕打光。

附图说明

[0037] 图1为本发明的整体流程图。
[0038] 图2为矩形面片基本几何体示意图。
[0039] 图3为本发明三角形对矩形面片的裁剪图。
[0040] 图4为本发明由复杂多边形的图像合成示意图。
[0041] 图5为使用三块LED大屏进行三角拼接方式的示意图。
[0042] 图6为使用三块LED大屏进行直角拼接方式的示意图。

具体实施方式

[0043] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044] LED虚拟拍摄系统可分为硬件部分和软件部分。
[0045] 硬件部分:在拍摄场地安装LED大屏幕,以某种拼接方式组合在一起,形成舞台;现场需要部署空间定位系统,并在摄像机安装一个追踪器。此外需要两台计算机,以运行主控软件和3D场景渲染软件,以及与LED大屏幕配套的LED视频控制器。
[0046] 软件部分:主控软件将根据LED大屏幕的物理尺寸、分辨率等参数,在软件中对其进行建模,并设置一个虚拟相机。主控软件将接收来自摄像机的实拍图像和定位信息,并将定位信息赋予虚拟相机,使虚拟相机与真实相机在空间上保持一致。主控软件将定位信息通过网络传输给3D场景渲染器,并接收来自渲染器的图像,将图像进行正确地透视投影后,得到每块LED大屏应该显示的图像,再通过LED视频控制器发送到大屏上。
[0047] 主控软件要将来自渲染器的虚拟图像,与来自摄像机的实拍图像进行合成,得到最终的输出图像。在进行虚实图像合成时,合成图像中被LED大屏系统占据的部分要采用来自真实相机的图像,其余部分要采用来自虚拟相机的图像,这就需要计算LED大屏系统在相机拍摄的图像中占据的区域,然后据此分别取真实图像和虚拟图像中的部分进行合成。
[0048] 参考图1,本发明提供了一种LED虚拟拍摄切割合成方法,包括如下步骤:
[0049] 步骤S1,占据区域表示:在二维的屏幕空间坐标系下,将LED面板组合体的面片所占据区域分解为多个三角形,表示为一个三角形数组;在虚拟3D场景中创建的LED面板组合是由多个面片(quad)组成的。面片是一种基本几何体,一个面片包含4个顶点,组成两个三角形,如图2所示。这样的简单几何体使得在CPU进行投影计算也不会消耗太多资源。场景中有一个投影相机,它是我们进行占据区计算的目标。占据区域计算的目的是求出从投影相机的视角看去,LED面板组合体再屏幕上会占据哪些区域、空出哪些区域。
[0050] 步骤S2,面向平面的三角形裁剪:通过三角形对平面进行裁剪,把投影相机的视锥体分解为平面。
[0051] 为了进行占据区域计算,需要将这个此过程中的两个方面进行细分:一是把构成虚拟LED面板组合体的面片分解为三角形,二是把投影相机的视锥体分解为平面。因此,需要求出一个三角形对一个平面进行裁剪的结果。
[0052] 设在同一坐标系下,平面的法线为n,平面到坐标原点的距离为d,法线的正方向一侧是平面的正面,另一侧是反面;设三角形的三个顶点为A,B,C;A,B,C在平面法线上的投影距离与平面到原点的距离之差依次为pa,pb,pc,则
[0053] pa=n·A‑d
[0054] pb=n·B‑d
[0055] pc=n·C‑d
[0056] 设三角形的三条边AB、BC、CA与平面的交点依次为Vab,Vbc,Vca,则:
[0057]
[0058] 三角形的每个点都有在正面或在反面两种情况(把在面上看作在正面),即pa,pb,pc都有小于0或不小于0两种情况,于是总共有8种情况,如表1所示,表1表示三角形对平面裁剪的8种情况:
[0059] pa pb pc 说明 结果>=0 >=0 >=0 三角形完全在正面,直接采用 ABC
>=0 >=0 <0 A、B在正面,C在反面 BVcaA,VcaBVbc
>=0 <0 >=0 A、C在正面,B在反面 AVbcC,VbcAVab
>=0 <0 <0 A在正面,B、C在反面 AVabVca
<0 >=0 >=0 B、C在正面,A在反面 CVab,VabCVca
<0 >=0 <0 B在正面,A、C在反面 BVbcVab
<0 <0 >=0 C在正面,A、B在反面 CVcaVbc
<0 <0 <0 三角形完全在反面,完全去掉 (无)
[0060] 步骤S3,占据区域计算:遍历所有面片及其所有三角形,通过所有三角形依次对每个投影相机的视锥体的各个面进行裁剪,得到占据区域数据。
[0061] 投影相机的视锥体共有6个面,所有三角形依次对每个面进行裁剪。此过程要在投影相机的观察空间进行。面片的顶点位置在它自己的本地空间,因此需要将其变换到世界空间,再变换到投影相机的观察空间。然后,根据投影相机的视锥体的8个顶点,计算出它的6个面,这个空间也是投影相机的观察空间。这样就放在了一个空间下。如图3(a)和图3(b)所示,计算结果是在投影相机的观察空间下的一组三角形。
[0062] 步骤S4,投影和屏幕映射:把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标;对于三角形数组中的每个三角形的每个顶点,都进行投影变换、齐次除法、屏幕映射、竖直翻转,就可以把每个三角形的三维顶点映射到屏幕坐标系下的二维坐标,即UV坐标。
[0063] 步骤S5,合成:步骤S3得到的占据区域数据输入着色器程序,并在片段着色器阶段对每个像素点进行是否在三角形内的判断;如果在三角形内,则采用真实相机的实拍图像,否则采用虚拟场景的图像。
[0064] 对每个像素点进行是否在三角形内的判断的方法为:
[0065] 已知屏幕坐标系下的一点P,以及一个三角形的三个顶点P1,P2,P3,判断点P在不在三角形内,方法是:
[0066] 求解三角形的法线N:
[0067] N=(P2‑P1)×(P3‑P1)
[0068] 三条边与N的叉积:
[0069] N12=(P2‑P1)×N
[0070] N23=(P3‑P2)×N
[0071] N31=(P1‑P3)×N
[0072] 求P点与N12,N23,N31的关系:
[0073] ρToN12=(P‑P1)·N12/mod(N12)
[0074] ρToN23=(P‑P2)·N23/mod(N23)
[0075] ρToN31=(P‑P3)·N31/mod(N31)
[0076] 如果ρT0N12、ρT0N23、ρT0N31都不大于零,则说明P点在三角形内。
[0077] 因此,需要将前面计算得到的占据区域数据输入着色器程序,并在片段着色器阶段对每个像素点进行是否在三角形内的判断。如果在三角形内,则采用真实相机的实拍图像,否则就采用虚拟场景的图像。
[0078] 使用三块LED大屏的典型拼接方式有两种,一种是“三角拼接方式”,使左右两面立屏的走向与地面屏成约45°角,使用地面屏的一个三角区域。如图5所示。另一种是使左右两面立屏的走向沿地面屏的两条边,称为“直角拼接方式”,如图6所示。
[0079] 本发明使用LED大屏幕的虚拟拍摄技术表现出比绿幕抠像技术更大的发展潜力,不仅能为演员的表演提供参照,而且不受衣着、妆容的颜色的限制,还不需要绿幕打光。如果直接对投影相机的视锥体进行三角形裁剪,将有很多种情况,难以全部列举,容易出现遗漏,因此本发明把投影相机的视锥体分解成6个面,从而将问题简化为求三角形对平面的裁剪。另外,本发明通过将复杂对变形拆解为三角形的组合,如图4所示,再在二维平面内进行点与三角形位置关系的判断,从而解决了由复杂多边形决定的图像合成问题。
[0080] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。