3D 효과 사용

3D 효과를 수동으로 만들어 봅니다.

Flash Player 10 및 AIR 1.5에는 표시 객체에 원근 변형을 적용할 수 있는 3D 엔진이 새로 추가되었습니다. 이러한 원근 변형은 rotationX rotationY 속성을 사용하거나 Graphics 클래스의 drawTriangles() 메서드를 사용하여 적용할 수 있습니다. z 속성을 사용하여 깊이를 적용할 수도 있습니다. 하지만 원근 변형된 각 표시 객체는 비트맵으로 래스터화되므로 메모리를 더 많이 요구한다는 점에 유의하십시오.

다음 그림에서는 원근 변형을 사용할 때 래스터화를 통해 생성된 앤티앨리어싱을 보여 줍니다.

전체 화면으로 그래픽 보기
원근 변형의 결과로 생성된 앤티앨리어싱

앤티앨리어싱은 백터 내용을 비트맵으로 동적으로 래스터화한 결과입니다. 이러한 앤티앨리어싱은 데스크톱 버전의 AIR 및 Flash Player와 휴대 장치용 AIR 2.0.1 및 AIR 2.5에서 3D 효과를 사용하는 경우에 발생합니다. 하지만 휴대 장치용 Flash Player에는 앤티앨리어싱이 적용되지 않습니다.

기본 API를 사용하지 않고 3D 효과를 수동으로 만들면 메모리 사용을 줄일 수 있습니다. 하지만 Flash Player 10 및 AIR 1.5에 도입된 새로운 3D 기능을 사용하면 손쉽게 텍스처 매핑을 수행할 수 있습니다. 텍스처 매핑을 기본적으로 처리하는 drawTriangles() 등의 메서드가 지원되기 때문입니다.

개발자는 만들고자 하는 3D 효과가 기본 API를 통해 처리할 때 더 나은 성능을 발휘하는지, 아니면 수동으로 처리할 때 더 나은 성능을 발휘하는지를 결정해야 합니다. ActionScript 실행 및 렌더링 성능과 메모리 사용을 함께 고려합니다.

renderMode 응용 프로그램 속성을 GPU 로 설정한 AIR 2.0.1 및 AIR 2.5 모바일 응용 프로그램에서 GPU는 3D 변형을 수행하지 않습니다. 하지만 renderMode CPU 이면 CPU가 3D 변형을 수행합니다(GPU 아님). Flash Player 10.1 응용 프로그램에서 CPU는 3D 변형을 수행합니다.

CPU가 3D 변형을 수행하는 경우 표시 객체에 3D 변형을 적용하면 메모리에 두 개의 비트맵이 필요하다는 점을 고려하십시오. 비트맵 하나는 소스 비트맵용이고 두 번째 비트맵은 원근감 변형 버전용입니다. 이와 같이 3D 변형은 필터와 비슷한 방식으로 작동합니다. 그러므로 CPU가 3D 변형을 수행하는 경우에는 3D 속성을 조금만 사용하십시오.