Forum Discussion
ScottieBizzle
11 years agoExplorer
3D Mouse and Rift, the perfect duo!
Moving around with the mouse and keyboard can be a bit jerky and limits your movement to one axis at a time and actually makes me nauseous moving around the Tuscany sample. For over 15 years I've been using 3D mice and I can't say enough about them. They let you fly around your worlds, moving and rotating in every axis and just like the rift, they give you an amazing sense of control.

The one I live by is 3D Connexion's SpaceMouse. $129 for wireless and $99 for wired.
http://www.3dconnexion.com/products/spacemousewireless.html
You can get the SpaceNavigator which is the same but not wireless, but I don't suggest getting the SpaceNavigator for Laptop, its just too light and slides around on your desk too easily when you applying pressure.
I've integrated it into every 3D software package I've developed over the years and recently into my shader development tool along with the DK2 and they make an amazing duo. I fly around my scenes like I'm flying a zero gravity spaceship and look around or focus on objects with the DK2 as I zoom around them.
I'm hoping to release a scene viewer so that people can try them out together. The SDK's pretty easy to use and you just need to apply the right math to be able to fly and move in relation to your current orientation and position. Some applications always keep the camera upright and do a bad job of controlling their camera yaw/pitch/roll.
I think Oculus should take some of that 2 billion and buy these guys out or license the tech and ship something like this with the Rift ;)

