跳转到内容

Blender 3D:菜鸟到专业/坐标变换

来自维基教科书,开放的书籍,开放的世界

坐标变换

[编辑 | 编辑源代码]

变换是指任何以某种方式改变坐标值的操作。例如,如果您拿起一个物体并将其移动到房间中的另一个位置而没有改变其方向,那么该物体相对于房间的每个点的坐标将根据新旧位置之间的距离和方向进行调整。这称为平移变换。

物体位于原始位置
物体平移到新位置


简单地旋转物体而不将其从原始位置移动称为旋转

物体旋转了45°


如果物体变大或变小,那就是缩放变换。在现实世界中,只有少数物体可以以这种方式缩放。例如,气球可以充气或放气到更大的或更小的尺寸,但保龄球则不能。无论现实世界中什么可以和不可以重新调整大小,在计算机图形学的世界中,任何物体都可以缩放(重新调整大小)。缩放可能是均匀的,即在所有维度上都等效地应用,或者非均匀的。

物体均匀缩放至原始大小的50%
物体垂直缩放至原始大小的50%


线性变换

[编辑 | 编辑源代码]

我们关注的主要类型的坐标变换称为线性变换。变换前直线保持直线,即不会变成曲线。例如,下图说明了对中心正方形应用的三个线性变换:从左到右顺时针,剪切倾斜,缩放和旋转,以及一个非线性变换,导致盒子的两边变成曲线。

多重变换

[编辑 | 编辑源代码]

可以连接组合一系列变换。生成的变换可以在一个操作中完成许多事情——平移、旋转、缩放等。但是,组成变换的顺序变得很重要。一般来说,变换不是可交换的。例如,比较沿 Y 轴移动模型一段距离,然后绕 X 轴旋转的结果(如果这没有意义,请考虑轴是固定的,它们不会随物体移动。稍后将详细介绍全局和局部坐标

平移后旋转

与先旋转的结果相比

旋转后平移

在某些情况下,可以在单个对象上同时应用三种形式的变换。Blender 中存在这样的功能,通常在创建动画时实现。例如,您可以决定拿起物体(第一次变换 - 平移),扭曲它(第二次变换 - 旋转),并且在 3D 建模环境中增加物体的大小(第三次变换 - 缩放)。

逆变换

[编辑 | 编辑源代码]

通常需要找到变换的。也就是说,具有相反效果的变换。例如,绕 X 轴旋转 +45° 可以通过绕相同轴旋转 -45° 来撤消。

逆变换有许多用途,其中之一是简化某些类型的变换的构造。

例如,很容易构造绕坐标系的 X、Y 或 Z 轴的旋转变换。但绕任意轴旋转 Θ° 怎么办?这可以从以下部分组成

  • 使旋转轴通过原点的平移。
  • 绕 Y 和/或 Z 轴旋转,视情况而定,使旋转轴沿 X 轴。
  • 绕 X 轴旋转 Θ°。
  • 与使旋转轴与 X 轴对齐的旋转的逆变换。
  • 与使旋转轴通过原点的平移的逆变换。

我们处理的大多数 3D 建模变换都有逆变换,但并非全部。请参阅下一节了解一些没有逆变换的变换。

我们大多数显示和输出设备不是三维的。因此,三维图像需要投影到二维表面(如显示屏或印刷页面)上,然后我们才能看到它们。

执行这种投影主要有两种方法。一种是正投影,从三维物体的所有点绘制平行线,直到它们与代表显示表面的平面相交

另一种方法是透视投影,其中绘制的线不是平行的,而是与代表观察者眼睛位置的点相交

投影也是线性变换。但由于它们将三维空间展平成二维表面,因此会丢失一些信息。这些变换是不可逆的,即它们无法撤消,至少无法以独特的方式撤消,因为深度信息消失了。

您将在以下页面中阅读更多关于正投影和透视视图的信息。

透视数学最早由Alhazen在 11 世纪提出,并被意大利文艺复兴时期的画家们在四百年后巧妙地运用。

华夏公益教科书