Thu, Nov 7, 7:11 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 07 7:06 am)



Subject: Y-rotate doesn't always work


ulysses ( ) posted Sun, 25 May 2008 at 2:24 PM · edited Thu, 07 November 2024 at 7:10 AM

Anyone ever get the problem with an object not rotating on all axes?  I'm running Poser 7 SR2 on Mac OS 10.5.2 but this quirkiness has been around for Poser since I've been using it.

Sometimes when I import an object you can't rotate it on certain a certain axis using the dials (yRotate, xRotate, zRotate) unless you directly manipulate it with one of the tools, which is clumsy and inexact.

and just now I insert a high-res ball from Poser's own props, apply a globe map to it and go to spin the yRotate to make the earth rotate like it should.  But no, the yRotate does the very same motion that the zRotate dial does.

Can anyone replicate this and suggest a fix?  Again, this buggy behavior has been around since I started using Poser in 1999 but only now when I have a deadline to meet do I think of posting about it.

thanks


bantha ( ) posted Sun, 25 May 2008 at 2:42 PM

Attached Link: http://en.wikipedia.org/wiki/Gimbal_lock

Are you talking about the Gimbal Lock? If you rotate the object on one or two axes, you will get strange results on the third axis. Parent your object to another one and do all the rotations on xRotate and zRotate there. Use yRotate of the object.


A ship in port is safe; but that is not what ships are built for.
Sail out to sea and do new things.
-"Amazing Grace" Hopper

Avatar image of me done by Chidori


IsaoShi ( ) posted Sun, 25 May 2008 at 3:07 PM

I had this in P7 for Mac on a single sided plane I was using for a mirror. Having rotated it 90 degrees around the x-axis to stand it on end, I could no longer rotate it around the y-axis. The y-rotation dial did the same as the z-rotation dial, just as in your example.

Sorry, I didn't get to the bottom of the problem, but I need to bookmark this thread to see what others have to say about it.

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


IsaoShi ( ) posted Sun, 25 May 2008 at 3:11 PM

PS - I understand the gimbal lock explanation, but I don't see how a mechanical problem like that relates to virtual axes as used in Poser. Second Life has no problems like this with prim rotation!

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


bantha ( ) posted Sun, 25 May 2008 at 4:34 PM

Attached Link: http://www.renderosity.com/mod/forumpro/showthread.php?message_id=3154360&ebot_calc_page#message_3154360

I think Second Life uses the world axis only. Here is one older thread about the subject.


A ship in port is safe; but that is not what ships are built for.
Sail out to sea and do new things.
-"Amazing Grace" Hopper

Avatar image of me done by Chidori


kuroyume0161 ( ) posted Sun, 25 May 2008 at 5:03 PM

Yes.  Some (Euler) rotation systems use a fixed axis system (usually a parent system) to avoid gimbal lock.  Cinema 4D does something like this.  The problem with most Euler rotation systems, including Poser's, is that they use a rotating axis system.  That is, the first rotation not only rotates 'the object' but it rotates the coordinate system attached to it.

Here is how the Cinema 4D HPB system is explained in the Cinema 4D documenation:

Some people do not understand why rotations around the Zaxis (the bank angle) are performed in the object system whereas rotations around Y and X axes (heading and pitch) are always made in the world system. With animation, even switching to XYZ rotations doesn’t help since CINEMA 4D is using the HPB system internally.

The HPB system is a so-called Euler system where the HPB angles do not refer in principle to the axes of the object itself.

Consider this example

Take an object whose angle system is initially 0/0/0.

First make a rotation of 30° around heading, so that the X and Z axes of the object system are now rotated compared to the X and Z axes of the world system. Call these new axes X and Z (Y is identical to Y).

A pitch of 20° now causes the object system to be rotated upward around the object system’s X axis. Z becomes Z and Y becomes Y (now X and X are identical).

Lastly, we rotate around a bank angle of -45°. This rotation causes the rotated object system to be tilted around the Z axis. X becomes X and Y becomes Y (this time Z and Z are identical).

The object has now achieved an angle system of 30/20/-45 by consecutive rotations around H, P and B on a system in each case already rotated. Thus, HPB rotates neither around object nor around world axes. That bank is identical to a rotation around an object axis is purely coincidental. There are several different Euler systems, each one with a particular rotation order.

While this all seems rather impractical, the Euler system has a major advantage: Rotations of objects are decoupled from one another as much as possible, which is not the case with rotations around object axes. Heading does not affect bank, bank does not affect pitch. Imagine if the X position of an object always affected the Y and Z positions ...

Now that you are as confused as I am...  ;)

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


IsaoShi ( ) posted Sun, 25 May 2008 at 5:08 PM

Hmmm, I see it's a much deeper issue than I imagined!

