Main Content

opengl

(削除予定) OpenGL レンダリングを制御

opengl は将来のリリースで削除される予定です。詳細については、バージョン履歴を参照してください。

説明

opengl info は、MATLAB® で現在使用されている OpenGL® の実装について、バージョン、ベンダー、サポートされるグラフィックス機能などの情報を表示します。このコマンドを使用すると、OpenGL が読み込まれます。R2019a 以降、この構文は推奨されなくなりました。詳細については、バージョン履歴を参照してください。

d = opengl('data')opengl info と同じデータを返しますが、データは構造体に格納されます。R2019a 以降、この構文は推奨されなくなりました。

opengl software はソフトウェア版の OpenGL を使用して、現在の MATLAB セッションでそれ以降のグラフィックスを描画します。このコマンドは Windows® システムでのみ機能します。

opengl hardware は、ハードウェア アクセラレータ版の OpenGL を使用してそれ以降のグラフィックスを描画します。グラフィックス ハードウェアでハードウェア アクセラレータ版の OpenGL がサポートされない場合、MATLAB は代わりにソフトウェア版を使用します。

opengl hardwarebasic は、ハードウェア アクセラレータ版の OpenGL を使用しますが、一部のグラフィックス ドライバーで動作が不安定になる高度なグラフィックス機能が無効化されます。グラフィックス ハードウェアでハードウェア アクセラレータ版の OpenGL がサポートされない場合、MATLAB は代わりにソフトウェア版を使用します。

opengl('save',pref) は、このコンピューター上の将来の MATLAB セッションで優先的に使用するバージョンの OpenGL の基本設定を設定します。pref'software''hardware''hardwarebasic''none' のいずれかとして指定します。このコマンドは現在のセッションには影響しません。

すべて折りたたむ

MATLAB で現在使用されている OpenGL の実装に関する情報を表示するには、opengl info コマンドを使用します。たとえば、ベンダーやバージョン、サポートされるグラフィックス機能などを表示します。また、MATLAB が OpenGL のハードウェア アクセラレータ版の実装を使用しているか、ソフトウェア実装を使用しているかを表示します。

opengl info
                          Version: '2.1 Mesa 17.1.3'
                           Vendor: 'Brian Paul'
                         Renderer: 'Mesa X11'
                   MaxTextureSize: 16384
                           Visual: 'Visual 0x41, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceleration, Double buffer, Antialias 0 samples)'
                         Software: 'true'
             HardwareSupportLevel: 'none'
        SupportsGraphicsSmoothing: 0
    SupportsDepthPeelTransparency: 1
       SupportsAlignVertexCenters: 0
                       Extensions: {152x1 cell}
               MaxFrameBufferSize: 16384

グラフィックス ハードウェアを判別するには、opengl info コマンドを使用して Vendor フィールドおよび Renderer フィールドを確認します。

opengl info
                          Version: '3.3.0'
                           Vendor: 'NVIDIA Corporation'
                         Renderer: 'Quadro 400/PCIe/SSE2'
            RendererDriverVersion: '9.18.13.3182'
        RendererDriverReleaseDate: '11-Nov-2013'
                   MaxTextureSize: 8192
                           Visual: 'Visual 0x07, (RGBA 32 bits...'
                         Software: 'false'
             HardwareSupportLevel: 'full'
        SupportsGraphicsSmoothing: 1
    SupportsDepthPeelTransparency: 1
       SupportsAlignVertexCenters: 1
                       Extensions: {248x1 cell}
               MaxFrameBufferSize: 8192

メモ

返されたフィールドに Software: 'true' という行が含まれる場合、ソフトウェア OpenGL を使用しているため、Vendor フィールドにリストされる名前は、使用しているグラフィックス ハードウェアのベンダーではありません。その場合、Vendor フィールドはソフトウェア OpenGL の実装の製造元を示します。

すべての Figure を閉じて、ハードウェアの OpenGL に切り替えてから、opengl info コマンドを実行します。その後、ソフトウェアの OpenGL に再び切り替えます。

close all 
opengl hardware
opengl info
opengl software

-nosoftwareopengl フラグを使用して MATLAB を起動します。その後、opengl info コマンドを実行します。

現在のセッションでソフトウェアの OpenGL を使用してグラフィックスをレンダリングするように切り替えます。

opengl software

このコマンドは Windows システムでのみ機能します。

今後のすべてのセッションで MATLAB がソフトウェアの OpenGL を使用してグラフィックスをレンダリングするように基本設定を設定します。このコマンドは現在のセッションには影響しません。

opengl('save','software')

入力引数

すべて折りたたむ

MATLAB で現在使用されている OpenGL の実装に関する情報。info として指定します。opengl info コマンドは、次の表にリストされているフィールドを返します。

