GPUSkinning
GPUSkinning copied to clipboard
GPUSkinning to improve performance.
v0.2.3 release
Features:
- Animation Event
v0.2.2 release
Features:
-
Animation Blend
-
Level of Detail
-
Optimization
-
Crowd Example Scene
v0.2.1 release
Features:
-
Memory Optimization
-
Individual Difference Animation
-
GPU Instancing
-
Skinning Instancing
-
Root Bone Animation
Deferred:
-
Animation Blend
-
Level of Detail
v0.2 release
Features:
-
No hard-code.
-
Easier to use(editor tool).
-
Compatible with various animation types(legacy, generic, humanoid, animation).
-
New GPUSkinning api.
v0.1-alpha
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:
-
Compute bone hierarchy matrix of current frame in Application code -> push Matrix Array to GPU -> Skinning in Vertex Shader -> Next Frame(Goto first step)
-
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)
-
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.
-
Compute bone hierarchy matrix of all frames -> Store data into a ComputeBuffer -> Skinning in ComputeShader(DirectX 11)
screenshot
Adding a new feature that we can attach weapon to hand joint in this example.
http://chengkehan.github.io/GPUSkinning.html
http://chengkehan.github.io/GPUSkinning2.html