|
import javafx.application.Application;
|
|
import javafx.scene.AmbientLight;
|
|
import javafx.scene.Group;
|
|
import javafx.scene.PerspectiveCamera;
|
|
import javafx.scene.PointLight;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.paint.Color;
|
|
import javafx.scene.paint.PhongMaterial;
|
|
import javafx.scene.shape.Sphere;
|
|
import javafx.scene.transform.Rotate;
|
|
import javafx.scene.transform.Translate;
|
|
import javafx.stage.Stage;
|
|
|
|
public class Hello3d extends Application {
|
|
|
|
@Override
|
|
public void start(final Stage stage) {
|
|
final Group root = new Group();
|
|
|
|
// 球体の定義
|
|
final Sphere earth = new Sphere(100);
|
|
root.getChildren().add(earth);
|
|
|
|
// 材質の定義
|
|
final PhongMaterial material = new PhongMaterial();
|
|
material.setDiffuseColor(Color.DODGERBLUE);
|
|
material.setSpecularColor(Color.DEEPSKYBLUE);
|
|
earth.setMaterial(material);
|
|
|
|
// カメラの定義
|
|
final PerspectiveCamera camera = new PerspectiveCamera(true);
|
|
camera.setFieldOfView(45.0);
|
|
camera.getTransforms().addAll(
|
|
new Translate(0, 0, -190)
|
|
);
|
|
|
|
// 点光源の定義
|
|
final PointLight pointLight = new PointLight(Color.WHITE);
|
|
pointLight.setTranslateX(240);
|
|
pointLight.setTranslateY(0);
|
|
pointLight.setTranslateZ(-250);
|
|
root.getChildren().add(pointLight);
|
|
|
|
// 環境光の定義
|
|
final AmbientLight ambientLight = new AmbientLight(Color.rgb(80, 80, 80, 0.5));
|
|
root.getChildren().add(ambientLight);
|
|
|
|
final Scene scene = new Scene(root, 800, 600, Color.BLACK);
|
|
scene.setCamera(camera);
|
|
|
|
stage.setScene(scene);
|
|
stage.setTitle("Hello JavaFX 3D World");
|
|
stage.show();
|
|
}
|
|
|
|
public static void main(final String... args) {
|
|
launch(args);
|
|
}
|
|
}
|