소개
RenderDoc는 Vulkan, D3D11, D3D12, OpenGL 및 OpenGL ES를 사용하는 애플리케이션의 단일 프레임을 캡처하고 상세히 분석할 수 있는 무료 오픈소스 그래픽 디버거입니다. Windows, Linux, Android에서 캡처 및 재생을 지원하며, 게임이나 그래픽 애플리케이션의 렌더링 파이프라인을 단계별로 검사하여 문제를 진단하고 최적화할 수 있습니다. MIT 라이선스로 제공되어 상업적 용도로도 자유롭게 사용할 수 있습니다.
상세정보
RenderDoc 소개
RenderDoc는 무료 MIT 라이선스의 독립형 그래픽 디버거로, Vulkan, D3D11, D3D12, OpenGL 및 OpenGL ES를 사용하는 애플리케이션의 단일 프레임을 캡처하고 상세히 분석할 수 있습니다. Windows, Linux, Android에서 캡처 및 재생을 지원하며, 게임 개발이나 그래픽 렌더링 문제를 진단하는 데 널리 사용됩니다.
주요 기능
- 단일 프레임 캡처: 실행 중인 애플리케이션에서 특정 프레임을 캡처하여 렌더링 상태를 정밀하게 검사할 수 있습니다.
- 파이프라인 상태 검사: 셰이더, 텍스처, 메시, 렌더 타겟 등 그래픽 파이프라인의 각 단계를 상세히 확인할 수 있습니다.
- 리소스 인스펙터: 캡처된 프레임의 모든 리소스를 중앙에서 관리하고, 텍스처, 버퍼, 셰이더 등의 정보를 확인할 수 있습니다.
- 셰이더 디버깅: 셰이더 코드를 단계별로 실행하고 변수 값을 확인하여 문제를 찾을 수 있습니다.
- 메시 출력 분석: 지오메트리 셰이더 출력, 정점 데이터 등을 시각화하여 메시 관련 문제를 파악할 수 있습니다.
- Python 스크립팅: 내장된 Python 런타임을 통해 캡처 데이터를 프로그래밍 방식으로 접근하고 자동화할 수 있습니다.
지원 환경
RenderDoc는 Windows, Linux, Android에서 캡처 및 재생을 지원합니다. Windows에서는 64비트 및 32비트 빌드가 제공되며, 64비트 빌드는 32비트 프로그램의 캡처도 지원합니다. Linux에서는 64비트 x86만 지원됩니다. Nintendo Switch™ 지원은 공인 개발자에게 별도로 배포됩니다.
기본 사용법
- RenderDoc를 설치하거나 휴대용 ZIP을 다운로드합니다.
- RenderDoc를 실행하고, 캡처할 애플리케이션을 실행합니다.
- 애플리케이션에서 캡처할 프레임에서 키를 눌러 프레임을 캡처합니다.
- RenderDoc에서 캡처된 프레임을 열고, 파이프라인 상태, 셰이더, 리소스 등을 분석합니다.
제한 사항 및 체크포인트
- OpenGL 1.0~2.0 호환 프로파일은 지원되지 않습니다.
- D3D9 및 D3D10은 지원되지 않습니다.
- Metal은 지원되지 않습니다.
- Linux에서는 64비트 x86만 지원됩니다.
- Nintendo Switch™ 지원은 공식 개발자 포털을 통해 별도로 제공됩니다.
FAQ
RenderDoc는 무료인가요?
네, RenderDoc는 MIT 라이선스로 배포되는 완전한 오픈소스 소프트웨어입니다.
어떤 그래픽 API를 지원하나요?
Vulkan, D3D11, D3D12, OpenGL 3.2~4.6 Core, OpenGL ES 2.0~3.2를 지원합니다.
캡처 파일은 다른 플랫폼에서 열 수 있나요?
네, 캡처는 플랫폼 간에 이식 가능합니다.
RenderDoc는 게임 개발에 유용한가요?
네, 게임 개발 중 렌더링 문제를 진단하고 최적화하는 데 널리 사용됩니다.
이런 용도로 찾는 분께 적합합니다
RenderDoc는 그래픽 디버깅이 필요한 개발자, 특히 게임 개발자나 그래픽 프로그래머에게 적합합니다. Vulkan, Direct3D, OpenGL 기반 애플리케이션의 렌더링 문제를 분석하고 싶다면, RenderDoc를 사용해 보세요. 또한, 셰이더 최적화나 렌더링 파이프라인 이해가 필요한 경우에도 유용합니다.
화면으로 보는 주요 기능
렌더링 프레임 분석 화면

