Matrices and tidiness in compounds' PPG.

Discussions about SOFTIMAGEs© Interactive Creative Environment©
Post Reply
User avatar
probiner
Posts: 127
Joined: 17 Apr 2013, 11:52

Matrices and tidiness in compounds' PPG.

Post by probiner » 19 Jan 2014, 06:03

So there's Multiply 3D Vector by Matrix and usually works fine for getting world space point positions calculations but I found myself trying to get all sorts of operations that only required a portion or actually "Divide 3D Vector by Matrix", but didn't find it (Strangely there's only divide by scalar not even by vector). So I went berserk and did a "big", monolithic compound to handle these for me, once and for all.
Multiplying or Dividing matrices and then apply them to the point positions, filtering channels, inverting, etc. But I ended up with a very long vertical PPG. To start off each matrix input occupies a lot of space. Plus for filters I'm using 4D Vectors one for each SRT component; so XYZ filter each scalar channel respectively and W filters the three channels all around. Instead of number inputs I wished they were just check boxes like:

Filters ON: ☑
Scale
X ☑ Y ☑ Z ☑ All ☑ Invert ☐
Rotation
X ☑ Y ☑ Z ☑ All ☑ Invert ☐
Translation
X ☑ Y ☑ Z ☑ All ☑ Invert ☐


But, having several boolean inputs in the PPG looks like:
X ☑
Y ☑
Z ☑
All ☑
Invert ☐


So, can one hide some input from the PPG (who writes in matrices?) or have a 2D array of tidy checkboxes? I'm asking because I'll be using several of these at a time and these conversion routines can get confusing and messy, especially for other people when I post it, and a clean PPG would help in understanding what that node is actually doing.

Cheers
Attachments
PPG_Matrix.png
PPG_Matrix.png (8.4 KiB) Viewed 2379 times
PPG_Matrix_Filters.png
PPG_Matrix_Filters.png (8.93 KiB) Viewed 2379 times

User avatar
probiner
Posts: 127
Joined: 17 Apr 2013, 11:52

Re: Matrices and tidiness in compounds' PPG.

Post by probiner » 20 Jan 2014, 23:49

I think this mock-up pic shows better what kind of PPG panel I would like to have on the compound.

By the way the main motivation to do such compound at this time is because Matrix to SRT and SRT to Matrix give don't return inverted matrices correctly. There's no Transformation Order option, like for example Rotation to Euler and Euler to Rotation give (XYZ, XZY, YXZ, etc...). So if I invert a Matrix passing it by those two node will break the Matrix Transformation Order.
Do you guys use some other solution other than doing it one self? I'm on it, just wanted to know if I was wasting my time completly :D

Anyways I think this is something that could be included on those nodes.

Cheers

EDIT: on the images had a wrong text.
Attachments
Filters_Panel_mail.png
Filters_Panel_mail.png (3.62 KiB) Viewed 2314 times
Matrix-Invert-Issue_mail.png
Last edited by probiner on 21 Jan 2014, 03:59, edited 2 times in total.

grahamef
Posts: 281
Joined: 23 Jun 2009, 21:01

Re: Matrices and tidiness in compounds' PPG.

Post by grahamef » 21 Jan 2014, 00:16

probiner wrote:So there's Multiply 3D Vector by Matrix and usually works fine for getting world space point positions calculations but I found myself trying to get all sorts of operations that only required a portion or actually "Divide 3D Vector by Matrix", but didn't find it (Strangely there's only divide by scalar not even by vector).
Well, that's because you can't divide a vector by a matrix. Or do you mean multiply a vector by the inverse of a matrix? That's not quite the same thing.

Also, "divide by vector" is mathematically meaningless and undefined.

What exactly are you trying to do?
probiner wrote:By the way the main motivation to do such compound at this time is because Matrix to SRT and SRT to Matrix give don't return inverted matrices correctly. There's no Transformation Order option, like for example Rotation to Euler and Euler to Rotation give (XYZ, XZY, YXZ, etc...). So if I invert a Matrix passing it by those two node will break the Matrix Transformation Order.
Sorry, this makes very little sense to me. If you have a matrix and want to invert it, why not just use the Invert node?

Matrix to SRT and SRT to Matrix have nothing to do with inverses, they just convert between matrix and SRT representations of transforms. They don't account for rotation order because they deal with rotations in axis+angle form -- only rotations expressed as Euler angles need to specify the order.

Again, what exactly are you trying to do? I think you might need to study up some more on transformations and linear algebra.

User avatar
probiner
Posts: 127
Joined: 17 Apr 2013, 11:52

Re: Matrices and tidiness in compounds' PPG.

Post by probiner » 21 Jan 2014, 04:46

grahamef wrote:Again, what exactly are you trying to do? I think you might need to study up some more on transformations and linear algebra.
I need to study many things, those ones included. Any web site comes to mind? :)
In my ignorance I use a brute force approach on problems and then I try to output as much as I can, and it seems to come out as a mess. I'm sorry. Let me try again as I know I got a point (somewhere).

What do I want?
1a - Have a compound where I decompose a matrix so I can filter its components, channels, and choose both SRT transform and rotation orders. I have it already but only outputting the Multiplied Vector.
1b - In the compound, output the final matrix after having all those changes. But right now I can't, because SRT to Matrix as no Transform Order, only uses SRT order. (explained further on the post)
2 - Get a better PPG look for a matrix input and a 2D array of check-boxes for UI clarity.
grahamef wrote: Well, that's because you can't divide a vector by a matrix. Or do you mean multiply a vector by the inverse of a matrix? That's not quite the same thing.
Oh why not? I thought following 3 / 5 == 3 * 1/5 would do fine. I know the multiplication order with matrices matters.

Anyways an Inverted Matrix fed onto "Multiply by 3D Vector" does what I want; instead of applying the kinematics, it takes them. But there's a problem!
If you split and combine the Matrix (I want to filter stuff, right?) it comes out with differences!! That's because "SRT to Matrix" does not respect the Inverted matrix Transform Order, TRS.

Image
grahamef wrote: Matrix to SRT and SRT to Matrix have nothing to do with inverses, they just convert between matrix and SRT representations of transforms. They don't account for rotation order because they deal with rotations in axis+angle form -- only rotations expressed as Euler angles need to specify the order.
You misread me. I did not said there was a relation with Rotation Order. Just that "Matrix to SRT" does not offer a Transform Order option like "Euler to Rotation" offers Rotation Oder. See below!

Upper Tree is the same as "Multiply 3D Vector by Matrix".
Bottom Tree is the same as "Multiply 3D Vector by Matrix" with an Inverted Matrix.

Image

They use different Trasform Orders. SRT and TSR. But there's no way in "SRT to Matrix" to output a TRS Multiplication Order, so I don't know how to combine again the components into a matrix output.

I'm sure I was not the first to notice this! So I was asking how you guys deal with it.

Cheers

Edit: Now I came to realise that Softimage doesn't even offer SRT Transform Order not even the Kinematics options ._.

missingkey
Posts: 91
Joined: 19 Dec 2012, 18:16

Re: Matrices and tidiness in compounds' PPG.

Post by missingkey » 21 Jan 2014, 17:35

the linear algebra wiki, or transformation matrix wiki page would be a good place to start.

it's not free, but certainly worth every penny. This CGsociety workshop has two sections on linear algebra, and Raff does a great job of introducing transformation matrices, and explaining them quite well using ICE to visualize.

https://tod.cgsociety.org/index.php/hom ... ith_python

User avatar
probiner
Posts: 127
Joined: 17 Apr 2013, 11:52

Re: Matrices and tidiness in compounds' PPG.

Post by probiner » 26 Jan 2014, 23:37

@Missingkey that CGSociety Training seems to be an all around pill of information I'm needing. ICE, Python, Linear Algebra! Did you take it? It has its price but if the value is there, it's actually cheap.
When you said the wikis, you meant SI wiki pages and not entire wikis dedicated to wither linear algebra and transformation matrices, right? Thank you again :)

