当我使用MATLAB将带有颜色条的2D表面图导出为png文件时,如果使用opengl硬件渲染器,则导出的图片会损坏,如下图所示:
除此之外,其他所有功能都正常。但是,在我创建了一个带有颜色条的图后,即使它们不包含任何颜色条,我导出的所有其他表面图也会受到损坏。
MATLAB中的opengl info
命令输出以下内容:
Version = 3.0 Mesa 10.1.0
Vendor = Intel Open Source Technology Center
Renderer = Mesa DRI Intel(R) Haswell Desktop
MaxTextureSize = 8192
Visual = 0x20 (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
Software = false
# of Extensions = 190
Driver Bug Workarounds:
OpenGLBitmapZbufferBug = 0
OpenGLWobbleTesselatorBug = 0
OpenGLLineSmoothingBug = 0
OpenGLClippedImageBug = 0
OpenGLEraseModeBug = 0
我尝试了所有这些OpenGL的解决方法,但都没有帮助。
有人有什么想法来解决这个问题吗?
我的系统:
- 内核:3.13.0-24-generic 64位
- 处理器:Intel Haswell i7 4770K
- 图形:Intel HD 4000
- MATLAB版本:R2013b
在我同事的电脑上,他的电脑与我的完全相同,但操作系统不同(Debian Wheezy),这个问题并没有出现。在他的电脑上,opengl info
返回:
Version = 2.1 Mesa 8.0.5
Vendor = VMware, Inc.
Renderer = Gallium 0.4 on llvmpipe (LLVM 0x209)
MaxTextureSize = 4096
Visual = 0xfc (TrueColor, depth 24, RGB mask 0xff0000 0xff00 0x00ff)
Software = false
# of Extensions = 143
Driver Bug Workarounds:
OpenGLBitmapZbufferBug = 0
OpenGLWobbleTesselatorBug = 0
OpenGLLineSmoothingBug = 0
OpenGLClippedImageBug = 0
OpenGLEraseModeBug = 0
它可能是因为Gallium/llvmpipe实际上是软件渲染器,才能在他的情况下起作用吗?
色条有什么问题?
OpenGL软件
吗?图片可能不是很高清,但有时可以修复一些错误。 - Clemens'Renderer'
设置为'OpenGL'
时,是否有任何表面绘图?colorbar
是否需要存在? - horchler