Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

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'。此命令不影响当前会话。

示例

全部折叠

使用 opengl info 命令,显示有关 MATLAB 当前使用的 OpenGL 实现的信息。例如,显示供应商、版本和受支持的图形功能。此外,还显示 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 命令,通过检查 VendorRenderer 字段确定图形硬件。

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 实现的制造商。

关闭所有图窗,切换到硬件 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 实现的信息,指定为 infoopengl 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。但是,仅 Windows 系统支持使用 opengl hardware 命令从软件切换到硬件 OpenGL。要在 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 字段。要获取对您的图形硬件可用的最新版本,请从您的计算机制造商网站升级图形驱动程序。如需有关升级图形驱动程序的详细信息,请参阅图形的系统要求

下表列出了高级图形功能,以及支持这些功能的环境。

图形功能 硬件 OpenGL 基础硬件 OpenGL Windows 上的软件 OpenGLLinux 上的软件 OpenGL
图形平滑处理支持 OpenGL 2.1 或更高版本支持 OpenGL 2.1 或更高版本不支持不支持
深度剥离透明度支持 OpenGL 2.1 或更高版本禁用不支持支持
对齐顶点中心支持 OpenGL 2.1 或更高版本禁用不支持不支持
硬件加速标记支持 OpenGL 4.0 或更高版本禁用不支持不支持

图形平滑处理

图形平滑处理是通过改善不规则线条的外观来改进绘图外观的技术。默认情况下,此功能处于启用状态(如果您的系统支持它)。

下表显示该功能在启用与禁用时的差异。要针对特定的图窗关闭此功能,请将该图窗的 GraphicsSmoothing 属性设置为 'off'

当受支持并启用时当不受支持或禁用时

(放大的视图)


(放大的视图)


深度剥离透明度

深度剥离透明度功能用于正确绘制透明的三维对象或包含相交透明对象的复杂绘图。下表中,左侧图像显示支持深度剥离透明度功能时在球面上使用透明度的结果。右侧图像显示不支持该功能时在相同球面上产生的意外着色区域。

当受支持时当不受支持时

对齐顶点中心

对齐顶点中心功能用于锐化垂直线和水平线。如果已启用图形平滑处理,则会导致水平线和垂直线出现不均匀的厚度或颜色。对齐顶点中心功能可消除外观不均匀的现象。默认情况下,对齐顶点中心功能未启用。但是,如果您的系统支持此功能,则可以通过将对象的 AlignVertexCenters 属性设置为 'on',为该对象打开此功能。

下表显示该功能在启用与禁用时的差异。

当受支持并启用时当不受支持或禁用时

硬件加速标记

硬件加速标记可以充分利用您的图形硬件来提高性能和质量。下表显示该功能在受支持与不受支持时的差异。

当受支持时当不受支持时

提示

  • Painters 是屏幕显示和打印的备用渲染方法。有关详细信息,请参阅图窗的 Renderer 属性。

  • 默认情况下,MATLAB 使用硬件加速 OpenGL 进行渲染,前提是您的图形硬件支持它。但是,在某些情况下,MATLAB 会自动切换到软件 OpenGL,例如,如果检测到以下情形:

    • 您使用的图形驱动程序存在已知问题或在使用图形虚拟化。

    • 以前的 MATLAB 会话曾因图形问题而崩溃。如果先前的会话使用软件 OpenGL 并且崩溃,则后续会话将使用具有较少功能但更稳定的软件 OpenGL 版本。

    • 您未安装图形硬件或您的图形硬件不支持硬件 OpenGL。

兼容性考虑

全部展开

从 R2019a 起不建议使用

在 R2006a 之前推出