PDA

View Full Version : Is there a shortcut to fixing this error when converting .fbx from Blender2.8?



janathan
January 28th, 2021, 03:57 PM
- <kuid:140046:102671> : Error, T2544: FindInvalidDataProcess fails on mesh uvcoords: All vectors are identical
- <kuid:140046:102671> : Error, T2544: Failed to compute tangents; need UV data in channel0

I can't submit the train because of this error!

Apparently, this error means that some object within the mesh hasn't been properly unwrapped, but I have no idea which of the hundreds of meshes are causing it, or even WHICH mesh is causing it.

Since this is no simple building, but in fact a train, and since the error won't specify which main mesh and which mesh within which main mesh is triggering the error, it means I have to go to the lod0 mesh and look through:
2 cones

four-hundred-bloody-fifty-one cubes:eek:
Two-hundred-bloody-fifteen cylinders:eek:
11 planes
and 2 sphears.

Then I'll have to go to the lod1 mesh and search through:
407 cubes:eek:
8 cylinders
12 planes and 2 sphears

Then I have to go to the lod2 mesh and search through:
73 cubes and 8 cylinders

Then I have to go to the lod3 mesh and search through:
6 cubes and 7 cylinders

Then I have to go to both the left and right doors.

Are you kidding me?! I enjoyed making the train, but I'm very disinterested in the idea of painstakingly combing through hundreds of sub meshes aimlessly looking for the magic unwrapped face that's triggering the error. Please tell me there's a shortcut to finding the mesh in question.

Also, please create a system that automatically unwraps wrapped faces, as I greatly detest this error.:n:

This is a replica of the SEPTA Silverliner IV.

janathan
January 29th, 2021, 03:20 PM
Update. I loaded one lod at a time and now know that the problem is not with lod3, lod2, or lod1, but with lod0 (and possible the passenger doors). The problem is, none of the meshes in lod0 have any obviously noticeable texture issues, so I don't even know where to begin with this. All of them appear to be unwrapped. At this rate, it'll take me three times as long as it took me to make the train, just to find the source of the error message that's blocking me from submitting the train. I'm extremely frustrated as I've literally wasted several hours just searching for a seemingly minor error that's so unnoticeable, I can't even find it when LOOKING for it. I'm so mentally drained by this error. I really wish it would let me submit the mesh, so I could SEE what it looks like in-game and make the judgement myself if it's worth fixing. It it's something that's so hidden, I, the creator can't find it when looking at it from literally any angle, there's no point in fixing it.

janathan
January 29th, 2021, 04:59 PM
Update #2: I managed to find the problem. It was the passenger doors and the doors in the vestibules of the train. Still wish I didn't have to waste a whole day looking for them, though.

edh6
January 29th, 2021, 05:42 PM
I think this error can happen if you have zero area faces in your model, they're easy to add in accidentally. Easiest way to get rid of them is to select all meshes, enter edit mode, select all geometry, then select Mesh > Clean Up > Degenerate Dissolve. I do this to every model before exporting as it seems to help avoid errors and make sure that meshes appear as expected.

janathan
January 29th, 2021, 07:24 PM
Alright, I'll try that next time

pcas1986
January 29th, 2021, 07:57 PM
In my experience those incorrectly unwrapped meshes will be one 0,0,0 coordinate in the bottom left hand corner of the UV Editor. So, you might select several meshes at once, open them in the UV Editor tab and look for any dots lurking in that corner.

I've had this problem when importing meshes but don't know why it should be so. It's also irritating if you actually intended the UVs to be collapsed so as to use a single pixel on a shared map.

hutten
June 10th, 2021, 02:43 PM
Hello,

The same problem for me in Blender 2.83. Even though I have pinned down some of the mesh(es) that give this error upon submitting the complete asset in TRS2019 (4.7), I cannot find their shortcomings. Relatively small meshes (ca 90 vertices), doubles removed, no degenerate stuff, unwrapped onto a single UV-map, one material (actually PBR with parameters- and normal maps, but that is why is turned to 2.8 anyway). Full triangulation. I tried joining with another mesh, but no luck.
I am stuck.
This has worked well the "old way" (Blender 2.79 and .im files) with apparently no visible defects.
I don't know how to proceed. Try 2.93?

Paul

pcas1986
June 10th, 2021, 05:44 PM
...
This has worked well the "old way" (Blender 2.79 and .im files) with apparently no visible defects.
I don't know how to proceed. Try 2.93?

Paul

2.93LTS might work but I doubt it. Rereading what EDH6 said earlier about "zero area faces" reminded me of the IM exporter check for "faceless faces" that I think are the same thing. i.e. 3 vertices that cannot form a face because of close proximity to each other.

I would try:
Exporting the mesh as FBX.
Downloading Blender 2.79 again if you don't have it. Reinstall the Trainz exporter if required.
Import the FBX file into 2.79
Fix up the material errors and there will be some. Just add a notex material.
Export as IM and look for any "faceless faces" errors.

I tend to keep my meshes as separate parts but export as a whole. If such problems come up then I can easily drop parts from the export until I discover what part is causing the issue.

hutten
June 11th, 2021, 04:06 AM
Hello Paul,

Thanks for your answer. I will import the FBX in 2.79. I still have that, I actually have 4 versions of Blender installed... (I found out that it is important to have separate directories for the temporary files!).
Like you, I have 100+ meshes that together form the main body of a railcar. And that is exactly what I did, export only some of them to find the culprit. It turned out, however, that there are many small meshes that generate the nasty error(s).

