JavaFX 3D-是否可以在DrawMode.Line中更改Line的宽度?

时间:2019-12-27 04:01:30

标签: java javafx 3d javafx-3d

我想使用 DrawMode。 LINE 更改任何网格的 linewidth ,但我不知道是否可行。

我添加了一些代码以供参考。

@Override
public void start(Stage primaryStage) throws Exception{
    PerspectiveCamera camera= new PerspectiveCamera(true);
    Group root = new Group();
    Scene scene = new Scene(root, 1024, 768, true);

    primaryStage.setScene(scene);
    primaryStage.show();

    scene.setFill(Color.BLACK);
    camera.setFarClip(10000);
    camera.setTranslateZ(-10);
    scene.setCamera(camera);

    Box box  = new Box();
    box.setDrawMode(DrawMode.LINE);
    root.getChildren().addAll(camera,box);
}


public static void main(String[] args) {
    launch(args);
}

1 个答案:

答案 0 :(得分:2)

不可能。 DrawMode向下传递到本机渲染器,其默认线框为宽度为1的线。有关Direct3D管道,请参见Outline and Fill State。即使您使用line drawing support library,它也会告诉您:

该库使用本机硬件线条图支持(如果在 设备),除非:

  • 线宽为1。
  • 未启用任何线条样式。

不同于1的线宽不能用line primitives来绘制,而必须用三角形来绘制:

线图库使用纹理三角形模拟线

换句话说,宽度1是特殊的,因为它具有特定的硬件支持。