使用 Blender 构建虚拟相机以及三维测试场景

  • Blender
  • 步骤
  • 调节虚拟相机参数
  • 调节虚拟相机位置以及姿态
  • 调节立方体的尺寸位置



在研究相机图片中像素与真实场景中位置的对应关系时,我们通常要一张相机的图片,以及真实世界中实地测量的位置坐标来验证计算结果。不过,当我们没有测试相机设备时,我们可以使用 Blender 来构建一个虚拟相机,构建虚拟场景,同样能够达到验证结果的目的。

Blender

Blender 是一个开源三维模型处理软件,在本教程中将介绍使用 Blender 构建一个虚拟相机,以及构建一个虚拟场景。
Blender 中的虚拟相机通常包含以下参数。

  • Resolution X & Y,相机分辨率,如,1920 * 1080
  • Type,相机类型,如,Perspective(透视相机),Orthographic(正射相机),Panoramic(全景相机)
  • Focal Length,焦距
  • Image Sensor Size,传感器尺寸
  • Camera XYZ,相机在场景中的位置
  • Camera Euler XYZ,相机的俯仰角,方位角,翻滚角

步骤

调节虚拟相机参数

  1. 下载 Blender,请点击此链接,https://www.blender.org/download/
  2. 安装完毕后,打开 Blender,你可以看到如下界面。
    中间是场景显示窗口,我们可以看到一个立方体(灰色),可以一个简化的相机(黄色)
  3. 右上是一个当前场景概览窗口,我们可以看到当前场景中一共有三个物体:Camera(虚拟相机),Cube(立方体),Light(光源)。我们点击此处的 Camera,Camera 的字会变成黄色,就代表 Camera 被选中了,我就可以编辑 Camera 的各种参数。
  4. 我们首先编辑虚拟相机的分辨率,点击右边中间偏下的 Output Properties 标签页
  5. 在 Output Properties 标签页中,我们编辑 Resolution X 和 Y。将 Resolution X 设为2560 px,将 Y 设为 1440 px。就是说我们最终使用该虚拟相机导出图片的分辨率为 2560 * 1440。
  6. 然后点击 Object Data Properties 标签,在此标签中我们可以编辑更多的虚拟相机参数。
    在 Lens 的子菜单中,
    将 Type 设为 Perspective。作用是把相机类型设为透视相机。
    将 Focal Length 设为 5 mm。作用是把相机的焦距设为 5 毫米。
    将 Lens Unit 设为 Millimeters。作用是将镜头的单位调整为毫米。
    在 Camera 的子菜单中,
    将 Sensor Fit 调为 Auto。
    将 Size 调为 7.18 mm。作为是将相机传感器原件水平宽度设置为 7.18 毫米。
  7. 至此,我们就完成了虚拟相机的参数设置。

调节虚拟相机位置以及姿态

  1. 在右上方场景概览中选中 Camera。

    选中后的 Camera 在场景窗口中会被高亮成橘黄色。下图左侧就是我们的相机 Camera。
  2. 在键盘上按下快捷键 N,屏幕上会跳出相机的位置和姿态信息。
    Location 代表 Camera 在场景中的位置 XYZ。
    Rotation 代表 Camera 分别绕 XYZ 轴的旋转角度,也就是相机的方位角,俯仰角,翻滚角。
  3. 我们修改相机的位置和姿态
    将 Location 设为,
    X = 0 m
    Y = -10 m
    Z = 10 m
    将 Rotation 设为,
    X = 45
    Y = 0
    Z = 15
  4. 然后我们点击 Toggle the camera view 将视图切换至相机视图

    下图相机视图,代表使用调整过的虚拟相机拍摄出来的一张图片。

    在相机视图下,你可以尝试微调相机的 Location 和 Rotation 来观察相机视图的变化,帮助深入理解每一个参数的意义。

调节立方体的尺寸位置

  1. 在一次点击 Toggle the camera view,我们可以切换回默认视图。
  2. 然后我们点击场景中的立方体,立方体会高亮为橘黄色。
  3. 我们再次按下快捷键 N,会跳出立方体 Cube 的位置信息。
    Location 代表 Cube 几何中心在场景中的位置 XYZ。
    Rotation 代表 Cube 几何中心分别绕 XYZ 轴的旋转角度。
    Scale 代表 Cube XYZ 方向的缩放。
    Dimension 代表 Cube 的长宽高。
    你可以尝试调节上面的每一个参数,观察立方体位置和形状的变化。
  4. 我们最终将立方体的 Location,Rotation,Scale,Dimension 调节成如下图所示。当然你完全可以使用你自己的参数不一定完全一致。
  5. 我们点击小键盘 Num 0,会切换至相机视图。
    下图就是立方体在虚拟相机中的成像。
  6. 最后我们在 Blender 上方找到 Render – Render Image,会跳出 Blender Renderer 窗口,窗口是三维场景在我们虚拟相机中渲染出的图像。
  7. 在 Blender Renderer 中,点击 Image – Save As,

    如图配置图片保存路径,不勾选 Save As Render。
  8. 最后我们就导出了一张自定义虚拟相机所拍摄出的三维场景图片。