Main Content

解决低级图形问题

MATLAB® 在您的系统上创建图形时可能遇到低级问题。例如,条形图中可能缺少条形边,针状图可能缺少针,或者您的图形硬件的内存可能不足。在使用包含示波器的 Simulink® 模型或使用 MathWorks® 工具箱中的 UI 创建 2-D 或 3-D 图表时,您可能遇到这些问题。这些问题通常是图形硬件太旧或图形驱动程序过时而导致的。要解决它们,请尝试此处介绍的方法。

升级图形硬件驱动程序

图形硬件供应商频繁地提供更新的图形驱动程序以改进硬件性能。为了帮助确保您的图形硬件适用于 MATLAB,请将您的图形驱动程序升级到可用的最新版本。

  • 在 Windows® 系统上,请在您的计算机制造商(例如 Lenovo®、HP® 或 Dell®)的网站中检查是否有驱动程序更新。如果未提供更新,则请检查您的图形硬件供应商网站,例如 AMDNVIDIAIntel

  • 在 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。

解决内存不足的问题

图形内存有限的图形硬件可能导致性能不佳或内存不足问题。可通过以下更改提升性能和解决内存问题:

  • 使用较小的图窗窗口。

  • 将图窗的 GraphicsSmoothing 属性设置为 'off' 以关闭消除锯齿功能。

  • 不使用透明度。

  • 使用软件 OpenGL。

联系技术支持

如果使用上述各方法仍无法解决问题,则您可能遇到了 MATLAB 中的程序错误。请联系 MathWorks 技术支持并提供以下信息:

  • info = rendererinfo(gca) 所返回的输出。

  • 使用软件 OpenGL 时您的代码是否能运行而不出现错误。

  • 您的代码是否能在不同计算机上运行而不出现错误。请提供您在其上进行代码测试的所有计算机的 rendererinfo 输出。

  • 某些错误消息包含指向某个文件的链接,该文件包含有关您遇到的图形错误的详细信息。如果提供了此文件的链接,请将此文件连同您的服务请求一起提交。

https://www.mathworks.com/support/contact_us 页面上创建服务请求。

另请参阅

|

相关主题