线框的javaFX颜色在AMD和Nvidia上是不同的

时间:2016-01-25 16:04:03

标签: eclipse javafx nvidia amd wireframe

我必须在JavaFX 8中可视化运动线。我正在使用eclipse,最新的Java更新(8更新72)和Windows 10 64位。我的家用电脑运行AMD HD 5870,我的笔记本和我的电脑在工作时都有Nvidia(GT760m和GTX 670)的graficcard。在我的程序中,有一个三角形网格和运动线(三角形网格,两个坐标相同,圆形约300个协调)。

这是我的问题:三角形网格有颜色。 movmentline具有相同的颜色。在Nvidia pcs上,运动线颜色与三角形网格的颜色完全相同。 AMD pc以黑色显示运动线。

以下是三角形网格的代码:

    PhongMaterial material;
    MeshView meshView;
    TriangleMesh mesh;

    material = new PhongMaterial(color);

    float[] points = {  (float) pointN.getX(),  (float) pointN.getY(),  (float) pointN.getZ(), 
                        (float) pointEL.getX(), (float) pointEL.getY(), (float) pointEL.getZ(), 
                        (float) pointER.getX(), (float) pointER.getY(), (float) pointER.getZ() };

    int[] faces = { 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 0 };

    mesh = new TriangleMesh();
    mesh.getPoints().setAll(points);
    mesh.getTexCoords().addAll(0, 0);
    mesh.getFaces().setAll(faces);

    meshView = new MeshView(mesh);
    meshView.setDrawMode(DrawMode.LINE);
    meshView.setMaterial(material);
    meshView.setCullFace(CullFace.BACK);

这是针对运动线的:

PhongMaterial material = new PhongMaterial(color); 
            float[] pointss = { points.get(i).x,  points.get(i).y,  -points.get(i).z, 
                                points.get(i).x,  points.get(i).y,  -points.get(i).z,
                                points.get(i+1).x,  points.get(i+1).y,  -points.get(i+1).z
                    };

            int[] faces = { 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 2, 0 };

            TriangleMesh mesh = new TriangleMesh();
            mesh.getPoints().setAll(pointss);
            mesh.getTexCoords().addAll(0, 0);
            mesh.getFaces().setAll(faces);

            MeshView meshView = new MeshView(mesh);
            meshView.setDrawMode(DrawMode.LINE);
            meshView.setMaterial(material);
            meshView.setCullFace(CullFace.BACK);

在我的opoinin中它是相同的代码结构。操作系统,驱动程序,Java和Eclipse在所有系统上都是最新的。

有人有想法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我正在使用下面的内容来设置TriangleMesh的线框颜色 - (它的Scala不是Java)

      val mesh: TriangleMesh = new TriangleMesh

      mesh.getPoints.setAll(pointsCube: _*)
      mesh.getTexCoords.setAll(0, 0)
      mesh.getFaces.setAll(facesCube: _*)

      val blackMaterial: PhongMaterial = new PhongMaterial
      blackMaterial.setDiffuseColor(Color.BLACK)
      val meshView = new MeshView(mesh)
      meshView.drawModeProperty.setValue(DrawMode.LINE)
      meshView.setMaterial(blackMaterial)