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);