是否可以在 Nvidia 3D Vision 硬件上运行 Java3D 应用程序?
Posted
技术标签:
【中文标题】是否可以在 Nvidia 3D Vision 硬件上运行 Java3D 应用程序?【英文标题】:Is it possible to run Java3D applications on Nvidia 3D Vision hardware? 【发布时间】:2011-10-24 10:22:56 【问题描述】:是否可以在Nvidia 3D Vision 硬件上运行 Java3D 应用程序?
我有一个可以在立体 3D 中运行的现有 Java3D 应用程序。过去,我总是在 Quadro 卡上使用 OpenGL 渲染器和四边缓冲立体来运行应用程序。
我现在可以使用配备 nVidia 3D Vision 系统(配备 GeForce GTX 460M)的笔记本电脑。从文档来看,如果我使用 DirectX 绑定并让 nVidia 驱动程序处理立体声,似乎应该可以在立体声中运行我的应用程序,但是,情况似乎并非如此。
如果我使用 j3d.rend=d3d 运行 Java3D 应用程序,nVidia 3D Vision API 似乎无法将其识别为 DirectX 应用程序。
如何让 nVidia 3D Vision 驱动程序检测 Java3D 应用程序并以立体 3D 进行渲染?
【问题讨论】:
【参考方案1】:我很失望,到目前为止,每个人都认为这是不可能的。在过去的几天里,我一直在研究这个问题,并取得了一些进展。到目前为止,我发现这是可能的,但有一些警告:
-
您需要来自 nVidia 的最新驱动程序(撰写本文时为 280.29)
您需要使用 Direct3D 渲染器,而不是 OpenGL 渲染器 (-Dj3d.rend=d3d)
您需要强制 Direct3D 以全屏模式运行。 (-Dj3d.fullscreen=REQUIRED)
您需要在全屏模式下使用 ConfiguredUniverse 运行(我使用的是 Java3D 文档中提供的 j3d-1x1.cfg)
为了让它在 64 位机器上运行,我不得不使用 Java3D 的 64 位 dll,有人在 Java3D 论坛 (http://home.java.net/node/705510) 上提供了帮助,这可能需要也可能不需要32 位系统。
nVidia 驱动程序的未来版本承诺改进对窗口模式立体声的支持,因此将来这可能会变得更容易(可能消除对上述选项 3 和/或 4 的需要)
我还将研究使用一些额外的 nVidia 绑定重建 Java3D 源代码是否可以消除全屏要求,并重新发布结果。
【讨论】:
【参考方案2】:Java3D 使用一种叫做“Quadbuffer Stereo”的东西,即两个不同的双缓冲帧缓冲区,一个用于左眼,一个用于右眼。 NVidia 认为这东西“专业级”,虽然如果不准确控制双眼的内容,就无法进行正确的立体观察。
然而,3D Vision 会插入一些着色器来创建原位立体分离。然而,这只适用于通过 3D Vision API 提供一些提示的程序。 Java3D 没有。
我们只希望微软确实将 Quadbuffered Stereo 作为 DirectX 12 图形的核心要求,以便 NVidia 不再有蹩脚的借口来阻止它与“消费级”OpenGL 无关。
【讨论】:
没错,但 3D 视觉应该适用于任何 DirectX 程序,无论是否有 NVision 提示。我想知道是否有人在 3D 视觉和 DirectX 绑定方面取得了成功。 @JohnnyO:Java3D 基于 OpenGL,而不是 DirectX。 @datenweolf 实际上,Java3D 有 OpenGL 和 DirectX 后端(以及纯 JOGL 实现)我对在 j3d.rend=d3d 时让 3D Visison 硬件工作特别感兴趣(我已经编辑包括这个花絮的问题)【参考方案3】:java3D 不支持 3d vision api,但它可以与任何直接 x 程序一起使用
【讨论】:
【参考方案4】:这可能已经过时了,但我有 Java3D 64 的二进制 DirectX 库。它是 j3dcore-d3d.dll 。 如果有人需要,请给我发消息。
来自 readme.txt 文件:
======
自述文件
Java3D DirectX 9.0 64 位渲染器
2010 年 1 月
嗨
配套的 j3dcore-d3d.dll 是一个 Java3D 渲染器 适用于 64 位的 Microsoft DirectX D3D。这正好使用 来自 32 位的相同源代码,但使用 Visual 编译 适用于 64 位 Windows 的 studio 2005。
已在 Windows XP Pro 上进行了测试。 64位版, Vista 64 和 Windows-7 64。在 nVidia 和 ATI 驱动程序中。
用法
将 j3dcore-d3d.dll 放到与 j3dcore-ogl.dll 相同的文件夹中。
依赖
将它与 64 位 JRE 一起使用。 它需要适用于 Windows AMD 64 的 Java3D,可在 https://java3d.dev.java.net/binary-builds.html
它还需要 DirectX 驱动程序更新 你可以得到它 http:\www.microsoft.com\directx DirectX Web 设置的当前完整链接: http://www.microsoft.com/downloads/details.aspx?familyid=2DA43D38-DB71-4...
最后一个链接指向一个非常小的 DirectX 运行时网络更新程序。
免责声明
这仅用于测试目的。需要您自担风险使用它。 这未经 Sun、Oracle 或任何其他公司认可或支持。
【讨论】:
以上是关于是否可以在 Nvidia 3D Vision 硬件上运行 Java3D 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu 上禁用 NVIDIA 3D Vision 立体