【问题标题】:OpenGL version is few years older than laptopOpenGL 版本比笔记本电脑早几年
【发布时间】:2016-06-21 11:12:34
【问题描述】:

当我使用 LWJGL 编写 java 程序并使用 glGetString(GL_VERSION); 获取 OpenGL 版本时。然后显示:2.1.0 - Build 8.15.10.1892

当我打开我的 Windows 控制台(使用著名的“cmd”运行)并使用 systeminfo 时,它不仅提供了有关 Windows 安装日期的任何信息。 我想获得 Windows 的安装日期,因为那时我知道我的笔记本电脑有多旧。在网上搜索后,我使用了WMIC OS GET installdate,终于找到了一个日期:2010 年 11 月 11 日。 我认为这是真的,因为我至少记得同一年。当然,该设备可能在工厂或商店里已经有一段时间了。

当我查看 OpenGL 2.1.0 有多旧时,我发现它大约是 2006 年 https://www.opengl.org/wiki/History_of_OpenGL#OpenGL_2.1_.282006.29

我对我的 OpenGL 版本感到失望。 我正在运行 64 位 Windows 7。该设备可能至少从 2010 年底开始,但 java 显示 2006 的 OpenGL 版本。 在 2010 年 11 月之前广泛存在更新的 OpenGL 版本,例如版本 3.0 (2008)、3.1 (2009) 和 3.2(也是 2009)

有没有可能是 JVM 只能访问旧版本的 OpenGL? 前段时间,我在这台笔记本电脑上玩了一个 CD-rom 游戏。我认为如果使用 OpenGL 2.1.0,该游戏将永远无法玩...... 或者这是一个不公平的比较?

【问题讨论】:

  • 提供(现代)OpenGL 的不是 Windows,而是您的显卡驱动程序。如果您有旧显卡,供应商可能不想为更新旧显卡驱动程序付费。
  • 所以我真的买了2010年的电脑,2006年的软硬件技术?也许我什至没有为我的显卡获得驱动程序更新?
  • 我不知道。有一些开源工具可以检查您的显卡的 OpenGL 功能,您可能需要下载其中一个并检查您是否真的使用 2.1 或者它是否只是 LWJGL。
  • @user2190492 在笔记本电脑上,通常有 2 个单独的 GPU,一个用于通用显示的集成 GPU(Windows 应用程序、Windows 本身等)和一个用于图形密集型应用程序(游戏等)的独立 GPU .)。 LWJGL 或您的 Java VM 很容易在不支持更高 OpenGL 版本的集成 GPU 上运行。
  • 如果是这种情况,我该如何更改它以在正确的 GPU 上运行?但我不认为我的笔记本电脑有多个显卡。 Windows 设备管理器仅列出一张显卡。 (移动 Intel(R) 4 系列高速芯片组系列)

标签: opengl operating-system version lwjgl drivers


【解决方案1】:

OpenGL 本身只是一个规范。在您的计算机上运行的实际事物称为实现,它通常是图形驱动程序的一部分。此外,每个 OpenGL 规范对实现都有非常具体的要求。 OpenGL-3.x 中有很多东西根本不被 2010 年“现代”的硬件所支持。例如,当时的英特尔 GPU 根本不具备支持 OpenGL-3 所需的一切。因此,您将只获得对这些的 OpenGL-2.x 支持,仅此而已。

【讨论】:

    【解决方案2】:

    您可以查看您的笔记本电脑规格并查看您的 gfx 硬件。这将告诉您您的硬件支持哪个版本的 OpenGL(此信息最有可能从 gfx 芯片供应商处获得)。

    使用支持硬件执行的 GL 版本的 API 是另一个问题,可能与您初始化或使用 openGL 图形库的方式有关。

    我原以为现在大多数驱动程序都支持旧版本。它们可能本身不支持 API,但我会考虑为驱动程序中的功能提供包装器。当然,我可以在 OpenGL 1.1 中编码,并在与 OpenGL 4.5 程序相同的机器上查看结果(在 quadro K2200M 上)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2023-01-03
      • 2022-01-25
      • 2011-01-14
      相关资源
      最近更新 更多