Java 3D导入obj模型后颜色显示 出错显示白色,或者笔记本电脑显示彩色,但是台式机仍为白色
代码问题
首先,确保代码中编辑了给模型导入颜色
//function:读取.obj文件,并将其添加到Shape3D节点中
ObjectFile OBJfile = new ObjectFile();
Scene scene = null;
try {
scene = OBJfile.load(filePath);//filePath是要导入的obj文件路径
} catch (FileNotFoundException e) {
System.err.println(e);
} catch (ParsingErrorException e) {
System.err.println(e);
} catch (IncorrectFormatException e) {
System.err.println(e);
}
Shape3D modelShape3D = new Shape3D();
modelShape3D.duplicateNode(scene.getSceneGroup().getChild(0), false);
modelShape3D.setCapability(Shape3D.ALLOW_APPEARANCE_WRITE);
Appearance app = modelShape3D.getAppearance();
app.setCapability(Appearance.ALLOW_MATERIAL_WRITE);
app.setCapability(Appearance.ALLOW_TRANSPARENCY_ATTRIBUTES_READ);
app.setCapability(Appearance.ALLOW_TRANSPARENCY_ATTRIBUTES_WRITE);
//note 设置模型的颜色
Material mat = app.getMaterial();
Color3f tempcolor=new Color3f(1.0,1.0,1.0);
mat.setDiffuseColor(tempcolor);
mat.setCapability(Material.ALLOW_COMPONENT_WRITE);
文件问题
obj文件出错了,不是实体文件,java3D识别不到,默认白色。
解决:
1.打开SolidWorks,文件-打开-找到obj文件-打开方式选择ScanTo3D网格文件
2.另存为obj文件
如果找不到ScanTo3D,先在SolidWorks插件中找到ScanTo3D并打开