GFx 개요
- GFx는 Flash & SVG 같은 풍부한 미디어 데이터를 이용하여 벡터 기반의 유저 인터페이스를 구축할 수 있게 해주는 라이브러리다.
- GFx는 게임내의 어느 곳에서나 Flash & SVG(벡터 그래픽)의 하드웨어 가속을 쉽게 할 수 있다.
- 쉽게 말하자면 게임에서 플래쉬를 렌더링 할 수 있다. (플래쉬를 게임에서 렌더링하고 메세지 전달을 할 수 있다니 환상적이지 않은가?
GFx SDK 주요특징
- 플랫폼 독립적 설계
- 거의 모든 플랫폼에서 사용 가능
- DX9 기반에서 렌더링 가능
- OpenGL 기반에서 렌더링 가능
- UNICODE를 지원한다.
- Windows 98, ME 지원 (Windows98, ME는 지원이 아주 빈약하다. COMCTL32 문제가 있음)
- Windows NT, 2K, XP 완벽 지원
- Linux, XBox, PSP, PS2, PS3, Game Cube, Wii 지원하지 않음
GFx 2.0 SDK 라이센스 비용 (full source access)
- $15,000 USD License per App / 첫번째 플랫폼 가격
- $10,000 USD License per App / 각각의 추가적 플랫폼 가격
- $10,000 USD Support per App / per year (1년 의무 사용)
- 만약 PC용 게임만 개발할 경우 전체 $25,000 USD (2번 항목이 빠지므로)
- 만약 PC & Xbox360을 동시에 개발할 경우 전체 $35,000 USD
- GFC 라이센스를 살 경우 GFx가 포함 되어 있음, $50,000 USD
GFC & GFx 혼합 사용 여부
- Sony 사에서 GFC & GFx를 함께 사용하여 게임을 만들고 있음 (Scaleform 사에서 직접 밝힘)
- 혼합 사용에 대해서는 Scaleform 에서는 지원하지 않음 (혼합 사용하는 당사자가 문제를 직접 해결해야 함)
GFx SDK Components
- GFx 툴킷은 다음과 같은 코어 라이브러리 컴포넌트들로 구성되어 있다.
* GFx.lib - GFX 핵심 라이브러리
* GMain.lib - WinMain 컨테이너
* GFx_D3D9.lib - D3D9 기반에서 렌더링하는 라이브러리
* GFx_GL.lib - OpenGL 기반에서 렌더링하는 라이브러리
* GFx.lib 는 아래와 같은 3개의 핵심 코어로 이루어져 있다.
* GFXPlayer - 코어 플레이백 엔진
* Renderer - 코어 렌더링 서브시스템
* Kernel - 코어 라이브러리
프로그램 설정 방법
먼저 웹사이트에서 GFx SDK를 다운로드 받아서 설치한다. GFx는 MSVC7.0 버젼과 MSVC8.0 버젼 이렇게 두개가 존재한다.
설치하면 설치한 SDK 경로에 다음과 같은 하위 폴더가 생성된다.
(기본폴더를 예로 설명 하겠습니다.)
- C:\Program Files\Scaleform\GFx SDK 2.0 Eval\Include <- 위 헤더 파일을 프로젝트에 포함 시킴
- C:\Program Files\Scaleform\GFx SDK 2.0 Eval\Lib\Win32\Msvc80\Debug_MT
- C:\Program Files\Scaleform\GFx SDK 2.0 Eval\Lib\Win32\Msvc80\Debug_Static_MT
- C:\Program Files\Scaleform\GFx SDK 2.0 Eval\Lib\Win32\Msvc80\Release_MT
- C:\Program Files\Scaleform\GFx SDK 2.0 Eval\Lib\Win32\Msvc80\Release_Static_MT
라이브러리 폴더는 위와 같이 4개가 생성되는데, 설정 방법은 아래와 같다
- Debug_MT ( Scaleform GFx 멀티 스레드 디버그 DLL 라이브러리)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 코드 생성 -> 런타임 라이브버리 -> 다중 스레드 디버그 DLL(/MDd)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 일반 -> 디버깅 정보 형식 -> C7 호환(/Z7)
- Debug_Static_MT ( Scaleform GFx 멀티 스레드 디버그 라이브러리)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 코드 생성 -> 런타임 라이브버리 -> 다중 스레드 디버그 (/MTd)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 일반 -> -> 디버깅 정보 형식 -> C7 호환(/Z7)
- Release_MT ( Scaleform GFx 멀티 스레드 DLL 라이브러리)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 코드 생성 -> 런타임 라이브버리 -> 다중 스레드 DLL(/MD)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 최적화 -> 최적화 -> 속도 최대화(/O2)
- Release_Static_MT ( Scaleform GFx 멀티 스레드 라이브러리)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 코드 생성 -> 런타임 라이브버리 -> 다중 스레드 (/MT)
* 프로젝트 속성 -> 구성 속성 -> C/C++ -> 최적화 -> 최적화 -> 속도 최대화(/O2) 로 설정)
GFx 검토 사항
- SWF file의 액션 스크립트를 통하여 게임과 통신 가능
- flash 파일을 동적 텍스쳐로 사용 가능
- Flash 8 포맷 지원 가능 (몇몇개 밖에 지원하지 못한다, color add, subtract, multiply)
- Flash 7 포맷은 많은 부분을 지원
- Flash 6 포맷은 거의다 지원
- 액션 스크립트 지원하나 제한이 있다 (2007년안에 100% 지원을 목표로 하고 있음)
- Shockwave 는 아직 지원하지 않음
- 액션 스크립트 이용한 동적 메뉴 지원
- UNICODE 지원
- 2D 렌더링시 이미지와 도형을 변환하고 기울이기가 가능
- FSAA or 픽셀쉐이더를 사용하지 않고 High quality AA(anti-aliasing)렌더링 가능
- Flash 파일의 Text 렌더링 가능
- Flash 비디오, 사운드 파일은 지원하지 않는다
- 아주 적은 메모리 사용 (풀스크린에서 SWF 인터페이스 사용시에 1MB 이하의 메모리 사용)
- Win32API & FreeType2 폰트부분에 이용가
<출처 : http://includes.egloos.com/1480803>