FieldDescription
VersionOpenGL 実装のバージョン。
VendorOpenGL 実装の製造元。
RendererDriverVersionOpenGL ドライバーのバージョン (ハードウェア アクセラレータ版 OpenGL を使用する Windows システムのみ)。このフィールドはバーチャル マシンでは表示されません。
RendererDriverReleaseDateOpenGL ドライバーのリリース日付 (ハードウェア アクセラレータ版 OpenGL を使用する Windows システムのみ)。このフィールドはバーチャル マシンでは表示されません。
Renderer

OpenGL レンダラーの説明。ハードウェア アクセラレータ版の OpenGL を使用している場合、このフィールドはグラフィックス カードのモデル名になります。

MaxTextureSize

OpenGL 実装によりサポートされる最大テクスチャ サイズ。

VisualOpenGL 実装のプロパティを表示します。
Softwareソフトウェア OpenGL が有効かどうか。'true' または 'false' が返されます。
HardwareSupportLevel

ハードウェアのサポート レベル。次のいずれかの値が返されます。

  • 'full' — ハードウェア アクセラレータ版の OpenGL (すべてのグラフィックス機能が有効)

  • 'basic' — ハードウェア アクセラレータ基本機能版 OpenGL (一部のグラフィックス機能が無効)

  • 'none' — ソフトウェア OpenGL

また、MATLAB でサポートされないドライバーが検出された場合は、このフィールドには 'known graphics driver issues' が含まれます。

SupportsGraphicsSmoothingグラフィックスの平滑化機能のサポート。サポートされる場合は 1、そうでない場合は 0 が返されます。
SupportsDepthPeelTransparency深度剥離による透明度機能のサポート。サポートされる場合は 1、そうでない場合は 0 が返されます。
SupportsAlignVertexCenters頂点の中心揃え機能のサポート。サポートされる場合は 1、そうでない場合は 0 が返されます。
Extensions

OpenGL 実装によりサポートされる拡張機能。

MaxFrameBufferSize

OpenGL 実装によりサポートされる最大フレーム バッファー サイズ。

グラフィックスの平滑化、深度剥離による透明度および頂点の中心揃えについての詳細は、高度なグラフィックス機能を参照してください。

ソフトウェア OpenGL。software として指定します。

ソフトウェア OpenGL に切り替えるには、次を行います。

  • Windows システムでは opengl software を実行します。

  • Linux® システムでは、-softwareopengl フラグを指定して MATLAB を起動します。

  • Macintosh システムは、ソフトウェア版 OpenGL をサポートしていません。

ソフトウェア OpenGL は、ハードウェア アクセラレータ版の OpenGL より処理速度が遅かったり、すべてのグラフィックス機能がサポートされない場合があります。サポートされる機能の一覧表は、高度なグラフィックス機能を参照してください。

ハードウェア アクセラレータ版の OpenGL。hardware として指定します。すべてのシステムで、opengl hardware コマンドを使用して OpenGL のハードウェア基本機能版からハードウェア版へ切り替えることができます。ただし、opengl hardware コマンドを使用して OpenGL のソフトウェア版からハードウェア版に切り替えることができるのは、Windows システムのみです。Linux システムでソフトウェア版からハードウェア版に切り替えるには、-nosoftwareopengl フラグを指定して MATLAB を起動してください。

システムがソフトウェア OpenGL を使用するよう自動的に切り替わっている場合、システムが OpenGL を使用するよう強制すると動作が不安定になることがあります。

ハードウェア アクセラレータ基本機能版の OpenGL。hardwarebasic として指定します。このバージョンのハードウェア アクセラレータ版 OpenGL は、インストールされているグラフィックス ハードウェアを使用しますが、一部のグラフィックス ドライバーで不安定な動作をするグラフィックス機能が無効にされます。無効化されている機能は、グラフィックス機能の変更やグラフィックス ハードウェアの改善に応じて、将来のリリースで変更される可能性があります。無効化されている機能の表については、高度なグラフィックス機能を参照してください。

将来のセッションで優先的に使用する OpenGL のバージョン。次のオプションのいずれかとして指定します。

  • 'software' — ソフトウェア OpenGL。このオプションは Macintosh システムでは利用できません。

  • 'hardware' — ハードウェア アクセラレータ版の OpenGL。

  • 'hardwarebasic' — 高度なグラフィックス機能の一部が無効にされた、ハードウェア アクセラレータ版の OpenGL。詳細については、高度なグラフィックス機能を参照してください。

  • 'none' — システムの既定値。

詳細

すべて折りたたむ

高度なグラフィックス機能

