我有 XUBUNTU 16.04 32 位。我是 VTK 库的初学者。我已经从源代码构建并安装了 VTK 7.1.1。我按照https://www.vtk.org/Wiki/VTK/Configure_and_Build的说明 安装就可以了。没有错误。我下载了最简单的示例:CylinderRenderingProperties。然后,我编译该示例。没有错误。但是,当我运行程序时
./CylinderRenderingProperties
Run Code Online (Sandbox Code Playgroud)
有一个错误:
VTK-7.1.1/Rendering/OpenGL2/vtkShaderProgram.cxx, line 395 vtkShaderProgram (0x9fd1510): 0:39(12): error: extension `GL_EXT_gpu_shader4' unsupported in fragment shader
Run Code Online (Sandbox Code Playgroud)
我不知道出了什么问题。可能与任何图形驱动程序有关?这是我的图形硬件的信息:
inxi -G
Graphics: Card: Intel Mobile 4 Series Integrated Graphics Controller
Display Server: X.Org 1.19.3 drivers: (unloaded: fbdev,vesa)
Resolution: 1280x800@60.00hz, 1280x1024@60.02hz
GLX Renderer: Mesa DRI Mobile Intel GM45 Express x86/MMX/SSE2 GLX Version: 2.1 Mesa 17.0.7
Run Code Online (Sandbox Code Playgroud)
是的,这与您的图形驱动程序/卡有关。正如错误消息所述,您需要图形驱动程序支持 GL_EXT_gpu_shader4 扩展,该扩展通常随 openGL 3.2 及更高版本一起提供。您当前的驱动程序不支持它,事实上,根据我在英特尔支持网站上找到的信息,您的显卡不支持它。除了更换计算机/GPU 之外,我还看到两个选择:
1) 使用 Mesa 的软件渲染:Mesa 有一个软件渲染器,可以卸载由 Mesa 库在 CPU 上处理的所有 openGL 调用。你的渲染速度会变慢,但它会起作用。不过我从未使用过它,所以我无法帮助您设置它,您必须对具体如何操作进行一些研究。
2) 如果您不打算在 VTK 中进行任何复杂的渲染,您可能可以使用旧的渲染后端,这是 VTK 版本 7 之前的默认后端。它不使用任何需要 openGL 以上 2.1 的内容,因此它在你的电脑上应该可以正常工作。要激活它,请将 VTK 的 CMake 变量VTK_RENDERING_BACKEND从更改openGL2为openGL,然后重新构建 VTK。它的速度有点慢,并且没有一些新的很酷的功能,但除此之外它功能完善,足以满足许多应用程序的需要。