DirectX Graphics 프로그래밍 가이드 튜토리얼, 샘플, 툴, 힌트 샘플 EffectEdit 샘플 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
EffectEdit 샘플은,이펙트를 사용한 간단한 실험을 할 수 있는 툴을 처리 한다. Effects 는, 개체를 렌더링 하는 복수의 테크닉, 즉 렌더링 스테이트, 정점 셰이더, 픽셀 셰이더, 복수 패스등을 패키지화하는데 편리한 방법이다. EffectEdit 를 사용하면 이펙트 파일을 로드해 편집해, 이펙트를 사용해 렌더링 한 개체를 표시할 수 있다. 이펙트에 대한 변경은, 렌더링 한 개체에 즉시 반영된다.
모든 이펙트 파일에 대해서 EffectEdit 가 유효하게 기능하면 한정되지 않기 때문에 주의 해야 한다. 애플리케이션으로 다수의 파라미터를 설정해야 하는 이펙트에 대해서는, 유효하게 기능하지 않을 가능성이 높다. EffectEdit 는, 다음에 나타내는 한정된 수의 파라미터만을 설정한다.
소스 파일 : (SDK 루트) \Samples\C++\Direct3D\EffectEdit
실행 가능 파일 : (SDK 루트) \Samples\C++\Direct3D\Bin
사용자 인터페이스의 윈도우는 4 개의 페인에 분할되고 있다. Ctrl+Tab 를 눌러, 이러한 페인의 사이에 키보드 포커스를 변경할 수 있다.
[Effect file source code] 는, 현재의 이펙트의 소스 코드를 표시하는 페인으로, 텍스트 편집을 할 수 있다.
[Effect compilation results] 페인에는, 현재의 이펙트의 컴파일 결과가 표시된다. 에러를 더블 클릭 하면, 소스 코드 페인의 에러가 있는 행에 점프 할 수 있다. 에러가 없는 경우는 결과 페인에 "Compilation successful! " (이)라고 표시되어 렌더링 한 개체가 표시된다.
[Rendered scene] 페인에는, 현재의 이펙트를 사용해 렌더링 한 개체가 표시된다. 마우스의 왼쪽 버튼을 눌러 드러그 하면, 개체를 회전할 수 있다. 오른쪽 버튼으로 드러그 하면 개체를 이동할 수 있다. 휠 버튼을 클릭 하면 개체를 줌 할 수 있다.
[Rendering options] 페인에서는, 개체의 렌더링 방법에 관한 다양한 설정을 변경할 수 있다. [Reset Camera] 버튼은, 카메라를 디폴트의 위치와 향하러 돌아올 때까지 움직인다.
EffectEdit 는, Single Document 모델을 사용하는 Microsoft Foundation Classes (MFC) 애플리케이션이다. CEffectDoc 는 문서를 나타내는 클래스이며, 보통은 이펙트의 내용의 텍스트가 주요하다. CMainFrame 는, 이 문서상에서 사용하는 4 개의 다른 뷰의 표시와 뷰를 포함한 페인을 제어하는 스플리터 윈도우의 표시를 관리한다. CTextView 는 텍스트 문자 편집기이며, CErrorsView 는 컴파일 결과이다. COptionsView 는 렌더링 옵션이며, CRenderView 는 렌더링 한 출력이다. 실제로 Microsoft® Direct3D® 및 Direct3D 코드를 사용하고 있는 것은 CRenderView 클래스뿐이다. CRenderView 는 CFormView 및 CD3DApplication 의 양쪽 모두로부터 파생하고 있기 (위해)때문에, FrameMove 나 InitDeviceObjects 등의 익숙해진 메서드를 사용할 수 있다.
이 샘플은, Microsoft DirectX® 소프트웨어 개발 킷 (SDK) 외 샘플과 공유하는 샘플 프레임워크(framework) 코드를 사용한다. 모든 공통 헤더 및 소스 코드는, (SDK 루트) \Samples\C++\Common 에 있다.