Blender 3D:从新手到高手/环顾四周 - 全景设置
适用于 Blender 版本:2.37a。 |
全景功能在 Blender 2.37a 和 2.42 之间发生了改变。有关如何实际使用全景的更多信息,请在论坛中查看此主题:http://blenderartists.org/forum/showthread.php?p=797886
你是否曾经好奇过,那些在某些网站上看到的酷炫的 360 度全景是如何制作的?好吧,我也不知道,所以要由其他人来解释。不过我发现了一个如何在 Blender 中输出 360 度全景图像的方法,这很可能是制作那些网站上的东西的第一步。
现在,让我们像在本维基百科的其他页面中那样,像教程一样逐步进行。所以,启动 Blender,看看那个我们熟悉的初始方块场景。或者,稍微改变一下它。假设你已经按顺序阅读了这本书,那么获得类似于图片中的东西应该不难。
我把相机和灯光都放在原点上方,删除了立方体,并添加了 8 个圆柱体,这些圆柱体都围绕着原点。一种方法是放置一个圆柱体,然后围绕原点复制并旋转它。要使此方法起作用,请将旋转中心设置为 3D 光标(使用 Pivot 按钮),并将 3D 光标放置在原点(使用 **SHIFT+S** 使 3D 光标捕捉到网格)。使用 **GKEY** 放置第一个圆柱体,然后在移动鼠标时按住 **CTRL**。切换到物体模式,然后使用 **SHIFT+D** 复制它。接下来,按 **RKEY** 旋转它,然后在旋转时按住 **CTRL** 将其旋转 45 度。对剩余的圆柱体重复相同的操作。使用 **G** 移动灯光。使用 **NKEY** 输入相机值,如所示,使其与地面平行。
说到地面,让我们也添加一个地面。我添加了另一个圆柱体,位于其他圆柱体的下方,如所示。可以通过切换到正面视图(**NUM1**)、复制一个圆柱体(**SHIFT+DKEY**),然后再次按住 **CTRL** 移动它,使其捕捉到网格,来轻松添加它。要缩放它,请使用 **SKEY**,但按下 **SHIFT+ZKEY** 锁定 z 缩放,并在 x 和 y 方向缩放时按住 **CTRL**,以便您可以捕捉到所需的精确大小。
现在,为了让场景完整,我们需要一些颜色。我将地面圆柱体设为绿色,将 8 个示例圆柱体设为灰色,还为地面添加了噪声法线。不过这里并不重要,只需要一个 360° 相机的示例场景。
更有趣的是天空纹理,因为 Blender 的天空可以无缝地以 360 度环绕。以下是使用的天空设置的屏幕截图。要进入这里,请单击 Shading 按钮,然后选择 World。
要更改纹理,请单击 textures 按钮或按 **F6**,然后使用带有两个箭头的小按钮添加一个新纹理,并为纹理选择类型(例如 "Marble" 或 "Clouds")而不是 "None"。回到 World 面板,并启用 Real 和 Blend 按钮。别忘了使用漂亮的颜色,我使用了蓝色和白色。现在它看起来有点像蓝天白云。
[也许应该在这里添加更多细节?什么东西很重要,这样你才不会在 0 - 360 度点获得接缝?如何映射预制的天空纹理?]
我们已经完成了,这就是示例场景。剩下的就是将其渲染为全景。
转到渲染设置(**F10**),然后单击 Pano 按钮。将 Xparts 值更改为 4。Xparts 中的值将告诉相机在渲染时水平“旋转”多少次。Yparts 值将对垂直方向执行相同的操作。每个部分(Xparts 或 Yparts)将渲染您设置的整个图像的大小。为了使操作更简单,请使输出图像尺寸为正方形,并将 X 和 Y Aspect 都设置为 100。例如,将您的图像尺寸设置为 600x600,而不是 800x600,否则以下操作将不起作用。
如果您想要无缝的 360 度视图,那么了解一张图像跨越多少度很重要。例如,如果您知道一张图像为 90 度,那么您可以将 Xparts 设置为 4,结果将是一张全景图片,使用正确的全景查看器,您就可以在其中无休止地旋转。
但是,如何制作一张 90 度的单张图片?图片跨越的角度称为视场(FOV)。它是相机的属性。要更改它,请选择您的相机,然后单击编辑按钮(或按 **F9**)。确保您没有将相机设置为正交投影(“Ortho”按钮),因为 FOV 仅在普通相机中存在。
您可以直接在 Blender 的相机设置中输入 FOV(从版本 2.42 开始)- 切换名为 **Lens** 的参数旁边的“D”按钮。输入 90 以获得 90 度的 FOV。现在按下 **F12** 渲染我们的测试图像。
如果您愿意,也可以在任何其他场景中尝试它。将相机放置在中间某个位置,以获得全方位的良好视野,将相机的 **Lens** 设置为 90,然后进入渲染设置(**F10**)。将 **Xparts** 设置为 4,启用 **Pano**,然后渲染。您应该得到一张宽度是普通图像 4 倍的图像,并且左右边缘应该无缝地拼接在一起。还要注意,Blender 不知道应该将 FOV 应用为水平还是垂直视角,但我们始终希望它成为水平视角。因此,只需使全景的单张图像为正方形,如上所述 - 这样水平和垂直 FOV 就相同,Blender 会正确处理它。
这是生成的全景图像
警告:以下透镜设置没有转换为使用“D”按钮直接传递 FOV 值的新可能性。仍然存在一个问题,图像会严重失真。这是因为 90 度的 FOV 太高了。让我们尝试使用 45 度和 8 个 XParts。正如您之前使用 Lens 参数玩耍时所注意到的那样,将 Lens 设置为 8 而不是 16 不会达到此目的,它会使 FOV 变得更大。将其设置为 32 看起来更好,但绝对不是 45 度。右侧的图片解释了 FOV 和 Lens 之间的关系
相机位于底部,红色角度是我们所需的 FOV,绿色线的长度代表 Blender 中的 Lens 参数。因此,计算知道 FOV 时 Lens 的公式
- Lens = 16 / tan(FOV / 2)
对于 45 度的 FOV,我们因此得到 38.627 的 Lens。现在,将它写入相机设置中的 Lens 字段,并使用 8 个 XParts 渲染。这次它将渲染一张宽度是普通输出图像 8 倍的输出图像,并且它将再次是您场景的无缝 360 度全方位全景。这次失真更小。使用上述公式,现在可以使用您想要的任何数量的 XParts - 只需将 360 除以部分数量,然后计算所得 FOV 的 Lens 参数即可。请注意,您还需要考虑 Aspect 设置,除非您将其设置为 100 并创建一个正方形输出,就像我们所做的那样。
一些 Lens 设置
- 4 个部分:16
- 8 个部分:38.627
- 16 个部分:80.437
下面可以查看包含 8 个部分的输出结果。
如以往一样,请随意修改此页面或在讨论页面添加反馈。