Main Content

低水準グラフィックス問題の解決

MATLAB® では、システム上でグラフィックスを作成中に低水準問題が発生することがあります。たとえば、棒グラフからバーのエッジが欠落する、ステム プロットからステムが欠落する、またはグラフィックス ハードウェアでメモリ不足が発生する場合があります。スコープを含む Simulink® モデルまたは MathWorks® ツールボックスから UI を使用して 2 次元または 3 次元チャートを作成している間に、このような問題が発生する可能性があります。多くの場合、これらの問題は古いグラフィックス ハードウェアまたは旧式のグラフィックス ドライバーに起因しています。これらの問題を解決するには、以下の方法を試してください。

グラフィックス ハードウェア ドライバーのアップグレード

グラフィックス ハードウェアのベンダーは、ハードウェア パフォーマンスを改善するために更新されたグラフィックス ドライバーを頻繁に提供します。グラフィックス ハードウェアが MATLAB で確実に動作するよう、グラフィックス ドライバーを最新バージョンにアップグレードしてください。

  • Windows® システムの場合は、Lenovo®、HP®、Dell® などの製造元の Web サイトでドライバーの更新プログラムがないか確認してください。更新プログラムが提供されていない場合は、次に、AMDNVIDIAIntel などのグラフィックス ハードウェア ベンダーの Web サイトを確認してください。

  • Linux® システムの場合は、オープンソースの代替品でなく、ベンダー独自の仕様のドライバーを使用してください。

  • Macintosh システムの場合、グラフィックス ドライバーはオペレーティング システムの一部です。提供される最新の更新プログラムを使用してください。

OpenGL® 2.1 以降のハードウェア アクセラレーションの実装をサポートするグラフィックス ハードウェアを使用します。2006 年以降にリリースされた大半のグラフィックス ハードウェアには、OpenGL 2.1 以降が組み込まれています。それより前のバージョンの OpenGL を使用している場合、大半のグラフィックス機能は引き続き動作しますが、一部の高度なグラフィックス機能は使用できません。最良のパフォーマンスを得るには、OpenGL 4.0 以降を推奨します。グラフィックス ハードウェアの特定方法の詳細については、rendererinfo を参照してください。

システムに適したレンダラー実装の選択

MATLAB は、グラフィックス レンダラーのハードウェア アクセラレータ版、ハードウェア アクセラレータ基本機能版、ソフトウェア版のうち、いずれかの実装を使用してグラフィックスを表示します。既定では、MATLAB は、グラフィックス ハードウェアによってサポートされている場合には、ハードウェア アクセラレータ版実装の使用を試そうとします。ソフトウェア版実装またはハードウェア アクセラレータ基本機能版実装に切り替えることで、多くのグラフィックス問題を回避できます。これらの代替の実装は、一部の高度なグラフィックス機能をサポートしていません。

場合によっては、MATLAB は自動的にソフトウェア版実装に切り替えます。

  • 必要なグラフィックス ハードウェアがシステムに搭載されていない場合。

  • 既知の問題があるグラフィックス ドライバー、古いグラフィックス ドライバー、またはグラフィックス仮想化機能を使用している場合。グラフィックス ドライバーを最新バージョンに更新してください。

  • 以前の MATLAB セッションがグラフィックス問題が原因でクラッシュした。以前のセッションがソフトウェア版の OpenGL を使用していてクラッシュした場合、後続のセッションでは、機能の少ない、より安定したバージョンのソフトウェア版 OpenGL を使用します。

Windows システムでリモート デスクトップを使用する場合、ハードウェア アクセラレータ版のグラフィックスの可用性はさまざまです。ハードウェア アクセラレータ版のグラフィックスがサポートされていない場合にこれを使用しようとすると、MATLAB によって警告メッセージが返され、代わりにソフトウェア版 OpenGL が使用されます。グラフィックス ドライバーを最新バージョンに更新すると、ハードウェア アクセラレータ版のグラフィックスのサポートが有効になる可能性があります。

MATLAB がどの実装を使用しているかを判別するには、関数 rendererinfo を呼び出します。たとえば、次のコマンドは現在の座標軸の情報を取得し、info という構造体に格納します。

info = rendererinfo(gca)
この構造体は、GraphicsRenderer フィールドでグラフィックス レンダラーの名前も提供します。たとえば、MATLAB がハードウェア アクセラレータ版 OpenGL を使用している場合、フィールドは 'OpenGL Hardware' を返します。ソフトウェア版 OpenGL を使用している場合、フィールドは 'OpenGL Software' を返します。

現在のセッションの OpenGL 実装の指定

MATLAB の現在のセッションの OpenGL 実装を指定するには、次のいずれかの手法を使用します。

  • ソフトウェア版 OpenGL — コマンド matlab -softwareopengl を使用して、システムのコマンド プロンプトから MATLAB を起動します。このコマンドは、Windows システムと Linux システムでのみ動作します。Macintosh システムは、ソフトウェア版 OpenGL をサポートしていません。

  • ハードウェア アクセラレータ基本機能版 OpenGL — MATLAB コマンド プロンプトで、「opengl hardwarebasic」と入力します。

  • ハードウェア アクセラレータ版 OpenGL — MATLAB コマンド プロンプトで、「opengl hardware」と入力します。

将来のセッションの OpenGL 実装の指定

MATLAB が常に指定した実装の OpenGL で起動するように基本設定を設定するには、次のいずれかの手法を使用します。

  • ソフトウェア版 OpenGL — MATLAB コマンド プロンプトで、「opengl('save','software')」と入力します。その後、MATLAB を再起動します。

  • ハードウェア アクセラレータ基本機能版 OpenGL — MATLAB コマンド プロンプトで、「opengl('save','hardwarebasic')」と入力します。その後、MATLAB を再起動します。

  • ハードウェア アクセラレータ版 OpenGL — MATLAB コマンド プロンプトで、「opengl('save','hardware')」と入力します。その後、MATLAB を再起動します。

  • 基本設定を元に戻す — MATLAB コマンド ラインで、opengl('save','none') を実行します。その後、MATLAB を再起動します。

メモリ不足問題の修正

グラフィックス メモリが制限されたグラフィックス ハードウェアは、パフォーマンスの低下やメモリ不足の問題を引き起こすことがあります。以下の変更を加えて、パフォーマンスを改善し、メモリ問題を回避してください。

  • 小さな Figure ウィンドウを使用する。

  • Figure の GraphicsSmoothing プロパティを 'off' に設定して、アンチエイリアシングをオフにする。

  • 透明性を使用しない。

  • ソフトウェア版 OpenGL を使用する。

テクニカル サポートへのお問い合わせ

ここで説明したオプションを使用して問題が解決できない場合は、MATLAB のバグの可能性があります。MathWorks テクニカル サポートに連絡し、以下の情報を提供してください。

  • info = rendererinfo(gca) によって返された出力。

  • ソフトウェア版 OpenGL を使用したときにコードがエラーなしで実行されるかどうか。

  • 別のコンピューターでコードがエラーなしで実行されるかどうか。コードをテストしたすべてのコンピューターについての rendererinfo の出力を提供してください。

  • 一部のエラー メッセージには、発生したグラフィックス エラーの詳細ファイルへのリンクが含まれている場合があります。ファイルへのリンクがある場合、サービス リクエストにそのファイルを含めてください。

http://www.mathworks.com/support/contact_us でサービス リクエストを作成します。

参考

|

関連するトピック