ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

opengl

OpenGL レンダリングの制御

構文

opengl info
s = opengl('data')
opengl software
opengl hardware
opengl verbose
opengl quiet
opengl DriverBugWorkaround
opengl('DriverBugWorkaround',WorkaroundState)

説明

Figure の RendererModeauto の場合、OpenGL® 自動選択モードが適用されます。selection_mode に利用可能な値は、次のとおりです。

  • autoselect – OpenGL が使用可能で、ホスト マシン上にグラフィックス ハードウェアが存在する場合、OpenGL が自動的に選択されます。

  • neverselect – OpenGL の自動選択を行いません。

  • advise – OpenGL レンダリングが推奨されるかどうかのメッセージをコマンド ウィンドウに表示しますが、RenderMode は、manual に設定されます。

関数 opengl を単独で実行すると、現在の自動選択状態を返します。

自動選択状態は、OpenGL をレンダリングに適用すべきかどうかのみを指定することに注意してください。そのため、OpenGL のレンダリングは明確に設定されません。Figure の Renderer プロパティを OpenGL に設定することで、実行できます。たとえば、

set(figure_handle,'Renderer','OpenGL')

opengl info は、ユーザーのシステム上の OpenGL のベンダーとバージョンに関する情報を出力します。また、ユーザーのシステムがハードウェアとソフトウェアのどちらの OpenGL を現在使用しているかや、ドライバーのバグ回避の状態を示します。opengl info を呼び出すと、OpenGL ライブラリが読み込まれることに注意してください。

たとえば、以下の出力は、ATI Technologies グラフィックス ハードウェアを使用する Windows® XP コンピューターで生成されます。

>> opengl info
Version         = 1.3.4010 WinXP Release
Vendor          = ATI Technologies Inc.
Renderer        = RADEON 9600SE x86/SSE2
MaxTextureSize  = 2048
Visual          = 05 (RGB 16 bits(05 06 05 00) zdepth 16, Hardware 
Accelerated, Opengl, Double Buffered, Window)
Software        = false
# of Extensions = 85
Driver Bug Workarounds:
OpenGLBitmapZbufferBug    = 0
OpenGLWobbleTesselatorBug = 0
OpenGLLineSmoothingBug    = 0
OpenGLDockingBug          = 0
OpenGLClippedImageBug     = 0

コンピューター システムによっては、OpenGL のすべてのバグを表示しない可能性があります。

s = opengl('data') は、opengl info を呼び出すと表示されるデータと同じデータをもつ構造体を返します (ドライバーのバグの回避ステータスは除きます)。

opengl software は、MATLAB® ソフトウェアが、ハードウェア OpenGL の代わりに、ソフトウェア OpenGL レンダリングを使用するようにします。Macintosh システムは、ソフトウェア OpenGL をサポートしていないことに注意してください。

opengl hardware は、opengl software コマンドの逆で、利用可能な場合、MATLAB でハードウェア OpenGL レンダリングを使用できるようにします。コンピューターに OpenGL のハードウェア アクセラレーションがない場合、MATLAB は、自動的にソフトウェアによる OpenGL レンダリングに切り替えます (ソフトウェアの OpenGL をサポートしていない Macintosh システムを除く)。

UNIX® システムでは、MATLAB が OpenGL レンダラーをまだ使用したことがない場合や、ユーザーが opengl info コマンド (OpenGL ライブラリの読み込みを試行) を実行したことがない場合のみ、opengl コマンドの software または hardware オプションが動作することに注意してください。

opengl verbose は、OpenGL の初期化の詳細なメッセージ (OpenGL がまだ読み込まれていない場合) と他のランタイム メッセージを表示します。

opengl quiet は、詳細メッセージ設定を無効にします。

opengl DriverBugWorkaround は、指定されたドライバーのバグの回避方法の状態をクエリします。ドライバーのすべてのバグ回避方法の一覧を表示するには、コマンド opengl info を使用します。詳細は、「ドライバーのバグの回避方法」を参照してください。

opengl('DriverBugWorkaround',WorkaroundState) は、指定されたドライバーのバグの回避方法のステータスを設定します。WorkaroundState に、以下の 3 つの値のいずれかを設定できます。

  • 0 – 指定された DriverBugWorkaround を無効にし (有効な場合)、MATLAB がこの回避方法を自動選択できないようにします。

  • 1 – 指定された DriverBugWorkaround を有効にします。

  • -1 – 指定された DriverBugWorkaround を、自動選択モードに設定し、必要条件がある場合、MATLAB が、この回避方法を有効にできるようにします。

ドライバーのバグの回避方法

MATLAB ソフトウェアは、インストールされたハードウェアに既知の問題が検出された場合、各種の OpenGL ドライバーのバグ回避方法を有効にします。しかし、グラフィックス ドライバーは多くのバージョンがあるため、OpenGL レンダリングの問題を解く回避方法を、MATLAB が有効にしない場合があります。

この節では、OpenGL レンダリング問題の現象とその回避方法について説明します。ユーザーは、OpenGL レンダリング問題を修正する際に、以下の回避方法を使用するかどうかを決めることができます。

ユーザーのコンピューターで利用可能なドライバーのバグ回避方法を表示するには、opengl info コマンドを使用してください。

    メモ:   以下の回避方法は、ドライバーのすべての組み合わせでテストされていません。そのため、状況によっては、予期しない結果となる可能性があります。

OpenGLBitmapZbufferBug

現象: 背景色をもつテキスト (データ チップを含む) や、イメージ、パッチ、表面オブジェクト上に表示されるテキストが OpenGL レンダラーを使用した場合、見えません。

起こりうる他の影響: テキストが常に他のオブジェクトの上にあります。

有効なコマンド:

opengl('OpenGLBitmapZbufferBug',1)

OpenGLWobbleTesselatorBug

現象: 複雑なパッチ オブジェクトをレンダリングすると、セグメンテーション違反が発生し、スタック トレースに tesselator エラー メッセージが返されます。

有効なコマンド:

opengl('OpenGLWobbleTesselatorBug',1)

OpenGLLineSmoothingBug

現象: LineWidth が 3 より大きいラインは、うまく表示されません。

有効なコマンド:

opengl('OpenGLLineSmoothingBug',1)

OpenGLDockingBug

現象: Renderer プロパティが opengl に設定された Figure をドックすると、MATLAB が強制終了します。

有効なコマンド:

opengl('OpenGLDockingBug',1)

OpenGLClippedImageBug

現象: Renderer プロパティを opengl に設定すると、イメージ (関数 colorbar の表示も同様に) が表示されません。

有効なコマンド:

opengl('OpenGLClippedImageBug',1)

OpenGLEraseModeBug

現象: Figure の Renderer プロパティに opengl が設定されている場合、EraseMode プロパティが normal 以外 (xornonebackground) に設定されているグラフィックス オブジェクトを描画できません。

有効なコマンド:

opengl('OpenGLEraseModeBug',1)

参考

この情報は役に立ちましたか?