Search the Community
Showing results for tags 'quaternions'.
-
I have a curve where I used the parallel transport algorithm to transport the normal along the curve and then I use this curve as a follow curve fora bones chain. My question now is how can I setup up the twist along the bone chain and also make it twist beyond 180 degrees without flipping? (see attached file below) any guidance and examples will be greatly appreciated. Thanks. parallel_transport_curve_framing_03.hip
-
Hello peeps, I'm trying to figure out something similar to some sort of ribbon setup in Houdini. Still, lots to do but right now I'm trying to work out rotations, I have twist working by itself such that if I twist the ribbon the bone rotates accordingly and bend working by itself as well, however, if I twist and bend the ribbon at the same time, the rotations become unstable. How can I fix this? Any help is much appreciated!!! Thanks. ribbon_setup_test_01.hip
-
Hi, I have a case where I have, lets say an object which comes from bulelt sim, with v and w. Based on that object, I want to drive another bullet sim, updating v and w, so the rest would be calculated by bulllet sim. In the scene I attached it works pretty much, except it flips at some point. I understand that there should be some catches on quaternions. I suppose, there should be some sort of angle check and etc, but can't make it work... update_angularv.hip
-
- bullet
- linearalgebra
-
(and 2 more)
Tagged with:
-
Hi everyone, I would like to better understand matrices and how to use them to do what I want. I've prepared a hip file with screen shots of things I get and don't get. While writing this I'm almost making discoveries so please bare with me if it seems like a long thread First off, applying a matrix3 to rotate my points seems fine as long as my vector is normalized. Else, it affects scale as well. Why is that? 1. rotate around y matrix3 m = ident(); float angle = ch("angle") ; vector axis = {0, 1, 0} ; rotate(m, angle, axis); @P *= m; 2. rotate around {0,1,1}. Not good. matrix3 m = ident(); float angle = ch("angle") ; vector axis = {0, 1, 1} ; rotate(m, angle, axis); @P *= m; 3. rotate around normalize({0,1,1}) matrix3 m = ident(); float angle = ch("angle") ; vector axis = normalize({0, 1, 1}) ; rotate(m, angle, axis); @P *= m; Hence, we need to normalize the rotational axis vector to prevent scaling the geometry. Secondly, I'm having issues setting the pivot for my rotations. In the examples above this all works well if our pivot is set at the origin. So how do we set the pivot to be at the center if our geometry? Please take a look at rotate_not_at_origin object. To begin this little science experience, I've copy stamped boxes on a single box and used the normals from the orignal box as the rotation axis vector. So far so good. This all goes to shit if we move our original box from the origin. How do we solve this? The only way I've seen, and don't understand, is using @orient as follows before the copy stamp. Also, this no longer copies the geometry based on the normal direction of my points. matrix3 m = ident() ; float angle = ch("angle") ; vector axis = normalize(v@rot_axis); rotate(m, angle, axis); @orient = quaternion(m); So how do we solve this? I really need to wrap my head around this once and for all gahhhhh!! Thanks everyone! Maxime matrices.hipnc
-
I'm trying to mess around with orienting a particle's alignment to it's vector. Or a watered down version would be a cube on a path that follows it based on the particle's vector or velocity. Basically, orienting the particle to "speed space" if that makes sense? I tried mixing Normals and Velocity to possibly get them aligned but I'm pretty much lost. I took a look at @mestelahere to help me out, but I'm pretty much in over my head trying to do it in Houdini. I attached my file that is just a spinning circle with box's copied onto them. I was trying to make a simple scene where the boxes rotation matches it's vector. So nothing too out of the ordinary, but still kind of confusing. Thanks :)! velAlign.hipnc