Live data from Hacker News

Show HN: Visualizing the math that powers 3D character animation

diegomacario.github.io

31–40 of 55 posts

Re: Show HN: Visualizing the math that powers 3D character animation

#31
post #29

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…

https://en.wikipedia.org/wiki/Sampling_(signal_processing)

Re: Show HN: Visualizing the math that powers 3D character animation

#32
Cool 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

#33
post #23
post #4

On 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.

What do you mean by powerful type system and compiler? Do you mean an optimizing compiler that can eliminate the redundant zero terms when multiplying multivectors with many zero grades?

Re: Show HN: Visualizing the math that powers 3D character animation

#34

Nice 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.

Got it! I think you should also read up on dual quaternions for more mind-blowing math if you haven’t done so yet!

Re: Show HN: Visualizing the math that powers 3D character animation

#35

Earlier 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

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

#36

Cool 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.

More importantly one less uniform slot!

Re: Show HN: Visualizing the math that powers 3D character animation

#37
post #29

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…

Yes, sampling means ‘reading the value at a particular time’. Same sense as in signal processing.

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

#38
post #23
post #4

On 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.

for general GA yes but for the GA needed to replace quaternions in 3D?

I'm far from good at math but the GA article linked above has this comparision of quaternion code vs rotor (GA) code

https://marctenbosch.com/quaternions/code.htm

Re: Show HN: Visualizing the math that powers 3D character animation

#39

Earlier 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.

If one cannot take valid criticism when posting publicly their pet projects, then don't post publicly.

Re: Show HN: Visualizing the math that powers 3D character animation

#40
post #28
post #25

Earlier 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…

there's a minecraft-style 4d sandbox game, with a playable demo: https://store.steampowered.com/app/1941640/4D_Miner/
Post reply on HN