是否可以在 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 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

在程序中使用NV 3D Vision 转

在 Ubuntu 上禁用 NVIDIA 3D Vision 立体

基于3D Vision眼镜的OSG立体显示

在 Vision 识别的坐标上叠加 3D 对象的最佳方式

极智AI | Nvidia Jetson DLA 硬件系统架构

NVIDIA 硬件的 OpenCL 1.2 何时可用?