跳转到内容

Blender 3D:菜鸟到专业/用立体视觉增加深度

来自 Wikibooks,开放世界的开放书籍

本教程包含一些关于如何处理立体图像的技巧。

立体观看是从两个略微不同的角度观看同一个东西。这是人类通常用两只眼睛做的事情。有很多方法可以观看立体图像。一个完美的方法是使用立体显示器。但它们相当昂贵,而且很多质量都很低。在价格尺度的另一端,你可以使用交叉观看。将两张图像并排放置,用一只眼睛看一张,用另一只眼睛看另一张。不过需要一些练习。一个流行的解决方案是红蓝立体眼镜,但它们的颜色非常糟糕。

立体相机

[编辑 | 编辑源代码]

我想要一个易于使用的立体相机装备。它应该有三个相机(中心、左、右),有一个简单的方法来设置分离(应该是距离的 1/30),并且中心相机应该用于控制位置等,另外两个应该只是跟随。

创建它

[编辑 | 编辑源代码]
  1. 重置相机的位置、旋转和大小(你可以使用  Alt + G  Alt + R  Alt + S )。你可能想先记下这些值,以便以后可以将它们改回来。我只是确保有一个 IPO 曲线,例如通过制作关键帧( I )。
  2. 创建两个新的相机。重置它们的位置、旋转和大小。
  3. 将它们命名为Camera.RightCamera.Left 或类似名称。将 Camera.Right 的 LocX 设置为 1,将 Camera.Left 的 LocX 设置为 -1。(按  N  查看所选对象的 数据,在这个窗口中可以修改名称和值。)(通过在相机上多次点击  RMB  选择相机,直到选择正确的相机。)
  4. 创建新的立方体(记得按  Tab  退出编辑模式)。重置位置、旋转和大小。将其命名为Distance Cube 并设置以下值:LocZ: -30。SizeX: 0.1。SizeY: 0.1。SizeZ: 30。
  5. 切换到正面视图。( 1 
  6. 选择Camera.Left。然后在按住  Shift  的情况下选择Camera,以便同时选择这两个相机。按  Ctrl + P  并按  Enter Camera 注册为父级。然后按  Ctrl + L  并选择 Camera Data。重复使用右侧的 Camera.RightDistance Cube

使用脚本

[编辑 | 编辑源代码]
TODO
待办事项

编辑注
我尝试制作一个创建装备的脚本,它几乎可以工作。任何帮助完成它吗?

import Blender
from Blender import *

# Prepare
scene = Scene.getCurrent()
camera = Object.Get("Camera") # TODO validate that it is a camera
oldLocation = camera.loc
oldRotation = camera.rot
oldSize = camera.size

# Create stuff
c = Camera.New("ortho")
cameraLeft = Object.New("Camera", "Camera.Left")
cameraLeft.link(c)
scene.link(cameraLeft)

c = Camera.New("ortho")
cameraRight = Object.New("Camera", "Camera.Right")
cameraRight.link(c)
scene.link(cameraRight)

dEmpty = Object.New("Empty", "Distance")
scene.link(dEmpty)

# Configure
camera.loc = (0,0,0)
camera.rot = (0,0,0)
camera.size = (1,1,1)

cameraLeft.loc = (-1,0,0)
cameraLeft.rot = (0,0,0)
cameraLeft.size = (1,1,1)

cameraRight.loc = (1,0,0)
cameraRight.rot = (0,0,0)
cameraRight.size = (1,1,1)

dEmpty.loc = (0,0,-60)
dEmpty.rot = (0,0,0)
dEmpty.size = (1,1,1)

scene.update(1)

# Connect
camera.makeParent([cameraLeft, cameraRight, dEmpty], 0, 0)
# do that CTRL+LKEY thing
cameraLeft.link(Camera.Get("Camera"))
cameraRight.link(Camera.Get("Camera")) 

# Reset original values

camera.loc = oldLocation
camera.rot = oldRotation
camera.size = oldSize

# Finish
Blender.Redraw()

如何使用它

[编辑 | 编辑源代码]
  • 切勿更改立方体或两个侧相机。只更改中心相机。使用它来定位、旋转等。
  • 要设置分离:像往常一样,选择中心相机。调整它的大小(使用  S ),这样你就可以看到立方体的末端(如果需要)。用鼠标指针指向立方体的末端,然后按  S 。将鼠标指针移动到主图案最靠近相机的那一点。立方体的末端可能不会正好在那里结束,但这并不重要。
  • 要使用其中一个侧相机进行渲染(或预览),选择它并按  Ctrl + 0 

需要改进的地方

[编辑 | 编辑源代码]

立方体可见

[编辑 | 编辑源代码]

我宁愿使用不渲染的东西,而不是使用立方体。它可以是“空”,但请参见下文。

立方体难以看到

[编辑 | 编辑源代码]

即使在简单的场景中,也很难看到立方体在哪里结束。你可以选择中心相机和立方体,这样就可以清楚地看到它。但你必须记住,在插入关键帧之前,只选择相机,这样你对立方体的更改就不会被保存。

距离平面在无穷远处

[编辑 | 编辑源代码]

距离平面是“零深度”所在的位置。在观看立体图像时,距离平面是介质所在的位置。在这个装备中,距离平面在无穷远处,这意味着所有东西都在它的前面。虽然东西从屏幕上弹出比东西“在”屏幕“里面”更酷,但让它看起来很漂亮要困难得多。特别是由于所有东西都在屏幕前面,很容易得到离观众太近的东西。它可能变得如此难以看到,以至于 3d 效果完全消失了。

另一种解决方案是让侧相机指向立方体的末端,或者在装备中添加一个平面,并指向它。但这会导致相机不再平行,从而产生扭曲。

折衷的解决方案是(从概念上讲)将图像渲染得过宽,然后从左侧图像的左侧裁剪多余的部分,从右侧图像的右侧裁剪多余的部分。然后它看起来就像之前提到的解决方案中指向的那样,但没有扭曲。

但这会带来很多问题。首先,我希望以更智能的方式做到这一点,而不是仅仅遵循上述路径。但我认为在 Blender 中这是不可能的。(我认为 povray 实际上可以做到这一点。)所以我需要将图像渲染得过宽。但如果我在输出中增加宽度,它实际上会渲染相同的图案宽度,但会降低高度。然后我需要进行一些奇怪的数学运算来获得正确的 FOV,而我并不知道一半的公式。裁剪必须在 Blender 之外进行,并且如果需要,很难将生产线中的其余部分放回 Blender。

我认为在靠近摄像机的装置中添加几架飞机可以模拟裁剪,但这价值有限。用它们制作可调节距离的平面对我来说似乎很难,它可能需要一些脚本。

使用装置进行立体观看

[编辑 | 编辑源代码]

这里就开始变得有趣了,你现在实际上有东西可以看了。

  1. 创建一个新屏幕,你可以将其命名为立体视图
  2. 屏幕应该从一侧到另一侧都有一个大区域。
  3. 将区域设置为3D 视图
  4. 解锁它(锁定图层和将摄像机用于场景锁定)
  5. 选择Camera.Right 并按  Ctrl + 0 
  6. 将区域分成两半,使它们并排显示。
  7. 右侧区域中,选择Camera.Left 并按  Ctrl + 0 
  8. 调整两个区域中的缩放,使显示渲染内容的帧完全可见,但尽可能填充。如果你无法使它们大小相同,则两个区域大小不同。
  9. 使用交叉视图方法来查看 3D 效果。用右眼看左侧区域,用左眼看右侧区域。(这是一项需要学习和练习的技能。)
  10.  Shift + Alt + A  以立体方式查看场景动画。

如果你无法看到这些,网上有很多关于查看它们的帮助信息。使用搜索引擎查找它们。

立体渲染

[编辑 | 编辑源代码]

红蓝立体

[编辑 | 编辑源代码]

渲染图层选项卡中创建两个渲染图层。

TODO
待办事项

编辑注
你需要找到如何将一个摄像机与一个渲染图层关联起来。

然后进入节点编辑器,点击带有人的面孔的按钮。点击使用节点并通过选择项目并点击  Del  来删除创建的项目。现在,使用添加菜单,你需要完成此图。

完成后,返回到按钮窗口并选择动画选项卡上的执行合成按钮。

然后点击渲染选项卡上的渲染按钮。

你应该看到你的物体以红蓝立体显示。

华夏公益教科书