Godot: Moving from GLES3 to GLES2 glitches some models

Created on 13 Oct 2020  路  7Comments  路  Source: godotengine/godot

Godot version:
Godot 3.2.3 Stable Standard x64

OS/device including version:
Android, mainly I'm testing in Google Pixel 2 (Emulated), But I also tested on the following: Asus ROG(Emulated), Samsung Galaxy A01(Real) Nexus 7 (Real), Moto g7 (Real), LG Q6 alpha (Real)

Issue description:
I created a 3d game for PC using GLES3, very low poly, I was going for a PSX look. I want to make the port to mobile, and in order to get better performance I switched to GLES2 that version of the project, most of it is good but lower quality just like I expected but there's 2 models, that are glitched out.

This is how they're suppose to look:
Screenshot_71

This is how they look on every mobile device I tested:
Screenshot_72

Steps to reproduce:

I uploaded a simple project, with the models that are glitching, I'm not sure what I'm doing wrong, You just need add the android build yourself since I can't upload the whole project beacause it would be around 77mb, and then export to android and you'll see the issue once you open the app in a phone, real or simulated it's the same issue.

Glitched models.zip

Thanks everyone I hope you guys can help me find a solution, I'm thinking this may have something to do with how GLES2 handles bones or animations, because nothing else in the real game is broken, just this 2 and are the ones with animations and bones.

bug rendering

All 7 comments

Skinning is handled in a different way in GLES2. See https://github.com/godotengine/godot/pull/40313 which attempted to fix this, but there are regressions which need to be fixed.

Skinning is handled in a different way in GLES2. See #40313 which attempted to fix this, but there are regressions which need to be fixed.

Sorry I'm not getting this, Is there like an setting I need to turn on to enable software skinning? Im sorry to bother.

@gamedevboi As far as I know, there's no way to configure skinning using a setting (when using GLES2 at least). You'll have to wait for a fix to land in 3.2.4 or a later point release.

Ohh, thank you! I hope this issue can be solved soon. :)

@gamedevboi As far as I know, there's no way to configure skinning using a setting (when using GLES2 at least). You'll have to wait for a fix to land in 3.2.4 or a later point release.
Oh gotcha! Thanks I hope this issue can be solved soon! :)

This looks like a bug in one of the hardware skinning paths.

You will be able to get around it by changing a project setting to forcing software skinning once the regressions are sorted, however it is not ideal because software skinning is intended as a backup path, with the defaults this same situation could still glitch for other developers.

I would normally suspect precision in the shader, but you say it is occurring on emulators which normally have full precision. For the emulators : what platform / OS / emulator are you running?

We may be delayed at looking at this until the software skinning regressions are fixed.

I'm using memu as emulator and usually I emulate a google pixel 2 tablet with the most recent android available, I think it's 7.1.2 atm, at least that's what the tablet says. Mmmm, it may be stupid for me to ask, but how you change that setting forcing software skinning? I can't find where can I change that to just try and see what happens

It's not possible to do yet in 3.2.3, software skinning has only just been merged into 3.2 branch, and there are still some regressions to fix. Should be available in 3.2.4... there will be betas quite soon I'm sure.

Was this page helpful?
0 / 5 - 0 ratings