I am creating augmented reality app where I need to place and change orientation many 3d objects. From the use perspective its very difficult to fix the orientation of the 3d model.

  1. First I provided 2 button to select between rotation across y axis and across x axis.

    • user able to move to desired orientation. but, It require many steps to reach desired orientation
  2. Simple touch for rotating across y axis and x axis

    • Sometime user will stuck to in the process of moving body to desired position.

Please suggest a proper way to manipulate object or any links to refer.

  • Could you provide some more detail on the problems you have encountered with using touch for rotating the objects? I'm not sure what you mean by the user getting "stuck". Generally, direct manipulation by touch or gesture should be the best way to move a three-dimensional object. – Mike Wheaton Aug 10 '13 at 12:18
  • What type of objects? Mobile or desktop? – Kris Van Bael Aug 12 '13 at 5:39
  • @Mike User can perfectly rotate something in spherical shape( example: Globe). Consider the model is a chair, Its very difficult to fix the orientation of model from an arbitrary orientation to upright,front-facing. – shakthi Aug 12 '13 at 7:09
  • @Kris Model is a chair. App is for ipad – shakthi Aug 12 '13 at 7:12
  • If you use the devices' accelerometer to determine the camera orientation, then there is only one rotation degree left. – Kris Van Bael Aug 13 '13 at 6:04

To fully control an object (a rigid body) in 3D-space one needs in total of six controls that operate with two directions each. From Wikipedia:

Six degrees of freedom (6DoF) refers to the freedom of movement of a rigid body in three-dimensional space. Specifically, the body is free to move forward/backward, up/down, left/right (translation in three perpendicular axes) combined with rotation about three perpendicular axes, often termed pitch, yaw, and roll.

When the controls are restricted to a 2D surface, it's not possible to get all translation or rotation operations to be mapped to similar actions. (Meaning, there is no way to make a moving operation on more than two axis simultaneously.)

Controlling a 3D-object with a 2D-plane is perhaps easiest with a surface that is assumed to be able to track multiple input points, such as most tablets or touch operated smartphones. For the following, I assume that world's xy plane is the 2D surface with the z-axis going into the 2D-surface. (Or coming out, it doesn't really matter.)

The rotation of an object on x and y-axis can be done by scrolling up/down and left/right and on z-axis by a two-finger rotation.

The moving of an object on x- and y-axis can be done by two-finger scroll up/down and left/right and on z-axis by pinch/zooming.

So, there are two "similar" types of action for two axis and a "different one" for the third axis, with both moving and rotating - the required six for complete control in total.

As what comes to "difficulties to fix the orientation of the object" - if the software is about furniture in rooms, like the chair comment might suggest, it might be useful to alleviate the user's rotating actions like allowing the objects to "snap to axis" when they are in level with the planes.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.