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