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
Application number
ES00301217T
Other languages
English (en)
Inventor
Tomoaki Saito
Takashi Ando
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sega Corp
Original Assignee
Sega Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sega Corp filed Critical Sega Corp
Application granted granted Critical
Publication of ES2250075T3 publication Critical patent/ES2250075T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-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.
Antecedentes del invento 1. Campo del invento
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.
2. Descripción de la técnica relacionada
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.
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.
Resumen del invento
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.
Breve descripción de los dibujos
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.
Descripción de la realización preferida
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.
ES00301217T 1999-02-23 2000-02-16 Medio de grabacion, metodo y unidad de tratamiento de imagenes con datos de modelo de conformado integrados. Expired - Lifetime ES2250075T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) 虚拟角色模型的匹配方法、装置、介质、设备及程序产品