No tags yet.
Sorry to post another thread right away
The more I learn about rigging the more I'm revisiting mathematics...
Some stuff I can remember, but most of my mathematical skills are super rusty.
I assume many of you have bachelors of science and tons of knowledge with mathematics, right?
I have a BFA and I'm working on my MFA, which means I've spent most of my time drawing and painting.
What would be a good way to relearn that stuff?
What areas of mathematics is good for rigging? Geometry, function or just everything?
Do you guys have trouble sometimes? If so, where do you go find the answers?
I'm rereading spline function and it's freaking hard
Thanks!
It's good to know your matrices, but unless you are going to write some low level code, most of the time you can get away with very little math
Hi Javier. Can I call you Goosh?
Thanks. I'm gonna take a look at Matrices.
Unrelated question:
At Dreamworks, do you write any scripts or you just use the rigging tools that they have? Or both?
Thanks.
Goosh is good
At DreamWorks we do a lot of both. It's a different way of working, so it's hard to compare it with Maya or other systems.
We have a rigging tool and we mainly use that, but we can also edit files directly in an editor (which we do a lot of)
Then if we don't have specific tools, we script them. But then we have then and can either use them in the rigging tool or via a text editor.
We have a lot of freedom
Vector math can be very helpful in some rigging situations as well. Matrices will always get to the core of anything you do in 3D since that's how all of our object info is stored. But when it comes to surface manipulation I think a solid founding in vector math can take you a long ways. If you're looking for a place to start out that's immediately relevant to 3D you should check out Bobo's DVD, The Matrix Explained. https://www.cg-academy.net/es_catalog/product_info.php?products_id=48 I can vouch for it's excellence, and after going through it still turn to it first for reference.
As for where to turn when running into troubles. I can't speak for anyone but myself, but I always turn to documentation first(Maya/Max help files to read up on my problem), then rigging and technical artist forums if that doesn't cut it, many of them have awesome community built around them with people that are happy to help out.
That DVD looks interesting!
I'm learning Maya right now, so how much could I apply the DVD content to Maya?
I shall study Vector math from now on
Thanks Guys.
There are a few things that may be more particular to 3ds Max, but the theory and how he applies the math is applicable when working with anything in 3d space, Maya, Max, Blender, really anything. He does a great job at covering the foundation of Vector and Matrix math as well as really going into detail on them.
Hey Dimitri,
I'm just reading this book called "3D Math Primer for Graphics and game development" by Fletcher Dunn and Ian Parberry and it's just what i've been looking for. I've read loads of stuff on MEL and Python, but this really helps to explain the fundamentals behind 3d packages and bridges the gap between programming and the program. It details vectors, matrices, quarternion math etc and applies this to C++ - which isn't a language I have really looked at yet (i've heard its quite complicated) but can be applied to Python and MEL.
Hope this helps
GB
"how much math does a rigger need to know" a great question, without an easy answer. It really depends. I could be a lot better at all kinds of Math. In a group/school/company there's always someone smarter than you who is usually willing to help. For example, find the programmers who are into art and show them some cool stuff and have them help you with the math problems. Once your the smartest person in the group, it's time to find another job
That's funny.. 'cause it's true!!
I have a few key people I go for certain things
If it's about Python, I ask X, if it's math, Y, if it's art, Z, etc etc
It's great to be part of a diverse team where everybody is willing to help everybody else.
Always surround yourself with people smarter than you. That's the key.
Hi All,
Could anyone point me in the right direction of some good tutorials on writing plugins for Maya. I've looked at "Chad Vernon's" website (http://www.chadvernon.com/blog/) and seen what he has been able to achieve by writing his own CUBLAS based deformers, which work more efficiently than the ones that ship with Maya. Very impressive!
I've got access to a lot of stuff on Python scripting, but could do with something a bit more specific to Maya - 3d buzz do a series of tuts which i'm sure are very good, but was wondering if anyone could point me towards anything else.
Thanks in advance
happy new Year!
GB
Hi everyone!
Good topic. Maths have been keeping me away from rigging, which sucks...I wasn't even too bad in maths, but I always felt that I'M not a creative math dude. I rarely noticed the twists put into math equations, or maybe by practicing a lot I did sometimes, it just didin't come naturally. So I'm glad to see that lot's of good riggers say, you can get away with little math knowledge...but I still don't believe them so yes, math is key (this thought just stuck in my head for ever) but I'm trying to move towards rigging anyways...slowly, but surely. Nice community here, congrats Goosh on the second Baby!
Thanks..
Sleepless nights don't help the math
But really, we have a very low level system at DW. We can do pretty much whatever we want. And even then, I hardly ever do any maths. There are other CharTDs that do way more than I do and there are others that don't do any.
There are some that are very technical and others that are not technical at all but are very artsy. We are a big team and we can afford that, but still. And if there is anything I need that I don't know, I can simply ask. If you are working on a system like Maya, the community is big enough that I'm sure somebody out there can help.
Rigging can have a huge range so if you don't know one area or it scares you, there is no reason not to go into it.
Wow! The thread went on and I didn't notice the new answers.
That book "3D Math Primer for Graphics and game development" sounds REALLY interesting.
I want to take a look and hopefully buy it.
I'm reading "learning Maya programing" and I'm a little bit confused with transformation matrices.
Why is it a 4x4 matrix??? There are 3 values (x,y and z) on translation, rotation and scale. Why the extra row and column?
I hope my question doesn't sound too dumb
Thanks everyone!
Dima
There are never any dumb questions Dimitri
I haven't looked at exactly which way Maya structures their matrices, but the general parts are the same. There's a lot more going on with how these matrices are made, but this is what it comes to as the final info on an object when you look at a transformation matrix in 3ds max or Maya.
I'll use 3ds Max as the example since I'm not sure which direction Maya stores info. At it's simplest the first row stores rotation and scale information about the local x axis, the second row stores rotation and scale about the local y axis, and the third row stores rotation and scale about the local z axis. That leaves the 4th row to store the world position of the object, which would be it's offset from the 0,0,0 coordinate in the world/scene.
So that leaves the 4th column, which actually isn't generally used at all. You'll almost always see 0 0 0 1 running down the 4th column. It's there to make the matrix symmetrical (meaning same # of columns and rows so that you have a diagonal from one corner to another), which allows more/quicker/simpler/etc math to be performed on the matrix and in general makes it more pleasant to work with. When you query the transform matrix in 3ds Max you'll actually see that it doesn't even tell you the 4th column, it will just give you 4 sets of 3 values.
One thing to remember, the values of x x x, y y y, z z z, aren't translate, rotate, scale. As mentioned above these only store rotation and scale information and do it in the form of a vector. How these are built and manipulated goes a bit deeper than I can explain easily here, but I hope this still helps!
Matrix examples, since I said there's more than one way that 4x4 matrices structure their info I thought I'd give you a couple examples of this. x x x, y y y, z z z are vectors that define the rotation and scale, and wtx, wty, wtz stand for world translate x, y, z respectively.
3ds Max
col1 col2 col3 col4
row1 [ x x x ] 0
row2 [ y y y ] 0
row3 [ z z z ] 0
row4 [wtx wty wtz ] 1
Open GL
col1 col2 col3 col4
row1 | x | | y | | z | 0
row2 | x | | y | | z | 0
row3 | x | | y | | z | 0
row4 [wtx wty wtz ] 1
Sorry these are a little messy, I can't get the formatting to be ok with my white spaces.
Thank you sooooo much for the awesome reply mzahmbie
I found in the node reference help how Maya stores info in the transformation matrix (at least I think it is), but that got me even more confused.
So a transformation Matrix is a bunch of matrices (rotate, scale, translate, scale pivot, etc...) post multiplied, am I right?
That's what I got from the Node reference help:
-1 -1
matrix = SP * S * SH * SP * ST * RP * RA * R * RP * RT * T
One quick question! Why does the Max matrix has 3 Xs, Ys and Zs for only scale and rotate?
I'm probably too far away to comprehend it right now, so I'm gonna dive in some books, websites and more khan academy
Thanks for the help!
Dimitri
You're dead on there about the transform matrix. What we see as the transform matrix is just a bunch of matrices multiplied together.
the 3 Xs, Ys, and Zs aren't just a Max matrix thing. Maya does the same thing, and OpenGL, really anything that deals with 3D transformations involving rotation, scale, and translation stores the information the same. The 3 of each is because you need one vector for each the X axis, Y axis, and Z axis in order to calculate rotations, which conveniently makes up a 3x3 matrix. This being a 3x3 matrix also lets us store scale information into it along with the rotation.
Getting too deeply into it is going to make this post really long ;p so I'll link a nifty little article I found that talks about it below here. This guy does a really good job at breaking it down and explaining it in the simplest way. You'll see that most of the math is done on the 3x3 matrix to define rotation and scale, but since we want to store the world translation along with this data we make it into the 4x4 matrix we see as the transformation matrix.
http://wally.cs.iupui.edu/n351/3D/matrix.html
And glad I can help! If you run into any more questions while picking this stuff up I'm always happy to answer, or at the least provide a nifty link that has the answer in it.
Sorry to bring the thread again, but here's another nice Matrix explanation:
http://www.falstad.com/matrix/
I'm slowly starting to understand "the Matrix".
Thanks for the help!
You must log in to post.