Как преобразовать FBX, созданный blender 2.8, в файл `g3db / g3dj`? - PullRequest
0 голосов
/ 08 октября 2019

Я пытался преобразовать простой куб с помощью libGDX FBX-Converter , но куб не отображается в моем игровом приложении.

Файл FBX создается с помощью blender 2.8

С другой стороны, если я создаю файл FBX с помощью blender 2.76, а затем преобразую его в файл g3dj, он успешно отображается.

Единственное отличие между рабочим и неработающим - это атрибутTEXCOORD0

здесь 2 g3dj файла, один из которых создан в blender 2.76, а другой - в blender 2.8

Это тот, который работает, FBX создан в blender2,76, а затем преобразуется в g3dj

{
    "version": [  0,   1], 
    "id": "", 
    "meshes": [
        {
            "attributes": ["POSITION", "NORMAL"], 
            "vertices": [
                -1.000000,  1.000000,  1.000000, -1.000000,  0.000000,  0.000000, 
                -1.000000,  1.000000, -1.000000, -1.000000,  0.000000,  0.000000, 
                -1.000000, -1.000000,  1.000000, -1.000000,  0.000000,  0.000000, 
                -1.000000, -1.000000, -1.000000, -1.000000,  0.000000,  0.000000, 
                 1.000000,  1.000000,  1.000000,  0.000000,  1.000000,  0.000000, 
                 1.000000,  1.000000, -1.000000,  0.000000,  1.000000,  0.000000, 
                -1.000000,  1.000000,  1.000000,  0.000000,  1.000000,  0.000000, 
                -1.000000,  1.000000, -1.000000,  0.000000,  1.000000,  0.000000, 
                 1.000000, -1.000000,  1.000000,  1.000000,  0.000000,  0.000000, 
                 1.000000, -1.000000, -1.000000,  1.000000,  0.000000,  0.000000, 
                 1.000000,  1.000000,  1.000000,  1.000000,  0.000000,  0.000000, 
                 1.000000,  1.000000, -1.000000,  1.000000,  0.000000,  0.000000, 
                -1.000000, -1.000000,  1.000000,  0.000000, -1.000000,  0.000000, 
                -1.000000, -1.000000, -1.000000,  0.000000, -1.000000,  0.000000, 
                 1.000000, -1.000000,  1.000000,  0.000000, -1.000000,  0.000000, 
                 1.000000, -1.000000, -1.000000,  0.000000, -1.000000,  0.000000, 
                 1.000000, -1.000000, -1.000000,  0.000000,  0.000000, -1.000000, 
                -1.000000, -1.000000, -1.000000,  0.000000,  0.000000, -1.000000, 
                 1.000000,  1.000000, -1.000000,  0.000000,  0.000000, -1.000000, 
                -1.000000,  1.000000, -1.000000,  0.000000,  0.000000, -1.000000, 
                -1.000000,  1.000000,  1.000000,  0.000000,  0.000000,  1.000000, 
                 1.000000, -1.000000,  1.000000,  0.000000,  0.000000,  1.000000, 
                 1.000000,  1.000000,  1.000000,  0.000000,  0.000000,  1.000000, 
                -1.000000, -1.000000,  1.000000,  0.000000,  0.000000,  1.000000
            ], 
            "parts": [
                {
                    "id": "Cube.002_part1", 
                    "type": "TRIANGLES", 
                    "indices": [
                          0,   1,   2,   2,   1,   3,   4,   5,   6,   6,   5,   7, 
                          8,   9,  10,  10,   9,  11,  12,  13,  14,  14,  13,  15, 
                         16,  17,  18,  17,  19,  18,  20,  21,  22,  21,  20,  23
                    ]
                }
            ]
        }
    ], 
    "materials": [
        {
            "id": "Material.005", 
            "ambient": [ 0.000000,  0.000000,  0.000000], 
            "diffuse": [ 0.800000,  0.800000,  0.800000], 
            "emissive": [ 0.800000,  0.800000,  0.800000], 
            "opacity":  1.000000, 
            "specular": [ 1.000000,  1.000000,  1.000000], 
            "shininess":  9.607843
        }
    ], 
    "nodes": [
        {
            "id": "Cube", 
            "rotation": [-0.707107, -0.000000,  0.000000,  0.707107], 
            "scale": [ 1.000000,  1.000000,  0.158538], 
            "parts": [
                {
                    "meshpartid": "Cube.002_part1", 
                    "materialid": "Material.005"
                }
            ]
        }
    ], 
    "animations": []
}

И это тот, который не работает, FBX создан с помощью Blender 2.8, а затем преобразован в g3dj

