DOC-02-05 光照(Light)

本章描述了JavaFX 3D图形库中的Light API的相关信息。

Light在Scene Graph中现在也被定义为了一个Node。如果Scene中被激活的Light集合为空的话就会提供一个默认的Light。每个Light都带有一组受到影响的Node集合。如果受影响的Node集合为空的话,那么所有在Scene(或子场景(subscene))中的Node都会受到影响。如果父Node在受影响的Node集合中,则其所有的子Node也都会受到影响。

光线会与Shape3D对象的几何形状及其材质相互作用来提供渲染结果。目前有两种类型的光源:

● AmbientLight——一种看起来从四周照射过来的光源。

● PointLight——一种在空间中具有一个固定的点并且从其自身向四周均匀放射的光源。

例5-1展示了Light类的层级结构。

例5-1 Light类的层级结构

创建并使用Light

要创建点光源(Point Light)并将其添加到Scene中,请按照如下步骤:

使用下面的代码来将Light添加到Scene Graph中:

下面的代码行可以将Light旋转45度:

要移动lightGroup并且使Light随之移动,可以使用类似下面的代码:

setTranslateZ()方法设置了属性translateZ的值,在上面的样例代码中它被设置为了-75。这个值将会添加到任何由ObservableList和layoutZ所定义的变换之上。

例5-2展示了MSAAApp.java应用程序中的一个代码片段,它展示了如何使用PointLight API。

5-2 MSAAApp.java中使用PointLight API的代码片段

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/08/graphics_light/
百度已收录