Some interesting info here: http://vinyldevelopment.wordpress.com/2012/03/30/simple-introduction-to-matrixs-in-softimage/


Closing my compound up. PPG issue was solved with "Select Case". I dislike drop-down menus but for fast checking of options was the best PPG solution.

Image


So my sole issue now is having a Matrix output with all the filtering and Orders taken into account so I can use it on objects' kinematics and not just output transformed point positions. I hope that when I sit to study these matters the solution afterwards seems very simple to me, because right now it's like a conundrum with that 4x4 grid looking at me.
Image

Fixed last post's second image falacious data.

Cheers

missingkey
Posts: 91
Joined: 19 Dec 2012, 18:16

Re: Matrices and tidiness in compounds' PPG.

Post by missingkey » 27 Jan 2014, 18:43

well I didn't take the workshop when it was offered. But I do have access to it through the CGTOD (training on demand). It's alot of info, that's actually really hard to find elsewhere. I think if your ready for it, then it's worth every penny. It can be frustrating though.

the SI wiki page, or just any linear algebra wiki. It's all relative.

BTW, I'm really not sure what your trying to achieve with different transformation orders? can you elaborate a bit?

User avatar
Daniel Brassard
Posts: 878
Joined: 18 Mar 2010, 23:38
Location: St. Thomas, Ontario
Contact:

