【问题标题】:Failing to create OpenGL swap texture for Oculus Rift无法为 Oculus Rift 创建 OpenGL 交换纹理
【发布时间】:2015-11-27 01:00:18
【问题描述】:

我正在尝试在OpenGL 上下文中使用Oculus SDK for Windows (8.0.0) 设置我的第一个C/C++ Oculus Rift 项目,但我无法使其正常运行。

每当我尝试编译提供的 DirectX 示例时,它都可以完全正常工作,但是当我尝试编译与 OpenGL 相关的任何内容时,它会因同样的纹理问题而失败。

如果我尝试编译并运行提供的 OculusRommTiny(GL),它会返回“创建纹理失败”并退出。

而且,当我尝试编译自己的工作时,ovr_CreateSwapTextureSetGL 函数总是返回 false

这里有一些有用的信息(我猜):

  • 我使用的是 Windows 8.1
  • 我正在使用 Microsoft Visual Studio Community 2015
  • 我的项目返回返回检测到OpenGL 4.5 (如果我让它切换到集成显卡,它会返回 4.3。是的,它是一台带有专用显卡和集成显卡的笔记本电脑)
  • 我使用 8.0.0 Oculus C SDK (我尝试使用 7.0.0,结果相同)
  • 我使用 8.0.0 Oculus Runtime (但我还没有尝试过其他的)
  • 我使用 Debug HMD 模式(我在运行时的 Configur Service 部分尝试了所有调试设置,结果相同),因为我还无法访问我的 Oculus Rift。李>

这是我与问题相关的代码摘录:

if (OVR_SUCCESS(ovr_CreateSwapTextureSetGL(session, GL_SRGB8_ALPHA8, bufferSize.w, bufferSize.h, &pTextureSet)))
{
    /*for (int i = 0; i < pTextureSet->TextureCount; ++i)
    { ... }*/
    std::cout << "OK, keep going..." << std::endl;
} else {
    std::cout << "ERROR: failed creating swap texture" << std::endl;
    ovr_Destroy(session);
    ovr_Shutdown();
    return false;
}

你知道如何绕过这个问题吗? 谢谢。

【问题讨论】:

  • 您在这里找到正确的解决方案了吗?我坚持同样的事情
  • 很遗憾没有。目前,我仍然无法在我的笔记本电脑上为 Oculus 编译任何 GL 项目。

标签: c++ opengl oculus


【解决方案1】:

OculusRommTiny(GL) 应该可以工作。问题可能出在笔记本电脑的 GPU 上。这种带有两个 GPU 的配置,Nvidia 的“Optimus”和 AMD 的“可切换显卡”在笔记本电脑上非常常见,并且不受支持,并且大部分时间都无法工作。

在某些特定的笔记本电脑上,可以在 BIOS 中禁用集成 GPU,因此请尝试一下。

来自 Oculus 的引用 forum

Nvidia GTX 600 系列或 AMD Radeon HD 7000 系列以下的 GPU 不支持 支持的。此外,笔记本电脑通常得不到很好的支持,或者 全部(特别是如果它们包括 Nvidia Optimus 或 AMD Switchable 图形)。

【讨论】:

  • 我在论坛上看到了这篇文章,但由于 DirectX 部分工作正常,我希望有一个不同的问题。不幸的是我担心你是对的......因此我被困在使用 SDK pre 7.0.0 或 DirectX 这不是我的目标。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2018-03-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-02
相关资源
最近更新 更多