• Home
Blue Orange Green Pink Purple

[how to] Virtools multipoint

Posted in how to. on Mercredi, juillet 14th, 2010 by Toni Tags: multipoints, multitouch, ray casting, virtools
juil 14

One mouse, one pointer, is sometimes not enough! It was my problem for one application, I needed to control 2 pointer with two wiimotes, so I found a trick only using Virtools’ native building blocks and 3D primitives resources.

The idea is similar to the accepted-fact that if someone point something with its finger, another person will not see the same thing pointed.

The system has a lot of common points with the human view and gestures, we can figuratively speaking, decompose it by three objects on the following figures:

Multipoint System

-The eyes as the system’s camera.

-A finger (or more) in order to point an object which will be the pointer on the screen. A simple point, nevermind what kind of 3D object.

-A window. In this system I chose to attach the transparent plane, very close to the camera in front of it, which will perfectly fit to its field of view. Like a windows in front of us where we will put our fingers in order to point an object on the other side’s environment. This plane handles the pointers in order to easily define their position on the plane proportionally to the screen resolution.

-A light ray, an invisible ray launched that will pass by the eye then by the pointer (the “finger”) and finally reach the object wanted to be pointed. To make it easier you use a simple trick with simple 3D primitive (a tube for example) from the Virtool resources, and put it at the exact same position than the camera. The pivot point must be at 0,0,0 (regarding to the camera position). So with this object you can make it looking at the pointer on the” window” all the time and use it to control a “ray”.

To recreate this situation of pointing, we use one main tools integrated in Virtools, the Building Blocks“ Ray Intersection ”. This Building Block returns the first object, of a specific group, intersected.

The system uses it in order to launch a ray from the center position of the camera, which will pass through a pointer and return the first object intersected. Relatively simple, this system needs “3D entities” as pointers, placed in the virtual world at least at the beginning of the camera field of view, instead of a usual mouse pointer that can be considered as a layer on the screen.

So with two values X & Y we can control these pointers on the plane. You can use everything you want as value input (I use wiimote data), It can be an opportunity to use OSC/TUIO values to create this kind of pointer dynamically and have multitouch on virtools.

After making this tutorial I found some similar works, no especially for Virtools, and the most important the name of this method : the ray casting. So if you want more information It can be a good start. ;)

Leave a Reply

  • Categories
    • blog (1)
    • how to (2)
  • Last Comments
    • Troy dans [how to] wii balance-board > glovePIE > midi > virtools
    • Luigi Dearden dans [how to] wii balance-board > glovePIE > midi > virtools
    • Linwood Satterfield dans [how to] wii balance-board > glovePIE > midi > virtools
    • facebook marketing an hour a day pdf download dans [how to] wii balance-board > glovePIE > midi > virtools
    • Lai Cerrito dans [how to] wii balance-board > glovePIE > midi > virtools
  • Blogoliste
    • labs.paindepices
  • Archives
    • juillet 2010
    • mai 2009
  • Search






  • Home

© Copyright work in progress - toni da luz. All rights reserved.
Based on a FTL Wordpress Themes

Back to Top