我不太确定问题出现在哪里。在Blender中,我的模型看起来像这样:
我已经将所有内容进行了UV映射等处理——蓝色高亮边缘来自于透明的.png纹理。以下是节点编辑器: 现在根据LibGDX的推荐,当我导出为.fbx格式时,我使用以下设置: 但是当我通过fbx-convert运行它并生成我的g3dj文件时,材质会显示如下:"materials": [
{
"id": "blue_wireframe_glow",
"ambient": [ 0.200000, 0.200000, 0.200000],
"diffuse": [ 0.800000, 0.800000, 0.800000],
"emissive": [ 0.000000, 0.000000, 0.000000],
"opacity": 0.000000,
"specular": [ 0.200000, 0.200000, 0.200000],
"shininess": 20.000000
}
],
即使将不透明度更改为1.0,也看不到任何图像纹理。我还需要做些什么才能让图像纹理出现在g3dj文件中吗?在Blender中,我是附加错误的还是怎样?如果有影响的话,我使用的是Blender Cycles。我还将图像文件放在与我的项目中的g3dj文件相同的文件夹中。以下是我用来加载它的代码:
modelBatch = new ModelBatch();
modelLoader = new G3dModelLoader(new JsonReader());
heatExchangerModel = modelLoader.loadModel(Gdx.files.internal("models/heat_exchanger.g3dj"));
modelInstance = new ModelInstance(heatExchangerModel);
当我在我的桌面Java应用程序中查看它时,即使我在g3dj文件中手动将不透明度设置为1.0,它仍然只出现为黑色模型没有纹理。不确定我哪里错了 - 有任何想法吗?
编辑:我读了更多的内容,发现Blender Cycles无法将其材质导出到FBX(不确定是否正确?或者至少只能很基本的材质),并尝试使用Blender Render进行,成功使纹理加载,但是与Blender渲染出来的模型还是有些不同。
能否指点一下如何在libGDX中正确处理材质?我应该从头开始编写自己的材质吗?我觉得这样在Blender中完成所有工作,然后再导出可能不是我应该做的方式。