读书人

JavaFX 3D一部分介绍(1) 3D Shape

发布时间: 2013-10-08 17:08:58 作者: rapoo

JavaFX 3D部分介绍(1) 3D Shape

声明: 本博客文章原创类别的均为个人原创,版权所有。转载请注明出处: http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com。


众所周知,3D模块是JavaFX 8中非常重要的组成部分。而在JavaFX 8的目前版本中,JavaFX 3D的各种特性也在陆续添加中。下面,我来对JavaFX 8中现有的3D部分进行简单的介绍。


3D Shapes

JavaFX 3D Graphics目前提供了对3D Shape的创建。其中包括,内置定义的3D物体,和用户自定义的3D物体。

内置的3D物体包括:boxes,cylinders和spheres。其实还是很少的,如下图所示:

JavaFX 3D一部分介绍(1) 3D Shape


其中,类的继承结构如下:

java.lang.Object  javafx.scene.Node     javafx.scene.shape.Shape3D        javafx.scene.shape.MeshView        javafx.scene.shape.Box        javafx.scene.shape.Cylinder        javafx.scene.shape.Sphere

Box,Cylinder,Sphere都是继承与Shape3D,而且还是Node的子类。由此可见,3D的物体可以直接作为普通Node节点来使用。

创建起来,也是非常的简单。

  int smoothingGroups[] = { … };  mesh.getFaceSmoothingGroups().addAll(smoothingGroups);

不论这个面是smooth还是faceted,Smoothing group都会调整上面的顶点的法线。如果,每个单独的面都有一个相同的Smoothing group,那么这个mesh将会变得非常的光滑,否则,则相反。


------------------------------------------------------------------

有一段时间没有写博客了,工作的中心由android转为Unity3D了,所以最近一直在做Unity3D相关的。抽空看了下JavaFX 3D API,在这里就做一点简单的评价,JavaFX 3D API 没有Unity3D方便,但比Unity3D自由一些(例如可以自定义3D物体,自定义顶点数组,纹理映射等),没有OpenGL自由(封装过的必然缺陷),但比OpenGL方便简单些(不用写那么多看得头晕的GL函数),属于折中的情况。大家可以根据自己的情况来使用。

------------------------------------------------------------------

本博客文章原创类别的均为个人原创,版权所有。转载请注明出处: http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com。


读书人网 >编程

热点推荐