Main Content

화면 업데이트

MATLAB 그래픽스 시스템

MATLAB® 그래픽스는 다중 스레드 실행을 사용하여 구현됩니다. 다음 도식에서는 메인 스레드와 렌더러 스레드가 업데이트 절차 동안 어떻게 상호 작용하는지 보여줍니다. MATLAB 측에서는 그래픽스 하드웨어에서 렌더링하는 기하 도형을 설명하는 그래픽스 모델을 포함합니다. 렌더러 측에서는 자체 메모리 시스템에 이 기하 도형의 복사본을 저장합니다. 그래픽스 하드웨어는 MATLAB 실행을 차단하지 않고 화면을 렌더링할 수 있습니다.

그래픽스 모델이 변경되면 이러한 업데이트가 그래픽스 하드웨어로 전달되어야 합니다. 그래픽스 하드웨어가 모든 MATLAB 데이터형을 지원하지는 않기 때문에 업데이트를 전송하면 병목 현상이 발생할 수 있습니다. 업데이트 절차에서 데이터를 올바른 형식으로 변환해야 합니다.

기하 도형이 그래픽스 하드웨어 메모리에 저장된 경우 이 데이터를 사용하고 업데이트에서 전송되는 데이터를 최소화하여 성능상의 이점을 얻을 수 있습니다.

업데이트 관리

업데이트에는 다음 단계가 포함됩니다.

  • 속성 변경 내용 및 추가된 객체와 같은 화면 업데이트가 필요한 변경 내용 수집

  • 그래픽스 모델 내 종속성 업데이트

  • 업데이트를 렌더러로 전송

  • 실행을 MATLAB으로 반환하기 전에 렌더러가 업데이트를 받을 때까지 대기

drawnow 함수를 호출하여 업데이트를 시작합니다. 렌더러가 업데이트를 받으면 drawnow는 실행을 완료하는데, 이는 렌더러가 화면 업데이트를 완료하기 전에도 발생할 수 있습니다.

명시적 업데이트

함수 실행 중 그래픽스 객체를 Figure에 추가하거나 기존 객체의 속성을 변경하는 것이 반드시 즉각적인 화면 업데이트를 초래하지는 않습니다. 업데이트 절차는 업데이트가 필요한 그래픽스에 대한 변경 내용이 있는 경우 발생하며, 코드는 다음 작업을 수행합니다.

  • 업데이트를 일으키는 drawnow, pause, figure 또는 기타 함수를 호출(drawnow 참조).

  • 다른 속성에 따라 값이 달라지는 속성을 쿼리(자동으로 계산되는 속성 항목 참조).

  • 실행을 완료하고 컨트롤을 MATLAB 프롬프트 또는 디버거로 반환.