Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mesh with blendshapes flickers explosion shapes when there exists other mesh instance #61533

Open
Tracked by #63198
FancyToday opened this issue May 30, 2022 · 9 comments

Comments

@FancyToday
Copy link

FancyToday commented May 30, 2022

Godot version

3.4.2stable and 3.5beta

System information

Windows10, i7-1165G7, Intel(R) Iris(R) Xe Graphics, GLES3

Issue description

After importing a glb model into a scene, if the model has multiple mesh instances and at least one mesh instance has blendshapes than the scene will continuously flicker explode fragment shapes.
To avoid this problem, either to turn off the visiblility of mesh with blendshapes or to turn off all the other mesh instances.
May strongly related to the hardware because we don't have this problem on other types of GPU platforms.

  1. Normal( in other PC with HD520)
    image
  2. display abnormal in the running window
    bug_when_running

Steps to reproduce

Import a glb model with multiple mesh instances and at least one of the mesh instances has blendshapes into a scene.
And rotate or zoom it in the scene.

Minimal reproduction project

Later I will upload...

@Calinou
Copy link
Member

Calinou commented May 30, 2022

@FancyToday Please upload a minimal reproduction project to make this easier to troubleshoot.

May strongly related to the hardware because we don't have this problem on other types of GPU platforms.

What GPUs did you test this with?

@smix8
Copy link
Contributor

smix8 commented May 30, 2022

There are two everylasting issues with blendshape meshes and shared instances or mesh resource threaded loading in Godot 3.x so might be one of the two.

a) blendshape values are not (re)set properly when the mesh joins the scene, happens constantly with threading, result is that mesh explodes. You can try to (hard)reset all blendvalues to e.g. 0.0 in a script and see if this solves the issue.

b) mesh is shared with other instances and not made unique / local to scene. This is not a bug just how Godot roles with blendshapes. As soon as two instances have different blendvalues corruption sets in. You can try to duplicate / local_to_scene the mesh for each instance and see if this solves the issue.

@JDMeta
Copy link

JDMeta commented Jun 2, 2022

There are two everylasting issues with blendshape meshes and shared instances or mesh resource threaded loading in Godot 3.x so might be one of the two.

a) blendshape values are not (re)set properly when the mesh joins the scene, happens constantly with threading, result is that mesh explodes. You can try to (hard)reset all blendvalues to e.g. 0.0 in a script and see if this solves the issue.

b) mesh is shared with other instances and not made unique / local to scene. This is not a bug just how Godot roles with blendshapes. As soon as two instances have different blendvalues corruption sets in. You can try to duplicate / local_to_scene the mesh for each instance and see if this solves the issue.

a) I have tried to set the blendvalue to 0 but the problem is still there.
func _ready(): $Armature/Skeleton/Head.set("blend_shapes/EyeBlink_L", 0)
b)Tried to make all mesh instance local_to_scene, but it is still not working.
Please take a look at this problem on GPU Intel(R) Iris(R) Xe Graphics if available because we don't have this problem on other GPU for now.

@JDMeta
Copy link

JDMeta commented Jun 2, 2022

@FancyToday Please upload a minimal reproduction project to make this easier to troubleshoot.

May strongly related to the hardware because we don't have this problem on other types of GPU platforms.

What GPUs did you test this with?

Intel(R) Iris(R) Xe Graphics

@JDMeta
Copy link

JDMeta commented Jun 9, 2022

Can you reproduce this problem on certain GPU? Please take a look at this issue. It is really important to our project. Thank you!

@Calinou
Copy link
Member

Calinou commented Jun 9, 2022

Can you reproduce this problem on certain GPU? Please take a look at this issue. It is really important to our project. Thank you!

Sorry, most contributors (myself included) don't have access to this GPU. This will take a while to be fixed, if ever. Switching to the GLES2 renderer may alleviate this issue.

There's also no minimal reproduction project uploaded yet, and no way for anyone to reproduce this issue locally on a specified project.

@yuhuixu1993
Copy link

Can you reproduce this problem on certain GPU? Please take a look at this issue. It is really important to our project. Thank you!

Sorry, most contributors (myself included) don't have access to this GPU. This will take a while to be fixed, if ever. Switching to the GLES2 renderer may alleviate this issue.

There's also no minimal reproduction project uploaded yet, and no way for anyone to reproduce this issue locally on a specified project.

I came up with the similar problem. Intel(R) Iris(R) Xe Graphics, such GPU is quite popular in windows laptops. Hoping solutions to this issue!

@JDMeta
Copy link

JDMeta commented Jun 10, 2022

Can you reproduce this problem on certain GPU? Please take a look at this issue. It is really important to our project. Thank you!

Sorry, most contributors (myself included) don't have access to this GPU. This will take a while to be fixed, if ever. Switching to the GLES2 renderer may alleviate this issue.

There's also no minimal reproduction project uploaded yet, and no way for anyone to reproduce this issue locally on a specified project.

GLES2 is OK but our project needs GLES3. We will upload minimal project ASAP. Thanks!

@MJacred
Copy link
Contributor

MJacred commented Jul 19, 2022

Switching to the GLES2 renderer may alleviate this issue.

According to the documentation, blendshapes are not supported in GLES2: https://docs.godotengine.org/en/stable/tutorials/rendering/gles2_gles3_differences.html#blend-shapes.

Or are the docs outdated?

EDIT: ok, the docs are outdated: #48480; opened a PR to update docs: godotengine/godot-docs#5954

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants