3D 基础知识



ActionScript 中的 3D 简介

二维 (2D) 对象和投影在二维屏幕上的三维 (3D) 对象之间的区别在于,三维对象增加了第三维。第三维使对象能够靠近或远离用户的视点。

如果将某个显示对象的 z 属性显式设置为数值,则该对象会自动创建一个 3D 转换矩阵。您可以通过更改此矩阵来修改该对象的 3D 转换设置。

此外,3D 旋转与 2D 旋转也有所不同。在 2D 中,旋转轴始终垂直于 x/y 平面,即位于 z 轴上。在 3D 中,旋转轴可以位于 x、y 或 z 轴中的任一轴上。通过设置显示对象的旋转属性和缩放属性,可以让该对象在 3D 空间中移动。

常见 3D 任务

本章讨论以下与 3D 相关的常见任务:

  • 创建 3D 对象

  • 在 3D 空间中移动对象

  • 在 3D 空间中旋转对象

  • 使用透视投影表示深度

  • 重新排序显示列表使之与相对 z 轴对应,从而让对象以正确的层叠顺序出现在用户面前

  • 使用 3D 矩阵转换 3D 对象

  • 在 3D 空间中用矢量操作对象

  • 使用 Graphics.drawTriangles() 方法创建透视

  • 使用 UV 映射向 3D 对象添加位图纹理

  • 通过设置 Graphics.drawTriangles() 方法的剔除参数可加快呈现速度,还可隐藏 3D 对象中背离当前视点的部分。

重要术语和概念

以下参考列表包含将会在本章中遇到的重要术语:
  • 透视:在 2D 平面上将平行线表示成聚合于一个消失点,从而获得深度和距离的视觉效果

  • 投影:为多维对象生成 2D 图像;3D 投影将 3D 点映射到 2D 平面

  • 旋转:通过按圆周运动的方向移动对象内的每个点来更改对象的方向(通常也会更改其位置)

  • 转换:通过平移、旋转、缩放、倾斜或这些操作的组合来更改 3D 点或点集

  • 平移:通过将对象内的每个点往同一方向移动相同的距离来更改对象的位置

  • 消失点:在用线性透视法表示时,逐渐远离的平行线看似相交的点

  • 矢量:3D 矢量使用笛卡尔坐标 x、y 和 z 表示三维空间中的点或位置

  • 顶点:转角点

  • 纹理式网格:在 3D 空间中用于定义对象的任意点

  • UV 映射:将纹理或位图应用于 3D 表面的一种方式。UV 映射将值分配给图像上的坐标,以水平 (U) 轴和垂直 (V) 轴的百分比值形式表示。

  • T 值:当对象靠近或远离当前视点时用于确定 3D 对象大小的缩放系数

  • 剔除:呈现或不呈现具有特定缠绕方式的表面。通过使用剔除,您可以隐藏对当前视点不可见的表面。