ES2250075T3 - Medio de grabacion, metodo y unidad de tratamiento de imagenes con datos de modelo de conformado integrados. - Google Patents
Medio de grabacion, metodo y unidad de tratamiento de imagenes con datos de modelo de conformado integrados.Info
- Publication number
- ES2250075T3 ES2250075T3 ES00301217T ES00301217T ES2250075T3 ES 2250075 T3 ES2250075 T3 ES 2250075T3 ES 00301217 T ES00301217 T ES 00301217T ES 00301217 T ES00301217 T ES 00301217T ES 2250075 T3 ES2250075 T3 ES 2250075T3
- Authority
- ES
- Spain
- Prior art keywords
- vertex
- data
- model
- vertices
- models
- 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 OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three-dimensional [3D] modelling for computer graphics
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
Un medio de grabación legible por ordenador que graba datos de modelo de conformado integrado, para modelar el movimiento articulado de un objeto, que tiene una pluralidad de modelos enlazados por una estructura jerárquica donde al menos un primer modelo tiene una pluralidad de vértices (V101, ..., V113, V501, ..., V506) que constituyen polígonos, y al menos la posición de un primer vértice es influenciada por las posiciones de dos o más de la pluralidad de modelos y valores de peso de estos dos o más modelos, comprendiendo los datos de modelo de conformado integrado: datos de formato de una memoria tampón de vértice común para guardar datos en la pluralidad de vértices en dicha pluralidad de modelos para cada modelo en la estructura jerárquica; una lista de vértice (117) que es creada para cada uno de dichos modelos que influyen en los vértices y tiene datos de vértice especificados por un ID de vértice en dicha memoria tampón de vértice común; datos (109) de matriz de modelo que son creados para cada uno de los modelos y ajusta las posiciones de modelo de dicha pluralidad de modelos en formas no articuladas; y una lista (116) de polígonos que es creada para cada uno de dichos modelos que tienen los polígonos y tiene datos de polígono en los que dichos ID de vértice son datos de atributo, en el que los datos de vértice en cada lista (117) de vértice comprenden al menos los datos de posición de un vértice, un valor de peso a partir del modelo al que dicha lista de vértice pertenece, e ID de vértice en dicha memoria tampón de vértice común correspondiente al vértice; caracterizado porque los datos de vértice de dicho primer vértice influenciados por las posiciones de dichos dos o más de dicha pluralidad de modelos son distribuidos a la lista (117) de vértice de dichos dos o más modelos como datos de vértice distribuidos.
Description
Medio de grabación, método y unidad de
tratamiento de imágenes con datos de modelo de conformado
integrados.
El presente invento se refiere a un método de
tratamiento de imágenes para tratar imágenes en tiempo real, un
método de tratamiento de imágenes para generar una estructura de
datos de imagen adecuada para tratar imágenes en tiempo real, y un
medio de grabación que graba la estructura de datos de imagen o el
programa de tratamiento de imágenes en cuestión.
En una máquina doméstica de juegos de vídeo, son
creadas imágenes móviles de objetos de un juego en tiempo real
sintonizando con el progreso del juego. Para el tratamiento de
imágenes en tal máquina de juegos, es necesario mover las posiciones
de los objetos en el juego respondiendo a las señales de control de
entrada del operador en un corto período, un período de cuadro o
imagen por ejemplo, y dibujar imágenes correspondientes a las
posiciones del movimiento en la memoria de imagen (memoria de
cuadro).
A fin de expresar el movimiento de modo más
natural, es necesario que caracteres, por ejemplo criaturas vivas,
como los objetos del juego puedan mover partes de articulación y
parte de músculo junto con el movimiento de miembros y cuellos, y
que la parte de articulación resulte una forma diferente de acuerdo
con el movimiento de otros polígonos. En otras palabras, a fin de
expresar un movimiento más natural, la parte situada entre el brazo
y el hombro de un individuo o la parte situada entre el brazo y el
antebrazo requieren un movimiento tal como elevar los músculos del
brazo y del hombro dependiendo del movimiento de los polígonos.
Un método de dibujo para dar movimiento natural a
tales partes de articulación especifica los vértices que han de ser
conectados para modelos a ambos lados de la articulación, y añade un
polígono para la articulación entre los vértices. Con tal método de
dibujo, sin embargo, la parte de articulación es dibujada por
polígonos estandarizados, en los que el movimiento correspondiente
al cambio de ángulo no puede ser expresado, y como resultado las
imágenes que han de ser generadas aparecen antinaturales.
A fin de dibujar un movimiento más natural, se ha
propuesto utilizar modelos de conformado integrados llamados
"envolventes" usando modeladores tridimensionales en el campo
del tratamiento de imágenes de películas tales como películas de CG
(películas que usan gráficos de ordenador), que no requieren
tratamiento en tiempo real. En estos modelos de conformado
integrados, los objetos (caracteres) están compuestos de polígonos y
huesos que influyen en los polígonos. En otras palabras, un modelo
de conformado integrado está compuesto de polígonos, que son la
superficie exterior del carácter y son dibujados basados en
movimiento real, y huesos, que influyen en las posiciones de los
polígonos con un peso predeterminado. Nuevas posiciones de huesos
que influyen en las posiciones de los polígonos son calculadas por
una matriz de conversión de posición determinada de acuerdo con la
entrada de operación del operador, y las posiciones de los vértices
de los polígonos son determinadas de acuerdo con el grado de
influencia (peso) desde los huesos. Los movimientos complicados
pueden ser expresados mediante polígonos ejecutando una
representación de materiales e iluminación (renderizado) (dibujado)
en los polígonos basados en los vértices
determinados.
determinados.
La fig. 1 es un dibujo que representa un ejemplo
de movimiento del modelo de conformado integrado antes mencionado en
una película de CG. El modelo mostrado en la fig. 1 es un modelo
compuesto por una parte de brazo 1 y una parte de mano 2, y la fig.
1A muestra la forma básica del modelo. Cuando el brazo es curvado de
tal modo que el brazo 3 de la parte 1 de brazo resulta más vertical
y la parte 4 de antebrazo de la parte 1 de brazo resulta más
horizontal desde la forma básica, se espera el estado mostrado en la
fig. 1B. En otras palabras, la parte de articulación que conecta el
brazo 3 y la parte 4 de antebrazo exhibe una forma curvada natural y
los músculos interiores 3A del brazo 3 se tensan.
La fig. 2 es un dibujo explicatorio que
representa el tratamiento de imágenes tradicional que usa un modelo
de conformado integrado en películas de CG. La fig. 3 es un diagrama
de flujo que representa el procedimiento de tratamiento de imágenes
del mismo. La fig. 2 muestra la estructura de datos 620 del modelo
de conformado integrado (envolvente). En este ejemplo, un total de
siete modelos, modelo 1-7, están en la estructura
jerárquica de tipo de árbol mostrada en la fig. 2. La estructura de
datos de cada modelo en la misma que los datos 624 del modelo 4 y
los datos 627 del modelo 7.
Cuando un modelo tiene polígonos que han de ser
presentados, el modelo tiene vértices que son los elementos
componentes de los polígonos. Por ello la estructura de datos 624
del modelo 4 incluye lista de vértice 632 y la lista de polígonos
635 de los polígonos compuestos de una combinación de los vértices.
La lista de vértice 632 incluye información de posición y datos de
línea normal de cada vértice en coordenadas locales del modelo. Cada
modelo tiene también una matriz de modelo 631, que es información
que indica la posición relativa con respecto a un modelo en la
jerarquía superior. El modelo 4, por ejemplo, tiene rotación,
desplazamiento (traslación) y tamaño (escala) como la información de
posición relativa con respecto al modelo 3. La matriz de modelo 631
compuesta por tal información de posición, puede también ser datos
de una matriz cuando el sistema de coordenadas del modelo 3 es
convertido al sistema de coordenadas del modelo 4.
La estructura de datos 624 del modelo 4 tiene
también la lista de pesos 633 que incluye los vértices de otros
modelos en cuyo modelo 4 influyen, y los valores de peso, que
indican el grado de esa influencia. En el caso del ejemplo de la
fig. 1, por ejemplo, el modelo del brazo inferior 4 influye en la
parte de músculo 3A del brazo 3 con un valor de peso predeterminado.
Por ello, en la lista de peso del modelo de la parte 4 de antebrazo,
el ID del modelo del brazo 3, los índices de los vértices del mismo
(ID de vértices) y los valores de peso están incluidos.
Si el modelo 4 de la estructura de modelo de la
fig. 2 es la parte 4 de antebrazo en la fig. 1, y el modelo 7 es la
parte de brazo 3, entonces las posiciones de vértices de la parte de
músculo 3A en el modelo de la parte de brazo 3 cambian,
influenciadas por el movimiento de la parte de brazo 3 y el
movimiento de la parte de antebrazo 4, y la imagen en que la parte
de músculo 3A es elevada es dibujada. Ahora el procedimiento de
tratamiento de imágenes por un modelador tridimensional, que es
generalmente usado para películas de CG, será explicado de acuerdo
con la fig. 3. En primer lugar, la matriz para poner en práctica los
movimientos de todo los modelos es calculada y guardada en la
estructura de datos de cada modelo (Operación 602). A continuación
con referencia a la lista de peso 633, las coordenadas de vértice y
los datos de línea normal (datos de vértices) indicados por los
índices de vértice (ID de vértices) del modelo (modelo 7) que está
influenciado por el modelo objetivo (modelo 4) son leídos a partir
de la lista de vértice 632 del modelo 7 (Operación 603), los datos
de vértice leídos son convertidos a los datos de vértice cuando los
datos de vértice pertenecen al sistema de coordenadas local del
modelo 4 basado en la relación en la forma básica, y las coordenadas
de vértice convertidas y los datos de línea normal son multiplicados
por la matriz de modelo del modelo 4 (Operación 604). También las
coordenadas de vértice y los datos de línea normal multiplicados por
la matriz de modelo son multiplicados por el valor de peso en la
lista de pesos 633, y los valores son integrados por los valores en
la lista de vértice 634 de peso en la estructura de datos 627 del
modelo 7.
Los procedimientos anteriores 603, 604 y 605 son
ejecutados para la lista de pesos entera (Operación 606) y son
ejecutados para todos los modelos (Operación 607). Como resultado,
la conversión de coordenadas correspondiente a los movimientos de
caracteres en vértices reales de todos los modelos, y el movimiento
de oposición de acuerdo con el grado de influencia de otros modelos
son ejecutados. A continuación los vectores de línea normal de la
lista de vértice de peso de todos los modelos son normalizados de
modo los lectores normales pueden ser usados para el tratamiento de
fuentes de luz en el renderizado, que es ejecutado posteriormente
(Operación 608). Y con referencia a las posiciones de vértices en la
lista de vértice de pesos, el dibujado (renderizado) de los
polígonos en la lista de polígonos es ejecutado (Operación 609).
Para las operaciones anteriores, la operación de
matriz y la operación de peso son ejecutadas para los vértices de
todos los modelos, y el tratamiento de renderizado para los
polígonos es ejecutado después de completar las operaciones
anteriores. O bien, un vértice es localizado y la operación de
matriz y la operación de peso de modelos que influyen en el vértice
son ejecutadas, a continuación es determinada la nueva coordenada de
vértice del vértice, y es ejecutado el tratamiento de renderizado
final.
Este método de tratamiento de imágenes para
películas de CG, sin embargo, no puede ser aplicado al tratamiento
de imágenes de alta velocidad ejecutado en tiempo real en una
máquina de juegos. Cuando la operación de matriz y la operación de
pesos son ejecutadas para los vértices de todos los modelos, las
operaciones deben ser ejecutadas con referencia a las listas de
vértice y matrices de modelo de diferentes modelos en la estructura
de datos del modelo. Si tales operaciones son ejecutadas implicando
un procedimiento de referencia que usa un indicador o puntero en la
estructura jerárquica de los datos de modelo distribuidos en
memoria, el indicador o puntero debe ser cambiado frecuentemente.
Estos son inconvenientes para ejecutar tales operaciones en una
máquina de juegos, ya que la eficiencia de trabajo de la memoria
caché dispuesta en la CPU de la máquina de juegos es pobre. También
cuando la operación de matriz y la operación de peso son ejecutadas
para un vértice que se focaliza en el vértice, el área de memoria
tampón para la operación de peso debe ser asegurada para todos los
vértices. Si esta operación es ejecutada en una máquina de jugos de
estructura simple, en oposición a un superordenador que tiene una
memoria de gran capacidad y una capacidad de tratamiento de alta
velocidad, el área de memoria requerida será enorme, y el
tratamiento en tiempo real es difícil, haciendo la operación
impracticable.
"Animales y anatomía", de Wilhelms J., IEE
Gráficos de Ordenador y Aplicaciones, IEEE INC. NEW YORK, vol. 17,
nº 3, páginas 22-30, 1997, describe el modelado de
criaturas articuladas que tienen un endoesqueleto, músculos y piel.
El movimiento de la piel es modelado considerando puntos de la piel
en una malla de piel junto con puntos de anclaje en las estructuras
de hueso y músculo subyacentes.
CA 2201466 describe la creación de una jerarquía
de esqueleto para usar en el modelado de la animación. La jerarquía
de esqueleto puede incluir elementos de cadena articulados y
elementos que no pertenecen a la cadena.
Con lo anterior a la vista, es un objeto del
presente invento proporcionar un método de tratamiento de imágenes
que permita el tratamiento de imágenes en tiempo real utilizando
modelos de conformado de integración, un método de tratamiento de
imágenes para generar datos de imágenes en modelos de conformado
integrado usados para el tratamiento de imágenes del mismo, y un
medio de grabación que grava los datos de imagen y el programa de
tratamiento de imágenes en cuestión.
Es otro objeto del presente invento proporcionar
un método de tratamiento de imágenes basado en un programa
convertidor para generar datos de imagen, y que permite el
tratamiento de imágenes en tiempo real utilizando modelos de
conformado integrados, a partir de datos de modelo
tridimensionales.
Es aún otro objeto del presente invento
proporcionar un método de tratamiento de imágenes para transformar
partes de articulación en una forma natural de acuerdo con el
movimiento de un carácter, un medio de grabación que graba un
programa de tratamiento de imágenes para ejecutar el método de
tratamiento de imágenes y un medio de grabación que graba datos que
tienen una estructura adecuada para el tratamiento de imágenes.
Un primer aspecto del presente invento
proporciona un medio de grabación legible por ordenador que graba
datos de modelo de conformado integrado, para modelar el movimiento
articulado de un objeto, que tiene una pluralidad de modelos
enlazados por una estructura jerárquica donde al menos un primer
modelo tiene una pluralidad de vértices que constituyen polígonos, y
al menos la posición de un primer vértice es influenciada por las
posiciones de dos o más de la pluralidad de modelos y valores de
peso a partir de estos dos o más modelos, que comprenden: datos de
formato de una memoria tampón de vértice común para guardar datos en
la pluralidad de vértices en la pluralidad de modelos para cada
modelo en la estructura jerárquica; una lista de vértice que es
creada para cada uno de los modelos que influyen en los vértices y
tiene datos de vértice especificados por un ID de vértice en la
memoria tampón de vértice común; datos de matriz de modelo que son
creados para cada uno de los modelos y ajusta las posiciones de
modelo de la pluralidad de modelos en formas no articuladas; y una
lista de polígonos que es creada para cada uno de los modelos que
tienen los polígonos y tiene datos del polígono donde el ID del
vértice son datos de atributo, en el que los datos de vértice en
cada lista de vértice tienen al menos los datos de posición de un
vértice; un valor de peso a partir del modelo al que pertenece la
lista de vértice, e ID de vértice en la memoria tampón de vértice
común correspondiente al vértice; y en el que los datos de vértice
de dicho primer vértice influenciados por las posiciones de dichos
dos o más de dicha pluralidad de modelos son distribuidos a las
listas de vértice de dichos dos o más modelos como datos de vértice
distribuidos.
El anterior medio de grabación que graba los
datos de modelo de conformado integrado permite el tratamiento de
imágenes requerido para dibujar modelos en tiempo real en una
máquina de juegos.
En una realización del medio de grabación
anterior, cada una de dichas listas de vértice que contienen datos
de vértices distribuidos esta dividida en vértices de peso
iniciales, para los que una operación de vértice es ejecutada en
primer lugar cuando el trazado es ejecutado de acuerdo con la
estructura jerárquica de los modelos, vértices de peso intermedios,
para los que la operación de vértice no es ejecutada la primera o la
última, y vértices de peso finales, para los que la operación de
vértice es ejecutada la última.
En otra realización del medio de grabación, cada
una de las listas de vértice además tiene datos en vértices nativos
que están influenciados solamente por el modelo al que pertenece
esta lista de vértice.
En otra realización del medio de grabación
anterior, los datos de vértice tienen datos de coordenada y datos de
línea normal de los vértices.
En otra realización del medio de grabación, los
datos de vértice siguen a un sistema de coordenadas local del modelo
de la lista de vértice a la que pertenecen los datos de vértice.
En otra realización del medio de grabación
anterior, el ID de vértice en la memoria tampón de vértice común
tiene un número de entrada del vértice de cada modelo y el valor
desplazado correspondiente al número de vértices de cada modelo.
En otra realización, cada una de las listas de
polígonos tiene una orden o comando de dibujar que instruye el
dibujo del polígono del modelo, o una orden o comando de no dibujar
que instruye no dibujar el polígono del modelo, al que esta lista de
polígonos pertenece.
Un segundo aspecto del presente invento
proporciona un método de tratamiento de imágenes para convertir
datos de modelo original en datos de modelo de conformado
integrados, para modelar la articulación de un objeto, que tienen
una pluralidad de modelos enlazados por una estructura jerárquica en
la que al menos un primer modelo tiene una pluralidad de vértices
que constituyen polígonos, y al menos la posición de un primer
vértice es influenciada por posiciones de dos o más de la pluralidad
de modelos y valores de peso de estos dos o más modelos, en el que
los datos de modelo original tienen una pluralidad de datos de
modelo enlazados por la estructura jerárquica, cada una de dicha
pluralidad de datos comprende una lista de vértice original que
tiene datos de vértice de estos datos de modelo, una lista de peso
que tiene datos de vértices en vértices en los que estos datos de
modelo influyen, y una lista de polígonos original en la que el ID
de vértice de la lista de vértice son datos de atributo, y el
anterior método de tratamiento de imágenes comprende las operaciones
de: generar datos de formato de una memoria tampón de vértice común
para almacenar datos en la pluralidad de vértices en la pluralidad
de modelos para cada modelo en la estructura jerárquica; generar una
lista de vértice que es creada para cada modelo que influye en el
vértice, y tiene datos de vértice especificados por un ID de vértice
en la memoria tampón de vértice común; y generar una lista de
polígonos que es creada para cada modelo que tiene los polígonos en
los que el ID de vértice son datos de atributo, en el que los datos
de vértice en cada una de las listas de vértice comprenden al menos
los datos de posición de los vértices, valores de paso a partir del
modelo al que pertenece la lista de vértice, e ID de vértice en la
memoria tampón de vértice común correspondiente a estos vértices; y
en el que dicha operación de generar una lista de vértice para cada
modelo que influye en dichos vértices incluye generar datos de
vértice, para dicho primer vértice, para cada uno de dichos dos o
más de dicha pluralidad de modelos que influye en dicho primer
vértice; y distribuir los datos de vértice generados a las listas de
vértice respectivas de dichos dos o más modelos como datos de
vértice distribuidos.
De acuerdo con el método de tratamiento de
imágenes anterior, pueden generarse datos de conversión para un
modelo de conformado integrado que permite el tratamiento de
imágenes en tiempo real.
En una realización del método de tratamiento de
imágenes anterior, la operación de generar cada una de las listas de
vértice incluye, para cada una de dichas listas de vértice que
incluyen datos de vértices distribuidos, dividir los datos de
vértice en datos para vértices de peso iniciales, para los que una
operación de vértice es ejecutada en primer lugar cuando el trazado
es ejecutado de acuerdo con la estructura jerárquica de los modelos,
datos para vértices de peso intermedios, para los que dicha
operación de vértice no es ejecutada la primera ni la última, y
datos para vértices de peso finales, para los que la operación de
vértice es ejecutada la última, en la lista de vértice.
En otra realización del método de tratamiento de
imágenes anterior, el ID de vértice tiene un número de entrada del
vértice en cada modelo, y un valor de desplazamiento correspondiente
al número de vértices de cada modelo.
En otra realización del método de tratamiento de
imágenes anterior, el método de tratamiento de imágenes anterior
además tiene una operación de generación de órdenes de dibujar en la
que: una operación de vértice ficticia es ejecutada para los datos
de vértice en la lista de vértice de cada modelo de acuerdo con la
secuencia de trazado siguiente a la estructura jerárquica de los
modelos; cuando la operación de vértice ficticia para la lista de
vértice de un modelo termina, es generada una orden de no dibujar,
en la lista de polígonos de este modelo si el cálculo de peso para
los vértices de este modelo no ha terminado; y una orden de dibujar
es generada en la lista de polígonos de este modelo si el cálculo de
peso para los vértices del modelo de no dibujar ha terminado.
En otra realización del método de tratamiento de
imágenes anterior, el método de tratamiento de imágenes anterior
además tiene una operación de generación de lista de vértice de
peso, en la que los datos de vértice distribuidos del primer
vértice, que es influenciada por los dos o más de la pluralidad de
modelos, es convertido a un vértice de peso que es influenciado sólo
por un modelo que tiene el mayor grado de influencia entre los dos o
más modelos, y los datos en el vértice de un peso convertido son
distribuidos en la lista de vértice de este modelo.
Un tercer aspecto del presente invento
proporciona un método de tratamiento de imágenes para dibujar un
modelo de conformado integrado, para modelar el movimiento
articulado de un objeto, que tiene una pluralidad de modelos
enlazada por una estructura jerárquica, donde al menos un primer
modelo tiene una pluralidad de vértices que constituyen polígonos y
al menos la posición de un primer vértice está influenciada por
posiciones de dos o más de la pluralidad de modelos y valores de
peso de estos dos o más modelos, en el que los datos del modelo de
conformado integrado comprenden: datos de formato de una memoria
tampón de vértice común que almacena datos en la pluralidad de
vértices en la pluralidad de modelos para cada modelo en la
estructura jerárquica; una lista de vértice que es creada para cada
modelo que influye en los vértices y tienen datos de vértice
especificados por un ID de vértice en la memoria tampón de vértice
común; y una lista de polígonos que es creada para cada modelo que
tiene los polígonos e incluye datos de polígono en los que el ID de
vértice son datos de atributo, en el que los datos de vértice en
cada lista de vértice tienen al menos datos de posición de un
vértice, un valor de peso procedente del modelo al que pertenece la
lista de vértice, y el ID de vértice en dicha memoria tampón de
vértice común correspondiente al vértice; comprendiendo el método de
tratamiento de imágenes las operaciones de: generar la memoria
tampón de vértice común correspondiente a la pluralidad de modelos
en la secuencia de trazado de la estructura jerárquica de acuerdo
con los datos de formato; generar datos de matriz de modelo en los
que las posiciones de los modelos son ajustadas basadas en datos de
progreso del juego; generar datos de vértice común ejecutando el
cálculo de la matriz para generar datos de vértice después del
movimiento de acuerdo con los datos de matriz del modelo y el
cálculo de peso para integrar valores de peso procedentes de los
modelos a los datos de vértice después del movimiento, para los
datos de vértice de la lista de vértice de cada uno de los modelos,
y almacenando o sumando estos datos de vértice calculados a áreas de
acuerdo con los ID de vértices en la memoria tampón de vértice
común; y renderizar los polígonos de acuerdo con los datos de
vértice común; caracterizado porque los datos de vértice de dicho
primer vértice influenciados por posiciones de dichos dos o más de
dicha pluralidad de modelos son distribuidos a las listas de vértice
de dichos dos o más modelos como datos de vértice distribuidos.
De acuerdo con el método de tratamiento de
imágenes anterior, pueden ser dibujados caracteres de los modelos de
conformado integrados en tiempo real.
En una realización del método de tratamiento de
imágenes anterior, en la operación de generar los datos de vértice
común, los datos de posición son multiplicados por los datos de
matriz de modelo para el cálculo de matriz anterior, y los datos de
posición multiplicados anteriormente son multiplicados por el valor
de peso para el cálculo de peso anterior.
En otra realización del método de tratamiento de
imágenes anterior, cada una de las listas de vértice es dividida en
vértices de peso iniciales, para la que un operación de vértice es
ejecutada en primer lugar cuando se ha ejecutado el trazado de
acuerdo con la estructura jerárquica de los modelos, vértices de
peso intermedios, para los que la operación de vértice no es
ejecutada la primera ni la última, y vértices de peso finales, para
los que la operación de vértice es ejecutada la última, y en la
operación de generar los datos de vértice común, los datos de
vértice calculados para los vértices de peso iniciales son
almacenados en áreas correspondientes a los ID de vértice en la
memoria tampón de vértice común, y los datos de vértice calculados
para los vértices de peso intermedios y los vértices de peso finales
son añadidos a los datos de vértice en áreas correspondientes a los
ID de vértice en la memoria tampón de vértice común.
En otra realización del método de tratamiento de
imágenes anterior, cada una de las listas de polígonos anterior
tiene una orden o comando de dibujar que instruye para dibujar los
polígonos del modelo a cuya lista de polígonos pertenece o una orden
de no dibujar que instruye a no dibujar los polígonos del modelo, a
los que pertenece esta lista de polígonos, y la operación de
renderizado anterior se refiere a la lista de polígonos del modelo
cada vez que la operación de generación de datos de vértice común
anterior de cada modelo termina, y ejecuta el renderizado anterior
de acuerdo con la orden de dibujar.
En otra realización del tratamiento de imágenes
anterior, el método comprende además una operación de liberar el
área de la memoria tampón de vértice común correspondiente al modelo
para el que es ejecutado el renderizado anterior.
En otra realización del método de tratamiento de
imágenes anterior, los datos de modelo anterior tienen también una
lista de vértice para un peso en el que el primer vértice que es
influenciado por los dos o más de la pluralidad de modelos es
convertido a un vértice de peso que es influenciado solamente por el
modelo con la mayor influencia entre los dos o más modelos, y datos
del vértice de un peso son distribuidos en la lista de vértice de
este modelo, y el método de tratamiento de imágenes anterior genera
los datos de vértice de orden para un modelo predeterminado de
acuerdo con la lista de vértice de un peso.
Para conseguir los anteriores objetivos, el
presente invento proporcionar un medio de grabación que graba un
programa para que un ordenador ejecute el método de tratamiento de
imágenes antes mencionado. Con este medio de grabación, pueden ser
dibujados caracteres de un modelo de conformado integrado en tiempo
real en máquinas de juegos.
La fig. 1 es un dibujo que representa un ejemplo
de movimiento de un modelo de conformado integrado en películas de
CG;
La fig. 2 es un dibujo que representa el
tratamiento de imágenes tradicional utilizando un modelo de
conformado integrado en películas de CG;
La fig. 3 es un diagrama de flujo que representa
el procedimiento de tratamiento de imágenes de la fig. 2;
La fig. 4 es un dibujo que representa un ejemplo
de un modelo de conformado integrado que es generado utilizando el
modelador tridimensional en la presente realización;
La fig. 5 es un ejemplo de la configuración de
datos del modelo de conformado integrado de la fig. 4;
La fig. 6 es un dibujo que representa el grado
influencia (valor de peso) procedente del modelo a cada vértice
ajustado por un diseñador;
La fig. 7 es un dibujo que representa un ejemplo
de movimiento de un modelo de conformado integrado (envolvente);
La fig. 8 es un dibujo que representa el método
de cálculo de peso en un modelo de conformado integrado;
La fig. 9 es un diagrama de flujo que representa
el procedimiento de cálculo de movimiento de modelo y el cálculo de
peso de vértices en un modelo de conformado integrado;
La fig. 10 es un dibujo que representa la
relación entre los datos originales de un modelo de conformado
integrado y los datos de conversión para la biblioteca de dibujos en
la presente realización;
La fig. 11 es un dibujo que representa la
relación entre la configuración en el medio de grabación para juegos
y el hardware de la máquina de juegos;
La fig. 12 es un diagrama de flujo que representa
los procesos de crear datos de conversión a partir de los datos de
modelo de conformado integrado por un modelador tridimensional;
La fig. 13 es un diagrama de flujo en un
juego;
La fig. 14 es un diagrama de flujo que representa
un procedimiento de un convertidor;
La fig. 15 es un diagrama de flujo que representa
un procedimiento de un convertidor;
La fig. 16 es un diagrama de flujo que representa
un procedimiento de la distribución detallada de vértices reales a
generación de modelos y lista de vértice;
La fig. 17 es un dibujo que representa un
procedimiento para convertir los datos originales a los datos de
conversión;
La fig. 18 es un dibujo que representa la lista
de vértice de los datos originales y la lista de vértice común
cuando el presente invento es aplicado a un ejemplo de modelo
específico;
La fig. 19 es un dibujo que representa una lista
de vértice cuando el presente invento es aplicado a un ejemplo de
modelo específico;
La fig. 20 es un dibujo que representa un ejemplo
de una lista de polígonos;
La fig. 21 es un dibujo que representa un ejemplo
de una tabla de no dibujar;
La fig. 22 es un dibujo que representa la
apertura y liberación de una memoria tampón de vértice común;
La fig. 23 es un dibujo que representa otro
ejemplo de una lista de vértice;
La fig. 24 es un diagrama de flujo que representa
un procedimiento de la biblioteca de dibujos; y
La fig. 25 es un diagrama de flujo que representa
un procedimiento del convertidor para obtener la lista de vértice de
un peso a partir de los datos de un modelo de conformado integrado
de múltiples pesos.
A continuación se describirán realizaciones del
presente invento con referencia a los dibujos adjuntos. Estas
realizaciones sin embargo, no restringirán el marco técnico del
presente invento que está definido en las reivindicaciones
adjuntas.
La fig. 4 es un dibujo que representa un ejemplo
de un modelo de conformado integrado que es generado utilizando un
modelador tridimensional de acuerdo con el presente invento. El
modelo de conformado integrado en la fig. 4 es un ejemplo para poner
en práctica el movimiento del brazo mostrado en la fig. 1. El modelo
M1 tiene un polígono que está realmente presentado, y este polígono
tiene un total de 13 de vértices reales, V101-V113.
El modelo M1 es, por ejemplo, una envolvente que encierra al brazo 3
y a la parte 4 del antebrazo en la fig. 1. La posición del modelo M1
tiene una influencia del 100% sobre los vértices V101 y V107, por
ejemplo. Por ello el modelo M1 es un modelo de hueso que tiene
valores de peso para vértices reales.
Los modelos M2, M3 y M4 no tienen polígonos, por
ello no tienen vértices reales. El movimiento de los modelos M2, M3
y M4, sin embargo, influye en una parte de los vértices del modelo
M1 de acuerdo con valores de peso predeterminados. En otras
palabras, los modelos M2, M3 y M4 son modelos de hueso que tienen
valores de peso para vértices reales. El modelo 5 tiene un polígono
correspondiente a la parte 2 de la mano, en la fig. 1, y los seis
vértices reales, V501-V506, que constituyen el
polígono, son influenciados no por otros modelos sino que son 100%
influenciados por la posición del propio modelo M5. Por ello el
modelo M5 es un modelo de hueso que influirá en sus propios vértices
V501-V506.
El modelo conformado integrado mostrado en la
fig. 4 es también llamado una "envolvente", que es diseñada por
el diseñador del juego utilizando un modelador tridimensional. El
diseñador diseña de tal modo que cada vértice está influenciado por
uno o más modelos en una relación predeterminada. Moviendo la
posición de cada modelo junto con la ejecución del programa de
juego, las posiciones de los vértices son movidas de acuerdo con el
grado de influencia (valores de peso) definido como valores
iniciales, y el movimiento de caracteres deseado es puesto en
práctica.
La fig. 5 es un ejemplo de configuración de datos
del modelo de conformado integrado en la fig. 4. Los modelos M2, M3
y M5 están enlazados bajo el modelo M1, y el modelo M4 está también
enlazado bajo el modelo M1. Esta clase de estructura de datos de
árbol es un ejemplo de la estructura jerárquica de modelos, y los
modelos que constituyen un modelo de conformado integrado pueden ser
enlazados dentro de una estructura jerárquica adecuada para el
programa respectivo. En el caso de la estructura de árbol mostrada
en la fig. 5, los datos de modelo son generalmente trazados en la
secuencia de modelos M1, M2, M3, M5 y M4. Tal secuencia del trazado
puede ser cualquier secuencia que sea adecuada para el programa.
En el ejemplo de configuración de datos de la
fig. 5, cada modelo tiene una matriz de modelo que indica cuanto
debe moverse el sistema de coordenadas del modelo con respecto al
sistema de coordenadas del modelo en la jerarquía mayor. En otras
palabras, la matriz de modelo son datos para ajustar la posición del
modelo. El sistema de coordenadas será descrito posteriormente, pero
en este ejemplo, cada modelo tiene el sistema de coordenadas local
respectivo. Un sistema de coordenadas global, que es común para
todos los modelos, existe también que está separado de sistema de
coordenadas local. Para definir una posición del modelo M2 después
de movimiento, por ejemplo, la matriz de modelo, que incluye
rotación, traslación y escalado, es usada como la relación
posicional del sistema de coordenadas local del modelo M2 con
respecto al sistema de coordenadas local del modelo M1. Por ello
ejecutando la operación de la matriz que multiplica la matriz del
modelo con los datos de coordenadas posicionales y los datos de
línea normal del sistema de coordenadas local del modelo M2, los
datos de coordenadas posicionales y los datos de línea normales del
sistema de coordenadas local del modelo M2 son convertidos a los
datos de coordenadas posicionales y datos de línea normal del
sistema de coordenadas local del modelo M1. Si la matriz de modelo
del modelo M1 es multiplicada con los datos de coordenadas
posicionales y los datos de línea normal del modelo M1, los datos de
coordenadas posicionales y los datos de línea normal en el sistema
de coordenadas global pueden ser determinados.
De este modo un carácter compuesto por una
pluralidad de modelos puede tener movimiento por la matriz de modelo
entre los modelos. Normalmente tal matriz de modelo, que indica el
movimiento de un carácter, es creada por la función de geometría en
el programa de juegos. La matriz de modelo puede indicar la relación
posicional entre el sistema de coordenadas global y el sistema de
coordenadas local del modelo.
La fig. 6 es un dibujo que representa el grado de
influencia (valor de peso) de un modelo a cada vértice que es
ajustado por un diseñador. En el ejemplo mostrado en la fig. 6, los
vértices V101 y V107 del modelo M1 son influenciados al 100% por el
movimiento del modelo M1. Por ello las posiciones de los vértices
V101 y V107 se mueven mientras mantienen la misma relación
posicional junto con el movimiento de la parte de hueso del modelo
M1. Los vértices V102 y V103 del modelo M1 están influenciados por
los modelos M2, M3 y M4 de acuerdo con la relación de los valores de
peso mostrados en la fig. 6. Por ello estos vértices están
influenciados por la cantidad de valores de peso mostrados en la
fig. 6 cuando los modelos M2, M3 y M4 se mueven. Si el modelo M4 se
mueve hacia arriba durante una larga distancia, por ejemplo, estos
vértices están influenciados para el 40% de la distancia movida. Si
los vértices V102 y V103 corresponden a la parte de músculo 3A de la
parte de brazo, por ejemplo la parte de músculo 3A de la parte de
brazo pueden ser elevados apropiadamente moviendo el modelo 4 en la
distancia apropiada.
Los vértices V104, V105 y
V108-V111 del modelo M1 están influenciados por los
modelos M2 y M3 de acuerdo con la relación de valores de peso
mostrada en la fig. 6. Los vértices V106 y V112 están influenciados
sólo por el modelo M3. Por ello si el modelo M3 se mueve, entonces
los vértices V106 y V112 se mueven mientras mantienen la misma
relación posicional. El vértice V113 está influenciado por el modelo
M4 con un valor de peso del 100%.
El modelo M5 es una parte conectada al modelo M1,
y corresponde a la parte 2 de mano en el ejemplo mostrado en la fig.
1. La parte 2 de mano no tiene que cambiar su forma dependiendo de
la posición del brazo, y está influenciada en el 100% por la parte
de hueso del modelo M5.
El valor de peso de cada vértice mostrado en la
fig. 6 es ajustado como un valor inicial por el diseñador que ha
diseñado el carácter. El diseñador puede controlar libremente la
posición de cada vértice ajustando tales valores de peso y moviendo
los modelos por la matriz de modelo durante el progreso del juego.
Si las posiciones de los vértices son determinadas, un polígono
definido por una pluralidad de vértices puede ser renderizado en la
memoria de imagen por la sección de dibujado (sección de
renderizado).
La fig. 7 es un dibujo que representa un ejemplo
de movimiento de un modelo de conformado integrado (envolvente).
Este ejemplo muestra un modelo de conformado integrado cuando el
modelo de conformado integrado en la forma básica mostrado en la
fig. 4 se mueve, como se ha mostrado en la fig. 1B. A fin de poner
en práctica el movimiento mostrado en la fig. 1B, los modelos
M1-M4 que constituyen el modo de conformado
integrado se mueven como sigue. Los modelos M1 y M2 giran en la
dirección vertical y el modelo M3 gira en la dirección horizontal.
Junto con esto, el modelo M5 se mueve de modo que coincida con la
posición de punta del modelo M3. El modelo M4 es un modelo usado
fundamentalmente para expresar la ascensión 3A del músculo en el
brazo superior, girando verticalmente hacia arriba como se ha
mostrado en la fig. 7.
Como resultado, los vértices V102 y V103 se
mueven de tal modo que el músculo asciende influenciado por el
movimiento del modelo M4, y el vértice V113 se mueve interbloqueando
con el movimiento del modelo M4. Los vértices V101 y V107
simplemente se mueven interbloqueando con el movimiento del modelo
M1 respectivamente, y los vértices V104, V105 y
V108-V111 se mueven a posiciones respectivas
influenciados por el movimiento de los modelos M2 y M3. Por ello, el
polígono formado por los vértices V104, V109 y V110 cambia a una
forma de articulación de codo natural cuando se curva un brazo. El
vértice V112 se mueve interbloqueando con el movimiento del modelo
M3. Cada vértice del modelo M5 se mueve simplemente de acuerdo con
el movimiento del modelo M5 respectivamente.
Cuando los polígonos que llenan el espacio entre
cada vértice son renderizados con respecto a las posiciones de los
vértices después del movimiento, el brazo 3 es descendido en
dirección vertical, el antebrazo 4 es curvado para estar en una
dirección más horizontal, el músculo 3A del brazo superior sube, y
la parte 2 de la mano está conectada en la punta del brazo, como se
ha mostrado en la fig. 1B. Los modelos M2, M3 y M4 que no tienen
polígonos no tienen vértices reales, y estos modelos no son
presentados en las imágenes.
La fig. 8 es un dibujo que representa el método
del cálculo de peso en un modelo de conformado integrado. La fig. 8
muestra el caso en el que el modelo de conformado integrado en el
estado de forma básica en la fig. 4 resulta al estado después del
movimiento en la fig. 7, mostrando particularmente la relación entre
los vértices V102 y V103 y los modelos M2, M3 y M4 que influyen en
los vértices V102 y V103. La fig. 9 es un diagrama de flujo que
representa el procedimiento del cálculo de movimiento del modelo a
(cálculo de matriz) y el cálculo de peso de vértices en un modelo de
conformado integrado.
La fig. 8A muestra los modelos M2, M3 y M4 en el
estado de forma básica. Como se ha mencionado antes, los modelos M2,
M3 y M4 tienen el sistema de coordenadas local CDM2, CDM3 y CDM4
respectivamente. El sistema de coordenadas global CDGB, que es común
a todos los modelos, es también ajustado. En el modelo de conformado
integrado mostrado en la fig. 4, un diseñador ha ajustado los
vértices V102 y V103 de modo que sean influenciados (con valor de
peso) por los modelos M2, M3 y M4. En otras palabras, los valores de
peso mostrados en la fig. 6 son ajustados como los valores iniciales
previamente. Para ejecutar el cálculo de peso, los vértices V102 y
V103 son divididos respectivamente en tres vértices (vértices
distribuidos) que pertenecen a los modelos M2, M3 y M4 que influyen
en los vértices respectivamente, y son distribuidos a los modelos
correspondientes respectivos (S1 en la fig. 9). Por ejemplo, el
vértice V102 es dividido en vértices distribuidos V102(M2),
V102(M3) y V102(M4), que son distribuidos a los
modelos M2, M3 y M4 que influyen en los vértices distribuidos
respectivamente. El vértice V103 es también dividido en tres
vértices distribuidos que son distribuidos a los modelos que
influyen en los vértices distribuidos respectivamente.
Como resultado, los vértices V102(M2) y
V103(M2) pertenecen al modelo M2. Del mismo modo, los
vértices V102(M3) y V103(M3) pertenecen al modelo M3,
y V102(M4) y V103(M4) pertenecen al modelo M4. Las
coordenadas de posición de los vértices que pertenecen a cada modelo
en el estado de forma básica son convertidas al sistema de
coordenadas local de cada modelo (S2 en la fig. 9). Por ejemplo, la
coordenada absoluta del vértice 102(M2) y el vértice
V103(M2) es convertida al sistema de coordenadas local CDM2
del modelo M2 de acuerdo con la matriz de modelo del modelo M2. Para
los otros vértices también, la coordenada absoluta es convertida al
sistema de coordenadas local del modelo al que pertenecen los
vértices. Como resultado, cada vértice se mueve junto con el modelo
al que pertenece el vértice.
La fig. 8B muestra un estado en el que cada
modelo M2, M3 y M4 se mueve como se ha mostrado en la fig. 7,
respectivamente. El movimiento de cada modelo es controlado
ajustando la matriz de modelo respectiva (S3 en la fig. 9). Por
ejemplo, el sistema de coordenadas local CDM2 del modelo M2 y se
mueve a una posición de acuerdo con la rotación, traslación y
escalado de la matriz de modelo del modelo M2 con respecto al
sistema de coordenadas local del modelo M1, que no está ilustrado.
Los vértices V102(M2) y V103(M2) que pertenecen al
modelo M2 se desplazan de acuerdo con el movimiento del modelo M2 en
el estado de forma básica. En otras palabras, la posiciones de los
vértices V102(M2) y V103(M2) no se mueven en el
sistema de coordenadas local CDM2 del modelo M2. Por ello las
posiciones de los vértices V102(M2) y V103(M2) que se
mueven junto con el movimiento del modelo M2 pueden también ser
determinadas ejecutando el cálculo de matriz utilizando la matriz de
modelo del modelo M2 (S4 en la fig. 9).
Los vértices V102(M3) y V103(M3)
que pertenecen al modelo M3 y los vértices V102(M4) y
V103(M4) que pertenecen al modelo M4 se mueven también junto
con el movimiento de los modelos respectivos, y las posiciones
después del movimiento pueden ser determinadas ejecutando el cálculo
de matriz utilizando la matriz de modelo de los modelos
respectivos.
Cuando las posiciones en el sistema de
coordenadas global son determinadas para los vértices distribuidos a
cada modelo, por ejemplo, la operación de peso de acuerdo con los
valores de peso (grado de influencia) que cada modelo tiene sobre
los vértices es ejecutada (S5 en la fig. 9). De acuerdo con los
valores de peso en la fig. 6, por ejemplo, los valores de peso
procedentes de los modelos M2, M3 y M4 son 30%, 30% y 40%
respectivamente para ambos vértices. Dado esto, se considera el
vértice V102 por ejemplo, donde una nueva coordenada de posición del
vértice V102 de acuerdo con el grado de influencia (valor de peso)
procedente de cada modelo es determinada multiplicando el valor de
coordenada de vértice del vértice V102 (M2) por 0,3, multiplicando
el valor de coordenada de vértice del vértice V102(M3) por
0,3, multiplicando el valor de coordenada de vértice del vértice
V102(M4) por 0,4, e integrando (sumando) estos valores. En
otras palabras, el vértice V102 indicado por los círculos dobles en
la fig. 8(B) es la posición del vértice real determinada a
partir de los tres vértices distribuidos V102(M2),
V102(M3) y V102(M4) usando 30%, 30% y 40% de valores
de peso respectivamente. Si los valores de la coordenada X de los
tres vértices distribuidos V102(M2), V102(M3) y
V102(M4) en el sistema de coordenadas global son X2, X3 y X4,
entonces el valor de coordenada X, X102 del vértice real V102
mostrado por el doble círculo está dado por
X102 = 0.3*X2
+ 0.3*X3 + 0.4*X4 \hskip0,2cm (* \ significa \
multiplicar)
Este es el cálculo de peso.
Utilizando los valores de coordenada y los datos
de línea normal de los vértices indicados por los dobles círculos
después del cálculo de peso, que son determinados como antes, es
ejecutado el renderizado de polígonos compuestos por una pluralidad
de vértices. Por ejemplo, los datos de color de elementos de imagen
en un polígono conectado con una pluralidad de vértices son
determinados determinando la relación interior de las coordenadas de
elemento de imagen con respecto a las coordenadas de vértice por un
método de exploración por puntos y ejecutando la interpolación que
usa la relación interior basada en los datos de vértice y en los
datos de textura. Además de las coordenadas de vértice anteriores,
se usan también normalmente datos en los vectores normales del
vértice. Los datos de línea normal en el vértice indicado por los
dobles círculos son determinados por la operación de peso, lo mismo
que antes, y el cálculo de la luz distribuida con respecto a la
fuente de luz es ejecutado usando tales datos de línea normal. Estos
métodos de renderizado, sin embargo, no son el objeto del presente
invento, en el que se usa un método de renderizado general.
El anterior es el método que pone en práctica el
movimiento de un carácter por el modelo de conformado integrado
(envolvente) utilizando un modelador tridimensional. Como se ha
explicado antes, cuando se usa un modelo de conformado integrado,
cada modelo debe tener datos en los vértices de influencia además de
los datos de vértice real del modelo respectivo, y la operación para
determinar la posición de cada modelo por operación usando la matriz
de modelo, la operación para determinar las posiciones de los
vértices de influencia usando la matriz de modelo, la operación para
determinar la nueva posición y los datos de línea normal
considerando el grado de influencia de estos vértices por la
operación de peso, y la operación para ejecutar el renderizado de
los polígonos de cada modelo usando los datos de vértice
determinados antes son requeridas. El tratamiento para el modelo de
conformado integrado que implica estas operaciones debe ser
ejecutado en tiempo real usando tal hardware como una máquina de
juegos, que tiene solamente funciones simples de operación y una
pequeña capacidad de memoria, de modo diferente a un
superordenador.
El presente invento usa datos de conversión, que
son obtenidos ejecutando una parte del tratamiento de datos anterior
previamente sobre los datos de modelo original del modelo de
conformado integrado. Estos datos de conversión tienen un formato
adecuado para la operación y tratamiento en tiempo real por la
máquina de juegos, y tales datos de conversión son grabados en un
medio de grabación para una máquina de juegos, por ejemplo un
CD-ROM o casete de juegos, como datos de
carácter.
La fig. 10 es un dibujo que representa la
relación entre los datos originales en un modelo de conformado
integrado y los datos de conversión para la biblioteca de dibujos en
la presente realización. De acuerdo con la presente realización, los
datos originales 100 en el modelo de conformado integrado generado
por un modelador tridimensional usado para una película de CG son
convertidos a los datos de conversión 110 para la biblioteca de
dibujos por un nuevo programa convertidor que ha de ser
proporcionado por el presente invento. Estos datos de conversión 110
no incluyen datos que cambian dinámicamente durante el progreso de
un juego, y tienen un formato de datos optimizado para operar el
movimiento dinámico de caracteres durante el progreso de un juego
por la biblioteca de dibujos (programa de tratamiento de dibujo) en
un medio de grabación que grava un programa de juegos que ha de ser
ejecutado por la máquina de juegos. Por ello los datos de conversión
110 son generados convirtiendo los datos originales de acuerdo con
el programa convertidor y son almacenados en un medio de grabación
para juegos, un CD-ROM por ejemplo.
La fig. 11 es un dibujo que representa la
relación entre la configuración en el medio de grabación para juegos
(por ejemplo CD-ROM) y el hardware de la máquina de
juegos. Como muestra la fig. 11, el medio de grabación 10 es para
almacenar un programa de juegos 12 que controla la historia del
juego y el movimiento de los objetos, incluyendo caracteres,
sintonizándolos con el progreso del juego, los datos de conversión
de modelo 110 que el convertidor ha generado convirtiendo datos
originales, y una biblioteca de dibujos (un tipo de programa) 14
para ejecutar el tratamiento de imágenes. Tal medio de grabación 10
para juegos es instalado en un hardware 20 de máquina de juegos, y
es leído cuando sea necesario, a continuación el programa de juegos
es ejecutado, y la biblioteca de dibujos 12 es ejecutada usando los
datos de conversión de modelo, y como resultado, se generan imágenes
en un corto periodo de tiempo, en cada cuadro por ejemplo.
La fig. 11 muestra una configuración de un
hardware 20 de máquina de juegos. La CPU 22, para ejecutar el
tratamiento aritmético, y la memoria del sistema (RAM) 24, que
temporalmente lee el programa del medio de grabación 10 para juegos
y los datos de conversión de modelo y es usada como una memoria
tampón de tratamiento aritmético, están conectados mediante líneas
de transmisión en el hardware 20 de la máquina de juegos. También un
procesador 26 de renderizado, que ejecuta el renderizado de acuerdo
con las órdenes de dibujar generadas por la biblioteca de dibujo,
una memoria de cuadro 28, en la que las señales de imagen dibujadas
por el procesador 26 son grabadas, un procesador de audio 30, para
generar datos de audio, y una memoria de audio 32, para grabar los
datos de audio generados, están conectados mediante un árbitro de
línea de transmisión 38. Los datos de imagen grabados en la memoria
de cuadro 28 y los datos de audio grabados en la memoria de audio 22
son presentados o emitidos desde el dispositivo de presentación 34,
tal como un monitor de TV. El árbitro de transmisión 38 en la
máquina de juegos 20 tiene también la función de un enlace, en el
que la almohadilla de control 42 para entradas de juegos está
conectada como los medios de entrada, y una línea de comunicación
externa está conectada a través de un modem 40. El árbitro de línea
de transmisión 38 está también conectado a una ROM 36 de arranque,
de modo que es ejecutada una operación de arranque al encender,
ejecutando los datos en la ROM de arranque. La máquina de juegos 20
también conecta el medio de grabación 10 para juegos, por ejemplo un
CD-ROM o un cartucho de juegos, a través del árbitro
de línea de transmisión 38, de modo que use el medio de grabación 10
como un dispositivo de grabación externo.
Los datos 110 de conversión de modelo grabados en
el medio de grabación 10 para juegos han sido convertidos a un
formato de datos que disminuye la carga de tratamiento de imágenes
en la biblioteca de dibujos 14. Debido a este formato de datos, que
es descrito posteriormente, los datos 110 de conversión de modelo
tienen una estructura de datos óptima para la biblioteca de dibujos
14, por ello el tratamiento de imágenes para los modelos de
conformado integrados de caracteres que se mueven durante el
progreso de un juego pueden ser ejecutados en tiempo real.
La fig. 12 es un diagrama de flujo que representa
los procesos de crear datos de conversión a partir de los datos de
modelo de conformado integrado por un modelador tridimensional. El
juego es creado normalmente por un planificador que crea la historia
del juego, un diseñador que diseña objetos de juego, tales como
caracteres, para el juego, y un programador que escribe el programa
de juegos. El modelador tridimensional es usado por el diseñador
para proporcionar caracteres que se mueven tan naturalmente como sea
posible, y genera datos originales del modelo de conformado
integrado llamado una envolvente (S10). En este modelo de conformado
integrado, como se ha explicado antes, cada modelo tiene una matriz
de modelo, y datos de vértice y lista de pesos, como se ha mostrado
en la técnica anterior en la fig. 2. La matriz de modelo son datos
de matriz en rotación, traslación y escalado con respecto a un
modelo en la mayor jerarquía de la estructura jerárquica (estructura
en árbol) de los modelos. Los datos de vértice son datos
correspondientes a vértices reales, e incluyen al menos los datos de
coordenada de posición y los datos de línea normal en los vectores
de línea normal de los vértices. Los datos de vértice incluyen
también un valor a que indica coordenadas de opacidad y textura que
corresponden a datos de textura, por ejemplo. La lista de pesos
tiene al menos los ID de los vértices reales que influyen en el
modelo (ID de modelo e ID de vértices que pertenecen al modelo) y
valores de pesos. La fig. 6 muestra los datos cuando la lista de
pesos es desarrollada.
A continuación los datos de conversión
correspondientes al formato de datos para la biblioteca de dibujos
son generados a partir de los datos originales del modelo de
conformado integrado por el programa convertidor (S12). En los datos
de conversión, acerca de los cuales se han explicado detalles
posteriormente, los vértices reales son divididos en cuatro grupos,
es decir, vértices nativos que no tienen peso, y vértices de peso
iniciales, vértices de peso intermedios y vértices de peso finales,
que requieren cálculo de peso. El vértice de peso inicial es un
vértice para el que el valor del peso es multiplicado en primer
lugar en el cálculo de peso, el vértice de peso intermedio es un
vértice para el que el valor de peso es multiplicado a continuación
en el cálculo de peso, y el vértice de peso final es un vértice para
el que el valor de peso es multiplicado el último en el cálculo de
peso. La secuencia de cálculo de peso es normalmente determinada de
acuerdo con la secuencia de trazado de la estructura jerárquica
(estructura en árbol) de los modelos. Los vértices divididos en cada
grupo son clasificados para cada modelo a los que pertenecen los
vértices respectivos.
A continuación el formato de la memoria tampón de
vértice común compuesto de vértices nativos y vértices de peso
iniciales, que indican vértices reales sin solapamiento, es
generado, y los ID de vértices consistentes son asignados a los
vértices reales dispuestos en la memoria tampón de vértice común
independientemente del atributo del modelo. La lista de los vértices
reales compuesta por vértices nativos y los vértice de peso
iniciales en la memoria tampón de vértice común es un conjunto de
los vértices reales para cada modelo al que pertenecen los vértices
reales. La lista de vértice común para cada modelo es clasificada
para cada modelo que influye en los vértices reales, y es
clasificada en la secuencia para cada modelo. Los ID de vértices
consistentes son asignados a la lista de vértice real para cada
modelo dispuesto en la memoria tampón de vértice común, de modo que
simplifiquen el procedimiento de referencia en el cálculo de peso en
una operación posterior. La memoria tampón de vértice común generada
de esta manera tiene una simple estructura de datos equivalente a la
lista de vértice real tradicional de un modelo que no implica
cálculo de peso.
Además del formato de la memoria tampón del
vértice común, los vértices divididos en cuatro grupos son
distribuidos a los modelos que influyen en estos vértices. Y una
lista de vértice compuesta por los vértices distribuidos es generada
para cada modelo. En esta lista de vértice, los vértices son
clasificados en los cuatro grupos anteriores, nativo, de peso
inicial, de peso intermedio y de peso final, en que los vértices son
guardados. Los datos de vértice en la lista de vértice incluyen los
datos de coordenadas de vértice basados en las coordenadas locales
en el modelo, datos de línea normal y datos de peso, que se refieren
a los ID de vértice en la memoria tampón de vértice común de los
vértices reales que influyen si es necesario. En otras palabras, los
datos de peso anterior son incluidos en los datos de vértice que
pertenecen los vértices al peso inicial, peso intermedio y peso
final, y no están incluidos en los datos de vértice pertenecientes a
los vértices nativos.
En esta lista de vértice para cada modelo, los
vértices nativos, en que sólo influye el modelo (un peso), y los
vértices de peso inicial, vértices de peso intermedio y vértices de
peso final, en que influyen el modelo y otros modelos (múltiples
pesos), están dispuestos de manera unitaria. La biblioteca de
dibujos ejecuta el tratamiento de imágenes en tiempo real usando la
lista de vértice y la memoria tampón de vértice común.
Los datos de conversión de modelo incluyen
también la lista de polígonos. Esta lista de polígonos tiene una
pluralidad de datos de vértice que constituyen el polígono. El ID de
vértice asignado a los vértices reales en la memoria tampón de
vértice común es usado como datos de atributo en los datos de
vértice de la lista de polígonos. Preferiblemente la lista de
polígonos incluye también una orden de dibujar para indicar si el
renderizado (dibujado) del modelo es ejecutado. Esta orden de
dibujar es generada por el convertidor y es hecha referencia por la
biblioteca de dibujos.
Como se ha descrito antes, los datos de
conversión 110 generados por el convertidor tienen el formato de la
memoria tampón de vértice común que indica la lista de los vértices
reales, una lista de vértice de los vértices distribuidos a cada
modelo, y la lista de polígonos de cada modelo. Como muestra la fig.
9, el procedimiento de conversión por el convertidor incluye la
distribución de vértices reales al modelo (S1) y conversiones al
sistema de coordenadas local en el modelo (S2), luego el cálculo del
movimiento basado en la matriz del modelo (operación de matriz) que
es ejecutado por la biblioteca de dibujos (S3, S4), y la generación
de datos de conversión óptimos para la operación de peso usando los
valores de peso (S5), son ejecutados. Estos datos de conversión
serán descritos de nuevo posteriormente usando los ejemplos en la
fig. 4 y fig. 7.
Junto con la generación de los datos de
conversión 110, el programa de juegos es creado por un programador
(S14), como se ha mencionado antes. Y como se ha mostrado en la fig.
11, el programa de juegos 12, los datos de conversión del modelo 110
y la biblioteca de dibujos 14 son grabados en el medio de grabación
10 para juegos (S16).
La fig. 13 es un diagrama de flujo de un juego.
Para jugar a un juego, un medio de grabación 10 para juegos es
ajustado a la máquina de juegos (S20). La máquina de juegos ejecuta
el juego de acuerdo con el programa de juego en el medio de
grabación, y genera una matriz de modelo para mover los modelos que
constituyen un carácter (S22). La matriz de modelo para movimiento
es una matriz compuesta por parámetros tales como rotación,
traslación y escalado con respecto al modelo en la jerarquía más
alta, como se ha mencionado antes, y después del movimiento son
determinadas coordenadas nuevas multiplicando el modelo o las
coordenadas de vértice del polígono por la matriz de modelo.
A continuación la máquina de juegos ejecuta la
biblioteca de dibujos (S24). Los datos de conversión de modelo 110
tienen un formato de la memoria tampón de vértice común en que los
ID consistentes son asignados para los vértices reales de todos los
modelos, una lista de vértice de vértices distribuidos para cada
modelo, y una lista de polígonos para cada modelo. La lista de
vértice para cada modelo compuesta por vértices que no son
influenciados por otros modelos (vértices nativos) y vértices que
son influenciados por otros modelos (peso inicial, peso intermedio,
y peso final), como se ha descrito después, donde los vértices que
son influenciados por otros modelos, son clasificados para cada uno
de los otros modelos que influyen. La lista de vértice para cada
modelo usa los ID de vértice de otros vértices que influyen de
acuerdo con los ID de vértice consistentes en la memoria tampón de
vértice común. La lista de polígonos para cada modelo incluye datos
de vértice, donde los ID de vértice de los polígonos que constituyen
el modelo son datos de atributos, e incluyen una orden de dibujar
para el modelo para el que el cálculo de peso ha finalizado, y una
orden de no dibujar para el modelo para el que el cálculo de peso no
ha finalizado. La memoria tampón de vértice común es desarrollada en
la memoria del sistema (RAM) en la máquina de juegos en la etapa en
que la biblioteca de dibujos ejecuta el tratamiento de imágenes.
En el procedimiento para la biblioteca de
dibujos, son determinados nuevos datos de coordenadas de vértices
después del movimiento multiplicando los datos de coordenadas de los
vértices de cada modelo por la matriz para el movimiento creada por
el programa de juego. Esta operación corresponde a la operación S4
en la fig. 9. A continuación basado en los datos de vértice, el
cálculo de peso es ejecutado de acuerdo con la secuencia de trazado
de la estructura jerárquica del modelo y en la secuencia de la lista
de vértice en el modelo, y el resultado del cálculo es escrito o
integrado (añadido) al área en la memoria tampón de vértice común
correspondiente a los vértices en los que influyen. Esta operación
corresponde a la operación S5 en la fig. 9. Luego la biblioteca de
dibujos ejecuta el dibujado (renderizado) de los polígonos en el
modelo con referencia a las coordenadas de vértice y los datos de
línea normal almacenados en la memoria tampón de vértice común de
acuerdo con la orden de dibujar en la lista de polígonos en cada
modelo, y graba los datos de imagen, que incluyen datos de color de
los elementos de imagen en los polígonos, en la memoria tampón de
cuadro 28.
Las imágenes son presentadas en el dispositivo de
presentación 34 de acuerdo con los datos de imagen dibujados en la
memoria tampón de estructura 26 (S26). Presentando estas imágenes
dibujadas para cada cuadro, pueden ser presentadas imágenes, que
incluyen caracteres que se mueven respondiendo a las señales de
entrada de control del operador. Como se usa un modelo basado en el
modelo de conformado integrado generado por un modelador
tridimensional, la parte de articulación de caracteres se mueve
naturalmente, y tal movimiento puede ser expresado como la elevación
de un músculo de un carácter. Las Operaciones anteriores
S20-S26 son repetidas para cada período de
cuadro.
La fig. 14 y la fig. 15 son diagramas de flujo
que representan procedimientos del convertidor. A diferencia de la
orden de dibujar almacenada en el medio de grabación para juegos, el
convertidor de la presente realización no es requerido para tratar
datos en tiempo real. Las operaciones S30, S32 y S33 de este
diagrama de flujo son las etapas para crear el formato de la memoria
tampón de vértice común a partir de los datos originales del modelo,
y crear la lista de vértice para cada modelo. Las operaciones
S36-S60 de este diagrama de flujo son etapas de
operación de simulación de tratamiento de imágenes que la biblioteca
de dibujos ejecuta, y ejecutar esta operación de simulación hace
posible detectar la temporización para ejecutar el dibujado
(renderizado) de cada modelo cuando la estructura jerárquica de los
modelos está trazada, e insertar la orden de no dibujar y la orden
de dibujar en la lista de polígonos del modelo. El formato de la
memoria tampón de vértice común y la lista de vértice creada de esta
manera tiene un formato de datos adecuado para que la biblioteca de
dibujos ejecute el tratamiento de imágenes, y la orden de no dibujar
o la lista de polígonos con una orden de dibujar, que son generadas
por la operación de simulación, disminuye la carga de la biblioteca
de dibujos para administrar el tiempo de dibujo de cada modelo.
El programa convertidor que tiene el
procedimiento de tratamiento mostrado en la fig. 14 es ejecutado por
un ordenador de propósito general que tiene funciones de tratamiento
más rápidas y capacidad de memoria mayor que una máquina de juegos.
El programa convertidor es grabado en un medio de grabación externo,
tal como un disco duro, de este ordenador de propósito general, por
lo que el procedimiento de tratamiento es ejecutado para los datos
originales y los datos de conversión son generados.
A fin de ejecutar el cálculo de movimiento
(cálculo de matriz) y el cálculo de peso para el dibujo del modelo
de conformado integrado, como se ha explicado en la fig. 9, es
necesario distribuir los vértices reales a los modelos que influyen
(S1), y convertir los datos de coordenada de posición y los datos de
línea normal de los vértices al sistema de coordenadas local del
modelo de destino de distribución (S2). Además de los dos
procedimientos anteriores S1 y S2, el convertidor de la presente
realización genera los vértices reales para el número de los modelos
de destino de distribución, y divide estos vértices reales en cuatro
grupos, vértices nativos, que dependen de la posición de un único
modelo (vértices que no tienen peso), vértices de peso inicial, para
los que el cálculo de peso debe ser ejecutado en primer lugar cuando
la jerarquía de modelo es trazada, vértices de peso intermedio, para
los que el cálculo de peso debe ser ejecutado en segundo o último
lugar, y vértices de peso final, para los que el cálculo de peso
debe ser ejecutado al final (los vértices de peso inicial, vértices
de peso intermedio y vértices de peso final son vértices que están
influenciados por una pluralidad de modelos (vértices que tienen
peso)) (S30).
Como los vértices nativos y vértices iniciales,
de los cuatro grupos de vértices, corresponden a los vértices
reales, el convertidor vuelve a disponer los vértices de estos
grupos de vértices para cada modelo al que pertenecen los vértices,
y crea el formato de la memoria tampón de vértice común (S32). A
estos vértices que están dispuestos en la memoria tampón de vértice
común, son asignados números de serie consistentes como nuevos ID de
vértices. Un número en distintos formatos puede ser usado para un
nuevo ID de vértice. Por ejemplo, son usados un número de entrada
del vértice en cada modelo y un valor desplazado correspondiente al
número de vértices en el modelo, de manera que los datos de formato
de la memoria tampón de vértice común puedan ser creados, y también
el número puede ser usado para el ID de vértice.
El convertidor vuelve a disponer también los
cuatro grupos de vértices distribuidos a los modelos para cada uno
de los modelos que influyen en estos vértices, y crea la lista de
vértice para cada modelo (S34).
Los tratamientos de memoria anteriores S30, S32 y
S34 serán explicados después usando los ejemplos de modelo en la
fig. 4 y en la fig. 6. La fig. 16 es un diagrama de flujo que
representa el procedimiento de la distribución detallada de los
vértices reales a modelos y la generación de lista de vértice. La
fig. 17 es un dibujo que representa el procedimiento para convertir
datos originales a datos de conversión. La fig. 18 es un dibujo que
representa una lista de vértice de los datos originales y una lista
de vértice común cuando la presente realización es aplicada a un
ejemplo de modelo específico, y la fig. 19 es un dibujo que
representa una lista de vértice cuando la presente realización es
aplicada a un ejemplo de modelo específico. El procedimiento
mostrado en la fig. 16 y fig. 17 será ahora descrito con referencia
a la fig. 18 y a la fig. 19.
Como el lado izquierdo de la fig. 17 o el lado
izquierdo de la fig. 18 muestran, los datos en los modelos M1 y M5
de los datos originales incluyen la lista de vértice (107 en la fig.
l7). Estos datos de modelo de los datos originales son datos
generados por un modelador tridimensional, en el que cada modelo
tiene la matriz de modelo (109 en la fig. 17), un modelo que tiene
un polígono tiene la lista de vértice (107 en la fig. 17), y la
lista de polígonos (106 en la fig. 17), y un modelo que influye en
los vértices tiene la lista de peso (108 en la fig. 17). Las listas
de vértice original en el lado izquierdo de la fig. 18 corresponden
a las listas de vértice de los modelos M1 y M5, que son los modelos
mencionados antes que tienen polígonos. Por ello los vértices
mostrados aquí son vértices reales y la lista de vértice incluye al
menos los datos de coordenada de posición y los datos de línea
normal en los vértices.
En primer lugar, el convertidor determina las
coordenadas globales de las coordenadas de posición y los datos de
línea normal de los vértices reales del modelo de conformado
integrado en forma básica (S62). Esta operación es ejecutada, por
ejemplo, multiplicando los datos de vértices reales de modelos
respectivos por la matriz de modelo de los modelos M1 y M5. Como
resultado, los datos en los vértices reales
V101-V113 y V501-V506 mostrados en
la fig. 4 son convertidos al sistema de coordenadas global.
A continuación los vértices reales de los datos
del modelo original son divididos en cuatro grupos basados en el
peso de acuerdo con la secuencia de trazado de la jerarquía de
modelo (S62, véanse las Operaciones 121-124 en la
fig. 17). En la fig. 18, por ejemplo, la secuencia de trazado en la
jerarquía de modelo son los modelos M1, M2, M3, M5 y M4. El vértice
V101 del modelo M1 es un vértice que depende al 100% de la posición
del modelo M1 y pertenece al grupo de vértice nativo que no tiene
peso y no requiere el cálculo de peso. El vértice V102 del modelo M1
está indicado en la tabla de peso en la fig. 6, y está influenciado
por los modelos M2, M3 y M4 en un 30%, 30% y 40% respectivamente,
como se ha mostrado en la fig. 8, así el vértice V102 (M2), que está
influenciado por el modelo M2, es clasificado en el grupo de peso
inicial, el vértice V102 (M3) que esta influenciado por el modelo
M3, es clasificado en el grupo de peso intermedio, y el vértice V102
(M4), que está influenciado por el modelo M4, es clasificado en el
grupo de peso final.
Para el vértice V103 del modelo M1 también, el
vértice V103 (M2), que está influenciado por el modelo M2, es
clasificado en el grupo de peso inicial, el vértice V103 (M3), que
está influenciado por el modelo M3, es clasificado en el grupo de
peso intermedio, y el vértice V103 (M4) que está influenciado por el
modelo M4, es clasificado en el grupo de peso final. Para el vértice
V104 del modelo M1, el vértice V104 (M2), que está influenciado por
el modelo M2, es clasificado en el grupo de peso inicial, el vértice
V104 (M3), que está influenciado por el modelo M3, es clasificado en
el grupo de peso final. Como muestra la fig. 18, los vértices V105
y V108-V112 son también clasificados en el grupo de
peso inicial y en el grupo de peso final.
Como muestra la fig. 18, el vértice V106 del
modelo M1, que está influenciado 100% por el modelo m3, es
clasificado en el grupo nativo, el vértice V107 está influenciado
100% por el modelo M1 y el vértice V113 está influenciado 100% por
el modelo M4, por lo tanto el vértice V107 (M1) y el vértice
V113(M4) son clasificados en el grupo nativo.
Los vértices reales V501-V506 del
modelo M5 dependen todos de la posición del modelo M5 sin recibir
peso desde otros modelos, por lo tanto los vértices V505
(M5)-V506 (M5) son clasificados en el grupo nativo
respectivamente y son distribuidos al modelo M5. De esta manera los
vértices actuales son ordenados en cuatro grupos de vértices. A
continuación el convertidor ordena los vértices en los cuatro grupos
anteriores para cada modelo que influye en estos vértices (S66,
Operaciones 125-128 en la fig. 17). en el caso del
ejemplo en la fig. 18, por ejemplo, los cuatro vértices V101 (M1),
V106 (M3), V107 (M1) y V113 (M4), que pertenecen al grupo nativo del
modelo M1, son clasificados para cada uno de los modelos M1, M3 y M4
que influyen en estos vértices, y son dispuestos de nuevo en la
secuencia de V101 (M1), V107 (M1), V106 (M3) y V113 (M4), por
ejemplo. Los nueve vértices V102 (M2)-V105 (M2) y
V108 (M2)-V112 (M2), que pertenecen al grupo de peso
inicial del modelo M1, permanecen en esta secuencia ya que éstos
vértices están todos influenciados por el modelo M2. Los dos
vértices V102 (M3) y V103 (M3), que pertenecen al grupo de peso
intermedio del modelo M1, permanecen en esta secuencia. Y los nueve
vértices V102 (M4), V103 (M4), V104 (M3) y V105 (M3) y V108
(M3)-V112 (M3), que pertenecen al grupo de peso
final, son dispuestos de nuevo para cada uno de los modelos M3 y M4
que influyen en estos vértices. Los seis vértices del modelo M5
permanecen en la misma secuencia ya que estos vértices están todos
influenciados por el modelo M5.
A continuación el convertidor genera el formato
de la memoria tampón de vértice común para los vértices que
pertenecen al grupo nativo y al grupo de peso inicial fuera de los
cuatro grupos anteriores (S68, Operación 129 en la fig. 17). Esta
memoria tampón de vértice común es realmente una memoria tampón para
almacenar la lista de vértice real, donde, en primer lugar, los
vértices reales son agrupados para cada modelo al que los vértices
pertenecen, después los vértices son agrupados para cada grupo
nativo y grupo de peso inicial, y finalmente los vértices son
agrupados para cada modelo que influye en estos vértices.
En el caso del ejemplo en la fig. 18, la lista en
la memoria tampón de vértice común para el modelo M1 tiene vértices
V101 y V107 para el modelo que influye M1, el vértice V106 para el
modelo M3, y el vértice V113 del modelo M4 en el grupo nativo. En el
grupo de peso inicial, la lista tiene nueve vértices
V102-V112 para el modelo que influye M2. En el grupo
de peso inicial, no existen vértices para el modelo M1, M3 y M4.
Para los nuevos ID de vértice, nuevos números de
serie vx0-vx12 son asignados a los vértices
asignados en la memoria tampón de vértice común. Para asignar un ID
de vértice, como se ha descrito en la Operación 129 en la fig. 17,
un número de serie que comienza con un valor de desplazamiento
compuesto por el número de vértices de cada modelo en la memoria
tampón de vértice común puede ser usado como un número de entrada.
En el caso del modelo M1, por ejemplo, la primera dirección resulta
ADD (M1), y para el área del vértice V102, ADD (M1) +4 es ajustada
como el ID de vértice, que indica que el vértice V102 es el quinto
número de entrada desde la primera dirección ADD (M1). Como el
número de vértices en el modelo M1 es 13, el valor de desplazamiento
del modelo M1 es 13. Por ello, el valor de desplazamiento 13 del
modelo M1 es usado para la primera dirección ADD (M5) del siguiente
modelo, modelo M5, y números de entrada 0-6, que
comienzan con la primera dirección ADD (5), son asignados a los
vértices comunes del modelo M5.
Usando un valor de desplazamiento y número de
entrada de esta manera, una dirección que indica un área de cada
vértice en la memoria tampón dentro del área de memoria puede ser
fácilmente ajustado cuando la lista de vértice común de cada modelo
es almacenada en la memoria tampón. Esta cuestión será explicada en
detalle posteriormente. Tal valor de desplazamiento y número de
entrada resultan la información de formato de la memoria tampón de
vértice común.
La lista de vértice común antes mencionada es
realmente la misma que la lista de vértice real de cada modelo, y
almacenando esta lista en memoria y creando la memoria tampón de
vértice común, la integración (suma) del valor multiplicado de los
valores de peso y coordenada o datos de línea normal en la operación
de peso puede ser ejecutada para la memoria tampón de vértice común.
También asignando un nuevo ID de vértice y usando este ID de vértice
en la lista de vértice y lista de polígono mencionadas en último
término, el ID de referencia de vértices usado durante la operación
por la biblioteca de dibujos puede ser simplificado.
Como nuevos ID de vértices son asignados, los ID
de vértice en la lista de polígono, que cada modelo tiene, son
convertidos a los nuevos ID de vértice también (S68). Mediante esta
conversión, la referencia de datos en la memoria tampón de vértice
común, cuando el dibujado (renderizado) de los polígonos es
ejecutado después de que la operación de peso de los modelos
termina, puede ser simplificada, y la velocidad de la operación de
dibujado (operación de renderizado) por la biblioteca de dibujos,
donde el tratamiento en tiempo real es solicitado, puede ser
aumentada.
Como se ha explicado en la fig. 8, cada uno de
los vértices generados debe ser distribuido a los modelos que
influyen en los vértices. Por ello el convertidor distribuye los
cuatro tipos de vértices a los modelos que influyen en los vértices
respectivamente (S70). Distribución significa aquí hacer lista de
vértice en la lista de vértice en el modelo que influye en el
vértice, y convertir los datos de coordenada y los datos de línea
normal de los vértices al sistema de coordenada local del modelo. La
conversión al sistema de coordenada local es ejecutada multiplicando
datos en cada vértice en el sistema de coordenada global,
determinado en la Operación S62, por la matriz inversa de la matriz
de modelo que indica la posición del modelo.
El convertidor registra los vértices distribuidos
antes mencionados en la lista de vértice del modelo de destino de
distribución (S72). Esta lista de vértice es creada para cada uno de
los cuatro grupos. Para los ID de referencia de los vértices
registrados, nuevos ID de vértice (por ejemplo un valor de
desplazamiento y un número de entrada) son usados de acuerdo con el
formato de la memoria tampón de vértice común. Como resultado,
acceder a un área de la memoria tampón de vértice común donde un
resultado de operación es almacenado puede ser más fácil cuando la
operación de peso es ejecutada para un vértice en la lista de
vértice.
En el caso de los ejemplos de la fig. 18 y de la
fig. 19, los vértices en cuatro grupos en la fig. 18 son
distribuidos a las listas de vértice de los modelos que influyen en
los vértices, es decir, los modelos mostrados entre paréntesis en
los dibujos (por ejemplo el modelo M1 en el caso del V101 (M1)).
Como resultado, la lista de vértice mostrada en la fig. 19 es creada
para cada modelo. En la lista de vértice del modelo M1, por ejemplo,
los datos de coordenada VERT y los datos de línea normal NORM del
vértice V101(M1) y V107 (M1), que pertenecen al grupo nativo,
están previstos. El ID de referencia respectivo de un vértice está
indicado por "ID de vértice (vx0, 2)". Es decir, "el ID de
vértice (vx0, 2)" indica dos áreas de vértice en el área en el
que el ID de vértice en la memoria tampón de vértice común en la
fig. 18 es vx0. Otro modo de asignar un ID de referencia es, por
ejemplo, asignar nuevos ID de vértice, vx0 y vx1, a los datos de
vértice en la lista de vértice como datos de atributo.
Como muestra el ejemplo en la fig. 19, la lista
de vértice del modelo M2 no tiene vértices que pertenezcan al grupo
nativo, y tiene nueve vértices que pertenecen al grupo de peso
inicial. En el caso de un vértice que pertenece al grupo de peso
inicial, los datos de vértices incluyen datos de peso NFlagsW, que
tienen el valor de peso WT y los ID de los vértices reales que han
de ser almacenados (vx4 y vx5 en el caso del ejemplo en la fig. 19),
además de los datos de coordenadas VERT y los datos de línea normal
NORM. Este ID de vértice real está definido por el valor de
desplazamiento de cada bloque de vértice de la memoria tampón de
vértice común y el número de entrada de ese bloque, como se ha
mostrado en la fig. 18. Por ello en los datos de peso NflagsW, el
valor de entrada puede ser usado como el ID de vértice.
La lista de vértice del modelo M3 mostrada en la
fig. 19 incluye los datos de vértice en el vértice V106 (M3), que
pertenece al grupo nativo, datos de vértice (datos de coordenadas,
datos de línea normal y datos de peso) en los vértices V102 (M3) y
V103 (M3), que pertenecen al grupo de peso intermedio, y datos de
vértice (datos de coordenadas, datos de línea normal y datos de
peso) en los siete vértices, que pertenecen al grupo de peso final.
La lista de vértice del modelo M4 incluye un vértice, V113 (M4), que
pertenece al grupo nativo y dos vértices, V102 (M4), V103 (M4), que
pertenecen al grupo de peso final.
Cuando las operaciones anteriores
S62-S72 son ejecutadas para todos los modelos, la
lista de polígono 116 basada en los nuevos ID de vértice y la lista
de vértice 117 dividida en cuatro grupos son generadas como datos de
modelo respectivos 115, como se ha mostrado en la fig. 17. Un
ejemplo está mostrado en la fig. 19. También la lista de vértice
común mostrada en la fig. 18 es generada, y la información de
formato (por ejemplo valor de desplazamiento y número de entrada) de
la memoria tampón de vértice común correspondiente es generada. Como
resultado, la biblioteca de dibujos puede crear la memoria tampón de
vértice común para almacenar los datos en los vértices reales, puede
ejecutar la operación para vértices nativos, la operación para
vértices de peso inicial, la operación para vértices de peso
intermedio, y la operación para vértices de peso final
secuencialmente de acuerdo con la lista de vértice distribuida a
cada modelo, y puede dibujar polígonos haciendo referencia a la
lista de polígonos basada en los nuevos ID de vértice y utilizando
los datos de vértice, después de la operación de peso, escritos en
la memoria tampón de vértice común.
Además de la creación de la información de
formato de la memoria tampón de vértice común y la lista de vértice
y la lista de polígonos para cada modelo, como se ha mostrado en la
fig. 14, el convertidor simula el tiempo de dibujado (renderizado)
de cada modelo y añade una orden de dibujar o una orden de no
dibujar a la lista de polígonos. Para esto, el convertidor detecta
el tiempo cuando termina el cálculo de peso para los vértices que
influyen en los vértices reales en el modelo.
Para detectar el tiempo, el convertidor determina
el valor de contador que indica el número de veces que el cálculo de
peso es ejecutado para cada modelo que tiene polígonos (S36). Este
valor de contador es igual al número de vértices dividido en cuatro
grupos en cada modelo. Es decir, el valor de contador del modelo M1
es 24, y el valor de contador para el modelo M5 es 6. En otras
palabras, este valor de contador indica el número de veces en que la
biblioteca de dibujos ejecuta escritura o integración (suma) en la
memoria tampón de vértice común, y el final del cálculo de peso para
las veces del valor de contador en cada modelo significa que el
cálculo de peso de modelos que influyen en los vértices del modelo
ha finalizado, y también significa que los datos de los vértices
reales están definidos, y la preparación para el dibujado
(renderizado) está lista.
En la simulación de dibujado por la biblioteca de
dibujos, el cálculo de matriz y el cálculo de peso son ejecutados
secuencialmente para los datos de vértices de la lista de vértice de
cada modelo, la escritura o integración es ejecutada en el área de
vértice en la memoria tampón de vértice común (S42), y el contador
del modelo al que la escritura o vértices integrados pertenecen es
incrementado en +1 (S44). En el caso del ejemplo en la fig. 19, el
área de la memoria tampón común del modelo M1 es asegurada en la
memoria, y para la lista de vértice del modelo M1, los datos de
coordenadas y los datos de línea normal en nuevas posiciones son
determinados multiplicando los datos de coordenada VERT y los datos
de línea normal NORM del vértice V101 (M1) por la matriz de modelo
del modelo M1, luego el valor de peso 1.0 (100%) es multiplicado, y
estos datos son escritos en el área de vx0 en la memoria tampón de
vértice común mostrada en la fig. 18. Este vértice V101 (M1) es un
grupo nativo que esta influenciado al 100% por el modelo M1, así el
valor de peso es 1,0 y los datos permanecen sin cambios incluso si
el valor de peso es multiplicado. Para los vértices del grupo
nativo, los datos pueden ser escritos en la memoria tampón de
vértice común sin ejecutar el cálculo de peso (multiplicación). A
continuación el mismo cálculo es ejecutado para el vértice V107
(M1), y los datos determinados son escritos en el área vx1 en la
memoria tampón de vértice común. Como resultado, el valor de
contador del modelo M1 resulta 2.
Las operaciones anteriores S42 y S44 son
repetidas en la secuencia de la lista de vértice en cada modelo. Y
la ejecución de operaciones S42 y S44 termina para todos los
vértices de un modelo (S46), y si el cálculo de peso para ese modelo
ha terminado es juzgado juzgando si el valor de contador del modelo
es el mismo que el ajuste o configuración (S48). En el caso del
modelo M1 en la fig. 19, por ejemplo, el valor de contador es 2 y no
ha alcanzado el ajuste, que es 24, incluso si el cálculo de peso
para los dos vértices, vértice V101 (M1) y vértice V107 (M1), ha
terminado, por ello el dibujo del modelo M1 no puede ser ejecutado.
En el caso de un modelo tradicional compuesto por una pluralidad de
polígonos, las posiciones (coordenadas) y líneas normales de los
vértices que constituyen los polígonos son definidas de manera
uniforme sólo si la posición del modelo es definida. En otras
palabras, si la matriz de modelo del modelo es determinado y la
matriz de modelo es multiplicada por los datos de coordenadas y los
datos de línea normal, entonces los nuevos datos de coordenadas y
datos de línea normal son definidos. Esto significa que el dibujado
(renderizado) del modelo puede ser ejecutado en este punto. Es
decir, el dibujo del modelo puede ser ejecutado si la operación de
matriz termina.
En el caso del modelo de conformado integrado
(envolventes), sin embargo, que esta influenciado por otros modelos,
el dibujo del modelo no puede ser ejecutado hasta que todos los
cálculos del PSOE terminen para esas influencias.
Así de acuerdo con la presente realización, si el
cálculo de peso de un modelo no ha sido completado, una orden de no
dibujar DRAWCP (ADD) es generada en la lista de polígonos de ese
modelo, y es registrada en la última tabla de no dibujar mencionada
mostrada en la fig. 21, de modo que asegure el área de la memoria
tampón de vértice común para el próximo modelo (S50). Los datos de
atributo ADD de la orden de no dibujar anterior indican una
dirección de la lista de polígonos. En el caso del ejemplo en la
fig. 19, la orden de no dibujar DRAWCP (ADD) es escrita al comienzo
de la lista de polígonos del modelo M1. Como resultado, la lista de
polígonos del modelo M1 se completa. DRAWCP es una abreviatura para
"DIBUJAR Polígono Cash".
Si el cálculo de peso del modelo ha terminado,
por otro lado, a continuación una orden de dibujar DRAWCP (ADD) es
añadida a la lista de polígonos del modelo (S52). Y el área de la
memoria tampón de vértice común es liberada. O, en vez de añadir la
orden de dibujar, una regla en la que el dibujado (renderizado) del
modelo puede ser ejecutado inmediatamente si una orden de no dibujar
no está escrita en la lista de polígonos puede ser ajustada. En
otras palabras, cuando el cálculo de matriz y el cálculo de peso
para la lista de vértice del modelo termina, el dibujado
(renderizado) puede ser ejecutado por defecto. En este caso, la
orden de dibujar antes mencionada no es añadida a la lista de
polígonos del modelo, y si la orden de no dibujar existe o no
resulta crítico.
Cuando el cálculo para la lista de vértice del
modelo termina, la lista de vértice y la lista de polígonos del
modelo son emitidas (S54). La lista de polígonos incluye el ID de
registro de la tabla de no dibujar para la orden de no dibujar, y el
ID de registro de la tabla de dibujar para la orden de dibujar.
Incluso aunque las operaciones para todos los
vértices en la lista de vértice del modelo no han terminado, el
final del cálculo de peso del modelo de no dibujar debe ser
detectado por referencia al valor de contador para cada modelo
(S58). También una orden de dibujar DRAWDP (ADD) es generada en la
lista de polígonos del modelo de tratamiento corrientemente para el
modelo de no dibujar para el que el cálculo de peso ha terminado.
Como resultado, el área de la memoria tampón de vértice común para
el modelo para el que dibujar ha resultado posible es liberada
(S60). DRAWDP es una abreviatura para "DRAW Dibujar
Polígono".
La operación de simulación anterior es ejecutada
para las listas de vértice de todos los modelos.
Para comprender más concretamente lo anterior,
los ejemplos en la fig. 18 y en la fig. 19 son usados para su
explicación. La fig. 20 es un ejemplo de la lista de polígonos que
ha de ser generada en este caso, y la fig. 21 es un ejemplo de la
tabla de no dibujar. En primer lugar, al convertidor ejecuta el
cálculo de matriz y el cálculo de peso para la lista de vértice del
modelo M1, y escribe el resultado en las áreas correspondientes en
la memoria tampón de vértice común. Como el cálculo de peso no ha
terminado, incluso cuando terminan las operaciones para todos los
datos de vértices en la lista de vértice, la orden de no dibujar
DRAWCP (0) es registrada al comienzo de la lista de polígono 145
para el modelo M1. En este momento, la correspondencia entre la
primera dirección ADD1 de la lista de polígonos y los datos de
atributo "cero" de esta orden es registrada en la tabla 143 de
no dibujar.
A continuación el convertidor ejecuta el cálculo
de matriz y el cálculo de peso para la lista de vértice del modelo
M2 del mismo modo, y escribe o integra (suma) el resultado en las
áreas correspondientes en la memoria tampón de vértice común.
También como el cálculo de peso para los vértices del modelo M1 no
ha terminado cuando el cálculo para todos los vértices de la lista
de vértice del modelo M2 termina, el mismo tratamiento es ejecutado
para el siguiente modelo, modelo M3. Cuando el tratamiento para la
lista de vértice del modelo M4 termina, el cálculo de peso para los
vértices reales del modelo M1 termina, y el dibujo del modelo M1 es
posible. Así la orden de dibujar DRAWDP (0) para el modelo M1, que
ha estado en el estado de no dibujar, es registrada al comienzo de
la lista de polígonos 147 del modelo M4.
En la lista de vértice del modelo M5, no mostrada
en la fig. 19, todos los vértices pertenecen al grupo nativo, por
ello el modelo M5 está en un estado habilitado de dibujar cuando el
cálculo de matriz y el cálculo de peso de la lista de vértice del
modelo M5 terminan, por ello la orden de dibujar DRAW para el modelo
M5 está registrada en la lista de polígono 146 del modelo M5. O, si
el dibujo es ejecutado por defecto cuando una orden de no dibujar no
está registrada, a continuación es innecesario registrar la orden de
dibujar DRAW para el modelo M5.
Cada lista de polígono 145, 146 y 147 incluye
nombres de polígono PG e ID de vértices de los vértices que
constituyen los polígonos. Para los ID de vértice, nuevos ID de
vértice constante vx0 y vx1, que fueron asignados en la memoria
tampón de vértice común, son usados en el caso del ejemplo en la
fig. 20. La lista de polígonos puede ser creada usando una dirección
real basada en el número de entrada y el valor de desplazamiento
cuando la memoria tampón de vértice común ha sido generada como el
ID de vértice. Un ejemplo de esto será explicado más adelante.
En la tabla de no dibujar 143 en la fig. 21, la
primera dirección ADD1 de la lista de polígonos del modelo
corresponde a ID = 0 del modelo M1. La tabla de no dibujar 143 no es
siempre necesaria, y la primera dirección ADD1 de la lista de
polígonos puede ser directamente asignada a los datos de atributo de
la orden de no dibujar DRAWCP.
Como se ha explicado antes, el convertidor genera
datos de conversión (no en tiempo real), que tienen la información
de formato de la memoria tampón de vértice común y la lista de
vértice y la lista de polígonos de cada modelo, a partir de los
datos originales del modelo de formación integrado, que fue generado
por un modelador tridimensional. Estos datos de conversión son
grabados en un medio de grabación para juegos, por ejemplo
CD-ROM, junto con el programa de juego y la
biblioteca de dibujos.
Ahora se explicarán los ID de vértice cuando la
memoria tampón de vértice común es generada y liberada. La fig. 22
es un dibujo que explica los ID de vértice. En el ejemplo en la fig.
22, el modelo M6, que tiene un polígono para ser trazado a
continuación, es añadido a los modelos M1-M5 antes
mencionados para explicar fácilmente los ID de vértice. La fig. 22A
muestra un estado cuando los vértices del modelo son clasificados en
grupos nativos, de peso iniciales, de peso intermedios y de peso
finales, y el formato de la memoria tampón de vértice es creado a
partir de los vértices que pertenecen a los grupos de peso nativos e
iniciales. En este estado, un número en serie
vx0-vx(h+i+j-1) es asignado a
todos los vértices. Aquí h, i y j son valores desplazados de los
modelos M1, M5 y M6 respectivamente. Se ha supuesto que el
convertidor ha ejecutado una operación de simulación en este estado,
por lo que las áreas de la memoria tampón de vértice común serán
generadas y liberadas, como se ha mostrado en la fig. 22B.
Entre los modelos antes mencionados
M1-M5, los modelos M1 y M5 tienen vértices reales. Y
la operación para la lista de vértice es ejecutada en la secuencia
de los modelos M1, M2, M3, M5 y M4, que es la secuencia de trazado
de la jerarquía de modelo. Por ello si la primera dirección del área
de la memoria tampón de vértice común es ADDm, a continuación es
generada el área de la memoria tampón de vértice común del modelo M1
en primer lugar en la dirección Adm. O posteriormente (fig. 22B
(B-1)). A continuación es generada el área de la
memoria tampón de vértice común del modelo M5 después del área del
modelo M1 (Fig. 22B (B-2)). En este punto, la
dirección de los vértices del modelo M1 es especificada por la
primera dirección ADDm y el valor de entrada
0-(h-1). La dirección de un vértice del modelo M5 es
especificada por la primera dirección ADDm más el valor desplazado h
del modelo M1 y el valor de entrada 0-i del modelo
M5. Por ello en este punto, la dirección de un vértice común de los
modelos M1 y M5 es especificada por un número de serie
0-(h+i-1). Esta dirección es usada para el ID de
vértice.
En otras palabras, el dibujo de los modelos M1 y
M5 es ejecutado en este punto, a continuación las áreas de la
memoria tampón de vértice común de los modelos M1 y M5 son
liberadas. Por ello estas direcciones pueden ser usadas para todos
los ID de vértice de las listas de polígonos de los modelos M1 y M5.
Esto aumenta la eficacia de tratamiento de la biblioteca de
dibujos.
Cuando el dibujo de los modelos M1 y M5 termina,
las áreas de la memoria tampón de vértice común para los modelos M1
y M5 no son ya necesarias. El área de la memoria tampón de vértice
común del modelo M6 que ha de ser dibujada a continuación es por
ello generada en el número de entrada 0-(j-1) desde
la primera dirección ADDm de nuevo. Y estas direcciones son usadas
para el ID de vértice de la lista de vértice y la lista de polígonos
del modelo M6. En otras palabras, las direcciones de las áreas de la
memoria tampón de vértice común de modelos diferentes se solapan de
modo que se minimice la generación y mantenimiento de las áreas de
la memoria tampón de vértice común. Tal solapamiento de direcciones
no causa problemas, ya que la lista de vértice y la lista de
polígonos son referidas a la secuencia de trazado de la estructura
jerárquica de los modelos.
Una forma variante es para generar una tabla de
correspondencia entre las direcciones de las áreas de la memoria
tampón de vértice común y los ID de vértice constante por una
operación de simulación del convertidor usando el ID de vértice
consistente vx0-vx (h+i+j-1) para la
lista de vértice y la lista de polígonos. En este caso, la
biblioteca de dibujos puede conocer las direcciones de las áreas de
la memoria tampón de los ID de vértice que corresponden a la lista
de vértice y la lista de polígonos por referencia a la tabla de
correspondencia.
La fig. 23 es un dibujo que representa otro
ejemplo de una lista de vértice. Este ejemplo es el caso cuando las
direcciones del área de la memoria tampón de vértice común son
usadas como ID de vértice. La lista de vértice 200 tiene un conjunto
(segmento) de datos de vértice para los cuatro grupos entre la
descripción inicial 201 y la descripción final 203 de la lista de
vértice. 202 es la descripción que indica el final del segmento de
los datos de vértice. En otras palabras, la lista de vértice 200
tiene un segmento 218 de los vértices nativos que no tiene peso, un
segmento 228 de los vértices que pertenecen al grupo de peso
inicial, un segmento 238 de los vértices que pertenecen al grupo de
peso intermedio, y un segmento 248 de los vértices que pertenecen al
grupo de peso final. Cada segmento tiene una descripción 211 que
indica el nombre del segmento de datos del grupo de vértice que no
tiene peso, y una descripción 221 que indica el nombre del segmento
de datos del grupo de vértice que tiene peso. Estas descripciones
incluyen una banderola o indicador 212 que indica la continuación
del cálculo de peso, un tamaño de segmento 213, y una clasificación
de inicial, intermedio y final, 222, 232 y 242.
Cada segmento también incluye descripciones para
indicar el valor desplazado 214 del bloque de lista de vértice de la
memoria tampón de vértice común y el número de datos de vértice 215
en ese segmento. Los datos de vértice tienen los datos de coordenada
216 (VERT), los datos de línea normal 217 (NORM) y los datos de peso
(NflagsW), como el caso mostrado en la fig. 19. Los datos de peso
(NflagsW) tienen el número de entrada 226 del vértice en la memoria
tampón de vértice común y el valor de peso (%) 227. El área (ID de
vértice) de un vértice real en la memoria tampón de vértice común
puede ser especificada por el valor de compensación 214 y el número
de entrada 226.
A continuación se explicará un procedimiento de
la biblioteca de dibujos. La fig. 24 es un diagrama de flujo que
representa un procedimiento de la biblioteca de dibujos. Como se ha
mostrado en la fig. 13, el programa de juegos genera la matriz para
mover modelos que constituyen caracteres respondiendo a los datos de
control que el operador introduce cuando el juego está progresando
(S22). A continuación la biblioteca de dibujos dibuja los polígonos
(S24).
El procedimiento de la biblioteca de dibujos es
similar a la operación de simulación del convertidor. La biblioteca
de dibujos dibuja polígonos en tiempo real usando los datos de
conversión. La biblioteca de dibujos determina los datos de
coordenada y los datos de línea normal de los vértices después del
movimiento por el cálculo de la matriz en la secuencia de la lista
de vértice de cada modelo, de acuerdo con la secuencia de trazado de
la estructura jerárquica de los modelos (S80). Los datos de
coordenada y los datos de línea normal son determinados
multiplicando los datos de conversión por la matriz de modelo, y son
a continuación convertidos al sistema de coordenadas global (S80).
Junto con este cálculo de matriz, el área de la memoria tampón de
vértice común del modelo es asegurada en la memoria (S78). Tal área
de la memoria tampón de vértice común puede ser asegurada mientras
sea necesario basado en la información de formato en los datos de
conversión. Si el vértice para el que el cálculo de matriz es
ejecutado es un vértice que está clasificado al grupo nativo (S82),
a continuación 100% (1,0) es simplemente multiplicado en el cálculo
de peso, así realmente los datos de coordenada y los datos de línea
normal determinados por la operación de matriz son grabados en el
área correspondiente de la memoria tampón de vértice común
(S84).
Si la matriz para la que es ejecutada la
operación de matriz es un vértice que tiene peso, es decir, un
vértice que pertenece al grupo de peso inicial, de peso intermedio o
de peso final (S86), a continuación es ejecutado el cálculo de peso
usando datos de peso, y los datos de coordenada y los datos de línea
normal en el resultado del cálculo son escritos o integrados
(añadidos) en la memoria tampón de vértice común correspondiente. En
el caso de un vértice que pertenece al grupo de peso inicial, que es
un vértice que aparece en primer lugar, el resultado del cálculo es
escrito en la memoria tampón de vértice común, pero en el caso de un
vértice que pertenece al grupo de peso intermedio o de peso final,
se integra el resultado del cálculo con (añadido a) el valor ya
escrito allí. Y el contador del modelo en el que está grabado el
resultado del cálculo es aumentado en +1 (S90).
Son ejecutados el cálculo de matriz y el cálculo
de peso anteriores para todos los vértices de datos en la lista de
vértice del modelo (S92). Como los ID consistentes son usados para
todos los ID de vértice, y los ID de vértice corresponden con los
índices de referencia del área de datos de vértice de la memoria
tampón de vértice común, este cálculo de peso puede ser ejecutado a
muy alta velocidad. La lista de vértice está también dividida para
cada modelo. Por ello la misma matriz modelo puede ser usada
repetidamente para los vértices dentro del mismo modelo en el
cálculo de matriz. Esto significa que es innecesario cambiar
frecuentemente la matriz de modelo que ha de ser ajustada en la CPU
durante el cálculo de matriz por la biblioteca de dibujos. Esto
aumenta la eficiencia del cálculo de matriz y permite dibujar en
tiempo real.
La lista de vértice está agrupada a cada grupo de
vértices de modo que el procedimiento del cálculo de peso para el
grupo de vértices puede ser unificado. En otras palabras, en el caso
de los vértices que pertenecen al grupo nativo, el resultado del
cálculo de matriz es escrito directamente en la memoria tampón de
vértice común, en el caso de los vértices que pertenecen al grupo de
peso inicial, el resultado del cálculo de matriz y el cálculo de
peso es escrito en la memoria tampón de vértice común, y en el caso
de los vértices que pertenecen a los grupos de peso intermedio y de
peso final, el resultado del cálculo de matriz y el cálculo de peso
están integrados con (añadidos a) los datos en la memoria tampón de
vértice común. Como el procedimiento puede ser unificado de este
modo, la eficiencia de la operación de la biblioteca de dibujos
aumenta, lo que permite la operación en tiempo real.
Cuando la operación para la lista de vértice de
un modelo termina, la biblioteca de dibujos se refiere a la lista de
polígono de ese modelo. Si una orden de no dibujar DRAWCP está
escrita en la lista de polígono (S94), el dibujado (renderizado) del
modelo no puede ser ejecutado, así el modelo quede registrado en la
tabla de no dibujar (S96). Si una orden de dibujar DRAWDP para
modelo de no dibujar está escrita en la lista de polígonos (S98), la
dirección del modelo de no dibujar registrada en la tabla de no
dibujar está referida a, y el dibujado (renderizado) de los
polígonos es ejecutado en la secuencia de la lista de polígonos
(S100). Este renderizado de polígonos es ejecutado usando datos de
coordenada y datos de línea normal en el sistema de coordenadas
global basado en el resultado de la operación almacenado en la
memoria tampón de vértice común. Por ello cuando el dibujo del
modelo termina, el área de la memoria tampón de vértice común que
corresponde al modelo no es ya necesaria, y es liberada. Liberar
significa aquí ajustar el estado en el que el área puede ser
asignada como otro área de la memoria tampón de vértice común si es
necesario. Cuando una orden de dibujar DRAW para instruir a dibujar
el modelo está escrita en la lista de polígonos, el dibujado
(renderizado) de este modelo es ejecutado y el área de la memoria
tampón de vértice común es liberada (S102).
Es también posible dibujar los polígonos
automáticamente de acuerdo con la lista de polígonos del modelo
cuando la operación de la lista de vértice en el modelo termina, que
es un procedimiento por defecto, mientras exista una orden de no
dibujar. Antes de ejecutar el dibujado (renderizado), es ejecutada
la normalización, si es necesario, para los datos de línea normal
para los que termina el cálculo de vértice (S93). Los datos de línea
normal son usados para determinar el producto escalar (cos \theta,
\theta es el ángulo entre los vectores) entre el vector de la luz
procedente de la fuente de luz y el vector de línea normal
normalizado en la operación de renderizado. De acuerdo con el
producto escalar, tal procedimiento como para luz difusa en
elementos de imagen en los polígonos es ejecutado. Por ello,
dependiendo de la operación en el proceso de renderizado, es
necesario ejecutar previamente la normalización de un vector de
línea normal (tratamiento para hacer el valor escalar 1).
En la operación de dibujar (renderizado) por la
biblioteca de dibujos, es innecesario asegurar el área de la memoria
tampón de vértice común para todos los modelos en memoria. El área
de la memoria tampón de vértice común que corresponde a un modelo
debe ser asegurada hasta que la operación de peso necesaria termine.
Sin embargo, una vez que todas las operaciones de peso terminan y el
modelo puede ser dibujado, el dibujado (renderizado) de los
polígonos del modelo puede ser ejecutado de acuerdo con la orden de
dibujar, que ha sido previamente registrada en la lista de
polígonos. Cuando el dibujo termina, los datos de vértice en ese
área de la memoria tampón de vértice común no son ya necesarios, así
este área es liberada de manera que lo haga disponible como el área
de la memoria tampón de vértice común para otro modelo. Esto
significa que la capacidad del área de la memoria tampón de vértice
común en la memoria puede ser relativamente pequeña. Esto es una
gran mérito para una máquina de juegos que puede usar solamente una
memoria de capacidad relativamente pequeña.
De este modo, el convertidor crea la tabla de
conversión previamente, de modo que la biblioteca de dibujos, que
solicita el renderizado en tiempo real, pueda ejecutar el cálculo de
matriz y el cálculo de peso muy eficientemente, como se ha
mencionado antes. También puede disminuirse la capacidad del área de
datos (área de la memoria tampón de vértice común) de los vértices
reales que han de ser asegurados en la memoria. Por ello, la
biblioteca de dibujos puede crear imágenes de caracteres en tiempo
real usando la máquina de juegos que responde al accionamiento por
el operador.
En la realización anterior, el tratamiento de
datos de conversión por el convertidor y el tratamiento por la
biblioteca de dibujos para datos de múltiples pesos, en los que
vértices reales están influenciados por una pluralidad de modelos en
el modelo de conformado integrado, han sido explicados. Usando dicho
modelo de conformado integrado de múltiples pesos, la parte de
articulación que conecta los polígonos y la forma de los músculos en
la superficie puede ser dibujada de una forma más natural.
Sin embargo, dependiendo de la escena en el
juego, una operación de vértice complicada que sigue al tratamiento
de datos de múltiples pesos es innecesaria, incluso para el carácter
compuesto de un modelo de conformado integrado de múltiples pesos,
si el carácter está en una posición alejada desde un punto de vista,
por ejemplo. Esto es debido a que un carácter en una posición
alejada desde un punto de vista no requiere imágenes de alta
calidad, a diferencia de un carácter en el centro de la pantalla en
una posición cercana al punto de vista. En tal caso, no la operación
de vértice que sigue al tratamiento de múltiples pesos, que requiere
tiempo y recursos de hardware para tratamiento aritmético, sino que
es usada la operación de vértice que sigue a un tratamiento de peso,
de modo que pueden minimizarse el tiempo de tratamiento de imágenes
para una pantalla completa y los recursos de hardware. Un peso se
refiere a un modelo compuesto sólo de vértices que están
influenciados por un solo modelo, es decir, compuesto sólo de
vértices que pertenecen al grupo nativo.
La fig. 25 es un diagrama de flujo que representa
el procedimiento del convertidor para obtener la lista de vértice de
un peso a partir de los datos de un modelo de forma integrado de
múltiples pesos. Este diagrama de flujo es diferente en parte del
diagrama de flujo en la distribución de vértices a modelos y la
generación de la lista de vértice para datos de múltiples pesos
mostrada en la fig. 16.
Convertir coordenadas y datos de línea normal de
vértices reales del modelo de conformado integrado en forma básica
al sistema de coordenadas global en la Operación S62 es lo mismo que
en el caso de tratamiento de múltiples pesos. A continuación el
convertidor divide los vértices reales de los datos modelo
originales en grupos basados en el peso de acuerdo con la secuencia
de trazado de la jerarquía de los modelos (S64). Es decir, los
vértices reales de los datos de modelo originales están divididos en
el grupo nativo y en otros grupos usados para múltiples pesos. A
continuación el convertidor convierte los vértices, que tienen peso
(influencia) a partir de una pluralidad de modelos, a los vértices
nativos del modelo cuyo peso es mayor (S65). En el caso del ejemplo
en la fig. 8, por ejemplo, en el vértice V102, que tiene peso a
partir de los tres modelos M2, M3 y M4, el valor de peso procedente
del modelo 4 es el mayor, 40%, así entre los tres vértices V102
(M2), V102 (M3) y V102 (M4), sólo el vértice V102 (M4) está ajustado
como un vértice que pertenece al modelo M4, y los otros vértices
V102 (M2) y V102 (M3), aquellos cuyo valor de peso es pequeño, son
ignorados. Como resultado, el vértice V102 resulta el vértice nativo
que es influenciado al 100% por el modelo M4.
Mediante el tratamiento en la Operación S65,
todos los vértices resultan vértices de peso único que están
influenciados por un modelo. El tratamiento posteriormente es el
mismo que en el caso de múltiples pesos en la fig. 16. Es decir, los
vértices son clasificados para cada modelo que influye en los
vértices (S66), y números consistentes son asignados a todos los
vértices como nuevos ID de vértices, que también son usados en la
lista de polígonos de cada modelo (S68). O, como el caso de
múltiples pesos, un ID de vértice basado en el valor desplazado y el
número de entrada de la memoria tampón de vértice común pueden ser
usados.
Luego el convertidor distribuye todos los
vértices a los modelos que influyen en los vértices (modelos a los
que pertenecen los vértices), y convierte los datos de vértice al
sistema de coordenadas local del modelo (S70). Y el convertidor
registra estos vértices distribuidos a la lista de vértices del
modelo de destino de distribución (S72). Como este caso se refiere a
peso único, grupos tales como un grupo nativo o un grupo de peso
inicial no existen en la lista de vértice de cada modelo, a
diferencia del caso de múltiples pesos, y todos los vértices
resultan vértices nativos. Los vértices reales en la lista de
vértice tienen, desde luego, ID de vértice, basados en el formato de
la memoria tampón de vértice común.
En otras palabras, en el caso de peso único, es
creada una lista de vértices reales que constituye los polígonos del
modelo para cada modelo en el área de la memoria tampón de vértice
común, y una lista de los vértices nativos que influyen en el modelo
son creadas en la lista de vértice de cada modelo. Por ello, si son
usados tales datos de conversión de peso único, la biblioteca de
dibujos puede ejecutar sólo una operación de vértice para un
vértice, que simplifica el proceso de dibujo y permite el
tratamiento de dibujos de alta velocidad.
Los datos de conversión de peso único son
preferiblemente generados para todos los modelos de formato de
múltiples pesos por el convertidor. Por ello, para modelos de
formato de múltiples pesos, el convertidor genera datos de
conversión de formato de múltiples pesos de acuerdo con la fig. 16,
y datos de conversión de formato de peso único de acuerdo con la
fig. 25. La biblioteca de dibujos ejecuta el tratamiento de los
dibujos usando los datos de conversión de formato de peso único
durante un juego, cuando no se requiere el movimiento preciso de
modelos, por ejemplo, cuando un carácter que ha de ser dibujado está
en una posición alejada de un punto de vista, o cuando el carácter
no está en el centro de la pantalla, o cuando el carácter está en
una posición por detrás de un polígono semitransparente. Y la
biblioteca de dibujos ejecuta el tratamiento de los dibujos usando
los datos de conversión de múltiples pesos sólo para caracteres en
la posición más destacada en el centro de la pantalla. Como
resultado, puede disminuirse la carga requerida en el tratamiento de
dibujos para la pantalla completa.
De acuerdo con el presente invento, los datos de
conversión de modelo con una estructura de datos óptima pueden ser
proporcionados a la biblioteca de dibujos, que está grabada en un
medio de grabación para juegos (o simulación), y ejecuta el
tratamiento de imágenes en tiempo real, por ello modelos de forma
integrados que pueden poner en práctica un movimiento más natural de
articulaciones y la superficie exterior de caracteres pueden ser
dibujados en tiempo real.
De acuerdo con el presente invento, se ha
proporcionado un método de tratamiento de imagen (convertidor), que
convierte datos de un modelo de tipo integrado generados por un
modelador tridimensional a datos de un modelo que tiene una
estructura de datos óptima para la biblioteca de dibujos, que son
grabados en un medio de grabación para juegos (o simulación) y
ejecuta el tratamiento de imágenes en tiempo real. Por ello, los
datos de modelo en el formato de modelo de conformado integrado que
usan el modelador tridimensional pueden ser usados para máquinas de
juego (o simuladores), y puede proporcionarse un movimiento más
natural de objetos para juegos.
También, de acuerdo con el presente invento,
puede ser proporcionado un método de tratamiento de imágenes, para
dibujar eficientemente modelos de conformado integrados que usan
datos de conversión, o un medio de grabación que graba un programa
para un ordenador para ejecutar el método de tratamiento de
imágenes, por ello pueden ser dibujados caracteres compuestos de
modelos de conformado integrados en tiempo real, y pueden crearse
imágenes de caracteres con un movimiento más natural por una máquina
de juegos.
Claims (24)
1. Un medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado, para modelar el
movimiento articulado de un objeto, que tiene una pluralidad de
modelos enlazados por una estructura jerárquica donde al menos un
primer modelo tiene una pluralidad de vértices (V101,..., V113,
V501,..., V506) que constituyen polígonos, y al menos la posición de
un primer vértice es influenciada por las posiciones de dos o más de
la pluralidad de modelos y valores de peso de estos dos o más
modelos, comprendiendo los datos de modelo de conformado integrado:
datos de formato de una memoria tampón de vértice común para guardar
datos en la pluralidad de vértices en dicha pluralidad de modelos
para cada modelo en la estructura jerárquica; una lista de vértice
(117) que es creada para cada uno de dichos modelos que influyen en
los vértices y tiene datos de vértice especificados por un ID de
vértice en dicha memoria tampón de vértice común; datos (109) de
matriz de modelo que son creados para cada uno de los modelos y
ajusta las posiciones de modelo de dicha pluralidad de modelos en
formas no articuladas; y una lista (116) de polígonos que es creada
para cada uno de dichos modelos que tienen los polígonos y tiene
datos de polígono en los que dichos ID de vértice son datos de
atributo, en el que los datos de vértice en cada lista (117) de
vértice comprenden al menos los datos de posición de un vértice, un
valor de peso a partir del modelo al que dicha lista de vértice
pertenece, e ID de vértice en dicha memoria tampón de vértice común
correspondiente al vértice; caracterizado porque los datos de
vértice de dicho primer vértice influenciados por las posiciones de
dichos dos o más de dicha pluralidad de modelos son distribuidos a
la lista (117) de vértice de dichos dos o más modelos como datos de
vértice distribuidos.
2. El medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado según la
reivindicación 1ª, en el que cada una de dichas listas de vértice
que contienen datos de vértices distribuidos es dividida en vértices
de peso inicial, para los que una operación de vértice es ejecutada
en primer lugar cuando el trazado es ejecutado de acuerdo con la
estructura jerárquica de los modelos, vértices de peso intermedio,
para los que la operación de vértice no es ejecutada la primera o la
última, y vértices de peso final, para los que la operación de
vértice es ejecutada la última.
3. El medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado según la
reivindicación 1ª o 2ª, en el que cada una de dichas listas de
vértice además tiene datos en vértices nativos que están
influenciados solamente por el modelo al que ésta lista de vértice
pertenece.
4. El medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado según la
reivindicación 1ª a 3ª, en el que dichos datos de vértice tienen
datos de coordenada y datos de línea normal de dichos vértices.
5. El medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado según la
reivindicación 4ª, en el que dichos datos de vértice siguen a un
sistema de coordenadas local del modelo de la lista de vértice a la
que pertenecen los datos de vértice.
6. El medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado según una de las
reivindicaciones 1ª a 3ª, en el que el ID de vértice en dicha
memoria tampón de vértice común tiene un número de entrada del
vértice de cada modelo y el valor de desplazamiento correspondiente
al número de vértices de cada modelo.
7. El medio de grabación legible por ordenador
que graba datos de modelo de conformado integrado según una de las
reivindicaciones 1ª a 3ª, en el que cada una de dichas listas de
polígono tiene una orden o comando de dibujar que instruye dibujar
dicho polígono del modelo, o una orden o comando de no dibujar que
instruye no dibujar el polígono del modelo, al que ésta lista de
polígonos pertenece.
8. Un método de tratamiento de imágenes para
convertir datos de modelo original en datos de modelo de conformado
integrado, para modelar el movimiento articulado de un objeto, que
tiene una pluralidad de modelos (M1,..., M5) enlazados por una
estructura jerárquica en la que al menos un primer modelo tiene una
pluralidad de vértices (V101,..., V113, V501,..., V506) que
constituyen polígonos, y al menos la posición de un primer vértice
es influenciada por posiciones de dos o más de la pluralidad de
modelos y valores de peso de estos dos o más modelos, en el que
dichos datos de modelo original tienen una pluralidad de datos de
modelo enlazados por dicha estructura jerárquica, cada una de dicha
pluralidad de datos de modelo comprende una lista (107) de vértice
original que tiene datos de vértice de estos datos de modelo, una
lista (108) de peso que tiene datos de vértices en vértices en los
que estos datos de modelo influyen, y una lista (109) de polígonos
original en la que el ID de vértice de dicha lista de vértice son
datos de atributo, y dicho método de tratamiento de imágenes
comprende las operaciones de: generar datos de formato de una
memoria tampón de vértice común para almacenar datos en la
pluralidad de vértices en dicha pluralidad de modelos para cada
modelo en la estructura jerárquica; generar una lista (117) de
vértices que es creada para cada modelo que influye en dichos
vértices, y tiene datos de vértice especificados por un ID de
vértice en dicha memoria tampón de vértice común; y generar una
lista (116) de polígonos que es creada para cada modelo que tiene
dichos polígonos en la que dicho ID de vértice son datos de
atributo, en el que los datos de vértice en cada una de dichas
listas (117) de vértice comprenden al menos los datos de posición de
los vértices, valores de paso a partir del modelo al que pertenece
dicha lista de vértice, e ID de vértice en dicha memoria tampón de
vértice común correspondiente a estos vértices; caracterizado
porque dicha operación de generar una lista de vértice para cada
modelo que influye en dichos vértices incluye generar datos de
vértice, para dicho primer vértice, para cada uno de dichos dos o
más de dicha pluralidad de modelos que influye en dicho primer
vértice; y distribuir los datos de vértice generados a la lista
(117) de vértice respectiva de dichos dos o más modelos como datos
de vértice distribuidos.
9. El método de tratamiento de imágenes para
convertir datos de modelo según la reivindicación 8ª, en el que
dicha operación de generar cada una de dichas listas de vértice
incluye, para cada una de dichas listas de vértice que incluyen
datos de vértices distribuidos, dividir los datos de vértice en
datos para vértices de peso inicial, para los que una operación de
vértice es ejecutada en primer lugar cuando el trazado es ejecutado
de acuerdo con dicha estructura jerárquica de los modelos, datos
para vértices de peso intermedio, para los que dicha operación de
vértice no es ejecutada la primera ni la última, y datos para
vértices de peso final, para los que la operación de vértice es
ejecutada la última, en dicha lista de vértice.
10. El método de tratamiento de imágenes para
convertir datos de modelo según la reivindicación 8ª o 9ª, en el que
dicho ID de vértice tiene un número de entrada del vértice en cada
modelo, y un valor de desplazamiento correspondiente al número de
vértices de cada modelo.
11. El método de tratamiento de imágenes para
convertir datos de modelo según la reivindicación 8ª a 10ª, que
comprende además una operación de generación de órdenes de dibujar
en la que: una operación de vértice ficticia es ejecutada para los
datos de vértice en la lista de vértice de cada modelo de acuerdo
con la secuencia de trazado siguiente a la estructura jerárquica de
los modelos; cuando dicha operación de vértice ficticia para la
lista de vértice de un modelo termina, es generada una orden de no
dibujar, en la lista de polígono de este modelo si el cálculo de
peso para los vértices de este modelo no ha terminado; y una orden
de dibujar es generada en la lista de polígonos de este modelo si el
cálculo de peso para los vértices del modelo de no dibujar ha
terminado.
12. El método de tratamiento de imágenes para
convertir datos de modelo según la reivindicación 8ª, que comprende
además una operación de generación de lista de vértice de peso, en
la que dichos datos de vértice distribuidos de dicho primer vértice,
que es influenciado por los dos o más de la pluralidad de modelos,
son convertidos a un vértice de peso que es influenciado sólo por un
modelo que tiene el mayor grado de influencia entre los dos o más
modelos, y los datos en dicho vértice de un peso convertido son
distribuidos a dicha lista de vértice de este modelo.
13. Un método de tratamiento de imágenes para
dibujar un modelo de conformado integrado, para modelar el
movimiento articulado de un objeto, que tiene una pluralidad de
modelos (M1,..., M5) enlazados por una estructura jerárquica, en el
que al menos un primer modelo tiene una pluralidad de vértices
(V101,..., V113, V501,..., V506) que constituyen polígonos y al
menos la posición de un primer vértice está influenciada por
posiciones de dos o más de la pluralidad de modelos y valores de
peso de estos dos o más modelos, en el que los datos de dicho modelo
de conformado integrado comprenden: datos de formato de una memoria
tampón de vértice común que almacena datos en la pluralidad de
vértices en dicha pluralidad de modelos para cada modelo en la
estructura jerárquica; una lista (117) de vértice que es creada para
cada modelo que influye en dichos vértices y tiene datos de vértice
especificados por un ID de vértice en dicha memoria tampón de
vértice común; y una lista (116) de polígonos que es creada para
cada modelo que tiene dichos polígonos e incluye datos de polígono
en los que el ID de vértice son datos de atributo, en el que los
datos de vértice en cada lista (117) de vértice tienen al menos
datos de posición de un vértice, un valor de peso procedente del
modelo al que pertenece dicha lista de vértice, y el ID de vértice
en dicha memoria tampón de vértice común correspondiente al vértice;
comprendiendo dicho método de tratamiento de imágenes las
operaciones de: generar la memoria tampón de vértice común
correspondiente a dicha pluralidad de modelos en la secuencia de
trazado de dicha estructura jerárquica de acuerdo con los datos de
formato; generar datos de matriz de modelo en los que las posiciones
de los modelos son ajustadas basadas en datos (S3) de progreso del
juego; generar datos de vértice común ejecutando el cálculo de la
matriz para generar datos de vértice después del movimiento de
acuerdo con dichos datos (S4) de matriz del modelo y el cálculo de
peso para integrar valores de peso procedentes de dichos modelos a
dichos datos de vértice después del movimiento (S5), para los datos
de vértice de la lista de vértice de cada uno de dichos modelos, y
almacenar o sumar estos datos de vértice calculados a áreas de
acuerdo con dichos ID de vértice en dicha memoria tampón de vértice
común; y renderizar dichos polígonos de acuerdo con los datos de
vértice común; caracterizado porque los datos de vértice de
dicho primer vértice influenciados por posiciones de dichos dos o
más de dicha pluralidad de modelos son distribuidos a la lista (117)
de vértices de dichos dos o más modelos como datos de vértice
distribuidos.
14. El método de tratamiento de imágenes según la
reivindicación 13ª, en el que, en dicha operación de generar los
datos de vértice común, dichos datos de posición son multiplicados
por dichos datos de matriz de modelo para dicho cálculo de matriz, y
los datos de posición multiplicados son multiplicados por dicho
valor de peso para dicho cálculo de peso.
15. El método de tratamiento de imágenes según la
reivindicación 14ª, en el que cada una de dichas listas de vértice
es dividida en vértices de peso inicial, para los que un operación
de vértice es ejecutada en primer lugar cuando se ha ejecutado el
trazado de acuerdo con dicha estructura jerárquica de dichos
modelos, vértices de peso intermedio, para los que dicha operación
de vértice no es ejecutada la primera ni la última, y vértices de
peso final, para los que dicha operación de vértice es ejecutada la
última, y en dicha operación de generar los datos de vértice común,
dichos datos de vértice calculados para dichos vértices de peso
inicial son almacenados en áreas correspondientes a dichos ID de
vértice en dicha memoria tampón de vértice común, dichos datos de
vértice calculados para los vértices de peso intermedio y los
vértices de peso final son añadidos a los datos de vértice en áreas
correspondientes a dichos ID de vértice en dicha memoria tampón de
vértice común.
16. El método de tratamiento de imágenes según la
reivindicación 13ª o 14ª, en el que cada una de dichas listas de
polígonos tiene una orden o comando de dibujar que instruye para
dibujar los polígonos del modelo, que pertenecen a dicha lista de
polígonos o una orden de no dibujar que instruye no dibujar los
polígonos del modelo, que pertenecen a esta lista de polígonos, y
dicha operación de renderizado se refiere a la lista de polígonos
del modelo cada vez que dicha operación de generación de datos de
vértice común de cada modelo termina, y ejecuta dicho renderizado de
acuerdo con dicha orden de dibujar.
17. El método de tratamiento de imágenes según la
reivindicación 16ª, que comprende además una operación de liberar el
área de dicha memoria tampón de vértice común correspondiente al
modelo para el que es ejecutado dicho renderizado.
18. El método de tratamiento de imágenes según la
reivindicación 13ª en el que dichos datos de modelo tienen también
una lista de vértice de un peso en la que el primer vértice que es
influenciado por dichos dos o más de la pluralidad de modelos es
convertido a un vértice de un peso que es influenciado solamente por
el modelo con la mayor influencia entre dichos dos o más modelos, y
datos de dicho vértice de un peso son distribuidos en dicha lista de
vértice de este modelo, y dicho método de tratamiento de imágenes
genera dichos datos de vértice común para un modelo predeterminado
de acuerdo con dicha lista de vértice de un peso.
19. Un medio de grabación que graba un programa
de tratamiento de imágenes para dibujar un modelo de conformado
integrado, para modelar la articulación de un objeto, que tiene una
pluralidad de modelos (M1,..., M5) enlazados por una estructura
jerárquica, en la que al menos un primer modelo tiene una pluralidad
de vértices (V101,..., V113, V501,..., V506) que constituyen
polígonos, y al menos la posición de un primer vértice es
influenciada por posiciones de dos o más de la pluralidad de los
modelos y valores de peso de estos dos o más modelos, en el que
dicho medio de grabación graba datos en dicho modelo de conformado
integrado, y los datos en el modelo de conformado integrado
comprenden: datos de formato de una memoria tampón de vértice común
que almacena datos en dicha pluralidad de vértices en dicha
pluralidad de modelos para cada modelo en la estructura jerárquica;
una lista (117) de vértice que es creada para cada modelo que
influye en dichos vértices y tiene datos de vértice especificados
por un ID de vértice en dicha memoria tampón de vértice común; y una
lista (116) de polígonos que es creada para cada modelo que tiene
tales polígonos e incluye datos de polígono en los que dicho ID de
vértice son datos de atributo, en el que los datos de vértice en
cada lista (117) de vértice tienen al menos datos de posición de un
vértice, un valor de peso a partir del modelo al que dicha lista de
vértice pertenece, y el ID de vértice en dicha memoria tampón de
vértice común correspondiente a este vértice; y en el que dicho
programa de tratamiento de imágenes comprende un código de programa
que hace que un ordenador ejecute procedimientos de: generar las
memorias tampón de vértice común correspondientes a dicha pluralidad
de modelos en la secuencia de trazado de dicha estructura jerárquica
de acuerdo con dichos datos de formato; generar datos de matriz de
modelo en los que las relaciones posicionales entre los modelos son
ajustadas basadas en datos (53) de progreso del juego; generar datos
de vértice común ejecutando el cálculo de la matriz para generar
datos de vértice después del movimiento de acuerdo con dichos datos
(54) de matriz del modelo y el cálculo de peso para integrar los
valores de peso procedentes de dichos modelos a dichos datos de
vértice después del movimiento (55), para los datos de vértice de la
lista de vértice de cada uno de dichos modelos, y almacenar o sumar
estos datos de vértice calculados a áreas de acuerdo con dichos ID
de vértice en dicha memoria tampón de vértice común; y renderizar
dichos polígonos de acuerdo con dichos datos de vértice común;
caracterizado porque los datos de vértice de dicho primer
vértice influenciados por posiciones de dichos dos o más de dicha
pluralidad de modelos son distribuidos a la lista (117) de vértices
de dichos dos o más modelos como datos de vértice distribuidos.
20. El medio de grabación que graba un programa
de tratamiento de imágenes según la reivindicación 19ª, en el que,
en dicho procedimiento de generar los datos de vértice común, dichos
datos de posición son multiplicados por dicha matriz de modelo para
dicho cálculo de matriz, y dichos datos de posición multiplicados
son multiplicados por dicho valor de peso para dicho cálculo de
peso.
21. El medio de grabación que graba un programa
de tratamiento de imágenes según la reivindicación 20ª, en el que
cada lista de vértice es dividida en vértices de peso inicial, para
los que un operación de vértice es ejecutada en primer lugar cuando
se ha ejecutado el trazado de acuerdo con dicha estructura
jerárquica de dichos modelos, vértices de peso intermedio, para los
que dicha operación de vértice no es ejecutada la primera ni la
última, y vértices de peso final, para los que dicha operación de
vértice es ejecutada la última, y en dicho procedimiento de generar
los datos de vértice común, dichos datos de vértice calculados para
dichos vértices de peso inicial son almacenados en áreas
correspondientes a dichos ID de vértice en dicha memoria tampón de
vértice común y dichos datos de vértice calculados para dichos
vértices de peso intermedio y vértices de peso final son añadidos a
los datos de vértice en las áreas correspondientes a dichos ID de
vértice en dicha memoria tampón de vértice común.
22. El medio de grabación que graba un programa
de tratamiento de imágenes según la reivindicación 19ª o 20ª, en el
que cada una de dichas listas de polígonos tiene una orden o comando
de dibujar que instruye para dibujar dichos polígonos del modelo, al
que pertenece dicha lista de polígonos y dicho procedimiento de
renderizado se refiere a la lista de polígonos del modelo cada vez
que dicha operación de generación de datos de vértice común de cada
modelo termina, y ejecuta dicho renderizado de acuerdo con dicha
orden de dibujar.
23. El medio de grabación para grabar el programa
de tratamiento de imágenes según la reivindicación 22ª, que
comprende además un procedimiento para liberar el área de dicha
memoria tampón de vértice común correspondiente al modelo para el
que es ejecutado dicho renderizado.
24. El medio de grabación que graba el programa
de tratamiento de imágenes según la reivindicación 19ª, en el que
dichos datos de modelo tienen también una lista de vértice de un
peso en la que el primer vértice que es influenciado por dichos dos
o más de la pluralidad de modelos es convertido a un vértice de un
peso que es influenciado solamente por el modelo con la mayor
influencia entre dichos dos o más modelos, y datos de dicho vértice
de un peso convertido son distribuidos en dicha lista de vértice de
este modelo, y dicho método de tratamiento de imágenes comprende un
código para hacer que un ordenador ejecute el procedimiento para
generar genera dichos datos de vértice común para un modelo
predeterminado de acuerdo con dicha lista de vértice de un peso.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04553599A JP4206547B2 (ja) | 1999-02-23 | 1999-02-23 | 画像処理方法、その画像処理装置及びそれに利用する一体整形モデルデータ及び画像処理プログラムを記録した記録媒体 |
| JP11-45535 | 1999-02-23 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2250075T3 true ES2250075T3 (es) | 2006-04-16 |
Family
ID=12722093
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES00301217T Expired - Lifetime ES2250075T3 (es) | 1999-02-23 | 2000-02-16 | Medio de grabacion, metodo y unidad de tratamiento de imagenes con datos de modelo de conformado integrados. |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US6437779B1 (es) |
| EP (1) | EP1031946B1 (es) |
| JP (1) | JP4206547B2 (es) |
| DE (1) | DE60024514T2 (es) |
| ES (1) | ES2250075T3 (es) |
Families Citing this family (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3568861B2 (ja) | 2000-01-27 | 2004-09-22 | 株式会社スクウェア・エニックス | ビデオゲームにおける三次元オブジェクト変形方法及びビデオゲーム装置、並びにビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体 |
| JP3918471B2 (ja) * | 2000-08-03 | 2007-05-23 | 株式会社豊田中央研究所 | 対象物の性能解析をコンピュータによって支援するための方法、プログラム、そのプログラムを記録した記録媒体およびシステム |
| JP3363134B2 (ja) | 2000-09-20 | 2003-01-08 | コナミ株式会社 | 3dモデルの描画データ作成方法、装置及び3dビデオゲーム装置並びに3dモデルの描画データ作成プログラムを記録した可読記録媒体 |
| US7561155B1 (en) * | 2000-10-23 | 2009-07-14 | Evans & Sutherland Computer Corporation | Method for reducing transport delay in an image generator |
| US6704021B1 (en) * | 2000-11-20 | 2004-03-09 | Ati International Srl | Method and apparatus for efficiently processing vertex information in a video graphics system |
| US7677859B2 (en) | 2002-07-22 | 2010-03-16 | Brooks Automation, Inc. | Substrate loading and uploading station with buffer |
| US7233334B1 (en) * | 2004-09-29 | 2007-06-19 | Nvidia Corporation | Storage buffers with reference counters to improve utilization |
| US8139071B1 (en) * | 2006-11-02 | 2012-03-20 | Nvidia Corporation | Buffering unit to support graphics processing operations |
| JP4993304B2 (ja) * | 2008-01-21 | 2012-08-08 | サミー株式会社 | 画像作成装置、画像作成プログラム、及び画像作成支援プログラム |
| JP5004183B2 (ja) * | 2008-01-21 | 2012-08-22 | サミー株式会社 | 画像作成装置、画像作成プログラム、及び画像作成支援プログラム |
| WO2010146828A1 (ja) * | 2009-06-17 | 2010-12-23 | パナソニック株式会社 | 画像生成装置、画像生成方法及び集積回路 |
| US8976188B1 (en) | 2012-04-20 | 2015-03-10 | Google Inc. | Optimized data communication system and method for an image rendering system |
| WO2014119524A1 (ja) | 2013-02-01 | 2014-08-07 | 株式会社セルシス | 三次元オブジェクトの多視点描画装置、方法、及びプログラム |
| JP5792211B2 (ja) * | 2013-02-01 | 2015-10-07 | 株式会社セルシス | 三次元オブジェクトの誇張描画装置、方法、及びプログラム |
| JP5792210B2 (ja) * | 2013-02-01 | 2015-10-07 | 株式会社セルシス | 三次元オブジェクトの多視点描画装置、方法、及びプログラム |
| US9721363B2 (en) | 2014-05-19 | 2017-08-01 | Google Inc. | Encoding polygon data for fast retrieval and rendering |
| EP4121948A1 (en) * | 2020-03-20 | 2023-01-25 | 3Shape A/S | Storage, rendering, and display of information of meshes through tessellation with serialized values |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5659625A (en) * | 1992-06-04 | 1997-08-19 | Marquardt; Stephen R. | Method and apparatus for analyzing facial configurations and components |
| JPH10188028A (ja) * | 1996-10-31 | 1998-07-21 | Konami Co Ltd | スケルトンによる動画像生成装置、該動画像を生成する方法、並びに該動画像を生成するプログラムを記憶した媒体 |
| US6400368B1 (en) * | 1997-03-20 | 2002-06-04 | Avid Technology, Inc. | System and method for constructing and using generalized skeletons for animation models |
| US6147692A (en) * | 1997-06-25 | 2000-11-14 | Haptek, Inc. | Method and apparatus for controlling transformation of two and three-dimensional images |
-
1999
- 1999-02-23 JP JP04553599A patent/JP4206547B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-16 DE DE60024514T patent/DE60024514T2/de not_active Expired - Fee Related
- 2000-02-16 ES ES00301217T patent/ES2250075T3/es not_active Expired - Lifetime
- 2000-02-16 EP EP00301217A patent/EP1031946B1/en not_active Expired - Lifetime
- 2000-02-18 US US09/506,812 patent/US6437779B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US6437779B1 (en) | 2002-08-20 |
| JP2000242811A (ja) | 2000-09-08 |
| EP1031946A3 (en) | 2003-04-23 |
| DE60024514D1 (de) | 2006-01-12 |
| EP1031946B1 (en) | 2005-12-07 |
| JP4206547B2 (ja) | 2009-01-14 |
| DE60024514T2 (de) | 2006-07-27 |
| EP1031946A2 (en) | 2000-08-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2250075T3 (es) | Medio de grabacion, metodo y unidad de tratamiento de imagenes con datos de modelo de conformado integrados. | |
| JP3294149B2 (ja) | 立体テクスチャマッピング処理装置及びそれを用いた3次元画像生成装置 | |
| EP0311081B1 (en) | Displaying method and apparatus for three-dimensional computer graphics | |
| US8390628B2 (en) | Facial animation using motion capture data | |
| US6937240B2 (en) | Methods and apparatus for transforming three-dimensional objects in video games | |
| US8139068B2 (en) | Three-dimensional animation of soft tissue of characters using controls associated with a surface mesh | |
| CN103679783B (zh) | 基于几何变形的三维动画角色模型皮肤变形方法 | |
| Jin et al. | General constrained deformations based on generalized metaballs | |
| JPH01265374A (ja) | 電子画像処理装置 | |
| CN114882153A (zh) | 一种动画生成的方法及装置 | |
| US12106436B2 (en) | Transforming three-dimensional model by using correlation to template model with template skeleton | |
| KR20040075672A (ko) | 계층적 가상 성형시뮬레이션 방법 | |
| JPH0770891A (ja) | ニットデザインシステム | |
| JP6062589B1 (ja) | プログラム、情報処理装置、影響度導出方法、画像生成方法及び記録媒体 | |
| JP3002972B2 (ja) | 3次元画像処理装置 | |
| Cunningham et al. | Lessons from scene graphs: using scene graphs to teach hierarchical modeling | |
| Rechowicz et al. | Simulation of the critical steps of the Nuss procedure | |
| JP2002056405A (ja) | テクスチャマッピング処理装置 | |
| JPH06215150A (ja) | 三次元画像表示装置 | |
| US20260013788A1 (en) | Hand Sensation Mapping | |
| JP2002092644A (ja) | 3dモデルの描画データ作成方法、装置及び3dビデオゲーム装置並びに3dモデルの描画データ作成プログラムを記録した可読記録媒体 | |
| CN117853320B (zh) | 一种基于多媒体操控的图像映射方法、系统及存储介质 | |
| JP7281782B2 (ja) | 映像投影システム | |
| Toothman | Expressive Skinning Methods for 3D Character Animation | |
| CN120147663A (zh) | 虚拟角色模型的匹配方法、装置、介质、设备及程序产品 |