10 mins GameDev tips - Quaternions

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.ค. 2020
  • In this 10 mins GameDev tips we are going to explore Quaternions in an intuitive way. Don't expect deep math derivations. However after watching this video you should have a good mental picture on how they could help you dealing with rotations and orientations in your game projects. I will start by describing euler angles and their issues following by a visual example of how quaternions works (using blender). Then we are going to see different applications of them in C# using unity.
    Quaternions on wikipedia: www.wikiwand.com/en/Quaternion
    Complex numbers on wikipedia: www.wikiwand.com/en/Complex_n...
    3BlueOneBrown Visualizing quaternions: • Visualizing quaternion...
    Quaternions for computer graphics - J.Vince: www.amazon.com/Quaternions-Co...
    Ken Joy lecture: • Quaternions
    Unity Quaternions doc: docs.unity3d.com/ScriptRefere...
    Godot Quaternions doc: docs.godotengine.org/en/stabl...

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

  • @felipecarlin8540
    @felipecarlin8540 3 ปีที่แล้ว +250

    This is by far, the best explanation of quaternions on youtube. I can't believe youtube didn't recommend it to me!

    • @sociamix
      @sociamix  3 ปีที่แล้ว +9

      Thanks :)

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

      me too

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

      +1!

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

      Came down here to say the exact same thing. No other video has broken them down as "gently" and intuitively as this one!

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

      .... and I am here to agree with everyone that this is the best explination on TH-cam.

  • @CosmicComputer
    @CosmicComputer 3 ปีที่แล้ว +9

    Hands down the best overview of quaternions I’ve ever seen, thank you so much.

  • @JakeSidSmith
    @JakeSidSmith 3 ปีที่แล้ว +33

    I have read so many articles, and watched so many videos about quaternions, and nothing has helped me quite like this video. No crazy math equations or single letter/Latin variable names, just simple visual examples. Amazing stuff!
    There was something about the images/example at 5:00 that just suddenly made me get it. Thank you.

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

      Yeah, I think that is the closest I've come to understanding this concept.

  • @rockasstley7917
    @rockasstley7917 3 ปีที่แล้ว +6

    I am glad that I found this video! This is really pure gold for us beginners.

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

    Finally I feel like I undestand how rotations work, thank you so much, best and clearest video I have ever seen about quaternions

  • @souravdey1227
    @souravdey1227 3 ปีที่แล้ว

    The best explanation of quaternions till date. Crisp and clear.

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

    Like everyone else has said... this is the best explanation of Quaternions around. The guy is a fantastic tutor. Well done!

  • @dftpunk
    @dftpunk 7 หลายเดือนก่อน

    Can't believe I was struggling with quaternions and rotations for 2 weeks a month ago and have just got this video as proposed. Anyway, watch from the beginning till the end. Nice work. Thanks!

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

    Thanks! been working on circular motion for about a month and now I finally found the solution.

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

    Did not understand Quaternions at all until I found this video, and now I totally get it. Why no one figured out how to explain them as weights of other rotations till now is beyond me. This makes so much more sense than all the other math of how it's supposed to work.

  • @AC-mw3tz
    @AC-mw3tz ปีที่แล้ว

    Finally, and thanks to your explanations, I UNDERSTAND the quaternions. Thanks, man.

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

    Best explanation of Quaternions on TH-cam, glad I found it soon :)

  • @GoddamnSuperhero
    @GoddamnSuperhero 10 หลายเดือนก่อน +1

    Other people have said it, but yes this is the most intuitive explanation of quaternions I've ever seen. Very impressed. I've used quaternions without fully understanding what any one value truly meant, knowing roughly the scaling of spheres example from 3 blue 1 brown. Appreciate the insight.

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

    This is too important man! Thanks for sharing!!!

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

    After so many years, I finally understand it (The Teapot part helped!). Thanks!

  • @ivan_3578
    @ivan_3578 4 หลายเดือนก่อน

    Big thanks! You are the only one who said key thing about the difference between orientation and rotation!

  • @man9mj
    @man9mj 7 หลายเดือนก่อน

    after understanding the math of quaternions, this video cement the concept in a nice visual way. Excellent work!

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

    Great video.
    "Euler" is pronounced "oiler" btw.

  • @noumankhan167
    @noumankhan167 3 ปีที่แล้ว

    Amazing Explanation man , you cleared some of my doubts that I had for months

  • @HateSonneillon
    @HateSonneillon 3 ปีที่แล้ว

    Definitely the best explanation I have seen by far.

  • @jz9991z
    @jz9991z 7 หลายเดือนก่อน

    A extremely well explained video. Honestly this helped a lot

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

    Incredible video! Probably the simplest explanation on youtube

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

    the teapot explaination was really good, that alone made quaternions intuitive to understand

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

    I found what I was looking for at 9:14's example
    I like this, in the Unity answers and forum stuff, it's hard to tell where to put the code.
    With this example, it works basically anywhere, which is what I was wanting.
    I'm glad you made this video, it's really helpful. I'm going to edit this comment to see if it worked later. Have a good day!
    Edit: It worked! All I had to do was remove the asterisk, change the if condition to the event I wanted, and change the rotation to what I was wanting. Thank you so much for helping!

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

    I watched it 3 times today, to really get everything you say.
    After reading the chapter in "Game Engine Architectures" I was a little depressed, because it got complicated very quickly through all the detailed mathmatical examples.
    But I think, now I can try to read it again!
    You have made a great introduction, with many visual examples, great job!

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

    Knowing that you can multiply quaternions with vectors saved me. Thanks!

  • @chenni8759
    @chenni8759 3 ปีที่แล้ว

    Amazing! Very well explained, thank you so much!

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

    I really like how you explained somthing really complicated simply

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

    Wow very cool video! Quaternions makes sense now

  • @MerkMD
    @MerkMD 6 หลายเดือนก่อน

    I watched so many video try to understand Quaternion, this vid is the only one so far that make me understand.

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

    That's something I really needed thanks a lot man

  • @AndresJesse
    @AndresJesse 3 ปีที่แล้ว

    Excellent! Clear as crystal! thanks!

  • @Kaiymu
    @Kaiymu 8 หลายเดือนก่อน

    Purée merci. Ça fais des années que j'ai du mal à saisir les quaternions ! C'était très clair !

  • @p3dee
    @p3dee 8 หลายเดือนก่อน

    It's simple to understand. Thanks for a great explanation.

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

    Best video on quaternions ever!

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

    Best explanation out there. Thank you man!

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

    Great explanation!

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

    good explanation, now I know what to expect from quaternions

  • @RemiStorms
    @RemiStorms 3 ปีที่แล้ว

    Excelent video on Quaternions !!!

  • @nofacee94
    @nofacee94 6 หลายเดือนก่อน

    Finally, a clear explanation.

  • @sundarakrishnann8242
    @sundarakrishnann8242 3 ปีที่แล้ว

    Amazing video! Thank you so much!

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

    Great explanation!!

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

    Great video! Thank you

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

    Excellent explanation!

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

    Mais c'est que c'est très intéressant tout ça, merci, j'en redemande

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

    great video. now, time to put this knowledge to work!

  • @lucasloisance9566
    @lucasloisance9566 3 ปีที่แล้ว

    Merci beaucoup, tu as illuminé mon esprit :)

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

    This is extremely helpful!

  • @josephmorales652
    @josephmorales652 3 ปีที่แล้ว

    Incredible video!

  • @JoostKiens
    @JoostKiens 3 ปีที่แล้ว

    Really good explanation! 🙏

  • @crogersdev
    @crogersdev 3 ปีที่แล้ว

    Great explanation! Thank you so much. If you're in France, next time I go there I owe you a chilled Orangina.

  • @31618doremi
    @31618doremi ปีที่แล้ว

    best explanation ever!

  • @SwayamVaza-qr8vs
    @SwayamVaza-qr8vs 14 วันที่ผ่านมา

    Wow that was really cool 👍

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

    Exellent video!

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

    Merci infiniment, je pensait pas que j'allais si bien comprendre, comme quoi quand on à le bon prof c'est beaucoup plus facile^^

  • @mz00956
    @mz00956 3 ปีที่แล้ว

    Thank you so much. I never understood them until now.😅

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

    This is pur gold!!!

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

    I cried after watching this. Thank you.

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

    ima have to save this one, thanks

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

    Thank you so much. Still not getting my head around it completely but have the feeling to understand much more than ever before now.
    Want to understand this since I tried to simulate a crane in unity and totally messed it up using Eulers 🙈

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

    Thanks mate!

  • @graphic-nations
    @graphic-nations 3 ปีที่แล้ว

    thank you its amazing

  • @luckyyo7287
    @luckyyo7287 3 ปีที่แล้ว

    good course!thanks

  • @enjoybro4515
    @enjoybro4515 3 ปีที่แล้ว

    thanks so much it help me a lot

  • @ctobi707
    @ctobi707 3 ปีที่แล้ว

    THANK YOU THANK YOU THANK YOU great video i finally understand this witchcraft

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

    The last one, the quaternion multiplication seems to be the answer to a camera rotating around an object or a point!

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

    merci beaucoup sociamix 👌👌

  • @f3rn4n2x3str3ll4
    @f3rn4n2x3str3ll4 3 ปีที่แล้ว

    BEST! Thanks!

  • @graphic-nations
    @graphic-nations 3 ปีที่แล้ว

    amazing thank you

  • @tejasbele1456
    @tejasbele1456 3 ปีที่แล้ว

    Thank you so much

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

    Thanks!

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

    You are a genius!

  • @qbytez5006
    @qbytez5006 3 ปีที่แล้ว

    Thank you!

  • @akshay3538
    @akshay3538 3 ปีที่แล้ว +7

    this is very well explained, Thank you

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

      Thx :)

  • @Jono1982
    @Jono1982 3 ปีที่แล้ว

    extremely useful please make more tutorials

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

    amazing..other quaternion explanations are nonsense until you watch this video....its shows how they must have been derived from a real world application..not the other way around

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

    I really lost the passion for game dev because I don't understand how quaternions work and how to use them, thanks a lot I hope u do more examples on quaternions use cases in unity

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

    great video, thanks a lot. and maybe you know this already, but Euler is pronounced "oiler"/"oy-ler" not "yooler"

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

      It's an accent.

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

      @@legendfpv It's a common mispronunciation, among people of all accents. "Euler" looks like it should be "yoo-ler," similar to "Ferris Bueller." But it's actually "oiler," like "someone who oils."

  • @charlieblank3393
    @charlieblank3393 11 หลายเดือนก่อน

    I searched for basically this EXACT video for ages and NOW it pops up in my recommended and I don't even need a degree in physics? Crazy.

  • @user-kg9hw6jv2g
    @user-kg9hw6jv2g 3 ปีที่แล้ว

    thank you) best French English ever)

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

    It’s hard for me to understand deeply this concept ( mainly speak French) but this is the most clear video on quaternions over TH-cam. For a school project, we want to simulate the rotation of the moon around the Earth by using Python, quaternions and maybe Blender but idk if it’s gonna work. Do you think it could be achievable?

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

      You definitely can use Unity. Yes I replied one year late. Sorry about that.

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

    I owe you my life

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

    Very Good explanation, But in last slide will be good to add that qB*qA*VectorA qA*qB*VectorA AND qB*qA*VectorA that means - the VectorA rotate on qA and after rotate on qB
    PS> !!! The relation between length Video and Volume of information is the Best (... and very good links *3BlueOneBrown* )

  • @danielhancock4992
    @danielhancock4992 3 ปีที่แล้ว

    Nice

  • @theman7050
    @theman7050 10 หลายเดือนก่อน

    Thank you very m7ch for making sense and not making just another rocket science video about euler and quart. I wonder why other tubers lack this basic IQ that If you are "teaching" something technical on youtube, you have to begin from the ground up and treat your audience like 5 year olds and I am sure a majority of viewers are changing profession and dont have scientific background. Goshh

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

    Coming from Euler rotation like many others I guess the hardest part to get in my head is that xyz are not representing an axis. If quaternions would use abcd instead it might be easier to grasp from the start.

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

    a good video always comes after i complete a project on that topic, your video would have saved me at least 10 daysand also all the frustration, that how da frik was unity so smooth and not arduino (arduino was stoopid, I still don't know the solution, it works tho)

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

    In short. Thank You very much.

  • @user-hc2mh5lt5p
    @user-hc2mh5lt5p 8 หลายเดือนก่อน

    I wonder that, When match two random coordinate system, it is needed to maximum two normal rotation with two axis vector. but some quaternion (especially multiplication of two rotation quaternion made from each axis/angle) can do match them.
    I think and wonder combined quaternion has ability that apply two rotation to vector in parallel.
    it is like spinning top in axis is rotated in axis.

  • @lukay6230
    @lukay6230 3 ปีที่แล้ว

    other tutorials were overwhelming me with 4th dimension, but based on this, I think its simply vector XYZ and W is resting vector "importance"? I may not undertsand it well, but I understand it more after this video

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

      Pretty much. The w component is a weighted scalar 1, which just says how much to _not_ rotate. 4 dimensional visualization is absolutely not required. Once you accept that quaternions are fundamentally 3D objects despite having 4 components, then you can begin to understand how they relate to complex numbers as well as other hypercomplex systems (like the dual-quaternions, which have 8 components, but still ultimately represent 3D rotations in addition to translations). In the complex number a + bi, a is just how much to not rotate, and b is how much to rotate around the origin. It's not really a vector at all much like how a quaternion isn't really a 4D vector.

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

    3Blue1Browns interactive videos state that quaternion rotation is double covered. Which would mean that your statement at 5:40 is wrong.

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

      You are correct. There are two ways to reach any given orientation: clockwise or counterclockwise. Ultimately there's not really a difference when just doing the full rotation, but the difference matters a lot when interpolating, since the choice of target quaternion determines whether you take the short route or the long route.
      It's also important in quantum mechanics since as strange as spin-1/2 particles are claimed to be, quaternions themselves are also effectively spin-1/2 themselves.

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

    great video. Im wondering how to code flight simulator where player can Pitch (rotation on X), can Roll (rotation on Z) and can also Yawn (rotation on Y) .. imagining XY as screen axis and Z axis perpendicular to screen).
    Imagine if player simultaneous press key to Pitchdown (10 deg) and also press key to roll (30 deg), my understanding is to have simple a orientation quaternion (initially player looking into z with no roll and no yawn so initial Orientation = Quaternion Euler( 0,0,0); now my struggle is how to represent the 2 movements since order maters right ? thanks so much

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

    Thank you) Make more content, you have great videos , but long delay between videos :) Good luck

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

    4:03 so what if we always rotate with respect to x,y,z axis and not rotate with respect to object itself.

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

    the euler rotation system is based on a parenting structure , e.g. X > y > z ....this is the part i don't understand: why a child - parent structure is necessary in euler system? why can't the 3 axes be able to rotate independently in euler system? what's the catch?

  • @alexmattyou
    @alexmattyou 3 ปีที่แล้ว

    Thankyou for the video, I know that you're Blender and Panda3d user by your models

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

    How to set rotation to desired x y z values by code

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

    I have two irrelevant questions:
    1. What is the name of the bgm song?
    2. Where I can find the open source of arrow prefab?
    Btw, thank you very much for the easy explanation!

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

    Very good video.
    I though i was being smart to get around gimbals lock by defining 2 Quaternions that rotate around x and y axis and multiply them together. But if i remember matrix math i would know that multiplication order matters and i am back in gimbal lock depending on multiplication order.

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

    Hi, i'm confusing about transform.postion = quaternion.euler(0,90,0)*diretion. how is it working