Java 8 更新,帶來 JavaFX 3D 功能

jopen 11年前發布 | 14K 次閱讀 Java 8

        在 JavaOne 2012 大會上,甲骨文展示了基于 JavaFX 3D 的集裝箱終端監控項目(演示視頻),讓人眼前一亮。 

Java 8 更新,帶來 JavaFX 3D 功能


Java 8 更新,帶來 JavaFX 3D 功能


該項目使用 JavaFX 最新版本的早期原型構建,并增加了對于 3D mesh、3D 攝像機和 3D 燈光的支持。現在 JavaFX 8 公共版本中已經提供了這些技術的官方支持。 

        JavaFX 8 捆綁在 Java 8 中,你可以下載最新的 Java 8 EA b77 版本來體驗。目前僅支持 Windows 平臺,甲骨文表示,針對其他平臺的 OpenGL 版本正在開發中。 

        下載地址:http://jdk8.java.net/download.html 

        關于 JavaFX 中最新的 3D 特性可參閱:wikis.oracle.com – OpenJDK – 3D Features 

        下面是一個簡單的例子:

 import javafx.application.Application;  
import javafx.scene.*;  
import javafx.scene.paint.Color;  
import javafx.scene.paint.PhongMaterial;  
import javafx.scene.shape.*;  
import javafx.stage.Stage;  

public class Shapes3DViewer extends Application {  
    @Override public void start (Stage stage) {  
        PhongMaterial material = new PhongMaterial ();  
        material.setDiffuseColor (Color.LIGHTGRAY);  
        material.setSpecularColor (Color.rgb (30, 30, 30));  

        Shape3D[] meshView = new Shape3D[] {  
            new Box (200, 200, 200),  
            new Sphere (100),  
            new Cylinder (100, 200),  
        };  

        for (int i=0; i!=3; ++i) {  
            meshView[i].setMaterial (material);  
            meshView[i].setTranslateX ((i + 1) * 220);  
            meshView[i].setTranslateY (500);  
            meshView[i].setTranslateZ (20);  
            meshView[i].setDrawMode (DrawMode.FILL);  
            meshView[i].setCullFace (CullFace.BACK);  
        };  

        PointLight pointLight = new PointLight (Color.ANTIQUEWHITE);  
        pointLight.setTranslateX (800);  
        pointLight.setTranslateY (-100);  
        pointLight.setTranslateZ (-1000);  

        Group root = new Group (meshView);  
        root.getChildren () .add (pointLight);  

        Scene scene = new Scene (root, 800, 800, true);  
        scene.setFill (Color.rgb (10, 10, 40));  
        scene.setCamera (new PerspectiveCamera (false));  
        stage.setScene (scene);  
        stage.show ();  
    }  

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

        效果如下: 

Java 8 更新,帶來 JavaFX 3D 功能


        Via fxexperience

來自: www.iteye.com
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!