Adobe Pixel Bender는 이미지 내용을 만들거나 조작하는 데 사용되는 프로그래밍 언어입니다. Pixel Bender를 사용하면 셰이더라고도 하는 커널을 만들 수 있습니다. 셰이더는 이미지의 각 픽셀에 대해 개별적으로 실행되는 단일 함수를 정의합니다. 함수에 대한 각 호출의 결과는 이미지에서 해당 픽셀 좌표의 출력 색상입니다. 입력 이미지 및 매개 변수 값을 지정하여 작업을 사용자 정의할 수 있습니다. 단일 셰이더 실행에서 입력 및 매개 변수 값은 상수입니다. 변경되는 유일한 요소는 색상으로 함수 호출의 결과를 나타내는 픽셀의 좌표입니다.
가능한 경우 셰이더 함수는 여러 출력 픽셀 좌표에 대해 동시에 호출됩니다. 이 경우 셰이더 성능이 향상되며 고성능 처리 작업을 제공할 수 있습니다.
ActionScript에서 셰이더를 사용하여 다음 세 가지 유형의 효과를 쉽게 만들 수 있습니다.
셰이더는 독립 실행형 모드에서도 실행할 수 있습니다. 독립 실행형 모드를 사용하면 의도된 사용 방식을 미리 지정하지 않고 셰이더의 결과에 직접 액세스할 수 있습니다. 결과는 이미지 데이터나 이진 또는 숫자 데이터로 액세스할 수 있습니다. 데이터는 이미지 데이터일 필요가 전혀 없습니다. 이러한 방식으로 셰이더에 데이터 집합을 입력으로 제공할 수 있습니다. 셰이더는 데이터를 처리하며, 사용자는 셰이더에서 반환된 결과 데이터에 액세스할 수 있습니다.
Pixel Bender는 Flash Player 10 및 Adobe AIR 1.5부터 지원됩니다. Pixel Bender 블렌드, 필터 및 채우기는 GPU 렌더링에서 지원되지 않습니다. 휴대 장치에서 Pixel Bender 셰이더는 CPU 렌더링에서 실행됩니다. 그러나 성능은 데스크톱 컴퓨터에서 실행할 때와 같지 않습니다. 많은 셰이더 프로그램은 초당 몇 프레임 정도의 속도로 실행될 수 있습니다.
중요한 개념 및 용어
다음 참조 목록에는 Pixel Bender 셰이더를 만들고 사용할 때 사용되는 중요한 용어가 나와 있습니다.
-
커널
-
Pixel Bender의 경우 커널은 셰이더와 동일합니다. Pixel Bender를 사용하면 코드에서 커널을 정의할 수 있습니다. 커널은 이미지의 각 픽셀에 대해 개별적으로 실행되는 단일 함수를 정의합니다.
-
Pixel Bender 바이트코드
-
Pixel Bender 커널이 컴파일되면 해당 커널은 Pixel Bender 바이트코드로 변형됩니다. 바이트코드는 런타임에 액세스되고 실행됩니다.
-
Pixel Bender 언어
-
Pixel Bender 커널을 만드는 데 사용되는 프로그래밍 언어입니다.
-
Pixel Bender Toolkit
-
Pixel Bender 소스 코드에서 Pixel Bender 바이트코드 파일을 만드는 데 사용되는 응용 프로그램입니다. Pixel Bender Toolkit을 사용하면 Pixel Bender 소스 코드를 작성하고 테스트하고 컴파일할 수 있습니다.
-
Shader
-
이 문서에서 셰이더는 Pixel Bender 언어로 작성된 기능 집합을 말합니다. 셰이더의 코드는 시각적 효과를 만들거나 계산을 수행합니다. 어떠한 경우이든 셰이더는 데이터 집합(대개 이미지의 픽셀)을 반환합니다. 셰이더는 출력 픽셀의 좌표만 다를 뿐 각 데이터 점에서 동일한 작업을 수행합니다. 셰이더는 ActionScript로 작성되지 않습니다. Pixel Bender 언어로 작성되며 Pixel Bender 바이트코드로 컴파일됩니다. 셰이더는 컴파일 타임에 SWF 파일에 포함되거나 런타임에 외부 파일로 로드될 수 있습니다. 두 경우 모두 ActionScript에서 Shader 객체를 만들고 해당 객체를 셰이더 바이트코드에 연결하여 셰이더에 액세스할 수 있습니다.
-
셰이더 입력
-
계산에 사용하기 위해 셰이더에 제공되는 복잡한 입력(대개 비트맵 이미지 데이터)입니다. 셰이더에 정의된 각 입력 변수에 대해 단일 값, 즉 단일 이미지 또는 이진 데이터 집합이 셰이더의 전체 실행에 사용됩니다.
-
셰이더 매개 변수
-
계산에 사용하기 위해 셰이더에 제공되는 단일 값 또는 제한된 값 집합입니다. 각 매개 변수 값은 단일 셰이더 실행에 대해 정의되며 전체 셰이더 실행에 동일한 값이 사용됩니다.
코드 예제를 사용하여 작업
제공된 예제 코드 샘플을 테스트해 볼 수도 있습니다. 코드 테스트는 코드를 실행하는 작업과 만들어진 SWF에서 결과를 확인하는 작업으로 이루어집니다. 모든 예제에서는 드로잉 API를 사용하여 내용을 만들며 이 내용은 셰이더 효과를 사용하거나 셰이더 효과에 의해 수정됩니다.
대부분의 예제 코드 샘플에는 두 부분이 포함되어 있습니다. 한 부분은 예제에 사용되는 셰이더의 Pixel Bender 소스 코드입니다. 먼저 Pixel Bender Toolkit을 사용하여 소스 코드를 Pixel Bender 바이트코드 파일로 컴파일해야 합니다. Pixel Bender 바이트코드 파일을 만드는 단계는 다음과 같습니다.
-
Adobe Pixel Bender Toolkit을 엽니다. 필요한 경우 [Build] 메뉴에서 [Turn on Flash Player warnings and errors]를 선택합니다.
-
Pixel Bender 코드 샘플을 복사하여 Pixel Bender Toolkit의 코드 편집기 창에 붙여넣습니다.
-
[File] 메뉴에서 [Export kernel filter for Flash Player]를 선택합니다.
-
Pixel Bender 바이트코드 파일을 Flash 문서와 동일한 디렉토리에 저장합니다. 파일의 이름은 예제 설명에 지정된 이름과 일치해야 합니다.
각 예제의 ActionScript 부분은 클래스 파일로 작성되어 있습니다. Flash Professional에서 예제를 테스트하려면 다음 작업을 수행하십시오.
-
빈 Flash 문서를 만들고 컴퓨터에 저장합니다.
-
새 ActionScript 파일을 만들고 Flash 문서와 같은 디렉토리에 저장합니다. 파일 이름은 코드 샘플에 있는 클래스의 이름과 일치해야 합니다. 예를 들어 코드 샘플에서 MyApplication이라는 클래스를 정의하는 경우 MyApplication.as라는 이름으로 ActionScript 파일을 저장합니다.
-
ActionScript 파일에 코드 샘플을 복사하고 파일을 저장합니다.
-
Flash 문서에서 스테이지 또는 작업 영역의 빈 부분을 클릭하여 문서 속성 관리자를 활성화합니다.
-
텍스트에서 복사한 ActionScript 클래스의 이름을 속성 관리자의 [문서 클래스] 필드에 입력합니다.
-
[컨트롤] > [동영상 테스트]를 사용하여 프로그램을 실행합니다.
미리 보기 윈도우에서 예제 결과를 확인합니다.
예제 코드 목록을 테스트하는 이러한 방법은
ActionScript 예제 사용 방법
에 자세히 설명되어 있습니다.