jMonkeyEngine / jMonkeyEngine/jmonkeyengine
Cache and reuse VertexBuffers in MorphTarget
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 4.3k
- Forks
- 1.2k
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 14
Description
When the set of active morph targets changes often it keeps reuploading data to the GPU due to:
https://github.com/jMonkeyEngine/jmonkeyengine/blob/8ba6574ef6c2cba463e2f03a87263c4074466e10/jme3-core/src/main/java/com/jme3/anim/MorphControl.java#L313
Because MorphTarget holds FloatBuffers instead of VertexBuffers that could simply be bound instead of overwritten:
https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/scene/mesh/MorphTarget.java#L13
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 with the morph-target update path at jme3-core/src/main/java/com/jme3/anim/MorphControl.java around line 313, then inspect jme3-core/src/main/java/com/jme3/scene/mesh/MorphTarget.java. Trace how FloatBuffers are currently uploaded when active targets change and determine how reuse should avoid repeated GPU uploads. Done means changing active morph targets reuses cached VertexBuffers rather than reuploading the same data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- computer-graphics, game-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100