LibGDX fbx导出不显示图像纹理—;显示为黑色

LibGDX fbx导出不显示图像纹理—;显示为黑色,libgdx,blender,fbx,Libgdx,Blender,Fbx,不太清楚问题发生在哪里。我有一个模型在Blender中看起来像这样: 我有所有的UV贴图等等-蓝色突出显示的边缘来自一个透明的.png纹理。以下是节点编辑器: 现在,当我按照LibGDX建议导出到.fbx时,我使用以下设置: 但当我通过fbx convert运行它并生成我的g3dj文件时,材质显示如下: "materials": [ { "id": "blue_wireframe_glow", "ambient": [ 0.200000, 0.2

不太清楚问题发生在哪里。我有一个模型在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文件?我是不是把它装错了,还是搅拌机里有什么东西?如果有关系的话,我用的是搅拌机循环。我还将图像文件与我项目中的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中完成这一切,然后导出可能不是我应该做的方式。

看起来很酷的着色器shanling

我会在这里尝试一些东西。首先,将您的FBX导出为ASCII格式。看看你是否能从那里找到你的文件路径。我敢打赌它在fbx->g3dj进程之前就消失了

其次,我认为使用节点构建着色器可能会使FBX导出器失效。Blender非常棒,但它仍然是开源的,并且存在缺陷。(其他软件包也是如此,但没有公司会承认!)尝试在shader builder窗格中构建相同的着色器,看看是否有帮助

否则,您只需要在libGDX中重建着色器。要么用Java编写代码。或者,我打赌你可以修改你的g3dj,将文件路径作为一个发射贴图

例如:这是我的g3dj文件的一部分,我在其中添加了法线贴图。我想把类型改成“发射”或“发射”。在那之后你应该开始做生意

"materials": [
            {
                "id": "background", 
                "ambient": [ 0.000000,  0.000000,  0.000000], 
                "diffuse": [ 0.800000,  0.800000,  0.800000], 
                "emissive": [ 0.800000,  0.800000,  0.800000], 
                "opacity":  1.000000, 
                "reflection": [ 0.100000,  0.100000,  0.100000],
                "shininess":  65.098038, 
                "textures": [
                    {
                        "id": "Texture.005", 
                        "filename": "carbonClr.png", 
                        "type": "DIFFUSE"
                    },
                    {
                        "id": "Texture.006", 
                        "filename": "carbonNormal.png", 
                        "type": "NORMAL"
                    }
                ]
            }
        ]       

希望有帮助

谢谢你的回复,肖恩。在稍微修改它之后,使用旧的渲染引擎和菜单面板进行导出。我希望他们能很快得到Cycles node editor导出的支持!:-(感谢您的帮助!如何将g3dj文件转换为g3db。Libgdx似乎只加载g3dbfiles@Lunatikul我不知道如何进行转换。但是如果你有原始文件(OBJ或FBX),您可以使用fbx conv转换为g3dj或gd3b。fbx和OBJ不包含纹理链接,它只有网格。我可以手动将纹理链接添加到g3dj