MATLAB 图形渲染:OpenGL 与 Painters?

Geo*_*off 6 opengl matlab matlab-figure

当谈到使用哪个渲染器来处理 MATLAB 图形或何时它很重要时,我一无所知,但我遇到过一些确实重要的示例:

plot(0,0,'ko','markersize',50,'linewidth',8);
set(gcf,'renderer','opengl');
set(gcf,'renderer','painters');
Run Code Online (Sandbox Code Playgroud)

左=OpenGL,右=画家:

OpenGL结果画家成果

(运行 Windows 7 Professional 和 MATLAB R2015b)

有时使用 OpenGL 渲染器会产生比 Painters 更好的结果吗?一般来说,这两个渲染器有何不同?

use*_*111 1

这些是我所知道的差异

\n\n
    \n
  • OpenGL 是默认渲染器
  • \n
  • OpenGL 允许绘制透明度,而 Painter 则不允许
  • \n
  • 如果使用 OpenGL 时出现图形错误或 Matlab 崩溃,请使用 Painter
  • \n
  • 选择 Painter 以 Postscript 格式导出图形。使用 OpenGL\n当图形变得太复杂时,Matlab 会另存为位图,并且您无法对其进行编辑。
  • \n
\n\n

Mathworks 网站(向下滚动到“渲染器”)

\n\n
\n
    \n
  • \'opengl\' \xe2\x80\x94 OpenGL\xc2\xae 渲染器。此选项使 MATLAB 能够访问图形硬件(如果您的系统上可用)。OpenGL 渲染器显示按从前到后顺序排序的对象,如显示器上所示。当位于显示器平面上的同一位置时,线条始终绘制在脸部的前面。

  • \n
  • \'painters\' \xe2\x80\x94 Painters 渲染器。此选项适用于二维视图中的轴。\n 在二维中,Painters 渲染器按子顺序(指定的顺序)对图形对象进行排序。在 3-D 中,Painters 渲染器按从前到后的顺序对对象进行排序。但是,它可能无法正确绘制 3D 相交多边形。

  • \n
\n
\n\n

另请参阅此链接,了解如何修复 OpenGL 的低级图形问题。

\n