RenderDoc의 주 화면에서 'Frame 478'의 렌더링 프레임을 분석하고 있다. 왼쪽에는 'Events' 목록이 표시되어 있으며, 'vkCmdDrawIndexed'와 같은 명령어가 나열되어 있다. 중앙 상단에는 'Texture Viewer' 탭이 선택되어 있고, 그 아래에는 'Mesh Output', 'Pipeline State', 'Resource Inspector' 탭이 있다. 중앙에는 'Frame 478'의 렌더링 결과로 보이는 파란색과 보라색의 빛나는 애니메이션 캐릭터가 표시되어 있다. 오른쪽에는 'Quad Overdraw Draw'와 'Range' 조정 옵션이 있는 'Resource Inspector' 창이 있다. 하단에는 'Event Context' 창이 있으며, 'vkCmdDrawIndexed' 명령어의 세부 정보가 표시되어 있다.
셰이더 및 리소스 분석 화면

RenderDoc의 'Frame 2279' 분석 화면에서 'Rasterizer' 탭이 선택되어 있다. 상단 탭 바에는 'VTX', 'VS', 'TCS', 'TES', 'GS', 'Rasterizer', 'FS', 'FB', 'CS'가 있다. 왼쪽에는 'Display Controls'와 'Pipeline State'가 있으며, 'Graphics Pipeline 648733'이 선택되어 있다. 중앙에는 'Texture 2D' 리소스 목록이 표시되어 있고, 'Sampled 1440×1280'과 'Sampled 128×128'이 선택되어 있다. 오른쪽에는 'Fragment UBO 4 (0)'의 변수 목록이 표시되어 있으며, 'mWorldToView', 'mViewToProj', 'mWorldToProj' 등의 변수와 그 값이 나열되어 있다.
메시 및 렌더링 상태 분석 화면

RenderDoc의 'Frame 478' 분석 화면에서 'Mesh Output' 탭이 선택되어 있다. 왼쪽에는 'Events' 목록이 표시되어 있으며, 'vkCmdDrawIndexed' 명령어가 선택되어 있다. 중앙에는 'Mesh Output' 창이 있으며, 'Control', 'VS Out', 'Mesh', 'Whole pass', 'Solid Shading', 'Secondary', 'Wireframe', 'Highlight Vertices' 등의 옵션이 있다. 오른쪽에는 'Mesh Output'의 결과로 보이는 다채로운 메시가 표시되어 있다. 하단에는 'Event Context' 창이 있으며, 'vkCmdDrawIndexed' 명령어의 세부 정보가 표시되어 있다.
셰이더 및 리소스 분석 화면

RenderDoc의 'Frame 24' 분석 화면에서 'Shader' 탭이 선택되어 있다. 왼쪽에는 'Shader' 코드가 표시되어 있으며, 'float4 diffuse = gTextureSample.Sample(gFilterLinearSam, pin.texC);'와 같은 코드가 있다. 중앙에는 'Shader' 코드의 실행 결과가 표시되어 있으며, 'float4 final = max(diff, float4(0, 0, 0, 0));'와 같은 코드가 있다. 오른쪽에는 'Event' 목록이 표시되어 있으며, 'Scene', 'ClearRenderTarget', 'DrawIndexed', 'Draw', 'Present' 등의 이벤트가 있다. 하단에는 'Constants & Resources' 창이 있으며, 'gDiffuseMap', 'gLightingMap', 'gDepthMap' 등의 리소스가 표시되어 있다.
시스템 요구사항
Windows 7 이상 (64비트 권장), 32비트 프로그램 캡처는 64비트 빌드에서 지원됩니다. Linux에서는 64비트 x86만 지원됩니다.


