您的位置:首页 > 编程语言 > Java开发

JavaFX 3D部分介绍(3) Lights

2015-12-14 10:41 483 查看
这一节当中,我们将会讲解JavaFX 3D API中的灯光。

  在JavaFX中,Light灯光也是被定义为一个Node节点。当场景里活动的灯光为空时,将会提供一个默认的灯光。

  每一个Light灯光都包含一系列被灯光影响的节点集合。如果这个节点集合为空,那么场景中的所有节点将会受灯光

影响。当然,如果节点集合中包含了父节点,那么这个父节点的所有子节点将同样受灯光影响。

 Light与Shape3D物体相互作用,3D物体的材质将会影响渲染结果。目前,JavaFX中提供两种灯光源。

  1.AmbientLight   环境光

  2.PointLight   点光源

  

[java] view
plaincopy

javafx.scene.Node  

   javafx.scene.LightBase (abstract)  

      javafx.scene.AmbientLight  

      javafx.scene.PointLight  

  创建一个点光源,并设置颜色:

[java] view
plaincopy

PointLight light = new PointLight();  

light.setColor(Color.RED);  

  添加灯光到场景:

[java] view
plaincopy

Group lightGroup = new Group();  

lightGroup.getChildren().add(light);  

root.getChildren().add(lightGroup);  

  旋转灯光45度:

[java] view
plaincopy

light.rotate(45);  

  

  移动lightGroup来使灯光移动:

[java] view
plaincopy

lightGroup.setTranslateZ(-75);  

  以上是JavaFX 3D API中提供的灯光相关的内容。其实虽然在JDK 8中正式添加了Java3D API,但其实提供的功能并不是很多,只能说满足最最基本的3D应用。要用来做3D游戏之类的,恐怕还是远远不够的。

  这一节就到这了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: