ES2280096T3 - Sistema de procesamiento de imagen y metodo de procesamiento de imagen. - Google Patents
Sistema de procesamiento de imagen y metodo de procesamiento de imagen. Download PDFInfo
- Publication number
- ES2280096T3 ES2280096T3 ES98940626T ES98940626T ES2280096T3 ES 2280096 T3 ES2280096 T3 ES 2280096T3 ES 98940626 T ES98940626 T ES 98940626T ES 98940626 T ES98940626 T ES 98940626T ES 2280096 T3 ES2280096 T3 ES 2280096T3
- Authority
- ES
- Spain
- Prior art keywords
- image processing
- virtual
- fish
- positions
- sensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
Unidad de procesamiento de imagen (10) para la generación de datos de imagen y/o mociones de un objeto simulando una criatura viviente por la definición del objeto en un espacio virtual tridimensional, poniendo puntos blancos sucesivos en un espacio virtual tridimensional con respecto al objeto, calculando movimientos y/o mociones para el objeto en correspondencia con cada punto blanco puesto sucesivo, y generando los datos de imagen basados en el resultado calculado, caracterizado porque el punto blanco es actualizado repetidamente por la reselección a cada tiempo de una tabla en donde una pluralidad de valores randomizados predeterminados de las posiciones en un espacio virtual tridimensional son puestos en avance, y en dicho cálculo de movimientos y/o mociones incluye el cálculo de la fuerza de rotación ejercida sobre el objeto.
Description
Sistema de procesamiento de imagen y método de
procesamiento de imagen.
La presente invención se refiere a un sistema de
procesamiento de imagen y método de procesamiento de imagen. Más
particularmente, la presente invención se refiere al procesamiento
de imagen de un juego deleitable donde una criatura tal como un pez
vivo puede ser movido en un estado cercano a la naturaleza en un
espacio virtual tridimensional de manera que se deleita la criatura
casi como una criatura real, y la interacción entre el movimiento
de la criatura y el jugador es implementado.
Junto con los avances recientes de la tecnología
de gráficos computadorizados, los sistemas de simulación y las
máquinas de juego ahora son ampliamente usados tanto en negocios y
casas. Recientemente en el campo de las máquinas de juegos, un
juego deleitable para disfrutar una criatura como un pez vivo
semejante a un animal doméstico artificial en un monitor por el
movimiento de la criatura en un espacio de juego virtual es
propuesto.
Un sistema convencional para este juego
deleitable generalmente comprende un CPU para el procesamiento de
gráficos y un monitor. En el caso de un pez, por ejemplo, la
información de la posición en el movimiento del pez colocado en un
tanque en un espacio de juego virtual es copiada en su avance, y
cientos de copias son determinados. El CPU selecciona la
información de la posición del movimiento el cual es copiado de
acuerdo a la situación, calcula una posición del objeto simulando
un pez en base a esta información, interpola el movimiento mediante
una matriz (rotación, movimiento) basado en la captura del
movimiento, y regenera y despliega las imágenes. En el caso de un
juego deleitable simulando una pluralidad del pez moviéndose en la
corriente del océano, las posiciones y movimientos de la pluralidad
del pez son calculados y desplegados en base a información
específica representando el ambiente, que es, la corriente del
océano.
En el caso del sistema convencional mencionado
arriba para un juego deleitable del pez, sin embargo, la información
de la posición es calculada meramente junto con tal información
específica como la corriente del océano, y en el caso del
movimiento regenerado por la matriz predeterminada convencional,
como la captura del movimiento, una naturalidad suficiente para
expresar el movimiento de una criatura viva es necesitada. En otras
palabras, el método convencional está limitado a expresar el
movimiento de una criatura viva. El jugador solamente mira al
monitor, el cual es un tanque artificial, y no hay ninguna
interacción vista en la naturaleza, como un pez en el tanque
acercándose o nadando alejándose, dependiendo de la acción del
jugador.
Con el precedente en vista, es un objeto de la
presente invención el proveer un juego disfrutable realístico el
cual pueda expresar el movimiento de una criatura tal como un pez
realísticamente y naturalmente en un espacio virtual
tridimensional, y permita al jugador disfrutar el juego como si la
criatura existe real.
Otro objeto es proporcionar un juego deleitable
el cual pueda expresar la interacción que ocurre de hecho en la
naturaleza entre el objeto móvil simulando una criatura semejante
como un pez en un espacio virtual tridimensional y el jugador, para
que la realidad pueda ser mejorada junto con un entretenimiento
aumentado.
Tu X, Terzopoulos D: "Artificial Fishes:
Physics, Locomotion, Perception, Behavior"; Procedimientos o
21st Conferencia Internacional SIGGRAPH, 24-29
Julio 1994, Orlando, FL, USA; Procedimientos de Gráficos
Computadorizados. Series de Conferencias Anuales1994, ACM, NY, USA;
pp 43-50 revela una técnica de animación que
proporciona una apariencia realística, movimiento y comportamiento
de animales. Este artículo se centra en la síntesis de locomoción
realística del pez basado en el modelo dinámico del pez consistiendo
en masas y resortes de puntos nodales. Una rutina de comportamiento
descrita involucra los giros fortuitos ejecutados por el pez,
basados en los ángulos de giros arbitrarios.
De acuerdo a un aspecto de la invención, hay
proporcionada una unidad de procesamiento de imagen para generar
datos de imágenes para desplegar movimientos y/o mociones de un
objeto simulando una criatura viviente mediante la definición del
objeto en un espacio virtual tridimensional, colocando puntos
blancos sucesivos en el espacio virtual tridimensional con respecto
al objeto, calculando movimientos y/o mociones del objeto en
correspondencia con cada punto blanco sucesivo puesto, y generando
los datos de imágenes basados en los resultados calculados,
caracterizados en que el punto blanco es repetidamente actualizado
mediante el reseleccionamiento a cada tiempo a partir de una tabla
en donde una pluralidad de valores arbitrarios predeterminados de
posiciones en el espacio virtual tridimensional son puestos en
progreso, y en dicho cálculo de movimientos y/o mociones incluye el
cálculo de la fuerza de rotación ejercida sobre el objeto.
Características preferidas adicionales de la
unidad de procesamiento de imagen, y de un sistema de procesamiento
de imagen incorporando la unidad, son puestas afuera en las
reivindicaciones 2 a la 14.
De acuerdo a otro aspecto de la invención, hay
proporcionado un método de procesamiento de imagen generando datos
de imágenes para el despliegue de movimientos y/o mociones de un
objeto simulando una criatura viviente, comprendiendo los pasos de:
definición del objeto en un espacio virtual tridimensional,
colocación de puntos blancos sucesivos en un espacio virtual
tridimensional con respecto al objeto, cálculo de los movimientos
y/o mociones del objeto en correspondencia con cada punto blanco
sucesivo semejante, generación de datos de imágenes basados en el
resultado calculado, caracterizado por una actualización
repetidamente del punto blanco mediante la reselección a cada
tiempo a partir de una tabla en la cual una pluralidad de valores
arbitrarios de posiciones en el espacio virtual tridimensional son
puestos en progreso, y como parte de dicho paso calculado, cálculo
de la fuerza de rotación de la fuerza de rotación ejercida sobre el
objeto.
Características preferidas adicionales del
método de procesamiento de imagen son colocadas afuera en las
reivindicaciones 16 a la 27.
La Fig. 1 es una vista perspectiva general de un
sistema de procesamiento de imagen en correspondencia
con una realización de la presente invención;
La Fig. 2 es un dibujo representando el status
de subida del monitor, tanque y sensor de esta realización;
La Fig. 3 es un diagrama de bloque representando
la relación entre el tablero de procesamiento del juego y las
funciones;
La Fig. 4 es un diagrama de bloque funcional
eléctrico del tablero de procesamiento de juego;
La Fig. 5 es una carta de flujo representando
la rutina principal de procesamiento ejecutada por el CPU;
La Fig. 6 es una subrutina de la colocación de
un punto blanco ejecutado por el CPU;
La Fig. 7 es un dibujo representando un pez
tropical como un objeto móvil, y muestra como poner el sistema de
coordenada del pez;
La Fig. 8 es un dibujo representando un ejemplo
de polígonos del pez tropical como un objeto móvil y las posiciones
de los huesos virtuales;
La Fig. 9 es un dibujo representando un ejemplo
del controlamiento de posiciones de los huesos virtuales;
La Fig. 10 es un dibujo representando un modelo
simple de ondas;
La Fig. 11 es un dibujo representando la
proyección de las ondas de luz;
La Fig. 12 es un dibujo representando la
proyección de las ondas de luz;
La Fig. 13 es un dibujo representando la
decisión de la posición donde la luz es proyectada basada en el
vector de la fuente de luz y el vector normal;
La Fig. 14 es un dibujo representando el vector
de la fuente de luz en el agua calculada usando el modelo simple de
ondas;
La Fig. 15 es un dibujo representando la
decisión de la posición donde la luz es proyectada basada en el
vector de la fuente de luz y el vector normal;
La Fig. 16 es un dibujo representando cuantos
jugadores tocan el sensor (tanque artificial);
La Fig. 17 es un diseño representando otro
ejemplo de expresión de ondas (ondas del océano); y
La Fig. 18 a Fig. 20 son dibujos representando
la operación de otras realizaciones en el control de posiciones
comunes de los huesos virtuales.
Una realización de la presente invención será
ahora descrita con referencia a los dibujos acompañantes.
La Fig. 1 muestra un ejemplo de una
configuración de un sistema de procesamiento de imagen de acuerdo a
la realización. Este sistema de procesamiento de imagen está para
ejecutar un juego agradable de un pez tropical el cual se mueve en
un espacio de juego virtual.
\newpage
Como se muestra en la Fig. 1, el sistema de
procesamiento de imagen comprende un monitor 1a para desplegar
imágenes, el cuerpo principal 1 para el procesamiento de imágenes a
ser desplegadas en el monitor 1a para mostrar las imágenes, e
cuerpo principal 1 para el procesamiento de imágenes a ser mostradas
en el monitor 1a, un tanque 2 el cual es montado sobre el monitor
1a, y un sensor el cual es montado sobre la cara frontal del tanque
2.
El cuerpo principal 1 tiene un tablero de
procesamiento de juego, un orador 14, y varias producciones de
invenciones 12 en una cubierta la cual está formada igual a un
paralelípido rectangular con una anchura mayor que la altura. La
configuración eléctrica y la operación de estos elementos están
descritas más adelante.
El monitor 1a es despliegue de invención
teniendo una extensión de pantalla con una anchura que es más larga
que la altura, y es colocada sobre el cuerpo principal 1. El monitor
1a despliega un pez (pez tropical en este caso) representado por
polígonos e imágenes de fondo. El tamaño y la forma de la extensión
de pantalla del monitor 1a no está limitada a uno con una anchura
que es más extensa que la altura, pero varias tallas y formas
pueden ser usadas dependiendo en el uso deseado.
El tanque 2 es montado para crear una atmósfera
de un tanque actual, donde el agua es expresada por la generación
de burbujas. Este tanque 2 es montado también una forma, donde el
ancho es más extenso que la altura y la profundidad es insípida,
así como para proporcionar la forma del monitor 1a, y es hecho de
vidrio transparente. El tanque 2 es montado sobre la cara frontal
del monitor 1a, como se muestra en la Fig. 2, y un estado para
disfrutar el pez en un tanque real puede ser creado artificialmente
mediante la visualización del pez y el despliegue de fondo
extendido sobre la pantalla del monitor 1a del tanque 2.
El sensor está comprendido de un sensor de
matriz donde sensores infrarrojos son colocados en una matriz, y es
dispuesta sobre al cara frontal del tanque 2, como se muestra en la
Fig. 2. En otras palabras, la parte de despliegue de este sistema
tiene una estructura capada de un sensor de matriz 3, un tanque 2 y
un monitor 1a. Si el jugador golpea ligeramente o toca el tanque,
el sensor 3 detecta esta operación y produce una señal de posición
del cuerpo prinipal1 (ver Fig. 3). El tablero de procesamiento del
juego 10 ejecuta tal procesamiento de imagen como un procesamiento
de movimiento de polígono (e.g. pez), control de posición de la
cámara de vista puntual, y procesamiento de la onda en el espacio
virtual tridimensional basado en la señal de posición, la cual está
descrita más adelante.
El tablero de procesamiento de juego 10 mostrado
en la Fig. 4 está en el cuerpo principal 1. Un monitor (extendido)
1a, un sensor 2, como los dispositivos de salida 12 como un
despliegue, y tal equipo como el orador 14 están conectados
eléctricamente al tablero 10 de procesamiento de imagen. El jugador
puede jugar un juego agradable mediante el contacto del sensor 2 a
voluntad mirando en la pantalla del pez tropical mostrado en el
monitor 1a.
Como se muestra en la Fig. 4, el tablero de
procesamiento de juego 10 comprende un contador 100, un CPU (Unidad
de Procesamiento Central) 101, ROM 102, RAM 103, unidad de sonido
104, interfase entrada/salida 106, unidad de procesamiento de de
sello de datos 107, coprocesador 108 (unidad de procesamiento
aritmético auxiliar), datos topográficos ROM 109, geometrizador
110, datos de figura ROM 111, unidad de dibujo 112, datos de textura
ROM 113, mapa de textura RAM 114, buffer de ajuste 115,
sintetizador de imagen 116 y convertidor D/A 117.
De estos, el CPU 101 es conectado al ROM 102,
donde programas determinados y programas de procesamiento de imagen
son almacenados, y el RAM 1 para el almacenamiento de datos de
operación, unidad de sonido 104, interfase entrada/salida 106,
unidad de procesamiento de rollos de datos 107, coprocesador 108 y
geometrizador 110 por líneas de ómnibus. El RAM 103 funciona como
un buffer, y es usado para escribir varios comandos (e.g. para
desplegar objetos) al geometrizador y para escribir datos necesarios
durante varias operaciones.
La interfase entrada/salida 106 es conectada al
sensor 3. Por esto, tales señales de control como señales de
posición a partir del sensor 3 son digitalmente entrados al CPU 101.
La unidad de sonido 104 es conectada al orador 14 por un
amplificador de poder 105. Mediante esto, el poder de señales
acústicas generadas por la unidad de sonido 104 es amplificado y
expulsado del orador 14 como un sonido.
El CPU 101 lee señales de control del sensor 3,
datos topográficos a partir de datos topográficos ROM 109, o datos
de forma (un "objeto simulando un pez tropical"), y tales datos
tridimensionales como "fondo, incluyendo topografía, cielo,
rocas, suelo del mar, y varias estructuras") basados en programas
almacenados en el ROM 102, y se ejecuta un cálculo de
comportamiento del objeto (simulación) y otros cálculos.
El cálculo de comportamiento es para simular el
movimiento de un objeto (pez tropical) en un espacio virtual
tridimensional (espacio de juego). Para ejecutar este cálculo, los
valores de coordenadas de los polígonos del objeto en el espacio
virtual tridimensional son determinados, entonces la matriz de
conversión, para convertir estos valores de coordenadas a un
sistema de campo coordinado de vista bidimensional y datos de forma
(datos de polígono), son especificados en el geometrizador 110. El
dato topográfico ROM 109 es conectado al coprocesador 108 y al CPU
101. El coprocesador 101 ejecuta primariamente el cálculo de dos
puntos flotantes. Ya que el coprocesador 108 ejecuta varias
decisiones y el resultado decisivo es transferido al CPU 110, la
carga de cálculo sobre el CPU puede ser disminuida.
El geometrizador 110 es conectado a los datos de
forma ROM 111 y la unidad de dibujo 112 al dato de forma (dato
tridimensional de un objeto comprendiendo de cada uno vértice,
topología y fondo), comprendiendo de una pluralidad de polígonos,
ha sido almacenados en adelante en los datos de forma ROM 111. Este
dato de forma es transferido al geometrizador 110. El geometrizador
110 ejecuta transformaciones perspectivas para el dato de forma
especificado usando transformaciones de matrices enviadas del CPU
110, para así obtener el dato, donde el sistema coordenado en el
espacio virtual tridimensional ha sido transformado en un sistema
coordenado de visualización.
La unidad de dibujo 112 adiciona textura a los
datos de forma transformados en el sistema coordenado de
visualización, y produce este buffer de ajuste 115, la unidad de
dibujo 112 es conectada al dato de textura ROM 113 y el mapa de
textura RAM 114, y es conectado también al buffer de ajuste 115.
Los datos de polígono se refieren al grupo de
datos coordenados relativos o absolutos de cada vértice de los
polígonos (primariamente triángulos y cuadriláteros), comprendiendo
de una pluralidad de colecciones de vértices. El dato de polígono
grueso relativamente, el cual es suficiente para ejecutar una
decisión predeterminada (e.g. decisión de contacto) es almacenado
en el dato topográfico ROM 109. En el dato de forma ROM 111, por
otra parte, más datos de polígonos son detallados en formas, como
los objetos y fondo de la pantalla, es almacenado.
La unidad de procesamiento de rollo de datos 107
calcula datos, como caracteres, sobre el rollo de pantalla
(almacenado en el ROM 102). Esta unidad de procesamiento 107 y el
buffer de ajuste 115 son conectados sobre la topografía (fondo)
temporalmente almacenados en el buffer de ajuste 115 y el rollo de
pantalla sobre la información de carácter están sintetizados de
acuerdo a prioridades especificadas, y el dato de imagen de ajuste
final es generado a un tiempo predeterminado. Este dato de imagen de
ajuste final ajustado es convertido a señales análogas por el
convertidor D/A 117, es enviado al monitor 1a, y es mostrado como
una pantalla de juego en tiempo real.
Este sistema de procesamiento de imagen ejecuta
un juego agradable del pez tropical por las unidades de
procesamiento en las Figs. 5 y 6, la cual incluye el CPU 101. La
Fig. 5 muestra la rutina de procesamiento principal la cual es
repetida para cada interrupción (e.g. 1/60 segundos), sincronizando
el ciclo de ajuste de despliegue del monitor 1a, y la Fig. 6
muestra la subrutina detallada del procesamiento de determinación
del punto blanco en la Fig. 5.
Primero, el CPU lee la señal producida del
sensor 3 (Fig. 5, Paso S1), después ejecuta el procesamiento para
la determinación del punto blanco del movimiento del pez de acuerdo
a este resultado de lectura (Paso S2).
El proceso de la determinación del punto blanco
es ejecutado por el CPU 101, como se muestra en la Fig. 6. Lo
primero, el CPU 101 decide si la señal ha sido producida a partir
del sensor 2 (Fig. 6, Paso 2-1). Si el resultado de
esta decisión es NO, esto es, si el jugador no tocó el sensor,
entonces el punto blanco m (m.x, m.y, m.z) del movimiento es
seleccionado como sigue a partir de la tabla discreta (números
randomizados) la cual ha sido predeterminada (Paso
S2-2).
m.x= tabla [temporizador 1].
x
m.y= tabla [temporizador 1].
y
m.z= tabla [temporizador 1].
z
Aquí el temporizador 1 es el contador para
actualizar la tabla. x, y y z denotan la coordenada de posición
real del pez (pez tropical). Este punto blanco m es actualizado cada
30-40 interrupciones, por ejemplo. Cuando una
pluralidad del pez son mantenidos el punto blanco y el número de
interrupciones para la actualización son cambiados para cada pez.
Esta colocación del punto blanco es una característica de la
presente invención, y expresa el comportamiento natural del
pez.
Si el resultado de la decisión en el Paso
S2-a es SI, entonces es decidido más adelante si la
señal recibida del jugador por el sensor 2 indica una posición o
comida del pez en el paso S2-3 (ver Fig. 16). En
este caso, la señal del sensor cuando el jugador toca el sensor 2
es reconocido como una señal indicando una posición, y la señal del
sensor cuando es tocada por el jugador dos o más veces o por una
duración diferente de tiempo es reconocido como una señal indicando
comida del pez.
Si la decisión en el Paso 2-3 es
NO, esto es, si es decidido que la señal indica una posición, o que
la señal indica comida del pez está a mayor distancia que un valor
predeterminado, entonces el procesamiento de avance
S2-4, y la "posición de la matriz por la señal del
sensor = punto blanco" es colocado. En otras palabras, los
movimientos son colocados:
m.x = x de la posición
detectada
m.y = y de la posición
detectada
m.z = z de la posición
detectada
Si la decisión del Paso 2-3 es
SI, esto es, si es decidido que la señal indica comida del pez y la
posición del pez está directamente delante del pez (dentro de un
rango predeterminado del pez), entonces el procesamiento de avance
al paso S2-5, y "la posición de la matriz de la
comida del pez = punto blanco" es colocado. En otras palabras,
los movimientos son colocados.
m.x =x de la posición de comida del
pez
m.y =y de la posición de comida del
pez
m.z =z de la posición de comida del
pez
Después que el punto blanco es puesto en esta
manera, el punto blanco es corregido adelante (Paso
S2-6). Este procesamiento de corrección es
ejecutado por (Xmax., Ymax, Zmax), la cual indica el valor máximo de
la posición espacial en el tanque virtual, el cual es colocado en
un espacio virtual tridimensional, y (Xmin, Ymin, Zmin), lo cual
indica el valor mínimo de la posición espacial en el tanque virtual.
Específicamente, el punto blanco m (m.x, m.y, m.z) el cual fue
colocado es puesto para:
si m.x > Xmax del tanque,
entonces m.x = Xmax del
tanque
si m.x < Xmin del tanque,
entonces m.x = Xmin del
tanque
si m.y > Xmax del tanque,
entonces m.y = Xmax del
tanque
si m.y < Xmin del tanque,
entonces m.y = Xmin del
tanque
si m.z > Xmax del tanque,
entonces m.z = Xmax del
tanque
si m.z < Xmin del tanque,
entonces m.z = Xmin del
tanque
Debido a esto, el punto blanco nunca será
desviado del tanque virtual.
Entonces el CPU 101 retorna reprocesando al Paso
S3 del procesamiento principal en la Fig. 5. En el Paso S3, el
impulsamiento de la velocidad del pez (velocidad) puede ser cambiada
dependiendo de la comida del pez la cual aparece cuando el jugador
toca el sensor 3, como se mencionó arriba, o dependiendo de la
temperatura del agua. En este sentido el grado de movimiento activo
del pez puede ser ajustado.
Luego en el Paso S4, el CPU 101 calcula la
fuerza (Fw.x, Fw.y, Fw.z) del componente de rotación ejercida sobre
el pez. Los detalles están como siguen.
Primero, el vector de dirección h (h.x, h.y,
h.z), el cual puede ser un vector único, apuntando de la posición
actual p (p.x, p.y, p.z) al punto blanco m (m.x, m.y, m.z), es
calculado a partir de
h.x = (m.x – p.x) /
L
h.y = (m.y – p.y) /
L
h.z = (m.y – p.y) /
L
Aquí, L denota una distancia entre el punto p y
el punto m en cada dirección x,y y z.
Por consiguiente la fuerza Fw del componente de
rotación es calculada. Al principio, la fuerza Fw.y del eje de
rotación Y y la fuerza Fw.x del eje de rotación X del pez son
determinados a partir de
- Fw.y = Fw.y + (h.z* sin (r.y) – h.x* cos (r.y)) * velocidad * k0
- Fw.x = (m.y- p.y) *k1
Aquí, k0 y k1 son constantes. El (r.y) indica la
coordenada del componente y del ángulo de rotación r del pez visto
en la coordenada global.
Luego, usando el tiempo (temporizador), la
fuerza de rotación cuando el cuerpo del pez oscila a la izquierda o
la derecha cuando la impulsión es determinada por
Fw.y = Fw.y
+(k0 + velocidad *
k1)
Si el tiempo 3%2 = 0 ( el resto cuando el valor
del temporizador 3 dividido por 2 es 0) o por
Fw.y = Fw.y –
(k0 + velocidad *
k1)
si no ( el resto es
1).
Entonces la fuerza de rotación, para prevenir al
pez de contactar la pared del tanque virtual, es determinada. Por
esto, es decidido si la distancia a la pared es menor que un valor
determinado, y si es,
Fw. x = Fw.x +
componente x de la fuerza de rotación para prevenir el contacto con
la
pared
Fw. y = Fw.y +
componente y de la fuerza de rotación para prevenir el contacto con
la
pared
son calculados. La fuerza de
rotación para prevenir el contacto de la pared es un valor
predeterminado como una
constante.
Luego la fuerza de rotación para prevenir el
contacto de otro pez es determinado. Por esto, si es decidido si la
distancia a otro pez es menor que un valor predeterminado, y si es
así
- Fw.x + componente X de la fuerza de rotación para prevenir el contacto con otro pez
\vskip1.000000\baselineskip
- Fw. y = Fw.y + componente Y de la fuerza de rotación para prevenir el contacto con otro pez
son calculados. La fuerza de rotación para
prevenir el contacto con otro pez es también un valor
predeterminado.
La fuerza Fw del componente general de rotación
es calculada como una síntesis de fuerzas en cada condición
mencionada arriba.
El CPU 101 entonces avanza al paso S5, y calcula
el ángulo de rotación del pez. Ahora, se asume que la aceleración
angular es aw (aw.x, aw.y, aw.z), la velocidad angular es w (w.x,
w.y, w.z), la rotación angular es r (r.x, r.y, r.z), y el
coeficiente de resistencia del agua es repelida.
Entonces la influencia de la atenuación de la
velocidad de la rotación angular es calculada por
nuevo w.x a este tiempo = w.x * k
previos
nuevo w.y a este tiempo = w.y * k
previos
nuevo w.z a este tiempo = w.x * k
previos
Aquí k es una constante y está 0 < k<
1.
La aceleración angular es calculada por
aw.x (Fw.x – repeler * w.x) *
k
aw.y (Fw.y – repeler * w.y) *
k
Aquí k es una constante.
El ángulo de rotación es calculado mediante
r.z = (- w.y *
k)
Aquí k es una constante.
La velocidad angular es calculada por
nuevo w.x a este tiempo = w.x +
aw.x
previos
nuevo w.y a este tiempo = w.y +
aw.y
previos
Los ángulos de rotación x y "y" son
actualizados mediante
nuevo r.x a este tiempo = r.x + w.x
previos
nuevo r.x a este tiempo = r.x + w.y
previos
Luego el CPU 101 calcula la fuerza Fv ( Fv.x,
Fv.y, Fv.z) ejecutado sobre el pez en el paso S6.
Específicamente la fuerza impulsora del pez
blanco es calculada primero.
Y la fuerza es calculada basada en la decisión
de la colisión con otro pez. Si es decidido que un pez contactará
con otro pez, entonces
Fv.x = Fv.x + distancia al punto de
contacto *
k
Fv.y = Fv.y + distancia al punto de
contacto *
k
son calculados. Aquí k es una
constante.
La fuerza resultante Fv ejecutada sobre un pez
es calculada mediante la sintetización de cada fuerza mencionada
arriba.
Si es decidido que una fuerza externa es también
recibida del tanque virtual en la decisión de la colisión con el
tanque virtual, esta fuerza es sintetizada como Fv. Si l pez
contactará con la pared del tanque o el piso, entonces
Fv.x = distancia al punto de
contacto *
k
Fv.y = distancia al punto de
contacto *
k
son calculados, donde k es una
constante.
Entonces el CPU 101 avanza al Paso S7 y se
calcula la posición del pez. Ahora, se asume que la aceleración es
av (av.x, av.y, av.z), la velocidad es v (v.x, v.y, v.z), la
posición es p (p.x, p.y, p.z) y el coeficiente de resistencia del
agua es repelido.
Luego la influencia de la atenuación de la
velocidad sobre el impulsamiento del pez es calculado por
nuevo v.x a este tiempo = v.x * k
previos
nuevo v.y a este tiempo = v.y * k
previos
nuevo v.z a este tiempo = v.x * k
previos
Aquí k es una constante es una constante y está
0 < k< 1.
La aceleración es calculada por
av.x = (Fv.x – repeler * v.x) *
k
av.y = (Fv.y – repeler * v.y) *
k
av.z = (Fv.z – repeler * v.z) *
k
Aquí k es una constante.
La velocidad es actualizada por
nuevo v.x a este tiempo = v.x +
av.x
previos
nuevo v.y a este tiempo = v.y +
av.y
previos
nuevo v.z a este tiempo = v.z +
av.z
previos
La posición es actualizada mediante
nuevo p.x a este tiempo = p.x + v.x
previos
nuevo p.y a este tiempo = p.y + v.y
previos
nuevo p.z a este tiempo = p.z + v.z
previos
Junto con la simulación mencionada del
movimiento del pez, la presente invención está también en la cual la
posición de los huesos virtuales, la cual son virtualmente
colocados para el pez, es controlada. El CPU 101 ejecuta el
procesamiento para esto en los Pasos S8-10. La Fig.
8 muestra un ejemplo de los huesos virtuales
1-6.
\newpage
\global\parskip0.900000\baselineskip
En el Paso S8, la posición p del pez determinado
en el Paso S7 es colocado como la primera posición del hueso muy
cerca de la cabeza entra la pluralidad de huesos virtuales
1-6, y el próximo hueso es secuencialmente
calculado. Las condiciones para determinar la posición de un hueso a
la articulación próxima son:
a. La distancia entre las articulaciones de los
huesos es constante (los huesos no se extienden).
b. El ángulo al cual un hueso puede plegarse es
limitado (los huesos no hacen una vuelta en la articulación).
c. Los huesos rotan solo a lo largo de los ejes
X y Y (los huesos no están entrelazados).
Ya que es preferible incluir la velocidad
angular, relevante para la intención del pez, para las
articulaciones las cuales existen detrás del centro de gravedad,
simulando así estrechamente al movimiento real del pez es
ejecutado, esta velocidad angular, la cual es relevante para la
intención del pez, es sumada a la rotación para el cuerpo cerca de
la cola. El hueso para esta velocidad angular, la cual es relevante
para la intención del pez, es predeterminada dependiendo sobre el
pez. Específicamente, el procesamiento siguiente es repetido para
el número de articulaciones de los huesos.
Asume que la posición actualizada de la
articulación del hueso es
p0= hueso [i -
1].
p
y que la posición de la
articulación del hueso a ser actualizada
es
p1= hueso [ i
].
p
y determina la dirección del vector
por
v.x = (p1.x – p0.x) /
L
v.y = (p1.y – p0.y) /
L
v.z = (p1.z – p0.z) /
L
Aquí L es una distancia entre el punto p0 y el
punto p1 en cada eje de dirección.
El ángulo ang Y a lo largo del eje Y formado por
el vector v.x y el vector v.z es determinado como sigue. Si la
articulación está detrás del centro de gravedad del pez, entonces es
puesto para
ang Y = ang Y +
(velocidad angular para ser la intención del
pez).
si el ángulo formado por ang
Y-articulación del hueso [i - 1] > ángulo de
límite superior del hueso, entonces se
pone
hueso [ i ].r.y
(ángulo formado por la articulación del hueso) = ángulo de límite
superior del
hueso.
si el ángulo formado por ang Y-
articulación del hueso [i - 1] < ángulo de límite inferior del
hueso, es puesto entonces al hueso [ i ]. r.y (ángulo formado por
la articulación i) = ángulo de límite superior del hueso, por otra
parte, puesto
para
hueso [ i ].r.y
(ángulo formado por la articulación i del hueso) = ang
Y
en el mismo sentido, ang X a lo
largo del eje X es
determinado.
Usando el ángulo determinado ang Y y ang X, el
vector de dirección del hueso [ i].v de la articulación del hueso
i-1 a la articulación del hueso, el cual es el
hueso [ i ].p, es determinado como sigue usando la posición de la
articulación previa (adelante) del hueso i-1, que es
el hueso [i-1].p y la dirección del vector [ i ].v
apuntando de la articulación i-1 a la articulación
i.
hueso [ i ].p.x
= hueso [ i-1].p.x + hueso [ i ].v.x * distancia
entre la articulación i y la articulación
i-1.
hueso [ i ].p.y
= hueso [ i-1].p.y + hueso [ i ].v.x * distancia
entre la articulación i y la articulación
i-1.
hueso [ i ].p.z
= hueso [ i-1].p.z + hueso [ i ].v.x * distancia
entre la articulación i y la articulación
i-1.
\global\parskip0.990000\baselineskip
El procesamiento de arriba es repetido para el
número de articulaciones de los huesos, y las posiciones respectivas
de los huesos virtuales son calculadas.
Entonces el CPU 101 determina la transformación
de la matriz de (rotación Y, rotación X) para calcular las
posiciones de los huesos virtuales en el paso S9 y S10, y cada
posición del vértice del cuerpo del pez en concordancia con el
hueso calculado (ver Fig. 8). La Fig.9 (a) y (b) muestra un ejemplo
de la posición control de los huesos virtuales.
Por consiguiente el CPU 101 coloca los puntos de
vista de una cámara virtual, centrándose en el pez y la comida del
pez, que el jugador está jugando. Debido a esto, la pantalla
desplegada sobre el monitor 1a para el procesamiento de dibujo
mencionado más adelante es la vista a partir de la cámara de vista
puntual el cual es puesto aquí.
Entonces el CPU 101 ejecuta el procesamiento en
los Pasos S12-13. Estos procesamientos, los cuales
está para promover la atmósfera del pez en el agua, expresar un pez
flotando en las ondas usando un modelo simple de ondas, y crear
ondas de luz proyectadas en el agua usando la rotación y los datos
de posición del modelo simple.
Al principio en el Paso S12, un modelo simple
para una pequeña onda es colocada, y la constante física relacionada
a este modelo es calculada. Específicamente, el modelo simple el
cual está presente y almacenado, como se muestra en la Fig. 10, es
leído. Este modelo simple tiene una forma rectangular paralelípeda,
en donde los lados son 2A, 2B y 2C, y una masa que es M, y las
cuatro esquinas de la base son apoyadas por resortes. Aquí la
constante de elasticidad en la dirección vertical y la dirección
horizontal de cada resorte son k1 y k2 respectivamente. La posición
del centro de gravedad es el origen, y el momento de inercia es
l1,l2 y l3. la aceleración es aw (x,y,z),la velocidad angular es w
(x,y,z), y el ángulo es r (x,y,z).
Mediante el cambio de las condiciones iniciales
del modelo simple o cambiando las constantes de elasticidad de cada
interrupción, el movimiento de un objeto flotante sobre una onda
grande o pequeña puede ser expresada libremente. En otras palabras,
las ecuaciones para el movimiento establecidas para este modelo
simple son
- \quad
- M * av.x + 4 * k2 * p.x = 0
- \quad
- M * av.y + 4 * k2 * p.y = 0
- \quad
- M * av.z + 4 * k2 * p.z = 0
\vskip1.000000\baselineskip
- \quad
- I1 * aw.x + 4 * (k1 * B * B + k2 * C * C ) * r.x = 0
- \quad
- I2 * aw.y + 4 * (k1 * A * A + k2 * C * C ) * r.y = 0
- \quad
- I3 * aw.z + 4 * (k1 * A * A + C * C ) * r.z = 0
\vskip1.000000\baselineskip
- \quad
- I1 = M * (B * B + C * C ) / 3
- \quad
- I2 = M * (C * C + A * A ) / 3
- \quad
- I3 = M * (A * A + B * B ) / 3
Estas ecuaciones determinan la posición p (x, y,
z) y el ángulo r (x, y, z) para cada interrupción.
En las constantes de elasticidad k1 y k2 están
puestas para valores arbitrarios, por ejemplo, la aceleración puede
ser calculada por
av.x = - 4,0 * k2 * p.x /
M
av.y = - 4,0 * k2 * p.y /
M
av.z = - 4,0 * k1 * p.z /
M
y la aceleración angular puede ser
calculada
mediante
aw.x = -4,0 * (k1 * B * B + k2 * C
* C) * r.x /
I1
aw.y = -4,0 * (k1 * A * A + k2 * C
* C) * r.y /
I2
- \quad
- aw.z = -4,0 * (k1 * A * A + B *B) * r.z / I3
\newpage
\global\parskip0.900000\baselineskip
La velocidad puede ser calculada por
nuevo v.x a este tiempo = v.x +
av.x
previos
nuevo v.y a este tiempo = v.y +
av.y
previos
nuevo v.z a este tiempo = v.x +
av.z
previos
\vskip1.000000\baselineskip
La velocidad angular puede ser calculada por
nuevo w.x a este tiempo = w.x +
aw.x
previos
nuevo w.y a este tiempo = w.x +
aw.y
previos
nuevo w.z a este tiempo = w.x +
aw.z
previos
\vskip1.000000\baselineskip
La velocidad angular puede ser calculada por
nuevo p.x a este tiempo = p.x + v.x
previos
nuevo p.y a este tiempo = p.y + v.y
previos
nuevo p.z a este tiempo = p.z + v.z
previos
\vskip1.000000\baselineskip
Y el ángulo de rotación es determinado por
nuevo r.x a este tiempo = r.x + w.x
previos
nuevo r.y a este tiempo = r.y + w.y
previos
nuevo r.z a este tiempo = r.z + w.z
previos
\vskip1.000000\baselineskip
El movimiento de las ondas puede ser expresado
mediante el reflejo de la posición p (x, y,z) del cuerpo del pez,
las superficies de las ondas y el fondo.
En el Paso S13, el dato para expresar las ondas
de luz es creado. En esta realización, el modelo donde la textura
de la onda de luz es proyectada sobre el modelo del polígono es
diseñado en el modelo de polígono ordinario de un pez para expresar
las ondas proyectadas sobre el pez. La realización de este hardware
basado en mapas ambientales es innecesaria.
La textura de la onda de luz es siempre
proyectada sobre el pez en un coodenada global por la proyección
del plano X-Z, como se muestra en las Figs. 11 y
12.(Realmente el pez está en un estado cercano a esta proyección
del plano X-Z ya que en el océano se recibe luz de
la superficie). Puesto que las condiciones de la posición y de
rotación del pez cambia en tiempo real, el procesamiento de la
proyección de la textura es ejecutada en tiempo real.
Para expresar el brillo de la luz reflejada
sobre el pez, la transparencia de cada polígono del pez con una
textura proyectada en paralelo es cambiada de acuerdo a cuanta luz
contacta el pez. Por ejemplo, la luz es más reluciente cuando el
pez está más cerca de la superficie del mar, y áreas donde la luz no
hace contacto son puestas por ser polígonos transparentes, como se
muestra en la Fig. 13. Para ejecutar este procesamiento, un vector
de la fuente de luz es irradiado a partir de la pared externa del
tanque virtual a un ángulo predeterminado, y un vector de la fuente
es calculado a partir del modelo simple de ondas. En este sentido,
el vector de la fuente de luz procesa cuando el vector de la fuente
de luz entra al tanque virtual (ver Fig. 14). Si el ángulo formado
por el vector de la fuente de luz y el vector normal del polígono es
un ángulo agudo, como se muestra en la Fig. 15 (b), el polígono es
colocado por ser un polígono transparente, juzgando que la luz no
contacte el polígono. Si el ángulo es un ángulo obtuso, por otra
parte, como se muestra en la Fig. 15 (a), la transparencia se hace
mayor cuando el ángulo se convierte más pequeño, ya que el brillo se
incrementa al incrementarse el ángulo.
En términos cuantitativos, si la matriz de la
columna x 4 filas del modelo (pez) es
mat00 mat01 mat02
mat03
mat10 mat11 mat12
mat13
mat20 mat21 mat22
mat23
mat30 mat31 mat32
mat33
\global\parskip0.990000\baselineskip
entonces el indicador de la textura
(U,V) de los vértices (x, y. z) del polígono
es
U = x * mat00 + y * mat01 + z
*mat02 +
mat30
V = x * mat20 + y * mat21 + z *
mat22 +
mat32
La transparencia T del polígono es calculada por
el producto interno de la luz del vector de la fuente de luz y el
vector normal n del polígono(ambos vectores de luz y n son
vectores unitarios) como
T = (luz. x
n.x + luz.y * n.y + luz. z * n.z) *
32
cuando los 32 niveles de
transparencia del polígono pueden ser seleccionados. Cuando el
ángulo es un ángulo agudo, T = 0 es puesto ya que la luz no hace
contacto.
El polígono es diseñado con el indicador de
textura (U,V) y la transparencia del polígono T.
La información de los diversos cálculos
obtenidos en este sentido es transferido al geometrizador 110 y los
rollos de datos procesados por la unidad 107 en el Paso S 14, donde
el procesamiento del diseño para cada discontinuidad es
instruido.
Por esto, un pez moviéndose en tiempo real puede
ser expresado en la pantalla del monitor 1a. A diferencia del tipo
de movimiento convencional, el movimiento de este pez es controlado
usando un punto blanco, y el punto blanco es actualizado para cada
número predeterminado de las interrupciones o es actualizado de
acuerdo al toque del jugador sobre el sensor. En este método para
el colocamiento del punto blanco, el procesamiento para expresar el
comportamiento de dicha criatura viviente como un pez tropical es
relativamente fácil, el procesamiento del volumen es pequeño, y el
movimiento de la criatura parece más natural que el método para
interpolar los datos creados previamente en el movimiento (datos de
movimiento, datos de matriz sobre la rotación/alargamiento o
encogimiento).
Puesto que la colocación del punto blanco hace
el comportamiento del pez más real que el método convencional,
moviendo el pez más naturalmente, el jugador puede disfrutar el pez
en un espacio virtual tridimensional como si el pez real existiera,
y puede disfrutar un juego agradable muy realístico.
También el jugador puede señalar un pez o el
alimento de un pez por el rozamiento o toque del sensor, como
muestra la Fig. 16, con el pez respondiendo por el nado alejándose o
acercándose basado en las instrucciones del jugador. Como
resultado, el jugador puede disfrutar en un espacio virtual
tridimensional, justo como en un tanque real.
Las imágenes pueden ser desplegadas con una
cámara de vista puntual, centrándose en el pez o en la comida del
pez que el jugador está jugando con atención. Esto significa que un
sentimiento de la realidad virtual, ligeramente diferente del
tanque actual, puede ser creado, y un ofrecimiento de un
entretenimiento considerable de un juego agradable puede ser
proporcionado.
En la realización de arriba, el pez flotando en
la onda de agua es expresado pero estas ondas pueden ser "ondas
del océano". Para implementar esto, la textura de las capas del
polígono son movidas (las posiciones de los polígonos están sin
cambiarse). La textura usada aquí es semitransparente o un
embaldosado posible. Las mociones verticales de las ondas son
expresadas mediante el movimiento de los vértices p (x, y, z) del
polígono por la función de seno, como
p.y = sin
(Temporizador * (p.x +
p.z))
El indicador de textura (U,V) de los vértices
(x, y, z) del polígono es puesto
Nuevo U a este tiempo = U + TX
previos
Nuevo V a este tiempo = V + TZ
previos
para la primera capa, como se
muestra en la Fig. 17. Aquí TX y TZ son constantes. Para la segunda
capa
Nuevo U a este tiempo = U + TX
previos
Nuevo V a este tiempo = V - TZ
previos
son puestos. El polígono es
dibujado con un indicador de textura (U,V). En este sentido, las
ondas del océano pueden ser expresadas, como se muestra en la Fig.
17 (c), por el revestimiento de la textura de dos capas de los
polígonos.
Una criatura viviente para ser el sujeto de este
juego deleitable no está limitado al pez tropical mencionado arriba
(pez), pero pueden ser criaturas tales como un ave o un insecto.
El punto blanco pude ser puesto no solo a un
punto alrededor del tanque virtual, como en la realización
mencionada arriba sino a otro pez que es diferente del control del
pez blanco, o a un punto, un área, o un rango en un espacio
exterior del tanque virtual.
El punto blanco puede ser movido de acuerdo al
movimiento del pez en un cronometraje apropiado, período o tiempo,
si el pez, alcanza este punto blanco o no, y si es posible poner un
nuevo punto blanco. Debido a esto, el movimiento de varios objetos
(pez) puede se libremente simulado usando un volumen pequeño de
datos.
Ahora otra realización del control de las
posiciones de los huesos del pez mencionado arriba será
descrita.
Para el control de la posición del hueso
mencionado arriba, lo siguiente fue definido o usado como
precondiciones.
a. La distancia entre las articulaciones de los
huesos es constante (los huesos no se extienden).
b. El ángulo al cual un hueso puede plegarse es
limitado (los huesos no hacen una vuelta en la articulación).
c. Los huesos rotan solo a lo largo de los ejes
X y Y (los huesos no están entrelazados).
Si la posición de una articulación de un hueso
en un marco previo está definido por \medcirc y una nueva posición
de la articulación del hueso después de la posición es cambiada es
denotada por \Box, la posición actualizada de la articulación del
hueso es Pn-1 (Pn-1 del \Box), y
la posición de la articulación del hueso a ser actualizado de ahora
en adelante es (Pn del \medcirc) entonces los vectores de
dirección que conectan a las dos articulaciones adyacentes están
como siguen.
Vn.x = Pn.x – Pn-1.
x
Vn.y = Pn.y – Pn-1.
y
Vn.z = Pn.z – Pn-1.
z
Aquí el ángulo formado por el vector Vn y el
vector Vn-1 está determinado. Este ángulo está
restringido, como muestra la Fig. 18,a corregir el vector Vn, y la
nueva posición de Pn de la articulación del hueso (Pn del \Box),
es determinada.
En una forma de variante de la realización a ser
descrita aquí, por otra parte, el movimiento del pez puede ser
reproducido sin calcular el ángulo como está arriba. En otras
palabras, "b. El ángulo al cual un hueso puede doblarse es
limitado (los huesos no hacen un giro en la articulación)" es
cambiado al "vector Vn es tirado a una fuerza predeterminada en
dirección a enderezar al pez (vector f)". Debido a este cambio,
la realización modificada puede omitirse puesto que el cálculo de
la tangente del arco no es necesario.
La realización modificada también tiene ventajas
en que el movimiento del pez es más liso comparado con el caso
arriba mencionado en donde el ángulo está limitado, el movimiento
del pez en el límite del ángulo se convierte rígido, y el
comportamiento del pez se convierte más innatural comparado con le
comportamiento de un pez real. Ya que la realización no pone una
limitación sobre el ángulo, el comportamiento en el nado del pez no
lo convierte en no natural.
La Fig. 19 muestra la posición de la
articulación del pez de acuerdo a esta realización modificada. En la
Fig. 19, el vector Vn en la Fig. 18 es cambiado al vector. Este
vector es cambiado como sigue.
La dirección del vector V'n es una dirección en
donde el vector Vn y el vector f son añadidos.
V'n.x = Pn.x –
Pn-1.x +
f.x
V'n.y = Pn.y –
Pn-1.y +
f.y
V'n.z = Pn.z –
Pn-1.z +
f.z
Cambiando apropiadamente la talla del vector f
la flexibilidad del cuerpo del pez puede ser cambiada.
La posición de la articulación del hueso del pez
es determinada seguidamente como describe la realización
previa.
Pn.x = Pn-1.x – U.x
* (distancia entre la articulación n y la articulación
n-1)
Pn.y= Pn-1.y – U.y
* (distancia entre la articulación n y la articulación
n-1)
Pn.z= Pn-1.z – U.z
* (distancia entre la articulación n y la articulación
n-1)
El vector U aquí es un vector unitario del
vector V'n.
\newpage
La Fig. 20 es un ejemplo más avanzado que la
Fig. 19, donde el número de articulaciones se incrementa a 4. El
vector f tiene una dirección apuntando de la primera articulación
Pn-1 (cabeza del pez) en las posiciones de las
articulaciones del marco previo (mostrado por \medcirc) al centro
de gravedad del pez. En esta realización, el centro del pez, que
es, el punto entre la articulación Pn y la articulación Pn+1 es
determinado por ser el centro de gravedad. Cálculos de la nueva
posición de la articulación del hueso puede ser secuencialmente
ejecutada para las articulaciones continuas usando el método
descrito en la Fig. 18. Los vectores f+1 y f+2 para diferentes
articulaciones pueden ser cambiados respectivamente. Mediante el
cambio de la talla del vector f dependiendo de la posición de Pn+2,
el cual es una articulación de la cola, particularmente poniendo el
valor a ser valores más pequeños secuencialmente en áreas que se
conviertan en las más cercanas a la cola, un comportamiento más
flexible del pez puede ser implementado. El inventor de la presente
invención cree que este comportamiento es cercano al comportamiento
del pez en el mundo natural. Así como la talla del vector f se hace
más pequeña, la posición de la articulación en los marcos previos
(status antes que cambio) es reflejada, esto es, el status del
marco anterior es mantenido, por lo que la posición de la
articulación no cambia grandemente y el comportamiento del pez se
convierte más suave.
En la realización previa y en esta realización,
el pez fue usado como un ejemplo para la explicación, pero la
presente invención no está restringida por esta. Los objetos, además
de los peces, los cuales se comportan como si las articulaciones
existieran, incluyen insectos y reptiles. Otros objetos cuyos
comportamientos pueden ser controlados con articulaciones virtuales
son los objetos parecidos a cuerdas largas, el movimiento de pelo y
el movimiento de tela. Un objeto que se mueve por "el
serpentineo" está también incluido en esta categoría.
De acuerdo a esta realización, el comportamiento
de estos objetos puede ser desplegado como más real mediante la
provisión de una pluralidad de articulaciones, y mediante el cálculo
de las posiciones de las articulaciones adyacentes secuencialmente
en tiempo real.
Como se explicó arriba, en concordancia con el
sistema de procesamiento de imagen y el método de procesamiento de
imagen de acuerdo a la presente invención, el movimiento de un
objeto móvil es simulado basado en el punto blanco del movimiento
del objeto móvil para así calcular el dato de imagen y este dato de
imagen es mostrada, por lo tanto, el movimiento de un criatura
viviente, como el de un pez en un espacio virtual tridimensional
puede ser expresado como más real y natural, y un juego agradable
muy realístico, el cual permite disfrutar una criatura viviente
como si la criatura fuera real, puede ser proporcionado. Es posible
también expresar la interacción entre el objeto móvil y el jugador
por la simulación de dicha criatura viviente como un pez en un
espacio virtual tridimensional, por lo tanto, un sentimiento
realístico puede ser aumentado y un juego agradable que ofrece
entretenimiento puedes ser proporcionado.
El ROM 102 mencionado arriba corresponde a un
medio de almacenamiento donde programas de las máquinas de juegos
para implementar las operaciones de procesamiento de imagen
explicadas arriba son almacenadas. El ROM incluye el
CD-ROM y cassette ROM. Un disco floppy, disco duro o
medio de comunicación pueden ser también usados. También el
servidor RAN puede ser incluido aquí.
Claims (28)
1. Unidad de procesamiento de imagen (10) para
la generación de datos de imagen y/o mociones de un objeto simulando
una criatura viviente por la definición del objeto en un espacio
virtual tridimensional, poniendo puntos blancos sucesivos en un
espacio virtual tridimensional con respecto al objeto, calculando
movimientos y/o mociones para el objeto en correspondencia con cada
punto blanco puesto sucesivo, y generando los datos de imagen
basados en el resultado calculado, caracterizado porque el
punto blanco es actualizado repetidamente por la reselección a cada
tiempo de una tabla en donde una pluralidad de valores randomizados
predeterminados de las posiciones en un espacio virtual
tridimensional son puestos en avance, y en dicho cálculo de
movimientos y/o mociones incluye el cálculo de la fuerza de
rotación ejercida sobre el objeto.
2. Unidad de procesamiento de imagen de acuerdo
a la reivindicación 1, en la que la colocación del punto blanco es
repetida a un período de tiempo predeterminado.
3. Unidad de procesamiento de imagen de acuerdo
a la reivindicación 1 o la reivindicación 2, en la cual los datos
de imagen del objeto son generados por la definición de una
pluralidad de huesos virtuales para la criatura viviente,
calculando posiciones del objeto en un espacio virtual
tridimensional con respecto a puntos blancos sucesivos, calculando
secuencialmente las posiciones de los huesos virtuales del objeto
usando las posiciones del objeto, calculando as posiciones
respectivas del vértice usando las posiciones de los huesos
virtuales, y generando datos de imagen de dicho objeto basado en
los vértices respectivos.
4. Unidad de procesamiento de imagen de acuerdo
a una cualquiera de las reivindicaciones 1 a 3, en donde los datos
de imagen para expresar las mociones del objeto es generado mediante
la definición de una pluralidad de huesos virtuales del objeto,
calculando posiciones de las articulaciones virtuales, y calculando
datos de imagen expresando las mociones del objeto basado en las
posiciones de las articulaciones virtuales.
5. Unidad de procesamiento de imagen de acuerdo
a una cualquiera de las reivindicaciones 1 a 4 comprendiendo además
un sensor para la detección de la manipulación por el jugador, en
donde los puntos blancos son actualizados en respuesta a señales
del sensor.
6. Sistema de procesamiento de imagen
comprendiendo una unidad de procesamiento de imagen de acuerdo a una
cualquiera de las reivindicaciones 1 a 4, una unidad de despliegue
(1a) sobre la cual la imagen generada por la unidad de
procesamiento de imagen es desplegada, y un sensor (3) dispuesto
sobre la cara frontal de la unidad de visualización, en donde la
unidad de procesamiento de imagen es colocada para causar los
puntos blancos a ser actualizados en respuesta a señales externas
del sensor detectando la manipulación por un jugador.
7. Sistema de procesamiento de imagen de acuerdo
a una la reivindicación 6, comprendiendo además un tanque de agua
virtual (2) dispuesto entre la cara frontal de la unidad
visualización y el sensor.
8. Sistema de procesamiento de imagen de acuerdo
a la reivindicación 6 o 7, en donde un espacio virtual
tridimensional incluye un tanque virtual de agua y el objeto
estimula una criatura viviente que se mueve en un tanque virtual de
agua.
9. Sistema de procesamiento de imagen de acuerdo
a la reivindicación 7 a 8, en donde la unidad de procesamiento de
imagen es colocada para causar que el objeto se despliegue en la
unidad de pantalla para moverse hacia una posición en la cual el
jugador toca el sensor en la cara frontal de la unidad de
visualización.
10. Sistema de procesamiento de imagen de
acuerdo a cualquiera de las reivindicaciones 7 a 9, en la cual
dicha unidad de procesamiento de imagen es colocada para calcular la
información atmosférica y para adicionar a los datos de imagen para
extender en la unidad de visualización.
11. Sistema de procesamiento de imagen de
acuerdo a una la reivindicación 10, en donde la información
atmosférica incluye ondas de agua.
12. Sistema de procesamiento de imagen de
acuerdo a la reivindicación 10 o la reivindicación 11, en la que la
información atmosférica incluye ondas de luz que se mueven en el
agua en el tanque virtual
13. Sistema de procesamiento de imagen de
acuerdo a una la reivindicación 11, en el que un modelo simple de
ondas está definido para las ondas, este modelo es un modelo virtual
de un paralelípido rectangular donde tres lados son valores
predeterminados, el peso es un valor predeterminado, y cada uno de
los cuatro vértices de la base está sostenida por un resorte
respectivamente, y el movimiento de ondas es simulado por el cambio
de las constantes de elasticidad de los resortes a cada tiempo
predeterminado.
14. Sistema de procesamiento de imagen de
acuerdo con cualquiera de las reivindicaciones 6 a 13, en donde un
sensor es un sensor de matriz incluyendo sensores infrarrojos con la
cual producen una señal cuando es tocado por un jugador.
15. Sistema de procesamiento de imagen para el
generamiento de datos de imagen para el despliegue de movimientos
y/o mociones de un objeto simulando una criatura viviente,
comprendiendo los pasos de:
- definición del objeto en un espacio virtual tridimensional
- colocación de puntos blancos sucesivos en un espacio virtual tridimensional con respecto al objeto,
- y
- cálculo de movimientos y/o mociones del objeto en correspondencia con cada punto blanco sucesivo,
- y
- la generación de datos de imagen basados en los resultados calculados,
- Caracterizados por
actualización repetidamente del punto blanco por
la reselección a cada tiempo a partir de una tabla en donde una
pluralidad de valores randomizados para posiciones en un espacio
virtual tridimensional son puestos en avance, y como parte de dicho
paso de cálculo, calculando la fuerza de rotación ejercida sobre
el objeto.
16. Sistema de procesamiento de imagen de
acuerdo a la reivindicación 15, en donde el colocamiento del punto
blanco es repetido a un período de tiempo predeterminado.
17. Método de procesamiento de imagen de acuerdo
a la reivindicación 15 o la reivindicación 16, comprendiendo además
los pasos de:
- definición de una pluralidad de huesos virtuales para la criatura viviente,
- cálculo de posiciones del objeto en un espacio virtud tridimensional con respecto a los puntos blancos sucesivos,
- cálculo de las posiciones secuencialmente de los huesos virtuales del objeto usando las posiciones del objeto,
- cálculo de las posiciones de los vértices respectivos de los polígonos usando las posiciones de los huesos virtuales, y generando datos de imagen de dicho objeto basado en los vértices respectivos.
18. Método de procesamiento de imagen de acuerdo
a las reivindicaciones 15 a 17, comprendiendo además los pasos
de:
- definición de una pluralidad de huesos virtuales del objeto,
- calculando posiciones de los huesos virtuales, y
- calculando datos de imagen expresando mociones del objeto basado en las posiciones de las articulaciones virtuales.
19. Método de procesamiento de imagen de acuerdo
a cualquiera de las reivindicaciones 15 a 18, en donde los puntos
blancos son actualizados en respuesta a señales del sensor el cual
detecta la manipulación por el jugador.
20. Método de procesamiento de imagen de acuerdo
a la reivindicación 19, en la que un sensor está dispuesto en la
cara frontal de una unidad de visualización.
21. Método de procesamiento de imagen de acuerdo
a la reivindicación 20, en donde un tanque de agua virtual está
dispuesto entra la cara frontal de la unidad de visualización y el
sensor.
22. Método de procesamiento de imagen en
correspondencia a la reivindicación 20 o 21, en donde un espacio
virtual tridimensional incluye un tanque de agua virtual y el objeto
simula el movimiento de una criatura viviente en el tanque virtual
de agua.
23. Método de procesamiento de imagen de acuerdo
a la reivindicación 21 o 22, en la que el objeto desplegado en la
unidad de visualización se mueve hacia una posición en la cual un
jugador toca un sensor en la cara frontal de la unidad de
visualización.
24. Método de procesamiento de imagen en
correspondencia a cualquiera de las reivindicaciones 21 a 23, en
donde la información atmosférica es calculada y añadida a la imagen
desplegada en la unidad de visualización.
25. Método de procesamiento de imagen de
acuerdo a la reivindicación 24, en la que la información atmosférica
incluye ondas del agua en el tanque virtual.
26. Método de procesamiento de imagen de acuerdo
a la reivindicación 24 o la reivindicación 25, en donde la
información atmosférica incluye ondas de luz moliéndose en el agua
en el tanque virtual.
27. Método de procesamiento de imagen de
acuerdo con la reivindicación 25, comprendiendo además los pasos
de:
la definición de un modelo simple de las ondas,
el cual es un modelo virtual o un paralelípido rectangular donde
los tres lados son valores predeterminados, el peso es un valor
predeterminado, y cada uno de las cuatro esquinas de la base está
apoyada por un resorte respectivamente, y la simulación de
movimientos de ondas mediante el cambio de las constantes de
elasticidad a cada tiempo predeterminado.
28. Medio de almacenamiento en el cual están los
programas adaptados almacenados para ejecutar todos los
pasos del método de acuerdo a cualquiera de las reivindicaciones 15
a 27 donde corre una máquina de juego de computadora.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23481297 | 1997-08-29 | ||
JP9-234812 | 1997-08-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2280096T3 true ES2280096T3 (es) | 2007-09-01 |
Family
ID=16976784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES98940626T Expired - Lifetime ES2280096T3 (es) | 1997-08-29 | 1998-08-28 | Sistema de procesamiento de imagen y metodo de procesamiento de imagen. |
Country Status (7)
Country | Link |
---|---|
US (1) | US6538655B1 (es) |
EP (1) | EP1008959B1 (es) |
KR (1) | KR100584706B1 (es) |
CN (1) | CN1171182C (es) |
DE (1) | DE69836383T2 (es) |
ES (1) | ES2280096T3 (es) |
WO (1) | WO1999012129A1 (es) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1073017A4 (en) * | 1999-02-16 | 2003-08-13 | Sega Enterprises Kk | IMAGE DISPLAY DEVICE, IMAGE PROCESSING DEVICE, IMAGE DISPLAY SYSTEM |
US6924787B2 (en) * | 2000-04-17 | 2005-08-02 | Immersion Corporation | Interface for controlling a graphical image |
JP4530312B2 (ja) * | 2000-07-27 | 2010-08-25 | 株式会社バンダイナムコゲームス | ゲームシステム及び情報記憶媒体 |
JP4084057B2 (ja) * | 2002-03-01 | 2008-04-30 | 松下電器産業株式会社 | 表示装置、表示方法、プログラム、および記録媒体 |
JP3780512B2 (ja) * | 2002-07-30 | 2006-05-31 | 株式会社光栄 | プログラム、記録媒体及びゲーム装置 |
JP4667755B2 (ja) * | 2004-03-02 | 2011-04-13 | 任天堂株式会社 | ゲーム装置およびゲームプログラム |
JP4671095B2 (ja) * | 2004-07-30 | 2011-04-13 | 富士フイルム株式会社 | 画像表示制御装置及び画像表示制御プログラム |
US20060267952A1 (en) * | 2005-05-26 | 2006-11-30 | Steve Alcorn | Interactive display table top |
JP2007286669A (ja) * | 2006-04-12 | 2007-11-01 | Sony Corp | 画像処理装置および方法、並びにプログラム |
US20070274607A1 (en) * | 2006-04-12 | 2007-11-29 | Jincheng Huang | Method of Creating a Reflection Effect in an Image |
KR100799271B1 (ko) | 2006-12-19 | 2008-01-30 | 박진홍 | 디지털 수족관 및 이를 위한 디지털 물고기 생성 시스템 |
WO2008091857A1 (en) * | 2007-01-22 | 2008-07-31 | Bell Helicopter Textron, Inc. | System and method for controlling a virtual reality environment by an actor in the virtual reality environment |
US8599194B2 (en) * | 2007-01-22 | 2013-12-03 | Textron Innovations Inc. | System and method for the interactive display of data in a motion capture environment |
US8615714B2 (en) | 2007-01-22 | 2013-12-24 | Textron Innovations Inc. | System and method for performing multiple, simultaneous, independent simulations in a motion capture environment |
WO2008131054A2 (en) * | 2007-04-17 | 2008-10-30 | Bell Helicopter Textron, Inc. | Collaborative virtual reality system using multiple motion capture systems and multiple interactive clients |
JP5285613B2 (ja) * | 2007-09-28 | 2013-09-11 | 株式会社コナミデジタルエンタテインメント | 画像表示装置 |
US8648864B2 (en) * | 2008-02-05 | 2014-02-11 | Disney Enterprises, Inc. | System and method for blended animation enabling an animated character to aim at any arbitrary point in a virtual space |
DE112009004371T5 (de) * | 2009-01-15 | 2012-08-02 | Mitsubishi Electric Corporation | Kollisionsbestimmungsvorrichtung und Kollisionsbestimmungsprogramm |
KR101049470B1 (ko) | 2009-07-14 | 2011-07-19 | 전국진 | 대형박물관용 가상현실 수족관장치 |
KR101110190B1 (ko) * | 2009-07-14 | 2012-02-16 | 전국진 | 휴대폰과 연계되는 대형박물관용 가상현실 수족관장치 |
US9886794B2 (en) | 2012-06-05 | 2018-02-06 | Apple Inc. | Problem reporting in maps |
US9418672B2 (en) | 2012-06-05 | 2016-08-16 | Apple Inc. | Navigation application with adaptive instruction text |
US10156455B2 (en) | 2012-06-05 | 2018-12-18 | Apple Inc. | Context-aware voice guidance |
US9052197B2 (en) | 2012-06-05 | 2015-06-09 | Apple Inc. | Providing navigation instructions while device is in locked mode |
US9482296B2 (en) | 2012-06-05 | 2016-11-01 | Apple Inc. | Rendering road signs during navigation |
US9147286B2 (en) * | 2012-06-06 | 2015-09-29 | Apple Inc. | Non-static 3D map views |
EP3062142B1 (en) | 2015-02-26 | 2018-10-03 | Nokia Technologies OY | Apparatus for a near-eye display |
JP6752007B2 (ja) * | 2015-10-06 | 2020-09-09 | チームラボ株式会社 | お絵かき画像表示システム |
CN106362398B (zh) * | 2016-10-14 | 2020-02-07 | 网易(杭州)网络有限公司 | 摄像机镜头位置的确定方法及装置 |
US10650552B2 (en) | 2016-12-29 | 2020-05-12 | Magic Leap, Inc. | Systems and methods for augmented reality |
EP3343267B1 (en) | 2016-12-30 | 2024-01-24 | Magic Leap, Inc. | Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light |
US10578870B2 (en) | 2017-07-26 | 2020-03-03 | Magic Leap, Inc. | Exit pupil expander |
NZ765113A (en) | 2017-12-10 | 2024-07-05 | Magic Leap Inc | Anti-reflective coatings on optical waveguides |
WO2019126331A1 (en) | 2017-12-20 | 2019-06-27 | Magic Leap, Inc. | Insert for augmented reality viewing device |
CN112136152A (zh) | 2018-03-15 | 2020-12-25 | 奇跃公司 | 由观看设备的部件变形导致的图像校正 |
EP3803450A4 (en) | 2018-05-31 | 2021-08-18 | Magic Leap, Inc. | POSITIONING A RADAR HEAD |
JP7369147B2 (ja) | 2018-06-05 | 2023-10-25 | マジック リープ, インコーポレイテッド | 視認システムのホモグラフィ変換行列ベースの温度較正 |
US11579441B2 (en) | 2018-07-02 | 2023-02-14 | Magic Leap, Inc. | Pixel intensity modulation using modifying gain values |
US11856479B2 (en) | 2018-07-03 | 2023-12-26 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality along a route with markers |
WO2020010226A1 (en) | 2018-07-03 | 2020-01-09 | Magic Leap, Inc. | Systems and methods for virtual and augmented reality |
US11624929B2 (en) | 2018-07-24 | 2023-04-11 | Magic Leap, Inc. | Viewing device with dust seal integration |
CN112689741B (zh) | 2018-07-24 | 2024-10-11 | 奇跃公司 | 移动检测设备的依赖于温度的校准 |
CN112740665A (zh) | 2018-08-02 | 2021-04-30 | 奇跃公司 | 基于头部运动的瞳孔间距离补偿的观察系统 |
US10795458B2 (en) | 2018-08-03 | 2020-10-06 | Magic Leap, Inc. | Unfused pose-based drift correction of a fused pose of a totem in a user interaction system |
JP7487176B2 (ja) | 2018-08-22 | 2024-05-20 | マジック リープ, インコーポレイテッド | 患者視認システム |
JP7472127B2 (ja) | 2018-11-16 | 2024-04-22 | マジック リープ, インコーポレイテッド | 画像鮮明度を維持するための画像サイズによってトリガされる明確化 |
CN113454507B (zh) | 2018-12-21 | 2024-05-07 | 奇跃公司 | 用于促进波导内的全内反射的气穴结构 |
JP7515489B2 (ja) | 2019-02-06 | 2024-07-12 | マジック リープ, インコーポレイテッド | 複数のプロセッサによって発生される総熱を限定するための標的意図ベースのクロック速度の決定および調節 |
CN113544766A (zh) | 2019-03-12 | 2021-10-22 | 奇跃公司 | 在第一和第二增强现实观看器之间配准本地内容 |
EP3963565A4 (en) | 2019-05-01 | 2022-10-12 | Magic Leap, Inc. | CONTENT DELIVERY SYSTEM AND PROCEDURES |
WO2021021670A1 (en) * | 2019-07-26 | 2021-02-04 | Magic Leap, Inc. | Systems and methods for augmented reality |
EP4058936A4 (en) | 2019-11-14 | 2023-05-03 | Magic Leap, Inc. | SYSTEMS AND METHODS FOR VIRTUAL AND AUGMENTED REALITY |
US11737832B2 (en) | 2019-11-15 | 2023-08-29 | Magic Leap, Inc. | Viewing system for use in a surgical environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3179474B2 (ja) * | 1990-11-28 | 2001-06-25 | 株式会社日立製作所 | コンピュータグラフィックの表示方法及び情報処理装置 |
JP3544268B2 (ja) * | 1995-10-09 | 2004-07-21 | 任天堂株式会社 | 三次元画像処理装置およびそれを用いた画像処理方法 |
US5909218A (en) * | 1996-04-25 | 1999-06-01 | Matsushita Electric Industrial Co., Ltd. | Transmitter-receiver of three-dimensional skeleton structure motions and method thereof |
US6480194B1 (en) * | 1996-11-12 | 2002-11-12 | Silicon Graphics, Inc. | Computer-related method, system, and program product for controlling data visualization in external dimension(s) |
-
1998
- 1998-08-28 ES ES98940626T patent/ES2280096T3/es not_active Expired - Lifetime
- 1998-08-28 US US09/486,644 patent/US6538655B1/en not_active Expired - Fee Related
- 1998-08-28 KR KR1020007002053A patent/KR100584706B1/ko not_active IP Right Cessation
- 1998-08-28 CN CNB988085895A patent/CN1171182C/zh not_active Expired - Fee Related
- 1998-08-28 EP EP98940626A patent/EP1008959B1/en not_active Expired - Lifetime
- 1998-08-28 WO PCT/JP1998/003867 patent/WO1999012129A1/ja active IP Right Grant
- 1998-08-28 DE DE69836383T patent/DE69836383T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1008959A4 (en) | 2001-04-18 |
EP1008959B1 (en) | 2006-11-08 |
DE69836383T2 (de) | 2007-10-11 |
DE69836383D1 (de) | 2006-12-21 |
CN1268236A (zh) | 2000-09-27 |
CN1171182C (zh) | 2004-10-13 |
EP1008959A1 (en) | 2000-06-14 |
US6538655B1 (en) | 2003-03-25 |
KR100584706B1 (ko) | 2006-05-30 |
KR20010023411A (ko) | 2001-03-26 |
WO1999012129A1 (fr) | 1999-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2280096T3 (es) | Sistema de procesamiento de imagen y metodo de procesamiento de imagen. | |
ES2239354T3 (es) | Procesador de imagen para juegos. | |
JP6501017B2 (ja) | 画像処理装置、プログラム、画像処理方法および画像処理システム | |
ES2297896T3 (es) | Dispositivo de generacion de imagenes. | |
ES2295498T3 (es) | Dispositivo de procesamiento de imagenes para determinar la trayectoria de vuelo de un objeto. | |
US6774900B1 (en) | Image displaying device, image processing device, image displaying system | |
US20230068042A1 (en) | Systems and methods for augmented reality | |
ES2281962T3 (es) | Procesador de imagen, maquina de juego, metodo de procesamiento de imagen, y medio de grabacion. | |
JP2001029654A5 (es) | ||
JP6709633B2 (ja) | シミュレーションシステム及びゲームシステム | |
CN104407521A (zh) | 一种实现水下机器人实时仿真的方法 | |
AU4455001A (en) | Entertainment apparatus, storage medium, and method of deciding weather | |
ES2283076T3 (es) | Dispositivo generador de imagenes y metodo de generacion de imagenes. | |
JPH10198822A (ja) | 画像合成装置 | |
JPH0947576A (ja) | 3次元ゲーム装置及び画像合成方法 | |
JP4267646B2 (ja) | 画像生成装置、画像生成方法、ならびに、プログラム | |
JP3005581B1 (ja) | 画像作成装置、画像作成方法、画像作成プログラムが記録された可読記録媒体およびビデオゲ―ム装置 | |
JP3748451B1 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4575937B2 (ja) | 画像生成装置、画像生成方法、ならびに、プログラム | |
JP2004295916A (ja) | 画像処理装置及び画像処理方法 | |
Yu et al. | Synthetic motion capture: Implementing an interactive virtual marine world | |
JP7371199B1 (ja) | ゲームプログラム、ゲームシステム、ゲーム装置およびゲーム制御方法 | |
JP2003275460A (ja) | ゲーム装置及び情報記憶媒体 | |
JP2004078695A (ja) | アニメーション作成システム | |
JP2007164728A (ja) | 画像生成システム、プログラム及び情報記憶媒体 |