jMonkeyEngine / jMonkeyEngine/jmonkeyengine

IllegalStateException from software skinning with zero weights per vertex

Open
#1,309 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Contribution welcome Needs investigation
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.