【问题标题】:Exporting X Display running JavaFX Scene3D导出运行 JavaFX Scene3D 的 X 显示
【发布时间】:2015-04-22 03:08:06
【问题描述】:

我有一个运行 RHEL 6.5 的 linux 机器,并且我有以下示例 JavaFX 应用程序的 JAR https://docs.oracle.com/javase/8/javafx/sample-apps/MoleculeSampleApp.zip

我可以很好地编译和运行它,没有错误,并且一切都正确显示(与https://docs.oracle.com/javase/8/javafx/graphics-tutorial/img/show-molecule.gif 相同)。但是,当我尝试将显示导出到 localhost:0.0 时,我的每个 Material、Shape3D 和 Mesh 对象都会出现以下错误:

警告:系统不支持 ConditionalFeature.SCENE3D

JavaFX 应用程序打开,但窗口中没有 3D 对象。

我尝试导出到另一个 RHEL 6.5 linux 机器,但出现了同样的问题。

我安装了 1.8.0_45 JDK 和 X11 Intel 驱动程序的 2.2.12 版本。

是否有一些 X 或 JavaFX 配置可以让我正确地将应用程序导出到另一台机器?

编辑:

所以我使用以下两种方式运行 JAR 文件:

java -jar -Dprism.order=sw MoleculeSampleApp.jar
java -jar -Dprism.order=j2d MoleculeSampleApp.jar

没有导出到本地主机或其他显示器,但在我的本地机器上遇到了同样的问题。

这让我相信导出显示会导致 JavaFX 停止使用硬件加速。

【问题讨论】:

    标签: java linux javafx x11 rhel


    【解决方案1】:

    当我使用 -Dprism.verbose=true 选项运行程序时,我注意到输出中有以下内容:

    Failed Graphics Hardware Qualifier check.
    System GPU doesn't meet the es2 pipe requirement
    Prism pipeline name = com.sun.prism.sw.SWPipeline
    

    使用以下选项运行 JavaFX jar 文件似乎可以解决问题:

    java -jar -Dprism.forceGPU=true MoleculeSampleApp.jar
    

    但是性能很差,这可能是在旧集成卡上通过网络导出 3D 渲染的预期结果。

    【讨论】:

      猜你喜欢
      • 2021-08-27
      • 2018-10-31
      • 2015-12-21
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      相关资源
      最近更新 更多