{
    "version": [  0,   1], 
    "id": "", 
    "meshes": [
        {
            "attributes": ["POSITION", "NORMAL", "TEXCOORD0"], 
            "vertices": [
                -1.000000,  1.000000,  1.000000, -1.000000,  0.000000,  0.000000,  0.625000,  0.750000, 
                -1.000000, -1.000000, -1.000000, -1.000000,  0.000000,  0.000000,  0.375000,  1.000000, 
                -1.000000, -1.000000,  1.000000, -1.000000,  0.000000,  0.000000,  0.625000,  1.000000, 
                -1.000000,  1.000000, -1.000000, -1.000000,  0.000000,  0.000000,  0.375000,  0.750000, 
                 1.000000,  1.000000,  1.000000,  0.000000,  1.000000,  0.000000,  0.625000,  0.500000, 
                -1.000000,  1.000000, -1.000000,  0.000000,  1.000000,  0.000000,  0.375000,  0.750000, 
                -1.000000,  1.000000,  1.000000,  0.000000,  1.000000,  0.000000,  0.625000,  0.750000, 
                 1.000000,  1.000000, -1.000000,  0.000000,  1.000000,  0.000000,  0.375000,  0.500000, 
                 1.000000, -1.000000,  1.000000,  1.000000,  0.000000,  0.000000,  0.625000,  0.250000, 
                 1.000000,  1.000000, -1.000000,  1.000000,  0.000000,  0.000000,  0.375000,  0.500000, 
                 1.000000,  1.000000,  1.000000,  1.000000,  0.000000,  0.000000,  0.625000,  0.500000, 
                 1.000000, -1.000000, -1.000000,  1.000000,  0.000000,  0.000000,  0.375000,  0.250000, 
                -1.000000, -1.000000,  1.000000,  0.000000, -1.000000,  0.000000,  0.625000,  0.000000, 
                 1.000000, -1.000000, -1.000000,  0.000000, -1.000000,  0.000000,  0.375000,  0.250000, 
                 1.000000, -1.000000,  1.000000,  0.000000, -1.000000,  0.000000,  0.625000,  0.250000, 
                -1.000000, -1.000000, -1.000000,  0.000000, -1.000000,  0.000000,  0.375000,  0.000000, 
                 1.000000, -1.000000, -1.000000,  0.000000,  0.000000, -1.000000,  0.375000,  0.250000, 
                -1.000000, -1.000000, -1.000000,  0.000000,  0.000000, -1.000000,  0.125000,  0.250000, 
                -1.000000,  1.000000, -1.000000,  0.000000,  0.000000, -1.000000,  0.125000,  0.500000, 
                 1.000000,  1.000000, -1.000000,  0.000000,  0.000000, -1.000000,  0.375000,  0.500000, 
                -1.000000,  1.000000,  1.000000,  0.000000,  0.000000,  1.000000,  0.875000,  0.500000, 
                -1.000000, -1.000000,  1.000000,  0.000000,  0.000000,  1.000000,  0.875000,  0.250000, 
                 1.000000,  1.000000,  1.000000,  0.000000,  0.000000,  1.000000,  0.625000,  0.500000, 
                 1.000000, -1.000000,  1.000000,  0.000000,  0.000000,  1.000000,  0.625000,  0.250000
            ], 
            "parts": [
                {
                    "id": "Cube.001_part1", 
                    "type": "TRIANGLES", 
                    "indices": [
                          0,   1,   2,   1,   0,   3,   4,   5,   6,   5,   4,   7, 
                          8,   9,  10,   9,   8,  11,  12,  13,  14,  13,  12,  15, 
                         16,  17,  18,  16,  18,  19,  20,  21,  22,  22,  21,  23
                    ]
                }
            ]
        }
    ], 
    "materials": [
        {
            "id": "Material.002", 
            "ambient": [ 0.050876,  0.050876,  0.050876], 
            "diffuse": [ 0.800000,  0.800000,  0.800000], 
            "emissive": [ 0.800000,  0.800000,  0.800000], 
            "opacity":  0.000000, 
            "specular": [ 0.800000,  0.800000,  0.800000], 
            "shininess":  25.000000
        }
    ], 
    "nodes": [
        {
            "id": "Cube", 
            "rotation": [-0.707107, -0.000000,  0.000000,  0.707107], 
            "scale": [ 1.000000,  1.000000,  0.081716], 
            "parts": [
                {
                    "meshpartid": "Cube.001_part1", 
                    "materialid": "Material.002", 
                    "uvMapping": [[]]
                }
            ]
        }
    ], 
    "animations": []
}

Так есть ли способ опустить этот атрибут в blender 2.8? или даже лучше, чтобы libgdx учитывал этот атрибут?

Я использую материал Diffuse BSDF в блендере 2.8

...