6

我需要在 Windows 中对 OpenGL 进行软件渲染,并且已经找到了Mesa3D,它不提供 DLL,而且我在构建时遇到了一些痛苦……有替代方案吗?

4

3 回答 3

6

这取决于您希望加速的 OpenGL 版本。根据您的需要,有一些替代方案可用。我在下面列出了我知道的那些:

OpenGL 1.0 和 1.1

Windows(从 Windows NT 3.5 开始)实际上包括一个 OpenGL软件实现。如果您还没有安装任何其他软件光栅器,这应该是您的默认实现。Microsoft 软件光栅化器支持 OpenGL 1.0 或 1.1,具体取决于您的平台,但不会加速任何更新的东西。如果您想要的 OpenGL 版本被 1.0 或 1.1 覆盖(但不太可能),那么该解决方案就足够了。我不确定默认的 Windows OpenGL 软件实现在多大程度上通过其 OpenGL 1.0 或 1.1 支持覆盖了 OpenGL ES 1.x 框架。

OpenGL 1.4

此外,在 Windows Vista 中,微软包含了一个可以将 OpenGL 转换为 Direct3D的仿真层;因此支持高达 OpenGL 1.4。此外,这应该意味着 Windows Vista(及更高版本?)运行时可能会加速 OpenGL SC 的大部分部分。我自己从未使用过这个模拟器,听到它时感到非常惊讶,但对于不得不在 Windows 环境中运行这些旧框架之一的人来说可能会感兴趣。请注意,标准 Windows OpenGL 软件光栅器(OpenGL 1.0 或 1.1)也包含在 Windows Vista 及更高版本中。

OpenGL ES 2.0

此外,还有一个ANGLE 项目,它通过将 OpenGL ES 2.0 调用转换为 DirectX 9 和 11 来加速 WebGL 和 OpenGL ES 2.0。他们的开发说明还提到 OpenGL ES 3.0 解决方案正在开发中。从来没有使用过 ANGLE,我无法做出判断。

OpenGL 3.1

除了上面提到的那些之外,Mesa 3D最高支持 OpenGL 3.1)还具有三种软件实现:

  • 斯拉斯特
  • 软管
  • llvmpipe

由于我对 swrast(最初的 Mesa 项目软件光栅化器)和 softpipe(参考驱动程序)知之甚少,我将避免进入这些内容。第三个实现,llvmpipe,可能也是您最感兴趣的一个,它是一种高速软件实现,它使用多线程和 JIT 编译来加速使用本机和 SIMD 指令的仿真。

于 2014-08-25T16:19:34.137 回答
2

我之前使用过 Transgaming的 Swiftshader 进行制作项目,我必须说,它很棒。有点贵,但很精彩。

于 2012-05-03T14:24:15.697 回答
0

据我搜索,唯一的其他选择是使用 WebGL 软件渲染器,截至目前只有 Chrome 支持。Direct3D 有参考驱动程序(它真的很不稳定)和 Swiftshader,它既好又贵。

经过一番头疼之后,我设法为 Windows 构建了 Mesa3D,但只有一个旧版本仍然支持它。至少,它的性能很棒。

于 2012-05-25T21:58:11.250 回答