[RESOLVED] Mobile material rendering issue on some mesh elements

Hi Epic/Community,

I’m trying to build a scene for use in the mobile renderer.

As you can see from the image attached, there are rendering issues.

The torso, limbs, face etc mesh elements are the problem candidates.

From the neck down, all the mesh element’s (neck, hands, torso, hips, legs, etc) material instances are instances of the same material, with no overriding properties.

The base material is a simple 2048x2048 pixel opaque diffuse layer, sourced from a .tga texture file.

I have tried applying the neck instance to other mesh elements (torso, hips, legs etc), but received the same result grey skewy results.

It is as if the mobile render does not like some mesh elements, for some reason.

I can currently think of the following causes for this issue:

  • The polygon make-up of these mesh elements could have some overlapping vertices in the problematic mesh elements.
  • A rendering resource of some kind was exhausted after rendering the neck and hands, leaving the rest as shown.

I receive a similar, but not exact, result when deploying to Firefox and an Android Nexus 5. I can provide screen grabs of these if needed.

I hope someone can help, with any ideas.

Thanks,

James

Could be caused by using in excess of the 75 skeletal mesh number of allowed bones…

I will try with less and keep you all updated on how it goes.

Hmmm, bone count <75 did not seem to make any difference.

To me, currently it looks like there is a limit for the number of polygons of a dynamic object/ animated mesh in the mobile renderer for raster textures to be applied properly.

If this is the case, I’d be super appreciate if anyone could tell me what that number is!

Thanks,
James

Hey Minixies -

The only limitation current for polygon count is referenced in our Mobile Game Development Guidelines, here, as:

“All mesh types can have up to 65k vertices due to the lack of 32 bit index support on mobile hardware.”

Hi Eric,

Thanks for getting to all my all my questions.

I’ve reduced the number of vertices down to 21073 on my dynamic object but I still have the same effect.

Given, when I reduce the same model down to a measly 3889 vertices, it is fine.

Both of these are obviously much less than the 65k vertices outlined in the documentation.

Do you know why this could be?

For example, could there be another contributing factor that could cause this issue (texture size, etc)

Thanks,
James

Also, I am not quite sure what “32 bit index support” is.

Perhaps my mesh has this, but the mobile renderer cant handle it, causing the above max vertices count?

Would there be a way to say reduce of remove this 32 bit indexing?

Sorry for sounding like an absolute noob right now. (This is something I have never come across, coming from the web development world :confused: )

Kind Regards,
James

Please, anyone?

Any ideas are much appreciated.

Regards,
James

Found out this is only an issue on skeletal meshes.

i.e, when I import the same figure as a static mesh (and the skeleton is subsequently omitted) then this issue is resolved.

Is there a smaller poly count on skeletal meshes?

Hey Minxies -

I am having a hard time reproducing this issue here, if possible could you share your Skeletal mesh, the FBX. If you would like to keep it private feel free to message me on the forums.

Thank You -

Eric Ketchum

Happy to share, here:

FYI:

This is a model exported from Daz3D as an 2013 FBX, then imported in to Maya 2014 just to export out as an FBX again (importing then exporting in Maya seems to iron out a few other issues). The bone count, to my knowledge, is below the 75 limit for mobile.

The FBX is a standard and unmodified Daz3D ‘Genesis 2 Female’ model with no additions (no hair, props etc)

I have tried with and without square texture materials (as above) The model comes with many that are not square (but this seems not to be the cause of the issue, as when I remove them completely and leave just a single square textures the issue persist)

I REALLY hope you can help! I would have thought this is quite a common issue, as I don’t believe I have done anything hacky. So I suspect and hope this will be of benefit to others too if resolved.

Thanks,

James

Updated with more information and manifested textures with the FBX (in the form of external .jpg images)

Just let me know if you would like me to embed the textures in to the FBX.

Otherwise, any texture should replicate the results above.

Hooray!

Found the solutions.

Turns out Daz3D characters have loads of mesh surface groups (mesh elements in UE4).

This was causing the issue.

As soon as I reduced them, all seems to be swell!

Hope this helps any, like myself, fledgling modeller.

I’m getting the same issue when I have skeletal meshes with more than 1 material on them. Mixamo fuse characters have 2 materials when you have clothing even with texture packing enabled. Does Daz3D support automatically putting all the textures into one element or are you doing it manualy?

Daz3D does support this!

Though the process is not entirely automatic and there are a few other prerequisite…

Firstly, you need to remove some bones (Daz3D models have too many for mobile renderer)

Then you use Daz3D Texture Atlas to combine all textures to 1 file (you will want to use a maximum of 2048px and make sure it is square, for mobile)

Then, in Daz3D, you will want to delete all surface groups, bar 1 or 2. UE4 can handle a few I have found, as long as subsequent materials applied to each surface group (AKA “Element” in UE4) are not textured materials.

Alpha transparency is also a bit of an issue, considering now you have only a couple of surface groups now. You will need to take your Texture Atlas in to photoshop and modify your mask texture accordingly.

When you do the tasks above in Daz3D, you may want to make sure that you dont save your Daz3D scene, or all the changes you made above will be baked in and are only reversible with the Daz3D undo.

Good luck! there are a few tediouse steps but it is possible.

Let me know if you would like any of the above expanding upon.

I figured out that I had to set each individual texture on the mixamo fuse character down to 512x512 for them to end up on a single 1024x1024 map. By default the skin is set to 2048x2048 so it wouldn’t pack with the clothing texture.