- Notifications
You must be signed in to change notification settings - Fork228
License
chengkehan/GPUSkinning
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Features:
- Animation Event
Features:
Animation Blend
Level of Detail
Optimization
Crowd Example Scene
Features:
Memory Optimization
Individual Difference Animation
GPU Instancing
Skinning Instancing
Root Bone Animation
Deferred:
Animation Blend
Level of Detail
Features:
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:
Compute bone hierarchy matrix of current frame in Application code -> pushMatrix Array to GPU -> Skinning in Vertex Shader -> Next Frame(Goto first step)
Compute bone hierarchy matrix of all frames -> Store all matrices into aTexture2D -> Skinning in Vertex Shader(Extract all matrices of current frame to skinning)(Using"additionalVertexStreams" to get individual animtion)
Base on Way1 and Way2, UsingGPU Instancing to get the minimum Batches, UsingCullingGroup to implementLevel of Detail to reduce triangle-rendering overhead.
Compute bone hierarchy matrix of all frames -> Store data into aComputeBuffer -> 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