jMonkeyEngine / jMonkeyEngine/jmonkeyengine
IllegalStateException from software skinning with zero weights per vertex
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 4.3k
- Forks
- 1.2k
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 14
Description
@oxplay2 reported the following crash in SkinningControl (new animation system):
mar 14, 2020 9:56:14 AM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[main,5,main]
java.lang.IllegalStateException: Max weights per vert is incorrectly set!
at com.jme3.anim.SkinningControl.applySkinning(SkinningControl.java:464)
at com.jme3.anim.SkinningControl.softwareSkinUpdate(SkinningControl.java:446)
at com.jme3.anim.SkinningControl.controlRenderSoftware(SkinningControl.java:263)
at com.jme3.anim.SkinningControl.controlRender(SkinningControl.java:303)
at com.jme3.scene.control.AbstractControl.render(AbstractControl.java:118)
I'm guessing mesh.getMaxNumWeights() returned 0. He says the same scene renders fine with hardware skinning. Perhaps SkinningControl should simply skip over meshes without weights.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in SkinningControl.applySkinning() at line 464, then trace softwareSkinUpdate() and controlRenderSoftware(). Reproduce the zero-weight mesh case described in the report and compare it with hardware skinning. Done means software skinning no longer throws when a mesh has no vertex weights, with existing behavior preserved for weighted meshes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100