Practical sessions
There are some additions you could make to the code:
- Add “Programmable Vertex Pulling” to the code.
With Programmable Vertex Pulling, the vertex data will no longer be pushed by using a vertex buffer. Instead, the vertex data will be uploaded to a UBO or SSBO to the GPU, and the vertex shader is used to extract all the data for every vertex from that buffer.
- Move
mix()
andslerp()
fromAssimpAnimChannel
to the GPU.
When the two data values for the timings of translation, rotation, and scaling have been extracted from the channel vector, a linear interpolation for translation and scaling and a SLERP for rotation are required. Both interpolation types are called thousands of items per frame – maybe the GPU is faster.
- Blend between two animations in a compute shader.
This task is similar to the previous practical session. But, instead of doing the interpolation between the animation keys...