Java 8 更新,帶來 JavaFX 3D 功能
在 JavaOne 2012 大會上,甲骨文展示了基于 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);
}
} 效果如下:

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