게임 프로그래밍용 Visual Studio 도구
요약
- 템플릿에서 DirectX 게임 프로젝트 만들기
- DirectX 게임 프로그래밍용 Visual Studio 도구
Visual Studio Ultimate를 사용하여 DirectX 앱을 개발하는 경우, 이미지, 모델, 셰이더 리소스를 만들고, 편집하고, 미리 보고, 내보내는 데 사용할 수 있는 추가 도구가 있습니다. 빌드 시 리소스를 변환하고 DirectX 그래픽 코드를 디버그하는 데 사용할 수 있는 도구도 있습니다.
이 토픽에서는 이러한 그래픽 도구에 대한 개요를 제공합니다.
이미지 편집기
이미지 편집기를 사용하여 DirectX에서 사용하는 다양한 질감 및 이미지 형식으로 작업할 수 있습니다. 이미지 편집기는 다음과 같은 형식을 지원합니다.
- .png
- .jpg, .jpeg, .jpe, .jfif
- .dds
- .gif
- .bmp
- .dib
- .tif, .tiff
- .tga
빌드 사용자 지정 파일을 생성해 빌드 시 .dds 파일로 변환합니다.
자세한 내용은 텍스처 및 이미지 작업을 참조하세요.
참고 이미지 편집기는 전체 기능 이미지 편집 앱을 대체하는 것이 아니라 많은 간단한 보기 및 편집 시나리오에 적합합니다.
모델 편집기
모델 편집기를 사용하면 기본적인 3D 모델을 처음부터 만들거나, 완전한 기능을 갖춘 3D 모델링 도구에서 복잡한 3D 모델을 보고 수정할 수 있습니다. 모델 편집기는 DirectX 앱 개발에 사용되는 여러 가지 3D 모델 형식을 지원합니다. 빌드 사용자 지정 파일을 생성해 빌드 시 .cmo 파일로 변환할 수 있습니다.
- .fbx
- .dae
- .obj
다음은 조명이 적용된 편집기의 모델 스크린샷입니다.
자세한 내용은 3-D 모델 사용을 참조하세요.
참고 모델 편집기는 전체 기능 모델 편집 앱을 대체하는 것이 아니라 많은 간단한 보기 및 편집 시나리오에 적합합니다.
셰이더 디자이너
셰이더 디자이너를 사용해 HLSL 프로그래밍에 대해 모르더라도 게임 또는 앱용 사용자 지정 시각 효과를 생성할 수 있습니다.
셰이더를 시각적으로 그래프로 만듭니다. 각 노드는 해당 작업까지 출력의 미리 보기를 표시합니다. 다음은 구 미리 보기로 램버트 조명을 적용하는 예제입니다.
셰이더 편집기를 사용하여 셰이더를 디자인, 편집, .dgsl 형식으로 저장합니다. 또한 다음 형식을 내보내기합니다.
- .hlsl(소스 코드)
- .cso(바이트코드)
- .h(HLSL 바이트코드 배열)
빌드 시 이러한 형식을 .cso 파일로 변환하는 빌드 사용자 지정 파일을 생성합니다.
셰이더 편집기에서 내보낸 HLSL 코드의 일부는 다음과 같습니다. 램버트 조명 노드에 대한 코드일 뿐입니다.
//
// Lambert lighting function
//
float3 LambertLighting(
float3 lightNormal,
float3 surfaceNormal,
float3 materialAmbient,
float3 lightAmbient,
float3 lightColor,
float3 pixelColor
)
{
// Compute the amount of contribution per light.
float diffuseAmount = saturate(dot(lightNormal, surfaceNormal));
float3 diffuse = diffuseAmount * lightColor * pixelColor;
// Combine ambient with diffuse.
return saturate((materialAmbient * lightAmbient) + diffuse);
}
자세한 내용은 셰이더 작업을 참조하세요.
3D 자산에 대한 사용자 지정 빌드
Visual Studio에서 리소스를 사용 가능한 형식으로 변환하기 위해 프로젝트에 빌드 사용자 지정을 추가할 수 있습니다. 그런 다음 앱으로 자산을 로드한 후 다른 모든 DirectX 앱에서 하는 것처럼 DirectX 리소스를 만든 후 채워 자산을 사용할 수 있습니다.
빌드 사용자 지정을 추가하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼로 클릭하고 사용자 지정 빌드...를 선택합니다. 프로젝트에 다음 유형의 빌드 사용자 지정을 추가할 수 있습니다.
- 이미지 콘텐츠 파이프라인은 이미지 파일을 입력으로 사용하고 .dds(DirectDraw Surface) 파일을 출력합니다.
- Mesh Content Pipeline은 메시 파일(예: .fbx)을 사용하고 .cmo 메시 파일을 출력합니다.
- 셰이더 콘텐츠 파이프라인은 Visual Studio 셰이더 편집기에서 Visual Shader Graph(.dgsl)를 가져와 컴파일된 셰이더 출력(.cso) 파일을 출력합니다.
자세한 내용은 게임 또는 앱에서 3차원 자산 사용을 참조하세요.
DirectX 그래픽 디버깅
Visual Studio는 그래픽별 디버깅 도구를 제공합니다. 이 도구를 사용하여 다음과 같은 항목을 디버그합니다.
- 그래픽 파이프라인.
- 이벤트 호출 스택.
- 개체 테이블.
- 디바이스 상태.
- 셰이더 버그.
- 초기화되지 않거나 잘못된 상수 버퍼 및 매개 변수.
- DirectX 버전 호환성.
- 제한된 Direct2D 지원.
- 운영 체제 및 SDK 요구 사항.
자세한 내용은 DirectX 그래픽 디버깅을 참조하세요.