JavaFX 3D透明度

CJD*_*ood 6 3d transparency javafx javafx-3d

我正在寻找一种在JavaFX 3D中渲染透明对象的方法.到目前为止,没有.我发现问题https://bugs.openjdk.java.net/browse/JDK-8090548.是否有解决方法或这是我不能使用的东西?如果我需要透明对象,我还需要JavaFX之外的东西(比如Java3D)吗?

Jos*_*eda 12

由于JDK8u60 b14透明度在3D形状中启用.

这是一个快速测试:

透明度

盒子和两个球体的顶部Color.web("#ffff0080")添加具有漫射颜色的圆柱体.

group.getChildren().addAll(sphere1, sphere2, box, cylinder);
Run Code Online (Sandbox Code Playgroud)

但是没有深度排序算法,这意味着3D形状添加到场景的顺序很重要.我们需要更改顺序以允许框中的透明度:

group.getChildren().addAll(sphere1, sphere2, cylinder, box);
Run Code Online (Sandbox Code Playgroud)

透明度


jew*_*sea 5

更新资料

从Java 8u60b14开始,此答案已过时,因为该版本中的JavaFX已添加了透明性。


正如您在问题注释中链接的问题一样,Java 8的JavaFX 3D不支持透明性。Java9可能实现了透明性。

用户在问题跟踪器的注释中提到了一种变通方法,其中涉及对JavaFX OpenGL管道的本机代码的破解。如果您急于使用此功能,则可以尝试该技巧。如果那不适合您,那么您将需要选择其他技术。