The one I live by is 3D Connexion's SpaceMouse. $129 for wireless and $99 for wired.
http://www.3dconnexion.com/products/spacemousewireless.html
You can get the SpaceNavigator which is the same but not wireless, but I don't suggest getting the SpaceNavigator for Laptop, its just too light and slides around on your desk too easily when you applying pressure.
I've integrated it into every 3D software package I've developed over the years and recently into my shader development tool along with the DK2 and they make an amazing duo. I fly around my scenes like I'm flying a zero gravity spaceship and look around or focus on objects with the DK2 as I zoom around them.
I'm hoping to release a scene viewer so that people can try them out together. The SDK's pretty easy to use and you just need to apply the right math to be able to fly and move in relation to your current orientation and position. Some applications always keep the camera upright and do a bad job of controlling their camera yaw/pitch/roll.
I think Oculus should take some of that 2 billion and buy these guys out or license the tech and ship something like this with the Rift ;)
12 Replies
- salma19Honored Guest20
- vlastimirsHonored GuestGot a USB spaceball 5k. But those jerks dont support it, although it cost 400 Euro a few years back :(
Vista46 drivers work, but they suck! - Yep, 3D Connexion devices are great. It's easy to use them even without the SDK, the raw input protocol is very simplistic (you don't even need to install their drivers in that case, I've used them with my own software on machines that had admin limits so I couldn't install the drivers, but my code read them fine).
I used to have the Space Navigator years ago (well, still do), but the Space Pilot Pro is my favourite now. I can't use 3d software (Max, Blender, Sketchup, etc) without it. Ok, I can, but it sucks without it. :)
Here's an example video I made last year showing some basic raw input handling of my Space Pilot Pro in Ogre. No smoothing, no non linear response curves."ScottieBizzle" wrote:
I think Oculus should take some of that 2 billion and buy these guys out or license the tech and ship something like this with the Rift
3D Connexion is a division of Logitech. - mptpExplorerNow, I've never tried one of these (and I have to say it looks absolutely fantastic!!), but I'm not so sure it has much application to someone who's not working with 3D models or environments as a developer.
What I mean to say is, this would seriously make my life so much easier when it comes to working in Unity and Blender, but I can't see it being a huge improvement over WASD + mouse for movement in VR for the end user. The only cases where you need 6DOF movement freedom in a VR experience is something like a zero-G flight simulator. Hardly necessary to bundle it with every rift.
Most experiences involve representing the player as a person in a scene, so any essential controller should aim to transfer natural human motion from the player's body to their avatar's body, avoiding abstractions.
Just my 2c. - nuclearExplorerI love 6dof space-mice, they are really awesome, and I've used them in lots of my programs in the past. But I don't think I want to try to fly around a scene with them in VR mode. I can feel the nausea coming even by thinking about it :) On the other hand using them to manipulate 3D objects in front of you in VR sounds like a good fit.
- ScottieBizzleExplorerI hear ya Kojack, I've spoiled myself and now hate navigating any other way. I'd like to know more about how you get raw input from the controller? I like the fact that the SDK only sends messages when the device is being used, but I get why the Rift rather you query for tracking position at a high frequency. I've used all their old ones too in the past, but don't have any need for all the buttons and displays.
Thanks for the video. It's still way more fluent than that. You have yaw/pitch, but looks like you locked down your roll. I love having full 6dof and being able to swoosh around like I'm in a zero gravity space ship ;)
As for VR, the whole point is to let you escape your legs and fly like a bird. I'm the super nauseous type, but if I focus on an object while you fly around I'm fine and I get way less nauseous moving smoothly with the 3D Mouse compared to the jerky movement of the mouse in the Vila demo. My stomach drops though when I fly up and then look down real quick, as I would in any similar real life situation. Also, I can't do the roller coaster demos, since I'm not in control I lose it and get dizzy. I'm the same in cars, I can drive like a raging maniac in a high octane car and be fine, but the minute i'm in someone's passenger seat I get nauseous. So the fact that you are controlling your velocity, direction and acceleration, it's less sickening than you'd think. My girl tried the DK2, she's fine with all of it, the minute I took the mouse and flew for her she couldn't handle it.
And yes, you can switch your software to control objects easily, trust me, once you get use to one, you'll never go back. The cool thing is that it's not a finite device like the mouse or other positional tracking systems, it's based on force and not actual position so the minute you let it go your movement stops. If you rigged say the head mounted display or any other free floating device to accumulate movement based on a delta from the rest pose, you'd struggle to have your camera come to a stop or even slow down. "ScottieBizzle" wrote:
I'd like to know more about how you get raw input from the controller?
Have a look at the raw input example at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms645546%28v=vs.85%29.aspx
That shows how to get a few different kinds of device.
The 3D Connexion devices show up as usagepage 1, usage 8.
To process the data, I do this:switch(msg.message)
{
case WM_INPUT:
{
UINT dwSize;
GetRawInputData((HRAWINPUT)msg.lParam, RID_INPUT, NULL, &dwSize,
sizeof(RAWINPUTHEADER));
LPBYTE lpb = new BYTE[dwSize];
if (lpb == NULL)
{
return 0;
}
if (GetRawInputData((HRAWINPUT)msg.lParam, RID_INPUT, lpb, &dwSize,
sizeof(RAWINPUTHEADER)) != dwSize )
OutputDebugString (TEXT("GetRawInputData doesn't return correct size !\n"));
RAWINPUT* raw = (RAWINPUT*)lpb;
if(raw->header.dwType == RIM_TYPEHID)
{
if(raw->data.hid.bRawData[0]==1)
{
g_spaceNavigatorPos.x = *((signed short*)&raw->data.hid.bRawData[1]);
g_spaceNavigatorPos.y = -*((signed short*)&raw->data.hid.bRawData[5]);
g_spaceNavigatorPos.z = *((signed short*)&raw->data.hid.bRawData[3]);
}
if(raw->data.hid.bRawData[0]==2)
{
g_spaceNavigatorAngle.x = *((signed short*)&raw->data.hid.bRawData[1]);
g_spaceNavigatorAngle.y = -*((signed short*)&raw->data.hid.bRawData[5]);
g_spaceNavigatorAngle.z = *((signed short*)&raw->data.hid.bRawData[3]);
}
if(raw->data.hid.bRawData[0]==3)
{
for(int i=0;i<32;i++)
{
g_spaceButtonsAccumulate[i] = ((*((unsigned int*)&raw->data.hid.bRawData[1]))&(((unsigned int)1)<<i))!=0;
}
}
}
delete[] lpb;
}
break;
}
If the first byte of the raw input packet is 1, the rest of the packet is 3 signed shorts containing x,y,z position.
If the first byte is 2, the rest of the packet is 3 signed shorts of x,y,z rotation.
If the first byte is 3, the rest of the packet is a 32bit value with one bit per button on the device.
Since raw input works at a lower level than drivers, you don't need any software installed for it to work."ScottieBizzle" wrote:
You have yaw/pitch, but looks like you locked down your roll. I love having full 6dof and being able to swoosh around like I'm in a zero gravity space ship
Yep, I disabled roll on purpose. I generally don't like roll when I'm controlling a camera.- datenwolfHonored GuestHere's my version for Linux that talks to a SpaceNavigator through the Linux evdev API:
http://homepages.physik.uni-muenchen.de/~Wolfgang.Draxinger/stuff/spaceball.tar.bz2
(for some reason I don't have the sources on my own server yet) - cyberealityGrand ChampionThe 3D mouse is the most amazing thing for 3D content creation. Once you use it you can't go back. It's almost like trying to be a computer illustrator without a Wacom tablet. It's key.
Though I haven't been doing as much 3D modelling as I'd like, so I haven't used mine in years. I should probably dig it out the closet and mess around a bit. - f15simHonored GuestKeep an eye on eBay for 3DConnexion hardware. (Avoid the SpaceBall 5000! Driver support isn't available for Win7+)
You can score hardware that's one generation back for not a whole lot of money. What happens is that the hardware comes off of lease and a lot of it gets put on eBay for about 20% the cost of a new one.
The seller "offleaseavenue" is my go-to guy for Space Navigator upgrades, but he doesn't appear to have any in stock right now.
g.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 6 months ago
- 2 months ago
- 2 years ago