Advanced OpenGL Tutorial - Skeletal Animations with Assimp

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 ก.ย. 2024

ความคิดเห็น • 95

  • @OGLDEV
    @OGLDEV 2 ปีที่แล้ว +118

    Big thanks to the freeCodeCamp team for publishing my tutorial!

    • @juffler463
      @juffler463 2 ปีที่แล้ว +5

      I am your big fan

    • @juffler463
      @juffler463 2 ปีที่แล้ว +2

      I wanna follow your cource but I don't have have enough specifications to run Visual Studio but no worry I'll learn by watching you tutorials

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +3

      @@juffler463 :-)

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +3

      @@juffler463 You can use a more lightweight editor like sublime but you will need a compiler anyway. You can apply the same build/link commands to any build script or makefile.

    • @juffler463
      @juffler463 2 ปีที่แล้ว +3

      @@OGLDEV I got it

  • @tronophono913
    @tronophono913 2 ปีที่แล้ว +15

    I love this. never thought I would learn so much about actually doing animation stuff in opengl. Always saw it as so overwhelming and I was right it sure is. This tutorial makes it easy to digest. Will come back to it for deeper following.

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +2

      Glad to hear you liked it :-)

  • @maverikmiller6746
    @maverikmiller6746 9 หลายเดือนก่อน +3

    Man, you guys are really doing God's work. God bless you all.

  • @ArtVandelayInc
    @ArtVandelayInc 2 ปีที่แล้ว +11

    To be able to access such tutorials like these is just phenomenal! Plus we learned that there is a TH-cam channel called OGLDEV which has great videos to learn OpenGL from. Thank you for this precious service to the community. You probably touched millions of people's lives by now

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +2

      Thank you :-)

  • @MrAer85
    @MrAer85 2 ปีที่แล้ว +11

    I am having a euphoric moment. Too much awesome useful courses!

  • @xiaohualiang1590
    @xiaohualiang1590 2 หลายเดือนก่อน

    感谢大佬的课程,thanks very much !

  • @MudassirKhan-sx9jy
    @MudassirKhan-sx9jy 2 ปีที่แล้ว +16

    it means that linear algebra being taught in my course is not a waste of time.

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +11

      Definitely not a waste of time.

    • @obinator9065
      @obinator9065 2 ปีที่แล้ว +4

      LA isn't uncommon in algorithmic problems too; I'd say that calculus isn't as interesting to us CS students.

  • @davidos533
    @davidos533 2 ปีที่แล้ว

    Omg, wonderful
    In the past i can only imagine this knowledge

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน

      Thanks!

  • @thehambone1454
    @thehambone1454 2 ปีที่แล้ว +2

    This is gold.

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน +1

      Thanks!

  • @hackerculture7391
    @hackerculture7391 2 ปีที่แล้ว +3

    This is incredible!

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +1

      Thank you!

  • @chibimentor
    @chibimentor 2 ปีที่แล้ว +6

    Thanks!

    • @quincylarsonmusic
      @quincylarsonmusic 2 ปีที่แล้ว

      Hey, thanks for your support, Gabriel. Have a fun day, and happy coding.

  • @garrettcourtney8887
    @garrettcourtney8887 10 หลายเดือนก่อน +2

    Great video! Quick question, can a bone ever reference vertices from two different meshes when going through the weights?

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน +1

      No, each mesh provides it's own bone information and the vertex ID in the mesh references the mesh vertices.

    • @garrettcourtney8887
      @garrettcourtney8887 9 หลายเดือนก่อน

      @@OGLDEV Oo okay got it, thank you!

    • @garrettcourtney8887
      @garrettcourtney8887 9 หลายเดือนก่อน

      Just to clarify, does that mean every mesh in boblambclean needs an array of bones? Or can I store the bones in one array and pass that to the shader?

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน

      @@garrettcourtney8887It's an implementation detail. In my case I put the vertices/indices of all meshes into a single vertex/index buffer and the transformation matrices for all the bones across all meshes are stored in a single uniform array which is passed once to the shader. This allows me to submit a draw call per mesh (which is selected using a base vertex/index) and change materials per mesh. A somewhat simpler alternative is to create a vertex/index buffer pair per mesh and a dedicated transformation array for the bones of each mesh. But this means that between meshes you need to bind the respective buffers and update the bone array in the shader.

  • @davyjetson
    @davyjetson 2 ปีที่แล้ว +6

    Definitely some AI behind this page 😭😭😭
    Cause ain’t no way this just came out as I’m searching for it 🤔🤔🤔
    🤯👆🏿

  • @tiagocerqueira2388
    @tiagocerqueira2388 2 ปีที่แล้ว +1

    I love you guys.

  • @paradigmshift528
    @paradigmshift528 2 ปีที่แล้ว +2

    Fifth and proud of it 🏃⚡

  • @surferriness
    @surferriness ปีที่แล้ว

    Please double check the links in the description.
    Tutorial 18 (linked) is about cameras. Only at around Tutorial 25 comes object loading, but way different than here

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน

      Maybe I'm missing something but the 'Loading models using Assimp' takes me to the correct location on github. Is that what you meant?

  • @mytubecha201
    @mytubecha201 2 ปีที่แล้ว +2

    Great video and helpfull.

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +1

      Thank you!

  • @StarContract
    @StarContract 2 ปีที่แล้ว +2

    nice

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +2

      Thank you

  • @Eclipso619
    @Eclipso619 2 ปีที่แล้ว +1

    🤘🔥🤘

  • @saplay3372
    @saplay3372 2 ปีที่แล้ว +1

    Great video

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว

      Thanks!

  • @mr.tesseract6854
    @mr.tesseract6854 2 ปีที่แล้ว +2

    Haha nice 👍

  • @ahmadyaseen4106
    @ahmadyaseen4106 2 ปีที่แล้ว +1

  •  2 ปีที่แล้ว +1

    Thank you so much

  • @nerijusvilcinskas7851
    @nerijusvilcinskas7851 ปีที่แล้ว +1

    Does anyone know why my ivec4 vertex shader attribute representing bone IDs could have weird numbers, like very big integer numbers, but on CPU side buffer looks alright and have numbers. Is this related to use of glVertexAttribIPointer maybe?

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน

      Have you been able to solve this problem?

    • @nerijusvilcinskas7851
      @nerijusvilcinskas7851 9 หลายเดือนก่อน

      @@OGLDEV I think I did indeed, but I can't remember now :/ I sort of gave up on my engine for now after working on it for a year

    • @OGLDEV
      @OGLDEV 9 หลายเดือนก่อน

      @@nerijusvilcinskas7851 OK 😞

  • @md.samiuddin7019
    @md.samiuddin7019 2 ปีที่แล้ว +2

    Hey thanks sir for this good tutorial, can you plz help with some tutorials on Cypress for testing using Typescript on pom model..

  • @limesborderline-indiegame995
    @limesborderline-indiegame995 2 ปีที่แล้ว +1

    Thank you very much for your work.
    I watch your ogldev tutorial all the time. Bone import from Blender is garbled. How to fix the offset matrix?

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +1

      Thanks! What is the source of the model?

    • @limesborderline-indiegame995
      @limesborderline-indiegame995 2 ปีที่แล้ว

      ​@@OGLDEV I make the model in Blender. I export it to FBX. After importing the Assimp offset matrix changes to the opposite Y axis. I flip the offset matrix 180 degrees. But this is shamanism. Because importing FBX from Maya or other editors will be distorted.

    • @limesborderline-indiegame995
      @limesborderline-indiegame995 2 ปีที่แล้ว

      I'm talking about skeletal animation.

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว

      @@limesborderline-indiegame995 The default in Blender is Z goes forward and Y goes up. When you export you have an option to configure Y and Z. Play with these until you get it right.

    • @limesborderline-indiegame995
      @limesborderline-indiegame995 2 ปีที่แล้ว +1

      ​@@OGLDEV Thanks for your reply and attention. Assimp also has RootNode->mMetaData data. Through them, you can somehow transform FBX.

  • @thecommentermaker
    @thecommentermaker 2 ปีที่แล้ว

    36:32 sjputouts royal skies

  • @doyouknow4530
    @doyouknow4530 2 ปีที่แล้ว

    Please do Catia

  • @thanospl471diganaoamuie6
    @thanospl471diganaoamuie6 2 ปีที่แล้ว +1

    Up

  • @barserdal6731
    @barserdal6731 2 ปีที่แล้ว +1

    i want to learn English can you help me?

    • @user-sj8us4uh1e
      @user-sj8us4uh1e 2 ปีที่แล้ว

      Thanks for watching
      Don't forget to hit the Subscription button
      whatsaP±𝟺𝟺𝟽𝟹𝟿𝟷𝟹𝟶𝟹𝟽𝟸𝟹 more inFormation available ✅

    • @Zakaria_sfc
      @Zakaria_sfc 2 ปีที่แล้ว

      +1

  • @charlesselrachski34
    @charlesselrachski34 2 ปีที่แล้ว

    can you do same tutorial but with same code merged into godot ?

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +1

      I'm not familiar with godot so this will require some research. I'll add this to my list and I hopefully I'll be able to get it done.

    • @topbakka3321
      @topbakka3321 2 ปีที่แล้ว

      @@OGLDEV please i will greatly appreciate it

  • @VishalGupta-lg5vn
    @VishalGupta-lg5vn 2 ปีที่แล้ว +1

    which software is this

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +3

      The code is in C++ and uses OpenGL as the graphics API and the Assimp library for loading models. I'm using Visual Studio on Windows and on Linux you can use whatever environment is most comfortable to you.

  • @Axile3D
    @Axile3D 2 ปีที่แล้ว

    why not Vulkan still OpenGL

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +4

      I hope to do a series on Vulkan as well but it requires significant effort and I still haven't found the time for it. However, programming in Vulkan is much more difficult and even people who want to develop game engines should probably get their hands dirty with a simpler API first.

    • @Axile3D
      @Axile3D 2 ปีที่แล้ว

      @@OGLDEV yeah, and they can learn GLSL, also used in Vulkan

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว +2

      @@Axile3D Right. I think the main challenge in Vulkan is that you need to replace the work of the driver in so many ways. The benefit of course is performance. So the target audience is people who already have experience in 3D and are willing to put in the effort in order to gain an increase in performance.

  • @williambchoang8487
    @williambchoang8487 2 ปีที่แล้ว +2

    psl do tensorflow for c/c++
    PLS!!!!

  • @riju1956
    @riju1956 2 ปีที่แล้ว

    can u pls make a course on Microprocessor for passing college sems

  • @dhananjaygola4786
    @dhananjaygola4786 2 ปีที่แล้ว

    Hey, could you make a tutorial on gStreamer ? will be very grateful

  • @Harsha_9920
    @Harsha_9920 2 ปีที่แล้ว +3

    2nd

  • @househome805
    @househome805 2 ปีที่แล้ว +3

    I'm second

  • @ProEfootballGaming550
    @ProEfootballGaming550 2 ปีที่แล้ว +1

    Second

  • @a-rustacean
    @a-rustacean 2 ปีที่แล้ว +1

    First

  • @mrCetus
    @mrCetus 2 ปีที่แล้ว +1

    I love this. never thought I would learn so much about actually doing animation stuff in opengl. Always saw it as so overwhelming and I was right it sure is. This tutorial makes it easy to digest. Will come back to it for deeper following.

    • @OGLDEV
      @OGLDEV 2 ปีที่แล้ว

      Thank you :-)