【教程】虚拟拍摄与LED立体广告投射的制作原理
最近收到朋友虚拟拍摄中如何实现上屏透视正确的问题 ,这里队友VFXQH就技术层面做了一个解答和工程文件分享。
引言
LED多媒体大屏幕内容不是这几年的特例,笔者九年前刚入行的时候就在做这些。相信好几年前很多人都看过Magic Leap的“鲸鱼造假视频”,随着CG的实时技术,载体LED屏幕的不断进步,广告从展馆不断走上街头。国外很多实时的视效作品在LED上演示,在朋友圈也看到很多朋友主创制作过类似项目。
但在大部分制作中会发现类似透视这样的基础问题或多或少都是待提高。这里个人觉得可能的原因是:
1、制作人员对于CG图形学和CV计算机视觉的摄影机和坐标变换的基础知识不熟悉,掌握得不够。
2、甲方在这方面的了解还有限,不能准确和足够的提出要求和提供前后期制作信息。
最后硬做出来的结果就是看起来是那么回事,但只要懂一点透视基础同学就会看出来国内这类广告存在不少的视觉错误。今天来解析一个标杆参考级项目核心过程,文尾附教程演示的工程文件。
如果你在 2022 年 4 月在纽约市时代广场抬头看,你可能会瞥见波巴·费特坐在他的宝座上。超高清视频是ILM和LG Display合作的一部分,旨在展示LG的OLED显示技术和广告牌。
(机翻字幕仅供帮助理解视频参考)
但这次头盔下的演员不是特穆拉·莫里森,这一荣誉属于Tippett Studio的高级艺术总监Mark Dubeau,他穿上动作捕捉(mocap)装备,在绿屏前的临时“宝座”上表演了Boba Fett的角色。Tippett Studio 的老板菲尔·蒂贝特(Phil Tippett)老爷子是ILM的创始元老之一,也算是手办的鼻祖之一,家里奥斯卡奖杯和他做过出现在电影里面的可动模型有一大堆。这个项目是ILM和Tippett Studio 共同完成的。Mark Dubeau这里做了大部分的概念艺术。还管理和设计了在《曼达洛人》等星球大战项目中使用的定格木偶。
核心的制作过程
在上文视频中展示了制作花絮,但核心的制作过程并没有指出,原广告视频只是简单的动作捕捉和角色场景渲染,技术并没有多少难度,三五个人就可以搞定。核心的过程是街头的真实人眼透视到实际物理LED的投影转换。
1、下图中我们可以看到边缘模型很粗糙,这是来自于无人机对于投影所在建筑的照片建模,这些软硬件解决方法现在非常成熟,比如用大疆的无人机与NeRF 辐射场配合,就可以达到接近雷达工业级的现场物理模型参数。手机和PAD也可以完成,这里不详细介绍了。
2、获取LED屏幕模型和其所依托的建筑模型很简单,下一步就是求解真实人眼视角的透视。这个透视位置取决于大街的人流估算,也就是甲方最想让观众看到的位置,这当然有一定范围。了解错觉投影实际绘画的朋友都知道,这种视角大约只能在一个范围内。但是如果投影的实际距离非常远,则适应的观看角度范围就越广,反之。也就是说LED屏幕越远越高,在建筑下观看到的正确透视范围就越大。国内这类广告由于大多数诉求方对这个基础知识了解的不够,导致制作中完全可能是猜距离,而不是实际物理距离。
3、求解到合适的观看透视角度,就是获取当前的位置和投影角度,这也非常简单。高中的数学知识就教过我们怎么求两点距离,实际距离到建筑上LED的距离换算一下扫描的模型所在的三维软件单位量纲即可。距离是最好算的,难的是摄影测量的内外参和旋转矩阵估计,这方面今天篇幅有限实在不能详细展开,做前期onset和跟踪的朋友应该对摄影机标定的内外参数很熟悉求解方法,实在不会求大概也可以在软件里直接旋转估计。于是就得到了下图实际人眼的渲染角度。到这里还非常好理解,那我们接下来就在Nuke中实现核心的LED内容渲染输出。
Nuke的投影转换
1、搭建一个简单的Box场景模拟。
2 、得到估计的摄影机角度等参数,设置分辨率,这里为了和UV统一用的方形。
3、上面还非常简单,下面进行核心的转换过程。在刚才的场景外建立两个Card模拟两块LED,这里我们是分开的两个正方形,如果屏幕是L长方形,只需要把最终结果像UV拼接即可。
LED_Screen1 和 LED_Screen2 连接在同一个投射节点上,Project3D投射节点的cam端就是估计得到的摄像机,贴图端连接刚才第2步的RayRender1输出既可,就得下图:
建筑内反向的视角
4、使用ScanlineRender 渲染节点UV模式求两块LED的UV贴图渲染输出就行,如果最终LED放映是分块那就是根据每片Card输出,如果是一起就是直接拼合输出即可。
5、模拟验证这时候把渲染结果再给到一个克隆的LED Card,UV正确平直那直接放映上面的序列帧就行。
最终人眼视角和CG渲染透视完全一致。这里面的核心过程就是将CG渲染结果投影的坐标空间转换为LED的实际UV空间。在别的渲染软件中只要模型、摄像机参数一致,全部能得到一致结果。唯一的坑就是不同的软件的不同坐标系和量纲,投影算法方法有一点点区别,搞清楚后在Maya 和 UE里和这里能全部一致。
演示的Nuke工程ProjLED.nk文件
链接:https://pan.baidu.com/s/1xEJWG660--mGgT_dK7A-0g?pwd=exw1
提取码:exw1
投影的数学原理今天没有展开,写太多公式怕看的大家头皮发麻,下次有机会详细写。而VP中圆柱环幕、球幕、甚至各种形状屏幕其实几年前VR视频制作基础教程就讲到相关制作了,可以翻看相关教程。ScanlineRender 支持常见投影的转换,建议了解清楚数学坐标转换,就可以彻底理解这个过程。
在VP中则是大量上面的组合应用,LED屏幕摆放也可以随便摆放,只要投影角度求解正确,结果全部就是一致的。
举个例子,如果成本有限则可以用几块LED屏幕堵住窗户,就可以在VP棚内完成大量室内戏,而不需要满墙的LED。对成本有限的项目,组合方法非常灵活。在拍摄室内广告,舞台剧等,上文演示的投影变换将是刚需的基本操作。
如果对摄影测量感兴趣,推荐你看一篇和我年纪差不多大的论文,来自这行的祖师爷 Paul Ernest Debevec 的论文 Modeling and Rendering Architecture from Photographs。现在VP实现用的理论东西只是 Paul Ernest Debevec 三十年前在斯坦福大学时交的作业,实际没有再更新更多理论升级 。
以上,希望对大家有帮助 !
The End