高度なグラフィックス機能には、特定の OpenGL 実装が必要とされます。これにはグラフィックスの平滑化深度剥離による透明度頂点の中心揃えおよびハードウェア アクセラレータ版のマーカーがあります。これらの機能のサポートは次の条件に依存します。

  • ハードウェア版、ハードウェア基本機能版またはソフトウェア版のうち、どの OpenGL を使用しているか。使用している実装を判別するには、opengl info で返される HardwareSupportLevel フィールドを確認します。

  • OpenGL 実装のバージョン。使用中のバージョンを判別するには、opengl info で返される Version フィールドを確認します。使用しているグラフィックス ハードウェアで利用可能な最新バージョンを取得するには、コンピューターの製造元 Web サイトにアクセスしてグラフィックス ドライバーをアップグレードしてください。グラフィックス ドライバーのアップグレードについての詳細は、グラフィックスのシステム要件を参照してください。

次の表に、高度なグラフィックス機能と、各機能がサポートされる環境を示します。

グラフィックス機能 ハードウェア版 OpenGL ハードウェア基本機能版 OpenGL Windows のソフトウェア版 OpenGLLinux のソフトウェア版 OpenGL
グラフィックスの平滑化OpenGL 2.1 以降でサポートOpenGL 2.1 以降でサポートサポートなしサポートなし
深度剥離による透明度OpenGL 2.1 以降でサポート無効サポートなしサポートあり
頂点の中心揃えOpenGL 2.1 以降でサポート無効サポートなしサポートなし
ハードウェア アクセラレータ版のマーカーOpenGL 4.0 以降でサポート無効サポートなしサポートなし

グラフィックスの平滑化

グラフィックスの平滑化は、線のギザギザを滑らかにしてプロットの外観を改善する手法です。この機能がシステムでサポートされる場合、既定では有効になっています。

次の表では、この機能が有効の場合と無効の場合の違いを説明します。特定の Figure に対してこの機能をオフにするには、Figure の GraphicsSmoothing プロパティを 'off' に設定します。

サポートされ有効にされている場合サポートされないか無効にされている場合

Axes graphic with smoothing. The plotted line appears smooth.

Axes graphic with no smoothing. The plotted line appears jagged.

(拡大表示)

Zoomed-in view of axes graphic with smoothing. The pixels near the edge of the graphic gradually transition from the blue graphic color to the white background color.


(拡大表示)

Zoomed-in view of axes graphic with no smoothing. The color of each pixel is either the blue graphic color or the white background color, with no gradual transition between the two.


深度剥離による透明度

深度剥離による透明度は、透明な 3 次元オブジェクトや、交差する透明なオブジェクトを含む複雑なプロットを正しく描画するための機能です。次の表の左側のイメージは、深度剥離による透明度機能がサポートされる場合の球面の描画結果を示します。右側のイメージは、この機能がサポートされない場合の同じ球面の描画結果です。この球面には予期しない影付きの部分が含まれています。

サポートされる場合サポートされない場合

Semitransparent surface plot of a sphere

Semitransparent surface plot of a sphere that has randomly shaded sections inside the sphere (visual artifacts)

頂点の中心揃え

頂点の中心揃えは、垂直および水平のラインを鮮明にする機能です。グラフィックスの平滑化が有効にされている場合、垂直や水平のラインの太さや色が不均等に見えることがあります。頂点の中心揃え機能によって、この不均等な外観をなくします。既定では、頂点の中心揃え機能が無効にされています。ただし、システムでサポートされる場合には、AlignVertexCenters プロパティをもつオブジェクトについて、このプロパティを 'on' に設定して有効にすることができます。

次の表では、この機能が有効の場合と無効の場合の違いを説明します。

サポートされ有効にされている場合サポートされないか無効にされている場合

Four vertical lines that are sharp

Four vertical lines that are uneven in thickness. Some of the lines are blurry.

ハードウェア アクセラレータ版のマーカー

ハードウェア アクセラレータ版のマーカーは、パフォーマンスと品質を向上させるためにグラフィックス ハードウェアを活用します。次の表では、この機能がサポートされている場合とサポートされていない場合の違いを説明します。

サポートされる場合サポートされない場合

Five-pointed star with mitered (pointed) vertices

Five-pointed star with notched vertices

ヒント

  • 代わりに Painters を使用して画面表示と印刷用のレンダリングを行うこともできます。詳細については、Figure の Renderer プロパティを参照してください。

  • 既定では、グラフィックス ハードウェアでサポートされている場合、MATLAB はハードウェア アクセラレータ版の OpenGL を使用します。ただし、MATLAB によって次のような状況が検知された場合には、ソフトウェアの OpenGL に自動的に切り替わることもあります。

    • 既知の問題やグラフィックス仮想化機能のあるグラフィックス ドライバーを使用している場合。

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

    • グラフィックス ハードウェアがないか、グラフィックス ハードウェアでハードウェアの OpenGL がサポートされない場合。

バージョン履歴

R2006a より前に導入

すべて展開する