我们在Windows的远程桌面上使用Java3D遇到了一些奇怪的问题。远程计算机是虚拟化服务器,无法使用(物理)服务器的图形卡。当我运行应用程序时,弹出以下错误:
Unable to create DirectX D3D context.
Neither Hardware and Software Renderer are available.
Please update your video card drivers
and get the latest DirectX available at http://microsoft.com/directx
切换到OpenGL(用-Dj3d.rend=ogl
启动JVM)后出现同样的错误!可能发生了什么?当错误出现时,如何使用OpenGL或DirectX回退到软件渲染?
编辑:我已经尝试过使用另一个OpenGL供应商,使用Mesa3D的DLL而不是原生的DLL,但它没有什么不同。我还安装了DirectX SDK并尝试使用引用驱动程序(-Dj3d.d3ddevice=reference
)启动Java3D,但它也不起作用。
答案 0 :(得分:0)
出现同样的错误,因为如果OpenGL失败,Java3D会尝试使用DirectX。如果失败,则显示弹出窗口。
我没有设法解决它,因为我试图通过禁用视频驱动程序在我自己的机器上模拟问题而不是尝试更改远程服务器上的内容。我仍然不知道为什么两个问题都不相同,但是在我重新开始在服务器上工作并将DirectX的d3dref9.dll
放在Java的\bin
之后,它就起作用了。
现在我遇到了一个全新的问题,因为如果我把它放在java.library.path
或Tomcat的\bin
:),JVM就找不到DLL。问题就是不存在。
答案 1 :(得分:0)
尝试以下方法: 在Windows下: 首先,右键单击桌面屏幕并在菜单中选择“属性”项,打开“显示属性”窗格。在该窗格中,显示“设置”选项卡,然后单击“高级”按钮。然后在打开的窗格的“疑难解答”选项卡中,检查硬件加速光标是否为最大值,确认您的选择并尝试再次运行程序。
如果之前的操作无法解决您的问题,请使用最新的可用程序更新显卡的OpenGL和DirectX驱动程序,并尝试再次运行Sweet Home 3D。