RenderDoc 사용 방법

TL;DR

OpenGL을 사용하여 작업하는데 렌더링이 제대로 되지 않는 경우가 빈번해서 꽤나 골치아팠다. 이럴 때 디버깅을 할 수 있는 도구가 있을까 찾아보다가 렌더독(RenderDoc)을 알게 되었다! 렌더독을 사용하면서 많은 문제들을 해결할 수 있게 되었다. 지금은 렌더독을 사용하는 방법에 대해 정리해보고자 한다.

설치

https://renderdoc.org/builds 에서 파일을 다운 받아 설치

Capturing a frame

File -> Launch Application
Alt text

Program Setting

  • Excutable Path : 캡쳐할 어플리케이션의 실행 파일 경로를 선택. 캡쳐하려는 프로그램이 어디에 설치되어 있는지 정확히 지정해야한다.
  • Working Directory : 어플리케이션을 실행할 때 필요한 작업 디렉토리를 설정. 어플리케이션이 관련된 파일을 찾을 수 있도록 정확한 디렉토리를 지정해야 한다.
  • Command-line Arguments : 어플리케이션을 실행할 때 필요한 커맨드 라인 인자를 설정.

Launch 버튼으로 실행.

프레임 캡처

RenderDoc이 성공적으로 로드외어 프레임을 캡쳐할 준비가 되었음을 나타내기 위한 최소한의 인앱 오버레이가 존재.
준비가 되면 F12 또는 PrintScreen를 누르면 다음 프레임이 캡쳐되며 이는 오버레이에 표시되어 프레임이 성공적으로 저장되었음을 알려줌.
Alt text
어플리케이션이 종료될 때 프레임을 캡처한 경우 자동으로 RenderDoc UI에서 열리기 시작함.

그래픽 파이프라인 검사

파이프라인 뷰어는 그래픽 파이프라인의 모든 상태 설정을 보여주며, 바인딩 된 리소스, 래스터라이저 설정 등을 포함한다.
Window -> Pipeline State
Alt text

파이프라인 흐름도

파이프라인 뷰어 상단에 파이프라인 흐름도가 존재.
그래픽 파이프라인의 고수준 블록 레벨 다이어그램을 보여줌.
Alt text

  • 빨간색 : 선택한 블록.
  • 연한 회색 : 현재 활성화되어 이 작업에 참여하는 부분.
  • 어두운 회색 : 비활성화되어 패스스루 / 아무 동작도 수행하지 않음.

버퍼 검사

파이프라인 단계(VTX(Vertex Input), VS, FS) 에서 버퍼를 확인할 수 있다.
Alt text

  • glDrawElements 이벤트의 VTX (Vertex Input)단계의 버퍼 확인.

이동 아이콘을 누르면 더 자세한 보기가 가능하다.
Alt text

  • 자세한 보기를 누른 상태.
  • vertex.aPos의 값을 확인할 수 있다.

텍스처 검사

텍스처 뷰어는 어플리케이션에서 텍스처를 검사하고 대상을 렌더링 할 수 있다.
다양한 시각화 컨트롤이 있어 여러 채널, 밉 레벨 등을 볼 수 있다.
Alt text

사용 예시

VertexShader Input 값과 Output 값을 확인(Opengl)

  1. Event Browser에서 glDrawElements 이벤트 선택.
  2. Pipeline State에서 VTX(Vertex Input) 단계 Vertex Attribute Format을 아무거나 Go(초록색 화살표 클릭).
    Alt text
  3. Mesh Viewer 창이 뜨며 VS Input에서 입력 값과 VS Output에서 버택스 셰이더의 아웃풋 값을 확인할 수 있다.
    Alt text

Preview에서 메시를 확인할 수 있다.

  • VS In의 메시.
    Alt text

  • VS Out의 메시.
    Alt text