I have to agree, though, with those who say that if the use of a real-world mathematical model for rotations limits our ability to do quite reasonable things with virtual objects in virtual space, then the real-life model should be dumped in favour of a less constraining one.

After all, on a lighter note, I can bury Victoria up to her chin in the ground if I want to, and she's still smiling.

I have seen Second Life automatically adjust two axis values when rotating an object or prim around the other axis, whether using world, local or reference axes, so I think they found a practical solution to the problem.

Izi

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


ulysses ( ) posted Sun, 25 May 2008 at 5:16 PM

This is not gimbal lock, I am not rotating around more than 1 axis.  And this happens to some objects and not others.  Everyone please launch Poser and try this and see what you get, because this scene is about as simple as you can get.

Create a blank scene, add Poser's built-in High-res Ball to the scene.  Add a simple 2D texture map to the ball, with a surface that will make it evident which way the ball is rotating, i.e. don't make it a simple color surface.  In my case I used a earth continent/ocean map.

After you add the surface select the ball and spin the yRotate dial.  What happens?  In my case it does the same thing as spinning the zRotate dial, I can't get it to rotate around the y-axis like a globe should.

Let me know what you get.


nruddock ( ) posted Sun, 25 May 2008 at 5:28 PM

Quote - PS - I understand the gimbal lock explanation, but I don't see how a mechanical problem like that relates to virtual axes as used in Poser.

What happens in Poser is due to the mathmatical consequences of the way rotation is done, there is no way to avoid the problem other than using a different representation for rotation internally (see -> Quaternions and Euler angles).

You can work around the problem by parenting the troublesome item to another and adjusting the Y rotation of the new parent item.


IsaoShi ( ) posted Sun, 25 May 2008 at 5:28 PM

Tried that, and you are right, rotating around the y-axis actually rotates it around the z-axis.

HOWEVER

when I loaded the sphere, the x-axis rotation was already set to 90 degrees. When I set that to zero, all three rotations worked properly. Then it's just a matter of getting the image mapped correctly!

Hope this helps.
Izi

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


IsaoShi ( ) posted Sun, 25 May 2008 at 5:33 PM

Sorry I should have said -90 degrees on the x-axis.

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


nruddock ( ) posted Sun, 25 May 2008 at 5:34 PM

Quote - ... add Poser's built-in High-res Ball to the scene. ...

The Hi-Res ball loads with a -90º rotation on the X axis, which is the middle of the three axes, hence instant gimbal lock.


ulysses ( ) posted Sun, 25 May 2008 at 7:06 PM

thanks a lot for your replies, that clears it up for me.  one more question, now that I set the initial x-axis to 0 so the yRotate works now, how do I map my image properly?  Now the image is wrapped completely the wrong way.  Can I fix this in Poser or do I have to do something kludgy back in Photoshop?


nruddock ( ) posted Sun, 25 May 2008 at 7:22 PM

Quote - Can I fix this in Poser or do I have to do something kludgy back in Photoshop?

You can do this in the Material room.

IIRC, it might be as simple as setting the correct combination of U and V scales on the image.


IsaoShi ( ) posted Sun, 25 May 2008 at 8:03 PM

I could not get those settings to alter the way the image displayed on the sphere.

But I found an easier way to do it.

Apply the material as normal. Set the Y and Z rotations on the sphere to +90 degrees, and then use the X axis to rotate it about its vertical axis.

Will that do it for you?

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


IsaoShi ( ) posted Sun, 25 May 2008 at 8:05 PM

 I should have said: use the x-rotation dial to rotate it around its vertical axis.

"If I were a shadow, I know I wouldn't like to be half of what I should be."
Mr Otsuka, the old black tomcat in Kafka on the Shore (Haruki Murakami)


ulysses ( ) posted Sun, 25 May 2008 at 9:01 PM

Thank you IsaoShl, that works perfectly.

I appreciate your time.


svdl ( ) posted Sun, 25 May 2008 at 9:37 PM

Another option: load the hres ball prop, leave it at its original -90 rotation.
Fire up the grouping tool.
Select the only group that is available from the dropdown of the grouping tool - all polygons will turn read.
Choose "Create Prop" and give the new prop a useful name.
You can delete thoe original hires ball.

The new prop will have coordinates (0,0,0) and rotations (0,0,0).
You can also scale the hires ball before creating the new prop, the new prop will always have scale 100%.

I used this trick to make a quickie skydome by scaling the hires ball to 40,000%, using the grouping tool to reverse the normals, and spawn a Skydome prop.

The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter

My gallery   My freestuff


kuroyume0161 ( ) posted Sun, 25 May 2008 at 9:44 PM

So this raises the interesting question: What idiot decided that to fix the hi-res sphere, it should be rotated -90d on the middle axis?  Built-in, instant gimbal lock - genius...

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow your whole leg off.

 -- Bjarne Stroustrup

Contact Me | Kuroyume's DevelopmentZone


Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.