Skip to content
No description or website provided.
C# ShaderLab HLSL
Branch: master
Clone or download

Latest commit

Latest commit 419fdbc Jul 21, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Jul 21, 2019
Assets Merge branch 'master' into v0.2.3-dev Jun 1, 2017
ProjectSettings dev milestone commit Apr 4, 2017
.gitignore dev milestone commit Apr 4, 2017
LICENSE add license Jan 23, 2019 Update Jul 21, 2019
screenshot.gif readme Feb 15, 2017
screenshot2.gif readme Mar 11, 2017

GPUSkinning to improve performance.

v0.2.3 release


  • Animation Event

v0.2.2 release


  • Animation Blend

  • Level of Detail

  • Optimization

  • Crowd Example Scene

v0.2.1 release


  • Memory Optimization

  • Individual Difference Animation

  • GPU Instancing

  • Skinning Instancing

  • Root Bone Animation


  • Animation Blend

  • Level of Detail

v0.2 release


  • No hard-code.

  • Easier to use(editor tool).

  • Compatible with various animation types(legacy, generic, humanoid, animation).

  • New GPUSkinning api.


Experimental Version.This version is not for production use, just to verify feasibility of idea.

Record data of bone animation from Animation Component, customize GPUSkinning rather than Unity built-in.

4 Ways to implement:

  1. Compute bone hierarchy matrix of current frame in Application code -> push Matrix Array to GPU -> Skinning in Vertex Shader -> Next Frame(Goto first step)

  2. Compute bone hierarchy matrix of all frames -> Store all matrices into a Texture2D -> Skinning in Vertex Shader(Extract all matrices of current frame to skinning)(Using "additionalVertexStreams" to get individual animtion)

  3. Base on Way1 and Way2, Using GPU Instancing to get the minimum Batches, Using CullingGroup to implement Level of Detail to reduce triangle-rendering overhead.

  4. Compute bone hierarchy matrix of all frames -> Store data into a ComputeBuffer -> Skinning in ComputeShader(DirectX 11)




Adding a new feature that we can attach weapon to hand joint in this example.

You can’t perform that action at this time.