gdamoreira / google-ar-asset-converter

Sceneform SDK command to generate SFB files
83 stars 19 forks source link

Converter 1.7.0 maybe flawed #16

Closed ManuelTS closed 5 years ago

ManuelTS commented 5 years ago

The following command on the 1.7.0 converter:

./converter fj1252.obj

fails with:

- Import failed with 4 errors:
-E: OBJ: failed to locate material mtl1, creating new material
-E: OBJ: vertex index out of range
-E: Unable to load scene: fj1252.obj
-E: OBJ: vertex index out of range
ERROR [third_party/lullaby/tools/model_pipeline/model_pipeline.cc:311] Unable to import model: fj1252
Error: Failed to import 'fj1252.obj'

The converter from 1.6.0 works as expected without errors. Other arguments do not play a role, I tested some of them. Workaround only use the converter from version 1.6.0 or below. This maybe a bug of 1.7.0, so feel free to close this issue as you please. The file is: fj1252.zip

ManuelTS commented 5 years ago

I posted as you see an issue https://github.com/google-ar/sceneform-android-sdk/issues/613, maybe the errors will be fixed in 1.8.0.

gdamoreira commented 5 years ago

Hi @ManuelTS sorry the delay for your response.

The 1.8.0 version was released and I updated this repo, please test again your obj file.

ManuelTS commented 5 years ago

No problem, as you see I have a similar tight schedule. Just for the protocol, the error persists on version 1.8.0. too.

ManuelTS commented 5 years ago

For the protocol, the converter of 1.9.0 with the fj file from my first post in this issue results again in:

- Import failed with 4 errors:
-E: OBJ: failed to locate material mtl1, creating new material
-E: OBJ: vertex index out of range
-E: Unable to load scene: fj1252.obj
-E: OBJ: vertex index out of range
ERROR [third_party/lullaby/tools/model_pipeline/model_pipeline.cc:311] Unable to import model: fj1252
Error: Failed to import 'fj1252.obj'
ManuelTS commented 5 years ago

For the protocol, the same error in the converter as posted in on 23 of March 2019 on ARCore 1.7.0 persists in ARCore 1.10.0 on the same file.

One would suspect there are some fixes of older, long bugs under the ARCore sun, especially due to the introduction of New Environmental HDR mode added to Light Estimation API. Unfortunately, that is not the case.

ManuelTS commented 5 years ago

For the protocol, converter and matc from version 1.11.0 result in the same error. And as an disclaimer, I will stop posting my file verification as my app is finished. Hopefully in the next two months.

gdamoreira commented 5 years ago

Hi @ManuelTS,

I have tested with new version 1.13.0 and the error persist.

BTW, I tested converting your .obj file to .glb file using: ModelConverter

And used this command to try the conversion: ./sceneform_sdk/mac/converter -a -d --mat ./sceneform_sdk/default_materials/gltf_material.sfm --outdir ./output/ ./input/fj1252.glb

It have worked. Have you tried something like that?

Hope this helps you.

ManuelTS commented 5 years ago

Thanks for your help, good to know that this works. No, I have not tried something like that but I can remain on 1.7.0 for my application. It is sad, since the newer ARCore and Sceneform versions have nice features and bugfixes.

The linked model converter can be used for single models. But as I see so far, not for several thousand ones as I need from the command line.

The application has to dwell on 1.7.0 unfortunately...

gdamoreira commented 5 years ago

Hi @ManuelTS,

you can use the default GLTF loader from sceneform, and using that you don't need to convert to SFB anymore.

There are some tools that you can convert all your .obj files to .glb files using command line. For example: obj2gltf

I hope this could be helpful.

Best regards.