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

Work list #1

Open
2 of 17 tasks
nspitko opened this issue Jul 12, 2022 · 0 comments
Open
2 of 17 tasks

Work list #1

nspitko opened this issue Jul 12, 2022 · 0 comments

Comments

@nspitko
Copy link
Owner

nspitko commented Jul 12, 2022

This issue will track short term work that needs to be done so people can quickly pick up tasks.

High priority

  • Fix HL
  • Clean up code style. C++ native code should match ozz code style, haxe-side functions should use haxe styling.

General

  • Model definitions are currently based off the sample. need to modify these to match Heaps more closely (255 bone limit, etc) and remove the "ozz sample" tagging. Then test importers and import new test model for sample
  • Need to check the FBX importer builds properly. This involves grabbing the FBX SDK and making sure the cmake file detects it properly and does all the right things. Should work?
  • Can we use github actions to automatically generate hdll and wasm files?

Native Extension

  • Memory ownership model needs to be looked at. Currently, skeletons and meshes can't be shared between models, resulting in significant amounts of over allocation and excessive reading. There may be other instances where memory ownership is bad.
  • Stop leaking memory. HL possibly fixed (needs testing), JS unknown.
  • Fix HL padding. There's probably a less dumb way to do what I'm doing, and it's allocating too much right now anyway.
  • Skin matrices get copied multiple times per frame, we should reduce this as much as possible. Ideally we would be able to copy straight to the shader and upload from there; this MIGHT be possible with shared memory?
  • Mesh and Model currently hang on to some buffers internally. Is this the right place to do this? Should they be moved to be owned by haxe?

Heaps integration

  • Currently meshes render all parts as one contiguous block. need to break this into parts for multi material to work I think?
  • Need to create fake joint objects so you can track and attach to bones at runtime. This probably involves pulling data out of the skinning matrices.
  • Sample heaps integration currently is a bare bones impl. Need a proper integration with heaps resource system (support .toModel(), etc)
  • Current model/mesh/prim layout probably needs cleaned up. Ownership model is weird, probably not very heaps-like. Look at how Library works with hmd models.
  • Fix it so we can actually cache and share model objects between instances.

Toolchain

  • Influences count needs to be fixed at 4 on the importer to match the skinning shader. Currently you can specify a maximum, but not a minimum.
  • Need to figure out a reasonable way to integrate with heaps resource system. Currently the tools will spit out separate files from a model, and require specifying a skeleton to export a mesh. FBX files should auto-generate _mesh, _skeleton, and animation exports for files with geometry, and just animation for files that only contain animation (No need to re-export these skeletons)
@nspitko nspitko pinned this issue Jul 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant