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。两者都在附录部分提供。