MATLAB图渲染:OpenGL与Painters?

当涉及哪个渲染器用于MATLAB数字或什么时候重要时,我无能为力,但我遇到了一些重要的例子:

plot(0,0,'ko','markersize',50,'linewidth',8);
set(gcf,'renderer','opengl');
set(gcf,'renderer','painters');

左= OpenGL,右=画家:

《MATLAB图渲染:OpenGL与Painters?》《MATLAB图渲染:OpenGL与Painters?》

(运行Windows 7 Professional和MATLAB R2015b)

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

最佳答案 这些是我所知道的差异

> OpenGL是默认渲染器
> OpenGL允许绘制透明度,而Painter则不允许
>如果使用OpenGL时出现图形错误或者Matlab崩溃,请使用Painter
>选择Painter以postscript格式导出数字.使用OpenGL
当图形太复杂时,Matlab保存为Bitmap,你无法编辑它.

从Mathworks website (Scroll down to “renderer”):

  • ‘opengl’ — OpenGL® renderer. This option enables MATLAB to access
    graphics hardware if it is available on your system. The OpenGL
    renderer displays objects sorted in front to back order, as seen on
    the monitor. Lines always draw in front of faces when at the same
    location on the plane of the monitor.

  • ‘painters’ — Painters renderer. This option works well for axes in a
    2-D view. In 2-D, the Painters renderer sorts graphics objects by
    child order (order specified). In 3-D, the Painters renderer sorts
    objects in front to back order. However, it might not correctly draw
    intersecting polygons in 3-D.

有关使用OpenGL修复低级图形问题,请参阅此link.

点赞