Blender 3D:菜鸟到专业/用立体视觉增加深度
本教程包含一些关于如何处理立体图像的技巧。
立体观看是从两个略微不同的角度观看同一个东西。这是人类通常用两只眼睛做的事情。有很多方法可以观看立体图像。一个完美的方法是使用立体显示器。但它们相当昂贵,而且很多质量都很低。在价格尺度的另一端,你可以使用交叉观看。将两张图像并排放置,用一只眼睛看一张,用另一只眼睛看另一张。不过需要一些练习。一个流行的解决方案是红蓝立体眼镜,但它们的颜色非常糟糕。
我想要一个易于使用的立体相机装备。它应该有三个相机(中心、左、右),有一个简单的方法来设置分离(应该是距离的 1/30),并且中心相机应该用于控制位置等,另外两个应该只是跟随。
- 重置相机的位置、旋转和大小(你可以使用 Alt + G , Alt + R 和 Alt + S )。你可能想先记下这些值,以便以后可以将它们改回来。我只是确保有一个 IPO 曲线,例如通过制作关键帧( I )。
- 创建两个新的相机。重置它们的位置、旋转和大小。
- 将它们命名为Camera.Right 和 Camera.Left 或类似名称。将 Camera.Right 的 LocX 设置为 1,将 Camera.Left 的 LocX 设置为 -1。(按 N 查看所选对象的 数据,在这个窗口中可以修改名称和值。)(通过在相机上多次点击 RMB 选择相机,直到选择正确的相机。)
- 创建新的立方体(记得按 Tab 退出编辑模式)。重置位置、旋转和大小。将其命名为Distance Cube 并设置以下值:LocZ: -30。SizeX: 0.1。SizeY: 0.1。SizeZ: 30。
- 切换到正面视图。( 1 )
- 选择Camera.Left。然后在按住 Shift 的情况下选择Camera,以便同时选择这两个相机。按 Ctrl + P 并按 Enter 将 Camera 注册为父级。然后按 Ctrl + L 并选择 Camera Data。重复使用右侧的 Camera.Right 和 Distance Cube。
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。
我认为在靠近摄像机的装置中添加几架飞机可以模拟裁剪,但这价值有限。用它们制作可调节距离的平面对我来说似乎很难,它可能需要一些脚本。
这里就开始变得有趣了,你现在实际上有东西可以看了。
- 创建一个新屏幕,你可以将其命名为立体视图。
- 屏幕应该从一侧到另一侧都有一个大区域。
- 将区域设置为3D 视图
- 解锁它(锁定图层和将摄像机用于场景锁定)
- 选择Camera.Right 并按 Ctrl + 0
- 将区域分成两半,使它们并排显示。
- 在右侧区域中,选择Camera.Left 并按 Ctrl + 0
- 调整两个区域中的缩放,使显示渲染内容的帧完全可见,但尽可能填充。如果你无法使它们大小相同,则两个区域大小不同。
- 使用交叉视图方法来查看 3D 效果。用右眼看左侧区域,用左眼看右侧区域。(这是一项需要学习和练习的技能。)
- 按 Shift + Alt + A 以立体方式查看场景动画。
如果你无法看到这些,网上有很多关于查看它们的帮助信息。使用搜索引擎查找它们。
在渲染图层选项卡中创建两个渲染图层。
然后进入节点编辑器,点击带有人的面孔的按钮。点击使用节点并通过选择项目并点击 Del 来删除创建的项目。现在,使用添加菜单,你需要完成此图。
完成后,返回到按钮窗口并选择动画选项卡上的执行合成按钮。
然后点击渲染选项卡上的渲染按钮。
你应该看到你的物体以红蓝立体显示。