Re: Matrices and tidiness in compounds' PPG.

Post by Daniel Brassard » 28 Jan 2014, 01:41

Maybe this information will help, It's old but still relevant.

http://www.isner.com/Transform/IsnerTra ... nip_04.htm
$ifndef "Softimage"
set "Softimage" "true"
$endif

User avatar
Daniel Brassard
Posts: 878
Joined: 18 Mar 2010, 23:38
Location: St. Thomas, Ontario
Contact:

Re: Matrices and tidiness in compounds' PPG.

Post by Daniel Brassard » 28 Jan 2014, 05:45

And, this is my matrix transform testbed.

I am showing a shear on X axis on the matrix as an example. I don't use the Matrix to SRT and SRT to Matrix nodes.

Hope that help, Expand as you wish.
Attachments
matrix_Testbed.jpg
$ifndef "Softimage"
set "Softimage" "true"
$endif

User avatar
probiner
Posts: 127
Joined: 17 Apr 2013, 11:52

Re: Matrices and tidiness in compounds' PPG.

Post by probiner » 29 Jan 2014, 04:30

missingkey wrote:BTW, I'm really not sure what your trying to achieve with different transformation orders? can you elaborate a bit?
Some applications allow one to do this, like Modo where the Transforms can be moved up and down the stack: http://docs.luxology.com/modo/701/help/ ... nnels.html
For some effects it can come handy. Example. Steached cartoon eye. Transform Order changed to Rotation Scale Translation as it's applied on Point Positions.
Image

Since my compound is a Matrix Filter I wanted to mute/flip certain channels to have fine control. But with the current nodes it is not straight forward for anything other than SRT it seems. And I wanted to ouput a Matrix also to Kinematics, not only PointPosition.
Below SRT to Matrix differential with an Inverted Matrix apparently that 3x3 upper left space contains all the differences.
Image

Sure, I now came with a different approach. Filter the Matrix first (Matrix to SRT/SRT to Matrix), then Invert it at the end. Still only SRT and TRS, but good enough for most conversion tasks ._.
Daniel Brassard wrote:I am showing a shear on X axis on the matrix as an example. I don't use the Matrix to SRT and SRT to Matrix nodes.
Hope that help, Expand as you wish
Of course not, because you're a freaking ninja :D But you decompose the matrix into components and then back into matrix?
I wouldn't know how to expand that right now.
The link you posted looks like it will be very useful. Thanks.
Now I need time... some good ammount of time :D

Cheers

Post Reply

Who is online

Users browsing this forum: No registered users and 48 guests