【发布时间】:2012-05-12 23:32:02
【问题描述】:
我需要在 Windows 中软件渲染 OpenGL,并且已经找到了关于 Mesa3D 的信息,它不提供 DLL,而且我在构建时遇到了一些麻烦...是否有可用的替代方案?
【问题讨论】:
我需要在 Windows 中软件渲染 OpenGL,并且已经找到了关于 Mesa3D 的信息,它不提供 DLL,而且我在构建时遇到了一些麻烦...是否有可用的替代方案?
【问题讨论】:
这取决于您希望加速的 OpenGL 版本。根据您的需要,有一些替代方案可用。我在下面列出了我知道的那些:
OpenGL 1.0 和 1.1
Windows(从 Windows NT 3.5 开始)实际上包含一个 OpenGL software implementation。如果您还没有安装任何其他软件光栅器,这应该是您的默认实现。 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 中,Microsoft 包含了一个 emulation layer,它可以将 OpenGL 转换为 Direct3D;因此支持高达 OpenGL 1.4。此外,这应该意味着 Windows Vista(及更高版本?)运行时可能会加速 OpenGL SC 的大部分部分。我自己从来没有使用过这个模拟器,听到它时我感到非常惊讶,但是对于必须在 Windows 环境中运行这些旧框架之一的人来说可能会感兴趣。 请注意,标准的 Windows OpenGL 软件光栅化器(OpenGL 1.0 或 1.1)也包含在 Windows Vista 及更高版本中。
OpenGL ES 2.0
此外,ANGLE project 通过将 OpenGL ES 2.0 调用转换为 DirectX 9 和 11 来加速 WebGL 和 OpenGL ES 2.0。他们的开发说明还提到 OpenGL ES 3.0 解决方案正在开发中。从来没有用过 ANGLE,我无法给出结论。
OpenGL 3.1
除了上面提到的之外,Mesa 3D (which supports up to OpenGL 3.1) 还具有三种软件实现:
由于我对 swrast(最初的 Mesa 项目软件光栅化器)和 softpipe(参考驱动程序)知之甚少,因此我将避免讨论这些内容。第三个实现,llvmpipe,可能也是您最感兴趣的一个,它是一种高速软件实现,它使用多线程和 JIT 编译来加速本地和 SIMD 指令的仿真。
【讨论】:
我之前曾在 Transgaming 的生产项目中使用过 Swiftshader,我必须说,这太棒了。有点贵,但很棒。
【讨论】:
据我搜索,唯一的其他选择是使用 WebGL 软件渲染器,截至目前只有 Chrome 支持。 Direct3D 有参考驱动程序(它真的很不稳定)和 Swiftshader,它既好又贵。
经过一番头疼之后,我设法为 Windows 构建了 Mesa3D,但只有一个旧版本仍然支持它。至少,它的性能很棒。
【讨论】: