Flash Player 및 AIR 런타임에서 사용되는 3D 표시 객체 이해

Flash Player 10 이상, Adobe AIR 1.5 이상

Flash Player 10 이전의 Flash Player 버전과 Adobe AIR 1.5 이전의 Adobe AIR 버전에서는, 표시 객체에 2D 평면에서 위치를 지정하기 위한 두 가지 속성 x y 가 있습니다. Flash Player 10 및 Adobe AIR 1.5부터는 모든 ActionScript 표시 객체에 z 속성이 추가되었습니다. 이 속성을 사용하면 깊이나 거리를 나타내는 데 일반적으로 사용되는 z축을 따라 표시 객체의 위치를 지정할 수 있습니다.

Flash Player 10 및 Adobe AIR 1.5부터는 3D 효과가 지원됩니다. 그러나 표시 객체는 본질적으로 평면입니다. MovieClip 객체나 Sprite 객체와 같은 각 표시 객체는 최종적으로 단일 평면에 2차원으로 렌더링됩니다. 3D 기능을 사용하면 이러한 평면 객체를 세 차원 모두에서 배치, 이동, 회전 및 변형할 수 있습니다. 또한 3D 점을 관리하고 2D x, y 좌표로 변환하여 3D 객체를 2D 보기에 투영할 수 있습니다. 이러한 기능을 사용하여 여러 종류의 3D 환경을 시뮬레이션할 수 있습니다.

ActionScript에서 사용되는 3D 좌표계는 다른 좌표계와 차이점이 있습니다. ActionScript에서 2D 좌표를 사용하는 경우 x축을 따라 오른쪽으로 이동하면 x 값이 증가하고 y축을 따라 아래로 이동하면 y 값이 증가합니다. 3D 좌표계에서는 이러한 규칙이 유지되면서 시점에서 멀리 이동할 때 값이 증가하는 z축이 추가됩니다.

ActionScript 3D 좌표계에서 x, y 및 z축의 양의 방향
A.
+Z축

B.
원점

C.
+X축

D.
+Y축

참고: Flash Player와 AIR에서는 항상 3D를 레이어로 나타냅니다. 즉, 객체 A는 표시 목록에서 객체 B 앞에 표시되며 Flash Player 또는 AIR에서는 두 객체의 z축 값에 관계없이 항상 B 앞에 A를 렌더링합니다. 표시 목록 순서와 z축 순서 간의 이러한 충돌을 해결하려면 transform.getRelativeMatrix3D() 메서드를 사용하여 저장한 다음 3D 표시 객체의 레이어 순서를 다시 지정합니다. 자세한 내용은 Matrix3D 객체를 사용하여 표시 순서 재지정 을 참조하십시오.

새로운 3D 관련 기능을 지원하는 ActionScript 클래스는 다음과 같습니다.

  1. flash.display.DisplayObject 클래스에는 3D 공간에서 표시 객체를 조작하기 위한 z 속성과 새로운 회전 및 크기 조절 속성이 포함되어 있습니다. DisplayObject.local3DToGlobal() 메서드를 사용하면 3D 기하 도형을 2D 평면에 손쉽게 투영할 수 있습니다.

  2. flash.geom.Vector3D 클래스는 3D 점을 관리하기 위한 데이터 구조로 사용할 수 있습니다. 또한 이 클래스는 벡터 수학을 지원합니다.

  3. flash.geom.Matrix3D 클래스는 3D 기하 도형의 회전, 크기 조절 및 평행 이동과 같은 복잡한 변형을 지원합니다.

  4. flash.geom.PerspectiveProjection 클래스는 3D 기하 도형을 2D 보기에 매핑하기 위한 매개 변수를 제어합니다.

ActionScript에서는 다음 두 가지 방법으로 3D 이미지를 시뮬레이션할 수 있습니다.

  1. 3D 공간에서 평면 객체를 배열하고 애니메이션을 적용합니다. 이 방법을 사용할 경우 표시 객체의 x, y 및 z 속성을 사용하여 표시 객체에 애니메이션을 적용하거나, DisplayObject 클래스를 사용하여 회전 및 크기 조절 속성을 설정합니다. DisplayObject.transform.matrix3D 객체를 사용하면 보다 복잡한 모션을 얻을 수 있습니다. DisplayObject.transform.perspectiveProjection 객체는 표시 객체를 3D 원근으로 그리는 방법을 사용자 정의합니다. 주로 평면으로 구성된 3D 객체에 애니메이션을 적용하려면 이 방법을 사용합니다. 예를 들어 3D 공간에 3D 이미지 갤러리 또는 2D 애니메이션 객체를 정렬하는 방법이 이러한 방법에 포함됩니다.

  2. 3D 기하 도형에서 2D 삼각형을 생성하고 해당 삼각형을 텍스처로 렌더링합니다. 이 방법을 사용하려면 먼저 3D 객체에 대한 데이터를 정의 및 관리한 다음 렌더링을 위해 해당 데이터를 2D 삼각형으로 변환해야 합니다. 비트맵 텍스처를 이러한 삼각형에 매핑한 다음 Graphics.drawTriangles() 메서드를 사용하여 해당 삼각형을 그래픽 객체로 그릴 수 있습니다. 예를 들어 파일에서 3D 모델 데이터를 로드하고 모델을 화면에 렌더링하거나, 3D 지형을 삼각형 메쉬로 생성하고 그리는 방법이 이러한 방법에 포함됩니다.