I tested an older asset that worked when I first experimented with PBR-FBX two years ago. It will not compile now! That gave me an idea, and yes, I have found a way to get around the problem. The solution is compiling in build 4.6 (SP1) instead of 4.7. The same errors appear, but the one that prevents compilation is only a warning. In 4.6, the trainzmesh-files and the animation files are nicely generated. I do not have 4.8 installed, so I do not know what would happen there. For the moment, I will keep my SP1 in working condition.

Regards,
Paul

pcas1986
June 11th, 2021, 04:20 AM
I'd be interested in the result of your tests. There is some python code in the original XML/IM exporter that could be extracted and re-used in a Blender addon to perform some checks prior to export to FBX. Unfortunately, we lost that checking on moving to a standard FBX export.

This, and other similar issues with Blender FBX, keep appearing in the forums or the Discord channels.

afe_uy
June 11th, 2021, 09:18 AM
I see that I am not alone ...
For two weeks I have been stuck with my first export in FBX precisely because of this annoying error ...
I`m use Blender 2.79...
The only clue I had so far was that if elements overlap in the UV map, problems appear, so I was trying to correct the Unwrap, but now I see that build 4.7 appears as a possible culprit ... and I now have 4.8 . We will investigate ...

hutten
June 11th, 2021, 03:49 PM
Hello,

Thanks for all your comments. Of course, errors point to shortcomings in the meshes. I want to find the causes, even though SP1 is less critical.
Paul (pcas1986), I have followed your recommendations. I started with the LOD0 mesh. The removal of any degenerate structures (Blender 2.83: Edit Mode / Mesh / Clean up / Degenerate dissolve) removed some errors, but not all of them. I loaded the fbx-file in 2.79 and exported as .im. There were no messages about "surfaceless polygons". None at all. I looked for "surfaceless polygons" in the Object tab for every mesh as well; there were none. But it was helpful, for in the same tab I found that some meshes had more than one UV-map. In Blender 2.83 I removed the superfluous one(s) and that removed some more errors upon compilation. It would be good to know how those additional maps crept in. I think it is through appending objects form other Blender files. I will be alert in the future. Still some errors remained. After some testing I found those to be due to non-unwrapped items, a point at (0,0) like you pointed out. I did not see those points before when I put the whole LOD0 collection in edit mode. They went unnoticed due to the fact that some items (e.g. windows) had been unwrapped over the whole UV-map area, obscuring the lone points at the origin.
The LOD0 mesh is OK now in SP2, but I still have to work on the other LODs.
I hope these observations can be of help to others.

Regards,
Paul

pcas1986
June 11th, 2021, 06:39 PM
The "faceless faces" aka "surfaceless polygons" would show up in the Vertex Group if any exist. I think a warning appears as well.

Importing meshes will import their UV map(s) if they exist. It may also import any materials as well which can be a problem. If you then combine or join the imported mesh with another then I suspect part of the mesh will have mapping and previously unmapped meshes will put all their vertices at 0,0.

Trainz doesn't seem to handle multiple UV maps at all. For a game engine it doesn't make much sense but for developing within Blender multiple UV maps can have their uses.

I tend to build my assets in stages and export meshes as scenery assets often with dummy materials. That way I can spot issues early and not have to wade through dozens of meshes looking for problems.

Currently, I'm using Blender 2.93LTS because it is long term support and probably stable. But I also have 2.79 for IM purposes only.

hutten
June 12th, 2021, 06:56 AM
Hello Paul,

Yes it is in the Vertex Groups, that is exactly where I looked for them. I use vertex groups myself, so that is one of the few things I know within the thousands of features that I do not use...

I can add to my previous report that all the remaining errors in the LODs have been resolved by full triangulation of all the meshes. Of course, I do not know which one of the meshes actually caused the problem.
Export of meshes in stages for testing is a very good idea, as long as the export-import cycle does not have better messaging and debugging facilities.

Regards,
Paul

pcas1986
June 12th, 2021, 07:53 AM
... Of course, I do not know which one of the meshes actually caused the problem....

That sounds familiar. :D

hutten
June 12th, 2021, 04:59 PM
Hello,

Now that I have overcome some hurdles, I keep on experimenting. I am not happy with the results. I use the method indicated on the m.pbrmetal page of the Trainz Wiki, but I keep on getting materials that are too metallic. Even though I use a completely black alpha channel in the parameters file and I make all the connections the way they are depicted on the aforementioned page. Then I changed some of those connections, but the fbx file produced by Blender remains the same.

Now I wonder: is it at all possible to generate the proper files and setting for the application of PBR materials with Blender only?
Or do I need an add-on like those mentioned in another thread here about a year ago?

I also found that materials do not have nicely continuous reflections, even though the mesh is really smooth(ed) and does not have multiple vertices or edges at the triangle boundaries.
The result in Trainz is such that, especially on partly metallic surfaces, one clearly sees the triangles on some parts of the model. Really poor, no such problems with the old method, .im files with some % of skybox texture added.

Thanks for any advice.

Regards
Paul

pcas1986
June 12th, 2021, 06:57 PM
This is getting off topic so perhaps you should start another thread. You may need to adjust the roughness levels as well.

Blender has a few PBR painting addons that Cayden and MSGSapper have addressed. You may want to consider the Ravage, BPainter and LayerPainter Blender addons. There are two processes: the creation of the PBR material in Blender and then the baking of those materials out to the file formats required by Trainz.