【Nuke合成】CameraTracker节点参数及用途详解(图文)

VFX大学 Nuke合成影视制作 【Nuke合成】CameraTracker节点参数及用途详解(图文)

标签: ,

  • This topic has 21 个回复, 2 个参与人, and was last updated 5年 前 by 韩十七.
正在查看 16 条回复
  • 作者
    帖子
    • #54335

      韩十七
      参与者
      青骑士

      V友们周末愉快,我是十七。其实很久没有来社区了,一是工作太忙,二是对自己的作品也没有什么信心。这次登录上来看看,发现还有不少V友很认可我的帖子,真的很感动,也很受鼓舞。想起第一次上来发帖已经是一年以前了,那时候我还是个连图文排版都被群嘲的写贴小白,从没想过会得到这么多人真诚的认可。

      真的很感谢@追光 大哥哥为我们提供的NewVFX社区平台,得到的总是比付出的多;也感谢一起并肩的小伙伴@VFX小叶子 @橘子茜茜 ,我可能是最不称职的那个了,以后你们要监督我呀。

      好啦,这次十七打算和大家仔细絮叨絮叨CameraTracker这个看似平平无奇实则威力强大的节点。

      CameraTracker

      Nuke的CameraTracker节点旨在提供一个集成的摄像机跟踪或运动匹配工具。我们可以使用该节点创建一个与原始摄像机的运动相匹配的虚拟摄像机。通过跟踪2D素材的摄像机运动,我们可以将虚拟的3D物体添加到2D素材中。

      简介

      使用CameraTracker节点,我们可以跟踪2D序列或静帧中的摄像机运动,以创建一个运动的3D摄像机,或一个链接到解算的点云和场景。我们可以自动跟踪特征点,也可以添加 UserTracks(用户跟踪点)进行手动跟踪,或者添加来自 Tracker 节点的跟踪点,也可以使用 Bezier(贝塞尔曲线)或 B-spline(B样条线)圈出移动对象,还可以手动编辑跟踪点。CameraTracker可以解算不同类型摄像机的位置,也可以解算立体序列。

    • #54336

      韩十七
      参与者
      青骑士

      使用步骤

      我们可以按照以下步骤跟踪一个图像序列或一组静帧:

      1. 将CameraTracker节点连接到要跟踪的序列之下。查看【连接CameraTracker节点】

      2. 使用mask圈除可能会导致CameraTracker出问题的图像区域,比如场景内的运动物体。查看【用遮罩屏蔽图像区域】

      3. 如果需要跟踪立体素材或多机位素材,需要在CameraTrackerSettings选项卡上设置Principal View。查看【使用多机位视图工作】

      4. 设置摄像机参数,比如Focal Length(焦距)Film Back Size(底片尺寸)(如果这些参数已知的话)。查看【设置摄像机参数】

      5. 在Source下拉列表中选择Sequence(序列)Stills(静帧)

      • 如果跟踪的是连续的帧序列,请设置CameraTracker节点Setting选项卡的FeaturesTracking参数。
      • 如果跟踪的是静帧,我们可以使用和帧序列一样的跟踪方式跟踪所有帧,或者使用视窗或属性面板上的+/-关键帧按钮跟踪参考帧(Reference Frames)子集。

      6. 我们可以放置User Tracks改善比较难的解算,使用完全手动跟踪的方法或设置3D测量点。我们可以使用3D测量点将序列和已知的3D世界联系起来,例如用静帧创建的3D世界。

      小提示:3D测量点已经取代了ProjectionSolver工作流程,不过我们仍然可以在节点图中按X,并输入Tcl命令:ProjectionSolver,来添加ProjectionSolver节点。

      7. 点击Track开始跟踪序列。

      8. 点击Solve解算摄像机位置,如果需要的话,还可以优化解算。

      9. 如果需要,我们可以设置地面,并调整场景。

      10. 在Export下拉菜单中选择需要从解算中输出的内容,并点击Create

      我们可以导出运动的摄像机、立体或多视角摄像机支架、3D场景和点云、镜头畸变或卡片。

      11. 如果我们有来自同一场景或内容的多个源素材,也可以使用测量点解算每个源素材,并将它们合并到同一个世界坐标中。

      12. 将3D虚拟对象添加到视频素材中。

      13. 默认情况下,我们添加到素材中的任何3D对象都不会应用镜头畸变。因此它们可能看上去不像同一个摄像机拍摄的。我们需要对这些元素进行修复。

    • #54337

      韩十七
      参与者
      青骑士

      上面的这些步骤都写得很简略,下面十七会对每个步骤做解释。

      步骤1——

      连接CameraTracker节点

      1. 导入并选中要跟踪的片段。

      2. 点击 3D > CameraTracker

      3. 如果我们想屏蔽跟踪场景中的部分区域,可以在Mask输入上连接一个遮罩。不过要注意,和Source输入不同,此输入是隐藏的,在节点的左侧显示为一个小三角形。更多遮罩信息请查看【用遮罩屏蔽图像区域】

      4. 点击 Image > Viewer 插入一个Viewer节点,并将它连接到CameraTracker节点上。

    • #54338

      韩十七
      参与者
      青骑士

      步骤2——

      用遮罩屏蔽图像区域

      跟踪最好作用于场景的固定、刚性部分,以便每个跟踪点都可以创建一个固定的3D点。计算器会使用这些3D点计算摄像机路径。运动元素或烧录元素在坐标世界中没有固定的3D点,应该在跟踪之前屏蔽掉。

      对图像序列中的区域进行屏蔽,我们需要将遮罩连接到Mask输入,圈除不跟踪的图像区域。我们也可以将Source输入的alpha通道用作遮罩。

      1. 如果我们要用一个单独的遮罩进行屏蔽,就需要在CameraTracker的Mask输入连接一个Roto节点。

      2. 查看整个序列,并对遮罩形状打关键帧,以覆盖不该被跟踪的区域。

      这种遮罩不需要绘制得太精确,因为我们的目的只是为了覆盖可能会导致CameraTracker出问题的区域。例如下图,我们对演员和版权水印绘制了遮罩。

      3. 在属性面板中,进行遮罩设置:

      • None – 跟踪整个素材中的特征点。
      • Source Alpha – 使用源视频片段的alpha通道定义不被跟踪的区域。
      • Source Inverted Alpha – 使用源视频片段的被反转后的alpha通道定义不被跟踪的区域。
      • Mask Luminance – 使用mask输入的亮度定义不被跟踪的区域。
      • Mask Inverted Luminance – 使用mask输入的被反转后的亮度定义不被跟踪的区域。
      • Mask Alpha – 使用mask输入的alpha通道定义不被跟踪的区域。
      • Mask Inverted Alpha – 使用mask输入的被反转后的alpha通道定义不被跟踪的区域。

      4. 使用Analysis组中的Track按钮,进行正常的自动跟踪。查看【在Sequence模式下跟踪】

      注意:手动跟踪时无需屏蔽图像区域,因为User Track放置的位置是我们自己指定的。

    • #54339

      韩十七
      参与者
      青骑士

      步骤3——

      使用多机位视图工作

      CameraTracker可以像跟踪和解算单机位项目一样,对立体或多机位项目进行跟踪和解算。

      1. 连接CameraTracker节点。具体参看【连接CameraTracker节点】

      2. 使用CameraTrackerSetting选项卡中的Principal View下拉菜单,选择用于创建跟踪点的视图。其他任何视图中存在的跟踪点都是从Principal View中计算的。

      3. 跟踪并解算摄像机。具体参看【摄像机跟踪】。

      4. 目前User Track最多只支持两个视图。我们可以使用CameraTracker属性面板UserTracks选项卡中的User Track Views参数,选择用于用户跟踪点(user track)的左视图和右视图。

      5. 如果要显示左右视图的两个摄像机,请从CameraTracker选项卡的Export组选择Camera rig,创建一个多机位摄像机脚架,这个脚架上有每个视图的摄像机。

    • #54340

      韩十七
      参与者
      青骑士

      步骤4——

      设置摄像机参数

      摄像机设置与真实拍摄现场的摄像机的物理参数设置有关,精确的物理摄像机数据可以生成更好的摄像机跟踪和解算结果。

      1. 在CameraTracker选项卡的Camera Motion下拉菜单中选择现场摄像机的运动类型。该参数和Settings选项卡中的同名参数是链接的。

      • Rotation Only – 如果摄像机是静止的且存在旋转(比如我们将摄像机架在固定的三脚架上),摄像机存在定点摇动,则选择该选项。
      • Free Camera – 如果摄像机既存在平移又存在摇动,则选择该选项。
      • Linear Motion – 如果摄像机的运动路径是一条笔直的直线,则选择该选项。
      • Planar Motion – 如果摄像机仅在一个二维的平面上移动,则选择该选项。

      2. 如果我们已经使用LensDistortion节点对素材进行了镜头畸变校正,我们可以将Lens Distortion参数设置为No Lens Distortion

      不然的话,就将Lens Distortion参数设置为Unknown Lens,强制CameraTracker计算镜头畸变,然后再解算摄像机位置。

      3. 从Focal Length下拉菜单中选择摄像机的焦距类型:

      • Known – 如果焦距已知,则选择该选项,并在Length参数中输入焦距值。
      • Approximate Varying – 近似变焦。如果有可用的近似焦距,则选择该选项,并于变焦的关键帧处,在Length参数中输入关键帧焦距值。
      • Approximate Constant – 近似定焦。如果有可用的近似焦距,且镜头没有缩放,则选择该选项,并在Length参数中输入近似的焦距值。

      注意:如果我们选择Approximate选项,CameraTracker会在解算期间尝试优化焦距。

      • Unknown Varying – 未知变焦。如果焦距未知且有变化,则选择该选项。
      • Unknown Constant – 未知定焦。如果如果焦距未知且镜头没有缩放,且镜头没有缩放,则选择该选项。

      4. 从Film Back Preset下拉菜单中选择摄像机底片尺寸,如果我们的摄像机不在列表里面,则需要手动输入底片尺寸。

      小提示:我们可以编辑Nuke安装包里的../NukeScripts/camerapresets.py文件,添加自己的摄像机预设。

    • #54359

      韩十七
      参与者
      青骑士

      步骤5——

      Sequence(序列)模式下跟踪

      Sequence(序列)模式下,CameraTracker会跟踪连接在Source输入端的素材,并定义一系列于场景中固定点相对应的2D特征点。

      注意:如果我们打算单独添加LensDistortion节点手动校正镜头畸变,那么这个操作需要在跟踪序列之前就进行。不然的话,就将CameraTracker上的Lens Distortion参数设置为Unknown Lens,强制CameraTracker计算镜头畸变,然后再解算摄像机位置。

      进行跟踪之前,我们要使用CameraTracker的属性面板来控制Viewer的输出,并确定跟踪行为:

      1. 在CameraTracker选项卡上,确保Source设置为Sequence

      2. 如果要屏蔽画面中的某些部分,需要为遮罩源设置Mask参数。

      比如说我们要使用一个Roto节点的alpha通道为遮罩,那么就要将这个Roto节点连接到Mask输入,并选择Mask参数为Mask Alpha。详细信息参看【用遮罩屏蔽图像区域】

      注意:对于立体素材或多机位素材,我们需要在CameraTrackerSettings选项卡上,将Principal View设置为主要跟踪视图。任何遮罩都应该应用到这个视图上,然后将其用于第二个摄像机视图。

      3. 使用Range下拉菜单决定分析哪些帧:

      • Input – 默认值,将帧范围设置为源序列的长度。
      • Global – 全局,将跟踪帧范围设置为Project Settings的frame range参数。

      如果没有定义帧范围,则读入的第一个序列的帧范围将用作Global帧范围。

      • Custom – 使用fromto输入框定义跟踪帧范围,例如从第3帧到第50帧。

      4. 在Settings选项卡上,定义特征跟踪的起点:

      • Number of Features – 特征点数量,定义每帧要跟踪的特征点的数量。

      理想情况下,每帧的跟踪点应该超过100个。在大多数情况下,默认的150个是可以满足的,不过也有比较难的序列需要设置更高的跟踪点数。

      • Detection Threshold – 探测阈值,设置输入图像上的特征点分布。

      输入的探测阈值较低时,特征点在图像上会均匀分布。反之亦然。

      低探测阈值

      高探测阈值

      • Feature Separation – 特征点分离,设置特征点们相对于彼此的分布。

      想要特征点相对于彼此距离不要太近,且均匀分布在图像上,我们需要将特征点分离值设置得高一点。

      低特征点分离

      高特征点分离

      5. 勾选Refine Feature Locations将探测到的特征点锁定在画面中的角上。如果激活该选项,CameraTracker会找到距离每个特征点最近的角点,并将特征点锁定在这些角点上。

      6. 勾选Preview Features查看当前正跟踪的特征点的分布。

      如果我们要在跟踪之前进一步调整跟踪参数,这个功能会派上用场——它会随参数的调整动态更新。

      在使用特征点分布和分离参数后,一定要启用预览功能查看一下,确保跟踪点均匀分布,且不过于密集地堆在一起,这很重要!

      7. 在预览图像上将特征点分布调整到满意后,点击Track开始分析序列。

      8. CameraTracker开始顺序读取序列帧,并跟踪存在的特征点。不符合Settings选项卡中Tracking的质量阈值设置的跟踪点会重新设置,以保持跟踪点数量不变。

      当播放头走到序列末尾后,它将倒序读取序列帧,验证已通过的跟踪点。那些由于出错而重新设置的跟踪点会被反向跟踪,如果这些跟踪点仍然行得通,就会被保留下来。

    • #54371

      小仙女
      参与者
      军士

      好久不见啊十七,还以为你不来了呢,嘻嘻^_^……你之前的贴都写得很棒呀,我见过的最仔细的Nuke写手啦!加油哟!

    • #54602

      韩十七
      参与者
      青骑士

      步骤5(2)——

      Stills(静帧)模式下跟踪

      在Stills模式下,CameraTracker会跟踪Source输入端的参考帧,并进行分析。跟踪操作会定义一系列与场景中固定刚性点相对应的2D特征点,然后解算器会为每个参考帧计算摄像机路径和投影。

      注意:如果我们打算单独添加LensDistortion节点手动校正镜头畸变,那么这个操作需要在跟踪序列之前就进行。不然的话,就将CameraTracker上的Lens Distortion参数设置为Unknown Lens,强制CameraTracker计算镜头畸变,然后再解算摄像机位置。

      关于静帧跟踪,十七在这个帖子里有详细讲解,大家可以参考一下:

      【Nuke合成】CameraTracker中Stills(静帧)跟踪模式怎么用?(图文详解)

    • #54606

      韩十七
      参与者
      青骑士

      步骤6——

      使用 User Track

      User Track 是需要我们手动放置的,不是 CameraTracker 自动播撒的,可用于改进甚至替换自动跟踪数据。在跟踪静帧时,User Track 还可以将不匹配的参考帧链接在一起。

      我们可以在跟踪和解算前创建 User Track 将摄像机锁定到镜头的特定部分,或者在跟踪或解算之后创建 User Track 改善解算结果。

    • #54608

      韩十七
      参与者
      青骑士

      步骤7只是点击一个按钮,就没什么好详解的啦嘻嘻~

      步骤8——

      解算摄像机位置

      如果跟踪出来的特征点比较让人满意,我们就可以解算摄像机位置了。CameraTracker会使用跟踪信息计算摄像机位置,并将位置信息添加到视窗中跟踪的特征点上。

      在CameraTracker属性面板上点击Solve,即进入解算环节。解算器会选择相对较远的关键帧子集,以便图像中有足够的视差来定义跟踪轨迹的3D点。

      解算完成后,视窗中会显示带有解算数据的跟踪特征点。

    • #54609

      韩十七
      参与者
      青骑士

      步骤9——

      调节场景

      跟踪和解算过程完成后,我们可以使用解算数据对齐和缩放场景,然后添加摄像机、点云、物体等等。

      我们可以进行如下调整,使场景更接近真实世界或方便我们的项目制作:

      • 为场景设置地平面、轴或原点。
      • 使用Scene选项卡的Scene Transform参数手动调节场景。
      • 使用已知距离更精确地缩放场景。
    • #55489

      韩十七
      参与者
      青骑士

      步骤10——

      使用解算数据

      调节完场景后,我们就可以使用解算数据创建摄像机、多机位脚架、3D 场景和点云、镜头畸变,或基于摄像机数据创建卡片。

      ——————

      一、创建 Camera 节点

      CameraTracker 可以使用跟踪和解算数据创建链接🔗或烘焙的摄像机,模拟原始摄像机轨迹。我们可以根据需要创建单个摄像机,也可以创建摄像机组。

      1. 从 Export 下拉菜单中选择 Camera

      2. 启用或禁用 Link output 参数,以确定 Camera 节点是表达式链接还是烘焙:

      • 启用时,CameraTracker 会创建一个表达式链接的摄像机,这样属性面板的 Output > Camera 参数有更改时就会更新该摄像机。
      • 禁用时,上述参数的任何调节都不会影响到新创建的摄像机。

      3. 点击 Create

      节点图中会出现一个 Camera 节点,表达式链接的摄像机会有一个绿色的表达式箭头链接到 CameraTracker 节点上。

      Camera 节点数据可以用于 Nuke 的多个工作流程,比如创建密集点云、生成深度图等。

       

      创建摄像机脚架

      CameraTracker 可以创建多机位,比如最常见的立体项目,左视图和右视图。

      1. 从 Export 下拉菜单中选择 Camera rig

      2. 启用或禁用 Link output 参数,以确定 Camera 节点是表达式链接还是烘焙:

      • 启用时,CameraTracker 会创建一个表达式链接的立体摄像机脚架,这样属性面板的 Output > Camera 参数有更改时就会更新该摄像机。
      • 禁用时,上述参数的任何调节都不会影响到新创建的摄像机。

      3. 点击 Create

      注意⚠️如果只有一个视角,是不可以创建脚架的,否则会报错。

      此时节点图中会出现两个摄像机,左右视角各一个。表达式链接的摄像机会有一个绿色的表达式箭头链接到 CameraTracker 节点上。

      Camera 节点数据可以用于 Nuke 的多个工作流程,比如创建密集点云、生成深度图等。

       

      创建摄像机组

      CameraTracker 可以自动为每个解算帧创建一个摄像机。

      1. 从 Export 下拉菜单中选择 Camera set

      2. 启用或禁用 Link output 参数,以确定 Camera 节点是表达式链接还是烘焙:

      • 启用时,CameraTracker 会创建表达式链接的摄像机组,这样属性面板的 Output > Camera 参数有更改时就会更新新创建的摄像机。
      • 禁用时,上述参数的任何调节都不会影响到新创建的摄像机。

      3. 点击 Create

      如果要处理大量的帧,会弹出确认对话框。

      4. 点击 Yes 继续,或点击 No 取消导出。

      CameraTracker 将添加一个 Group 节点到节点图中,这个 Group 节点包含每个解算帧的摄像机,并连接在一个 Scene 节点上。

      5. 双击 Group 节点打开属性面板,然后点击 面板上的 S 按钮,在节点图中打开这个组。

      我们还可以将摄像机数据写入 .fbx 文件,导入 Modo 或 Maya 做投影绘画工作。

      • #55496

        韩十七
        参与者
        青骑士

        二、创建场景

        CameraTracker 可以创建一个随时可用的 3D 场景,其中包含来自跟踪和解算数据的点云、摄像机和 Scene 节点。Scene+ 选项比标准的 Scene 要多一个 LensDistortion 和 ScanlineRender 节点。

        1. 从 Export 下拉菜单中选择 Scene

        2. 启用或禁用 Link output 参数,以确定场景的 Camera 节点是表达式链接还是烘焙:

        • 启用时,CameraTracker 会创建一个表达式链接的摄像机,这样属性面板的 Output > Camera 参数有更改时就会更新该摄像机。
        • 禁用时,上述参数的任何调节都不会影响到新创建的摄像机。

        3. 点击 Create

        节点图中会出现一个 Camera 节点,表达式链接的摄像机会有一个绿色的表达式箭头链接到 CameraTracker 节点上。

         

         

        创建带 ScanlineRender LensDistortion 3D 场景

        1. 从 Export 下拉菜单中选择 Scene+

        2. 启用或禁用 Link output 参数,以确定场景的 Camera 节点是表达式链接还是烘焙:

        • 启用时,CameraTracker 会创建一个表达式链接的摄像机,这样属性面板的 Output > Camera 参数有更改时就会更新该摄像机。
        • 禁用时,上述参数的任何调节都不会影响到新创建的摄像机。

        3. 点击 Create

        节点图中会出现一个 Camera 节点,表达式链接的摄像机会有一个绿色的表达式箭头链接到 CameraTracker 节点上。

      • #55497

        韩十七
        参与者
        青骑士

        三、创建点云

        CameraTracker 可以创建烘焙的点云,当我们更改 CameraTracker 属性面板参数时这个点云不会更新。

        1. 从 Export 下拉菜单中选择 Point cloud

        2. 点击 Create

        CameraTracker 会在节点图中添加一个 CameraTrackerPointCloud 节点。

        3. 双击 CameraTrackerPointCloud 节点打开属性面板。

        4. 使用显示和渲染下拉菜单设置点在视窗和渲染时的显示方式:

        • off – 隐藏 3D 点。
        • wireframe – 仅显示点。
        • solid – 使用点所代表的像素的颜色显示所有的点。
        • solid+wireframe – 使用点所代表的像素的颜色显示所有的点,并显示点本身。
        • textured – 仅显示表面纹理。
        • textured+wireframe – 显示表面纹理和点。

        上面这些选项,十七建议不能理解的可以直接手动试一试,就记忆深刻了^ _ ^

        5. 使用 casting shadow 和 recieiving shadow 复选框可以启用/禁用阴影投射和接收。

        6. 使用 Point Size 参数可以设置渲染点的大小。

      • #55501

        韩十七
        参与者
        青骑士

        四、创建卡片

        CameraTracker 可以自动为每个解算帧创建一个 3D 卡片,这些卡片上会有摄像机投影的画面帧。

        1. 从 Export 下拉菜单中选择 Cards

        2. 启用或禁用 Link output 参数,以确定 Camera 节点是表达式链接还是烘焙:

        • 启用时,CameraTracker 会创建表达式链接的摄像机组,这样属性面板的 Output > Camera 参数有更改时就会更新新创建的摄像机。
        • 禁用时,上述参数的任何调节都不会影响到新创建的摄像机。

        3. 点击 Create

        如果要处理大量的帧,会弹出确认对话框。

        4. 点击 Yes 继续,或点击 No 取消导出。

        CameraTracker 将添加一个 Group 节点到节点图中,这个 Group 节点包含每个解算帧的 Card、FrameHold 和摄像机节点,并连接在一个 Scene 节点上。

        5. 双击 Group 节点打开属性面板,然后点击 面板上的 S 按钮,在节点图中打开这个组。

        6. 使用 Group 节点的 z 参数可以调节卡片到摄像机的距离。

        Card 们会使用摄像机设置进行自动缩放。

        默认情况 z 深度设置为1 z 深度为3时
    • #55505

      韩十七
      参与者
      青骑士

      步骤11——

      合并解算

      有时候,我们可能会有来自同一场景或内容的多个源素材,比如我们可能有来自辅助摄像机的素材,或其他人拍摄的场景的细节静帧。Camera Tracker提供了一种方法,可以解算每个源素材,并将它们合并到同一个世界坐标中。这样我们就可以利用来自辅助源的高质量摄像机跟踪点(这些跟踪点可能更好解算),然后将这些跟踪点用于其他难以解算的源中。我们还可以使用这种技术将特写静帧与广角镜头关联起来。

      这种方法的关键在于选择一个良好的源素材作为“主”解算机位,这种素材应该是具有良好视差的镜头,比如一组广角静帧。我们还需要从解算数据中创建一些几何体,用于创建3D测量点,然后使用这些测量点将“主”机位和从机位解算合并在一起。

      操作步骤如下:

      1. 选择一个源素材作为“主”解算,并使用CameraTracker跟踪和解算该摄像机。

      2. 使用CameraTracker的Export菜单创建一个链接的摄像机。

      3. 使用摄像机数据创建一些参考的几何体:

      • 直接将Camera连接到ModelBuilder节点中,创建几何体;
      • 导出摄像机数据,在外部应用中创建几何体,然后导入Nuke中。

      4. 在“主”解算中,在几何体上设置一些3D测量点。

      5. 为每个从摄像机创建一个单独的CameraTracker,然后跟踪每个素材。

      6. 在从摄像机中创建User Track,这些 User Track要对应“主”解算中的3D测量点,还要确保将这些跟踪点标记为测量点。

      7. 解算从摄像机,使它们与“主”解算保持一致。

      小提示:我们可以右键CameraTracker节点中的一个跟踪点,选择copy > translate,将一个跟踪点的X、Y、Z位置复制到另一个跟踪点上。

    • #55507

      韩十七
      参与者
      青骑士

      步骤12——

      在场景中放置物体

      我们可以使用摄像机和点云将几何体添加到场景中。 我们也可以手动添加物体,但将它们放置在摄像机视野内所需的位置上可能会比较耗时。 CameraTracker为我们提供了自动创建功能,帮助我们实现想要的结果。

      1. 在2D视图中,选择平面上的点放置几何体,比如将卡片放在垂直或水平面上。

      小提示:使用2D视窗和3D点云划像有助于定位潜在点。

      2. 框选需要的点,或按住Shift点击单独的点。

      3. 在2D视窗中右键选中的点,然后选择Create菜单显示可用的几何体。

      4. 使用所有选中点的平均位置将几何体放置在场景中。

      下图显示的是使用垂直和水平面上的点在场景中放置了两张卡片。

    • #55508

      韩十七
      参与者
      青骑士

      步骤13——

      计算镜头畸变

      默认情况下,我们添加到3D场景中的任何CG元素都是没有镜头畸变的。因此,当我们将CG元素与2D素材合成时,会发现它们不匹配,看上去不像是同一个相机拍摄的。这种情况下,我们需要解决镜头畸变问题:

      使用CameraTracker计算2D素材的镜头畸变,并生成一个LensDistortion节点,用这个节点对CG素材应用相同的镜头畸变。

      使用CameraTracker计算2D素材的镜头畸变,并生成一个LensDistortion节点,用这个节点校正2D素材的镜头畸变以匹配CG元素。

      直接使用CameraTracker计算并校正2D素材的镜头畸变,以匹配CG元素。

      • 注意:上面提出的这三种方案的前提都是假设解算前将LensDistortion设置为Unknown Lens。如果已经将LensDistortion设置为No Lens Distortion,并且使用了单独的LensDistortion节点计算了镜头畸变,那就可以直接使用这个LensDistortion节点对CG元素添加畸变,或者对2D素材去畸变,使它们匹配。

      下面十七就细细地为大家讲下具体操作方法。

      ————

      为CG元素添加镜头畸变以匹配2D素材

      1. 在CameraTracker属性面板中,将Export菜单设置为Distortion,并点击Create

      CameraTracker会创建一个LensDistortion节点,该节点被设置为应用2D素材中的镜头畸变。

      2. 将LensDistirtion节点连接到ScanlineRender节点的输出上。

      LensDistortion节点会对3D场景中的CG元素添加镜头畸变,以匹配2D素材。

      3. 将CG元素和2D素材合成在一起。

      ————

      移除2D素材镜头畸变以匹配CG元素(使用LensDistortion)

      1. 在CameraTracker属性面板中,将Export菜单设置为Undistortion,并点击Create

      CameraTracker会创建一个LensDistortion节点,该节点被设置为移除2D素材中的镜头畸变。

      2. 将LensDistirtion节点连接到2D素材的输出上。

      LensDistortion节点会对2D素材校正镜头畸变,以匹配3D元素。

      3. 将LensDistortion节点连接到ScanlineRender节点的bg输入端。

      去畸变后的2D素材就会用作3D场景的背景。

      ————

      移除2D素材镜头畸变以匹配CG元素(使用CameraTracker)

      1. 在CameraTracker属性面板中,启用Undistort Input

      CameraTracker将移除其输入素材的镜头畸变。

      2. 将LensDistortion节点连接到ScanlineRender节点的bg输入端。

      去畸变后的2D素材就会用作3D场景的背景。

    • #55509

      韩十七
      参与者
      青骑士

      好啦,这次十七的教程就到这里啦,如有疑问,可以跟帖留言,十七会尽快回复哦。

      点击十七的头像可以查看更多精彩教程呢~

      如果本教程对您有所帮助,点击我的头像,加我为好友,就可以看到我得更新啦,也可给我发私信,点击帖子顶部得收藏放入收藏夹,方便将来再次查看~,并将本帖推荐给您的朋友哦~

      本帖未经允许不得转载,禁止二次转载,转载请注明出处并保留在本站的完整链接,谢谢^_^

正在查看 16 条回复
  • 在下方一键注册,登录后就可以回复啦。
error: 提示:内容受到保护!!