問題描述:可能由於電腦硬件問題,用的Intel HD Graphic 3000 (比較老),而matlab 版本為2017a, 在繪圖時出現了matlab警告:MATLAB 已通過改用 OpenGL 軟件禁用了某些 高級的圖形渲染。出來的圖形效果是鋸齒現象比較嚴重。
查閱matlab 幫助:
http://cn.mathworks.com/help/matlab/creating_plots/resolving-low-level-graphics-issues.html?requestedDomain=www.mathworks.com
發現matlab 里進行圖形渲染的OpenGL實現,有三種方式:硬件加速( hardware-accelerated),基本硬件加速(basic hardware-accelerated)以及軟件實現(software )。默認情況下,matlab嘗試使用硬件加速實現(若圖形硬件支持)。當出現各類圖形問題時,可以切換到軟件實現或者基本硬件加速實現。但這些實現不支持一些高級圖形特性。
為了檢查我電腦matlab以何種實現,在matlab命令窗口鍵入 opengl info,發現使用了軟件渲染,硬件支持等級寫的時none(已知的圖形驅動程序有問題)。
Version: '1.1.0'
Vendor: 'Microsoft Corporation'
Renderer: 'GDI Generic'
MaxTextureSize: 1024
Visual: '視覺效果 0x1d,(RGB 24 位(8 8 8)、Z 深度 16 位、軟件、單緩沖區、消除鋸齒 0 次采樣)'
Software: 'true'
HardwareSupportLevel: 'none (已知的圖形驅動程序問題)'
SupportsGraphicsSmoothing: 0
SupportsDepthPeelTransparency: 0
SupportsAlignVertexCenters: 0
Extensions: {3×1 cell}
MaxFrameBufferSize: 0
解決方法
一種方法是對於當前matlab有效(重啟后失效)
(各種OpenGL實現切換方式為:opengl hardwarebasic, opengl software, opengl hardware). 將OpenGL實現改為基本軟件加速,命令窗口鍵入 opengl hardwarebasic 並回車。再次查看OpenGL信息,顯示:
Version: '3.1.0 - Build 9.17.10.4459'
Vendor: 'Intel'
Renderer: 'Intel(R) HD Graphics 3000'
RendererDriverVersion: '9.17.10.4459'
RendererDriverReleaseDate: '2016-05-19'
MaxTextureSize: 8192
Visual: '視覺效果 0x06,(RGBA 32 位(8 8 8 8)、Z 深度 16 位、硬件加速、雙緩沖區、消除鋸齒 4 次采樣)'
Software: 'false'
HardwareSupportLevel: 'basic (已知的圖形驅動程序問題)'
SupportsGraphicsSmoothing: 1
SupportsDepthPeelTransparency: 0
SupportsAlignVertexCenters: 0
Extensions: {129×1 cell}
MaxFrameBufferSize: 4096
另一種方法是保存設置,對以后matlab啟動均有效
命令窗口輸入: opengl('save','hardwarebasic'),重啟matlab.
