I'm a little confused about why the curves are "sampled" to update the joint transformations: ``` So if we are rendering 60 frames per second, we are basically doing the following 60 times a second: Sample all the curves you see on the graphs to get the orientation of each joint... ``` When the curves are "sampled", does that mean in a 60 fps animation, there are 60 timestep values t={t1, t2, ... t60} sampled from a…
Show HN: Visualizing the math that powers 3D character animation
31–40 of 55 posts
Re: Show HN: Visualizing the math that powers 3D character animation
#32AFAIK many games are using 3x4 bone matrices instead of 4x4. These matrices don't need projection component anyway i.e. 3x4 is enough.
This saves some bandwidth updating the constant buffer with them, also takes slightly less math instructions in the vertex shader.
Re: Show HN: Visualizing the math that powers 3D character animation
#33On the subject of quaternions, here is an article that pops up on HN from time to time. https://marctenbosch.com/quaternions/ It is called "Let's remove Quaternions from every 3D Engine". The author suggests replacing quaternions with rotors and geometric algebra. In 3D, the formulas are essentially the same, but framed differently. It makes some "surprising" properties more intuitive and is extensible to any number…
GA is more general than (and superior to) quaternions (the even subalgebra of G3). However, it requires a powerful type system and compiler to compile general GA expressions to something as efficient as quaternions. C++ won't cut it. You might be able to get clever by defining a special numerically indexed type for Gn or its even subalgebras; C++ could probably do that. But it wouldn't be as nice as fully generic GA.
Re: Show HN: Visualizing the math that powers 3D character animation
#34Nice work, but displaying the time evolution of individual quaternion components is about as intuitive of a visualization as displaying the time evolution of an individual pixel to visualize video compression...
Hahaha this is a fair comment. I guess my intention was to show the complex number crunching that happens in the background to make characters move. I'm still thinking about better ways to visualize things.
Re: Show HN: Visualizing the math that powers 3D character animation
#35Earlier quoted context omitted.
To be honest I don't see this as such a bad thing. Google Chrome has 70% of the browser market share, while Safari has 4%. I don't think there's anything wrong with prioritizing more popular platforms, specially when you just want to ship a project that you worked on in your spare time to learn new things.
Again, why I offered learning what was specific to Chrome and no longer using them for future projects. Yet more learning on top of the learning
Re: Show HN: Visualizing the math that powers 3D character animation
#36Cool project! AFAIK many games are using 3x4 bone matrices instead of 4x4. These matrices don't need projection component anyway i.e. 3x4 is enough. This saves some bandwidth updating the constant buffer with them, also takes slightly less math instructions in the vertex shader.
Re: Show HN: Visualizing the math that powers 3D character animation
#37I'm a little confused about why the curves are "sampled" to update the joint transformations: ``` So if we are rendering 60 frames per second, we are basically doing the following 60 times a second: Sample all the curves you see on the graphs to get the orientation of each joint... ``` When the curves are "sampled", does that mean in a 60 fps animation, there are 60 timestep values t={t1, t2, ... t60} sampled from a…
If everything goes to plan, you are sampling at 1/60, 2/60, etc.
But if the previous frame took a bit longer to render, you might be at a different time. What you want is the value for all of those curves at whatever time it is, not at some fixed time.
Re: Show HN: Visualizing the math that powers 3D character animation
#38On the subject of quaternions, here is an article that pops up on HN from time to time. https://marctenbosch.com/quaternions/ It is called "Let's remove Quaternions from every 3D Engine". The author suggests replacing quaternions with rotors and geometric algebra. In 3D, the formulas are essentially the same, but framed differently. It makes some "surprising" properties more intuitive and is extensible to any number…
GA is more general than (and superior to) quaternions (the even subalgebra of G3). However, it requires a powerful type system and compiler to compile general GA expressions to something as efficient as quaternions. C++ won't cut it. You might be able to get clever by defining a special numerically indexed type for Gn or its even subalgebras; C++ could probably do that. But it wouldn't be as nice as fully generic GA.
I'm far from good at math but the GA article linked above has this comparision of quaternion code vs rotor (GA) code
Re: Show HN: Visualizing the math that powers 3D character animation
#39Earlier quoted context omitted.
Again, why I offered learning what was specific to Chrome and no longer using them for future projects. Yet more learning on top of the learning
Despite using firefox and wantind cross browser projects I think the learning involved in browser compatibility is a LOT less interesting then about the math behind animation.
Re: Show HN: Visualizing the math that powers 3D character animation
#40Earlier quoted context omitted.
Given that Miegakure has been “coming soon” for over ten years (maybe the dev initially planned it as a 10-year-game, but if so I wish he would’ve said so when people asked when it was coming) I’m going to suggest putting a hold on deciding whether this way of reckoning rotations results in a better development process.
I don't anyone who took the 4D game concept further than him, there is no "better development process" yet. And if anything, I don't think the engine is the problem. He already shipped 4D toys, which I suspect is a way to monetize the devtools he made for Miegakure (nothing wrong with that). And even before that, the 4D was fine. But while it is nice having good 4D, turning it into an entertaining game with good grap…