Skip to content
0:00 / 0:00

#opengl#assimp#skeletalanimation

Skeletal Animation Using Assimp - Part 1/5 // OpenGL Tutorial #24

OGLDEV

17K subscribers • 1 video on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Etay Meiri, creator of OGLDEV
  • Linked in the descriptionemeiri/ogldev

Intermediate. Assumes working knowledge.

38K views4 years ago2 recommendations

Graphics and audioGame developmentGame programmingRendering

Etay Meiri introduces the concepts of skeletal animation and demonstrates how to parse bone data using the Assimp library in OpenGL.

In this video we begin a mini series on implementing Skeletal Animation in OpenGL using Assimp. We will review the basic concepts and implement a simple utility to parse the data structures of Assimp in order to access the relevant parts for Skeletal Animation. In future videos we will develop this utility further and incorporate its logic into our OpenGL application. Learn how to load and render models using Assimp: youtu.be/sP_kiODC25Q The complete mini-series on Skeletal Animation: Part 1: youtu.be/r6Yv_mh79PI Part 2: youtu.be/pb6KZPaDBBY Part 3: youtu.be/2tHVDssmUko Part 4: youtu.be/SsVJP8Hh_gE Part 5: youtu.be/gnnoPaStVzg 🔥 See the list of the books that I'm using as background information for my tutorials: ogldev.org/books.html. I highly recommend them for learning more about OpenGL and Vulkan. These are affiliate links so if you use them to buy any of the books the price is the same for you and I will get a small commission (thank-you!). Make sure to watch all the previous tutorials in the "OpenGL For Beginners" playlist at youtube.com/playlist?list=PLA0dXqQjCx0S04ntJKUftl6OaOgsiwHjA Please visit ogldev.org to see more of my tutorials on modern OpenGL. Link to source: github.com/emeiri/ogldev/blob/master/tutorial24_youtube To get the version of the sources that was used in the video checkout the tag TUT_24_SKELETAL_ANIMATION_1. OpenGL 4.6 specification: khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf Timecodes Intro The human body The skin and skeleton Rigging, skinning and animating Heirarchy of bones Vertex weights Weights in Blender Bind Pose Animating The plan Assimp utility build script Start of assimp_sandbox.cpp review The aiScene structure Parsing the aiMesh structure The aiMesh structure Parsing the aiBone structure The first challenge Special thanks: Mohamed Hassan from Pixabay for the image pixabay.com/vectors/water-drink-body-human-hydration-5767178… KoolShooters from Pexels for the video pexels.com/video/a-flexible-woman-doing-yoga-8534996/ Hassas Arts from Pixabay for the video pixabay.com/videos/blood-vessels-human-body-vein-57691/ Samuel Chlpík from Pixabay for the video pixabay.com/videos/delorean-car-neon-retro-cyberpunk-54216/ Royal Skies from youtube for the videos "Character animation in 3 minutes" (youtube.com/watch?v=6Km2COZGYA0), "Blender 2.8 Animate Running In 2 Minutes!" (youtube.com/watch?v=qxoo_bcUZos) and "Animating complex motions" (youtube.com/watch?v=06_puGmTIko&list=PLZpDYt0cyiut1oZv6zyWgD…) 3DHaupt from youtube for the video “Rigged Robot Arms Blender-2.82a Version” (youtube.com/watch?v=gLH2l_Wz7Bg) Dillon Gu ("Blender" channel on youtube) for the videos "Rigging intro" (youtube.com/watch?v=-gIL6V

Why it's here

2 people recommend this

What people say. Recommended as a helpful tutorial series for implementing skeletal animation with Assimp and OpenGL.

u/atopuzovin r/GraphicsProgramming • Recommends

On “Metal-CPP?”

That is my next step :-) Assimp supports loading the bones/matrices/ etc. from the model. There is nothing metal cpp specific about it (eg. you load it using assimp and use whatver API you want), you just need to send the data to the GPU (eg. bone info, matrices etc.) I watched a few tutorials for OpenGL by https://ogldev.org/ (https://ogldev.org/www/tutorial38/tutorial38.html) (link to this video that cover skeletal animation. Just didn't have time to try and implement anything.

u/fgennariin r/GraphicsProgramming • Recommends

On “Too many bone weights? (Skeletal Animation Assimp)”

Each bone has a list of weights, where each weight is a vertex index and a floating-point value. If you have a high vertex density then you can easily end up with 5000 vertices influenced by a bone. Here are two tutorials I used to implement skeletal animation with Assimp: https://learnopengl.com/Model-Loading/Model And: [video I iterate over weights like this: for (unsigned i = 0; i < pBone->mNumWeights; i++) { aiVertexWeight const &vw(pBone->mWeightsi); unsigned const vertex_id(first_vertex_offset + vw.mVertexId); bone_data.vertex_to_bonesvertex_id.add(bone_id, vw.mWeight); }

u/fgennariin r/GraphicsProgramming • Recommends

On “Looking for help loading ASSIMP scenes with skinned meshes and animated bones correctly”

I saw this tutorial posted here a few months ago, maybe you will find it helpful: [video