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 속성을 조금만 사용하십시오.