Nemeziz / liquid-galaxy

Automatically exported from code.google.com/p/liquid-galaxy
Apache License 2.0
0 stars 0 forks source link

yaw/pitch/roll okay... but slave view needs to be rolled - how to do? #6

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Hi guys - just an update on that issue (#4 now closed) I was having with the 
slave view being rolled.

Actually the slave vector IS pointing in the right direction after the 
yaw-pitch-roll's are applied relative to the view master... so what I thought 
was a bug, isn't really. 

However, to be useful after the slave view is pointing in the right direction 
an addition "roll" operation is needed to reorient the view.

So, basically yaw/pitch/roll let's you point the slave in any direction 
relative to the master, but you need to be able to re-orient final view to 
finish things off. Perhaps there is an additional config for the slaves that 
can be used in the drivers.ini to do this?

Cheers, Andrew

Original issue reported on code.google.com by alfski on 8 Oct 2010 at 1:02

GoogleCodeExporter commented 9 years ago
I'm having a hard time visualizing that.  Since roll is the last thing that's 
applied, wouldn't an additional roll be equivalent to adding or subtracting 
from the roll you already used?

Original comment by jh...@google.com on 8 Oct 2010 at 8:09

GoogleCodeExporter commented 9 years ago
Issue 5 has been merged into this issue.

Original comment by kiel.endpoint on 8 Oct 2010 at 8:15

GoogleCodeExporter commented 9 years ago
Hi, I'm no 3d-vector-maths head so I can't comment with any knowledge on the 
'final roll'.

However, I think with yaw/pitch/roll all that is applied to what i call the 
'slave's view vector', but that's only part of the story. yaw/pitch/roll get 
you looking in the right direction but don't give you any control over the 
orientation of the view (ie. which was is "up").

Anyhow, to see what is happening -

Setup two machines (master & slave), set slave up with:

 ViewSync/yawOffset=0
 ViewSync/pitchOffset=90
 ViewSync/rollOffset=0

And then point the Master straight at the ground, the easiest way to do this is 
to just do a 'search' and let GE zoom into the location.

The Slave will have a view looking up at the horizon. If you see stars & black 
space on the Slave, you may have to zoom in a bit on the Master. Turn on "Show 
Compass" on both machines, the Slave will have the same bearing as the Master. 
As you rotate the Master around compass, the Slave will follow with a view of 
the horizon.

So far so good!

Now have a go at setting up additional slaves which show other parts of horizon 
line (similar to using yawOffset but we where the master is always pointing at 
the ground)

To do that we have to add a rollOffset.

So either setup up another slave, or change the slave to...

 ViewSync/yawOffset=0
 ViewSync/pitchOffset=90
 ViewSync/rollOffset=90

What you get is a Slave who's view is at the horizon East of the Master (yay!) 
Check by looking at the Compass heading. So the Slave's view vector is being 
setup correctly.

But the horizon is rolled. This mostly the right behavior... as all a single 
yaw/pitch/roll translation does is make sure your Slave view is pointing where 
you want it. 

So, it seems to me the Slave needs to be able to do 'one more roll' to 
re-orient the view, and then we'll be sweet!

Alternatively if someone can come up with the appropriate combinatation of 
yaw/pitch/roll that let's me setup a group of slaves all rotated around the 
horizon of a master looking at the ground, I'll be happy!

(basically this is issue 4 without me trying to interpret too much about what 
GE is doing! :)

Cheers, Andrew.

Original comment by alfski on 9 Oct 2010 at 12:37

GoogleCodeExporter commented 9 years ago
So, if the master's looking at the ground, and you want the slave to look at 
the horizon to the right of the master, wouldn't you want yaw = 90 and roll = 
90?

(I got that by looking straight at the ground, turning my neck right 90 degrees 
(yaw), so that I'm looking sideways at the wall, then rolling 90 degrees so 
that my head is now upright again, looking to the right of where I started.)

Original comment by jh...@google.com on 9 Oct 2010 at 1:25

GoogleCodeExporter commented 9 years ago
yup I should've said the cardinal points (N, S, E and W)are easily obtainable 
with yaw>pitch>roll.
See if you can get a slave to view the horizon at, say NE (45 degrees) or even 
36.5.
Perhaps there is a combination? like i said I'm no vector head, perhaps I just 
need an app to help me with the translation!

Original comment by alfski on 9 Oct 2010 at 1:37

GoogleCodeExporter commented 9 years ago
Wouldn't pitch do that?  Northeast would be 90, 45, 90?

Original comment by jh...@google.com on 9 Oct 2010 at 1:45

GoogleCodeExporter commented 9 years ago
If you go thru the motions yourself using yaw=0, pitch=90, roll=90. So, start 
with your body oriented to North and head looking towards the ground, there's 
no yaw adjustment, so look up 90degrees for the pitch. you should now be 
looking towards the horizon and facing North, then roll 90 degrees (tilt head), 
you're still heading north, but with the horizon on it's side.

But with the GE Slave using the same yaw/pitch/roll the horizon is on it's side 
but the heading becomes East!?

Original comment by alfski on 9 Oct 2010 at 2:22

GoogleCodeExporter commented 9 years ago
yay!! you're right! NE is yaw=90, pitch=45, roll=-90
okay I should be able to figure out the rest now. i guess this issue can be 
closed.
Cheers, Andrew

Original comment by alfski on 9 Oct 2010 at 2:29

GoogleCodeExporter commented 9 years ago
Glad to hear it worked. :)

Original comment by jh...@google.com on 9 Oct 2010 at 3:25