Este sensor, en principio, solo sirve para cuestiones de optimización. Por ejemplo, si tenemos muchos elementos en movimiento en nuestro entorno, el rendimiento de navegación puede ser bastante bajo. Pero si hacemos que los objetos solo se muevan cuando entren en nuestro campo de visión, mejoraremos el rendimiento por que solo se moverá aquello que realmente es necesario.
Esto se puede hacer, definiendo una zona en forma de caja alrededor de los
objetos. El sensor de visibilidad node
VisibilitySensor nos permite definir esta caja invisible, centrada
en un cierto punto. Cuando esta caja entra en nuestro rango de visión
, entonces el sensor de visibilidad se activa y emite un evento.
|
Ejemplo1: Sensor de visibilidad.
|
Aunque este ejemplo no es funcional, nos muestra como definir la caja de visibilidad alrededor de un objeto. Como la esfera está centrada en el punto (-5 8 3) y tiene un radio de 2 unidades, entonces hemos de centrar la caja de visibilidad en el mismo punto y dar-le unas medidas de 4x4x4 parr que englobe toda la esfera.
Estos sensores permiten incidir sobre las traslaciones y rotaciones de objetos directamente e individualmente, sin tener que modificar toda la escena con las interficies del browser.
Hay tres tipos de sensores de movimiento (o "drag sensors " en Inglés):
Este sensor permite mapear los movimientos 2D del cursor de pantalla, en movimientos
2D sobre el plano XY del sistema de coordenadas del sensor. El
sensor se activa cuando se oprime sobre el objeto activo y, sin soltar el botón
del ratón, se mueve el cursor. Entonces, los movimientos del cursor se
pueden aplicar sobre el objeto mediante un ROUTE. Veamos un ejemplo
donde un cubo verde es el objeto activo y tenemos un cubo naranja de referencia,
inactivo.
|
Ejemplo1: Sensor de Movimiento
en un Plano.
|
Observad como este sensor se define de forma parecida al sensor de tacto visto en el módulo anterior, es decir, debe definirse como "hermano" de los objetos que han de ser activos.
A continuación veremos un ejemplo donde el cubo naranja es el activo,
pero el que se mueve es el verde.
|
Ejemplo2: Sensor de Movimiento
en un Plano, donde el objeto activo es diferente al que se mueve.
|
Como se puede observar, el mapeo hecho con el ROUTE no ha variado, pero hemos puesto el sensor de movimiento en el plano, agrupado con el otro cubo (el naranja).
Este sensor permite mapear los movimientos 2D del cursor de pantalla, en rotaciones
alrededor del eje Y del sistema de coordenadas del sensor. El
sensor se activa cuando se oprime sobre el objeto activo y sin soltar el botón
del ratón, se mueve el cursor. Entonces, los movimientos del cursor se
pueden reflejar sobre el objeto mediante un ROUTE. Veamos el ejemplo
del cubo verde modificado.
|
Ejemplo3: Sensor de Movimiento
Cilíndrico.
|
Observad como este sensor se define de forma parecida al sensor de tacto visto en el módulo anterior, es decir, debemos definirlo como "hermano" de los objetos que han de ser activos.
Este sensor permite mapear los movimientos 2D del cursor de pantalla, en rotaciones
alrededor del origen de coordenadas. El sensor se activa cuando se oprime sobre
el objeto activo y sin soltar el botón del ratón, se mueve el
cursor. Entonces, los movimientos del cursor se pueden reflejar sobre el objeto
mediante un ROUTE. Veam el ejemplo del cubo verde modificado.
|
Ejemplo4: Sensor de Movimiento
Esférico.
|
Observad como este sensor se define de forma parecida al sensor de tacto visto en el módulo anterior, es decir, debemos definirlo como "hermano" de los objetos que han de ser activos.
Ejercicios propuestos:
|