This repo will house various experiments on using web techologies to auto skinning 3D meshes. The process requires heavy number crunching, so this process uses the GPU to execute several compute shaders the produce the final vertex bone indices & weights. To start, its using raw WebGL over a Three.JS GL Context to execute all the compute shaders. Most of the steps use GPGPU & Data Textures for computations as there is a need for random read access which can only be done using texture lookups. The rest uses TransformFeedback and GL buffers for computations & data storage.
Ultimately, the purpose of this repo is for prototyping one of the building blocks for creating a web application similar to Adobe's Mixamo. If an app is able to use the user's GPU for the heavy lifting, then there is no need to have a backend service to perform that process. Couple this with IK Animation retargeting thats already prototyped, its quite possible to build a mixamo clone that runs everything on the front end.
Source Code : https://github.com/sketchpunklabs/autoskinning
WebGL ( ThreeJS ) Prototypes
|
WebGPU Prototypes
|