Unity에서 PIX를 활용한 셰이더 디버깅 가이드
이 문서에서는 Unity의 PIX(Performance Investigator for Xbox) 툴을 사용하여 DirectX 12 셰이더 디버깅하는 방법을 소개합니다. PIX는 Microsoft에서 제공하는 성능 분석 및 디버깅 도구로, Unity 프로젝트에서 디버깅을 수행하는 데 필수적입니다.
PIX 설치하기
- Microsoft PIX 설치 프로그램을 다운로드합니다.
- 설치 프로그램을 실행하고 지침을 따릅니다.
준비하기
Windows 64비트 스탠드얼론 또는 유니버설 Windows 플랫폼 애플리케이션에서 문제를 조사할 수 있습니다. PIX는 Unity 에디터가 아닌 빌드된 버전에서 작동하므로, 개발용 빌드를 생성하는 것이 좋습니다.
개발용 빌드에서 셰이더 디버그 활성화하기
셰이더 코드에 다음을 추가하여 디버그 심볼을 활성화합니다.
#pragma enable_d3d11_debug_symbols
단계별 프로세스
1. 기본 프로젝트 만들기
- 새로운 Unity 프로젝트를 생성합니다.
- 메뉴에서
Assets > Create > Shader > Standard Surface Shader를 선택하여 새 셰이더 파일을 만듭니다. - 생성된 셰이더 파일을 선택하고, 인스펙터 창에서 "Open" 버튼을 클릭하여 셰이더 코드를 엽니다.
- 원하는 위치에
#pragma enable_d3d11_debug_symbols를 추가합니다.
2. 머티리얼 및 큐브 생성하기
- 새 머티리얼을 만듭니다:
Assets > Create > Material. - 인스펙터 창에서 Shader 드롭다운을 선택하고 Custom에서 방금 생성한 셰이더를 선택합니다.
- 3D 큐브를 생성합니다:
GameObject > 3D Object > Cube. - 새 머티리얼을 3D 큐브에 할당합니다(프로젝트 창에서 머티리얼을 큐브로 드래그).
3. 빌드 설정
File > Build Settings로 이동합니다.- Platform에서 Windows, Mac, Linux를 선택하고 Target Platform을 Windows로 설정합니다.
- Architecture를 Intel 64-bit로 설정하고 Development Build 체크박스를 선택합니다.
- "Build"를 클릭합니다.
4. PIX를 통해 프레임 캡처하기
- PIX를 실행합니다.
- "Home" 클릭 후 "Connect"를 클릭합니다.
- "localhost"를 선택하고 "Connect" 버튼을 클릭합니다.
- "Select Target Process"에서 "Launch Win32" 탭을 선택하고 Browse 버튼을 클릭하여 실행 파일을 선택합니다.
- "Launch for GPU Capture"를 활성화하고 "Launch" 버튼을 클릭하여 애플리케이션을 시작합니다.
- 애플리케이션을 사용하여 프레임을 캡처하려면 Print Screen 키를 누르거나 GPU 캡처 패널의 카메라 아이콘을 클릭합니다.
5. 캡처 및 디버그
- 캡처가 완료되면 썸네일을 클릭하여 캡처를 엽니다.
- "Pipeline" 탭을 선택하고 "Events" 창에서 관심 있는 드로우 콜을 선택합니다.
- OM(Output Merger) 리스트에서 렌더 타겟을 선택하여 드로우 콜의 출력을 확인합니다.
- 픽셀 정보를 확인하기 위해 원하는 픽셀을 선택합니다.
참고 사항
- PIX의 CPU 캡처 및 GPU 캡처에 대한 자세한 내용은 Microsoft 문서를 참고하시기 바랍니다.
- PIX 사용에 관한 더 많은 정보는 Microsoft의 동영상 시리즈에서 확인할 수 있습니다.
이 문서는 Unity에서 그래픽스를 디버깅하는 데 유용한 셰이더 디버깅 절차를 설명했습니다. PIX를 활용하여 효율적으로 디버깅하며 고품질 그래픽을 구현할 수 있습니다.