基本的に描画を実行するバックエンドである、Matlab の Figure レンダラーを変更すると役立つ場合があります。オプションはpainters
、zbuffer
、およびOpenGL
です。
これは図のプロパティであるため、特定の図に適用できます。たとえば、次のようになります。
set(gcf(), 'Renderer', 'painters')
または、デフォルトの Figure プロパティを更新します (常に必要な場合は、ユーザー固有の startup.mに入れることができます)。
set(0, 'Renderer', 'painters')
同様に、レンダラーの現在の状態を取得するには、get
代わりにset
次を使用します。
get(gcf(), 'Renderer')
レンダラーが異なれば、パフォーマンス プロパティOpenGL
も異なります (サポートされている場合、レンダラーはハードウェア アクセラレーションを使用できます) だけでなく、癖も異なります (私の経験では、getframe() を使用したフレーム キャプチャは、リモート デスクトップ ログインを使用しているときに一部のレンダラーで動作しますが、すべてではありません)。問題の正確な理由はわかりませんが、これらの奇妙な癖の 1 つかもしれないので、レンダラーを変更してみてください。
Renderer プロパティのドキュメントから:
スクリーンと印刷に使用されるレンダリング方法。MATLAB グラフィックスのレンダリングに使用する方法を選択します。選択肢は次のとおりです。
painters
— MATLAB が使用する元のレンダリング方法は、Figure に単純または小さなグラフィックス オブジェクトのみが含まれている場合に高速です。
zbuffer
— MATLAB はグラフィックス オブジェクトをより高速かつ正確に描画します。これは、オブジェクトをピクセル単位で色付けし、MATLAB がシーンで表示されているピクセルのみをレンダリングするためです (したがって、前後の並べ替えエラーが排除されます)。MATLAB が複雑なシーンを表示している場合、このメソッドは大量のシステム メモリを消費する可能性があることに注意してください。
OpenGL
— OpenGL は、多くのコンピューター システムで使用できるレンダラーです。このレンダラーは通常、ペインタや zbuffer よりも高速であり、場合によっては、MATLAB が一部のシステムで利用可能なグラフィックス ハードウェアにアクセスできるようになります。