3D Containers JavaFX

0 respostas
Roberto_Teixeira

Pessoal, boa tarde…

É possível transformar Container JavaFX para MeshView+PhongMaterial ?

OBS: meu container com BorderPane+Buttons

Esse código tenho .PNG para um MeshView…

Group root = new Group();

    MeshView meshView = new MeshView();
    TriangleMesh mesh = new TriangleMesh();
    //????????
    //??????????????
    float[] points = {
        -150, -100, 0, //?? p?
        -150, 100, 0,//?? p?
        150, 100, 0,//?? p?
        150, -100, 0//?? p?
    };
    //??????????
    //????????????
    float[] textCoords = {
        0, 0,//??????? t0
        0, 1,//??????? t1
        1, 1,//??????? t2
        1, 0,//??????? t3
    };
    //???2?????????????????
    //?????????
    //?????????????????????
    int[] faces = {
        0, 0, 1, 1, 2, 2, //???? p0,t0,p1,t1,p2,t2,
        2, 2, 3, 3, 0, 0//???? p2,t2,p3,t3,p0,t0
    //0,0,3,3,2,2
    };
    mesh.getPoints().addAll(points);
    mesh.getTexCoords().addAll(textCoords);
    mesh.getFaces().addAll(faces);
    meshView.setMesh(mesh);
    HBox hBox = new HBox();
    hBox.getChildren().add(meshView);

    PhongMaterial material = new PhongMaterial();
    material.setDiffuseMap(new Image(getClass().getResourceAsStream("bg.png")));
    meshView.setMaterial(material);
    meshView.setCullFace(CullFace.NONE);

    LightBase light = new PointLight();
    light.setTranslateZ(-40);

    root.getChildren().addAll(meshView, light);
    //root.getChildren().addAll(hBox, light);

    Rotate rotateY = new Rotate(0.0, Rotate.Y_AXIS);
    Rotate rotateX = new Rotate(0.0, Rotate.X_AXIS);
    root.getTransforms().addAll(rotateX, rotateY);

    PerspectiveCamera camera = new PerspectiveCamera(true);
    camera.setTranslateZ(-400);
    camera.setFarClip(1000);
    Scene scene = new Scene(root, 750, 500, true, SceneAntialiasing.BALANCED);
    scene.setFill(Color.DARKGRAY.darker());
    scene.setCamera(camera);
Criado 3 de fevereiro de 2017
Respostas 0
Participantes 1