Rig MeshInstance3D quad, transparent material details sometimes invisible/barely visible

Godot Version

4.3

Question

I made this 3D, 2D quad faces rig in blender and imported it to godot (as .glb) + added some basic character controlling and animation controlling, some of the faces (which are now MesInstance3D’s) of which are quite small, and have small details on their material albedo texture.

You’ll notice in the gif that some of these are either barely visible or look clipped, depending on the orientation (Like the right eye), occasionally invisible (Like the glasses which seem to disappear depending on orientation and character position), or completely invisible (The character Is meant to have some details in it’s feet, they’re actually there but they’re just so thin you just can’t see them).

How can I fix this? For starters I tried disabling LOD’s in .glb import settings, that didn’t do it.

I guess an easy solution would be making these details thicker, yet the right eye is quite thick already and still affected by this. The right eye has a considerable separation from the head face by the way.


Animation

Not sure, maybe try one of these:

  • disable mipmap generation for the textures you import
  • make sure the meshes are not to close too each other (z-fighting - game does not know which surface should be rendered in foreground and they flicker if they’re too close to each other). The camera3D also has a setting “Near”, but I’m not sure if this can decrease z-fighting if you increase the value. The tooltip only mentions it might increase z-fighting if you lower the setting.

What do your texture import settings look like?

1 Like

@trizZzle It does look like a mipmap issue (visually)
I don’t think it’s z fighting, the separation is quite notable and done on purpose precisely to avoid this sort of thing. I’m using a phantom (which by the way is jittery af) camera so I believe the main camera is being locked from editing (In regards to “Near” property)

I import these rigs straight from blender so the import settings are the following (for all pieces):



(already tried disabling LOD’s as I mentioned).

You can also extract the materials so you can actually edit them in godot… It’s posible I could do that just for the problematic materials, there may be some useful setting in there (I’ll look into it).

Are there any other configs somewhere you’d suggest checking out?

Some more things I thought of:

  • In the materials set filter to something without mipmap (maybe nearest in your case?)
  • Import texture with compress mode “Lossless”. This should help with smaller details and give sharper lines.
    image
1 Like

How are you not hiding some objects, what is your set up to keep the pieces ordered? Is your turning animation from blender? Could you flatten your character into one mesh and texture?

Mipmaps on their own will not degrade the texture, Godot marks 3D textures as imported “VRam compressed” which does degrade quality, you can enable “High quality” in the same texture import settings to reduce this effect or use “VRam uncompressed”/“Lossless” to remove this destructive compression entirely.

@gertkeno
Cool questions.

How are you not hiding some objects
I do hide some objects, there’s actually a bunch more faces I switch to and from through code evaluations.

what is your set up to keep the pieces ordered
I do it Paper Mario TTYD style, which is very simple, just discenter each face piece in the Y axis in blender (it also gives the model a nice “volume”).

Is your turning animation from blender
Right now I’m rotating the rig and flipping it through:
skeleton_3d.rotation.y and skeleton_3d.scale.z
I understand this could be causing the issues with the glasses and the right eye, but not with the shoe details (which are not even seen in the gif).
Edit: actually no, this most likely has nothing to do with it, since the glasses can disappear even when the rig isn’t flipped.

Could you flatten your character into one mesh and texture
I probably could but I don’t want to :frowning: Edit: actually one mesh and texture would mean switching to sprites / onion animation, so no…

most likely a z far/near issue, if you are having trouble with phantom camera it’s worth replacing, I haven’t found the plugin all that useful; it’s not too hard to make a follow camera for multiple targets.

1 Like

For reference for anyone having the same issue, I came back to this today and exported all of the materials from my blender rig .glb import.

This is done by double clicking the imported .glb, and then clicking the top left Actions...> Extract Materials.

Once extracted you have more control over them, (but I ended up incrementing my export by around 200KB…, I guess it’s the price to pay).

Then for the problematic .tresmaterials (which are usually materials with small resolution details) I go to Sampling > Filter and select Nearest. As suggested by @trizZzle

This makes the specific graphics a bit sharper, but removes the sort of visibility issues I describe in this thread.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.