本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

rendererinfo

图形渲染器信息

说明

示例

info = rendererinfo(target) 返回包含目标图形对象的渲染器信息的结构体。将 target 指定为任何类型的坐标区,或指定为一个可作为图窗子级的图。您还可以指定由 n 个坐标区或图组成的数组,在这种情况下,info 以 1×n 结构体数组形式返回。

示例

全部折叠

创建 peaks 函数的曲面图。

surf(peaks)

获取当前坐标区,然后获取坐标区的渲染器信息。您的系统可能会返回不同信息。

ax = gca;
info = rendererinfo(ax)
info = 

  struct with fields:

    GraphicsRenderer: 'OpenGL Hardware'
              Vendor: 'NVIDIA Corporation'
             Version: '4.6.0 NVIDIA 391.58'
      RendererDevice: 'Quadro P600/PCIe/SSE2'
             Details: [1×1 struct]

获取驱动程序详细信息。

info.Details
ans = 

  struct with fields:

           RendererDriverVersion: '23.21.13.9174'
       RendererDriverReleaseDate: '2018-6-4'
            HardwareSupportLevel: 'Full'
    SupportsDepthPeelTransparency: 1
       SupportsAlignVertexCenters: 1
       SupportsGraphicsSmoothing: 1
                  MaxTextureSize: 32768
              MaxFrameBufferSize: 32768

创建一个包含热图和散点图的子图。

subplot(1,2,1)
h = heatmap(rand(5));
ax1 = subplot(1,2,2);
scatter(1:10,rand(1,10))

获取热图和散点图父坐标区的渲染器信息。在本例中,info 是包含两个结构体的数组。

info = rendererinfo([h ax1])
info = 

  1×2 struct array with fields:

    GraphicsRenderer
    Vendor
    Version
    RendererDevice
    Details

对数组进行索引以获取热图的渲染器版本。您的系统可能会返回不同的版本信息。

info(1).Version
ans =

    '4.6.0 NVIDIA 391.74'

输入参数

全部折叠

目标对象,指定为下列值之一:

  • 任何坐标区类型,例如 AxesPolarAxesGeographicAxes 对象。

  • 可以是图窗的子级的图。例如,HeatmapChart 对象可以是目标对象,因为它可以是图窗的子级。相反,Stem 对象不能为目标对象,因为它是 Axes 对象的子对象。

  • 坐标区、图或其组合的数组。

输出参数

全部折叠

渲染器信息,返回为结构体,其中包含图形渲染器名称、供应商和版本等信息。Details 字段是嵌套结构体,包含其他详细信息。下表说明 info 结构体和 info.Details 结构体。

如果您将 target 指定为 n 个坐标区或图的数组,info 将返回为 1×n 结构体数组。数组中的每个结构体对应于 target 的一个元素。

Info 结构体

所有系统都会返回以下字段。

字段说明
GraphicsRenderer

图形渲染器,返回为下列值之一:

  • 'OpenGL Hardware'

  • 'OpenGL Software'

  • 'MathWorks Painters'

  • 'WebGL'

Vendor

图形渲染器实现的制造商。

Version

图形渲染器实现的版本。

RendererDevice

支持图形渲染器的设备。如果您在使用硬件加速图形,则此字段是显卡型号名称。

Details

嵌套结构体,其中包含其他详细信息,例如渲染器的驱动程序版本。对于 Painters 渲染器,此结构体为空。

Details 结构体

有些系统会根据图形渲染器返回这些字段的子集。对于 Painters 渲染器,info.Details 结构体为空。

字段说明
RendererDriverVersion

OpenGL® 驱动程序的版本。此字段仅显示在运行硬件加速 OpenGL 的 Windows® 系统上。虚拟机上不显示此字段。

RendererDriverReleaseDate

OpenGL 驱动程序的发布日期。此字段仅显示在运行硬件加速 OpenGL 的 Windows 系统上。虚拟机上不显示此字段。

HardwareSupportLevel

硬件支持级别,以下列值之一形式返回:

  • 'Full' - MATLAB® 尽可能使用图形硬件来提供高级图形功能。大多数运行硬件加速 OpenGL 和 WebGL™ 的系统返回此值。

  • 'Basic' - MATLAB 使用图形硬件,但某些功能被禁用。有时必须禁用图形功能以避免图形显示问题。

  • 'None' - MATLAB 不使用任何图形硬件。运行软件 OpenGL 的所有系统都返回此值。在某些系统上,可能支持某些功能的软件实现。

如果 MATLAB 检测到不受支持的驱动程序,此字段还将包含 'known graphics driver issues'

SupportsDepthPeelTransparency

深度剥离透明度功能支持,如果支持,则返回 logical(1),否则返回 logical(0)

SupportsAlignVertexCenters

对齐顶点中心功能支持,如果支持,则返回 logical(1),否则返回 logical(0)

SupportsGraphicsSmoothing

图形平滑处理功能支持,如果支持,则返回 logical(1),否则返回 logical(0)

MaxTextureSize

渲染器支持的最大纹理大小(以像素为单位)。

MaxFrameBufferSize

渲染器支持的最大帧缓冲区大小(以像素为单位)。

局限性

实时编辑器不支持 rendererinfo 函数。

详细信息

全部折叠

高级图形功能

高级图形函数是需要特定渲染器实现的功能。这些功能有图形平滑处理深度剥离透明度对齐顶点中心以及硬件加速标记。您可以通过获取 info.Details 结构体的 HardwareSupportLevel 字段的值来判断您的系统是支持部分还是全部这些功能。

下表列出了高级图形功能,以及支持这些功能的环境。在某些情况下,支持某些功能,但为了避免图形显示问题,这些功能被禁用。

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

图形平滑处理

图形平滑处理通过减少锯齿线条来改进绘图的外观。默认情况下,此功能处于启用状态(如果您的系统支持它)。要针对特定的图窗关闭此功能,请将该图窗的 GraphicsSmoothing 属性设置为 'off'

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

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

(放大的视图)


(放大的视图)


深度剥离透明度

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

当受支持时当不受支持时

对齐顶点中心

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

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

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

硬件加速标记

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

当受支持时当不受支持时

提示

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

  • 默认情况下,如果图形硬件支持,MATLAB 会尝试使用硬件加速图形。但是,在某些情况下,如果 MATLAB 检测到以下情况之一,它会自动切换到软件实现:

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

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

    • 您的系统没有必要的图形硬件。

在 R2019a 中推出