6 材料
本章介绍了JavaFX 3D图形库的Material类。
Material类包含一组渲染属性。 示例6-1显示了Material类的层次结构,PhongMaterial类是从Material类派生的子类。
示例6-1 Material类层次结构
java.lang.Object
javafx.scene.paint.Material (抽象)
javafx.scene.paint.PhongMaterial
PhongMaterial类提供了表示Phong着色材料的属性定义:
-
漫反射颜色
-
漫反射贴图
-
镜面贴图
-
镜面颜色
-
镜面功率
-
凹凸贴图或法线贴图
-
自发光贴图
材料可以在多个Shape3D节点之间共享。
示例6-2展示了如何创建PhongMaterial对象,设置其diffuseMap属性,并将材料用于形状。
示例6-2 使用材料
//创建材料
Material mat = new PhongMaterial();
Image diffuseMap = new Image("diffuseMap.png");
Image normalMap = new Image("normalMap.png");
// 设置材料属性
mat.setDiffuseMap(diffuseMap);
mat.setBumpMap(normalMap);
mat.setSpecularColor(Color.WHITE);
// 将材料用于形状
shape3d.setMaterial(mat);
MSAAApp.java应用程序和buildMolecule()方法展示了如何使用PhongMaterial API。两者都在附录部分提供。

