ES2255167T3 - Sistema grafico por ordenador. - Google Patents
Sistema grafico por ordenador.Info
- Publication number
- ES2255167T3 ES2255167T3 ES98930966T ES98930966T ES2255167T3 ES 2255167 T3 ES2255167 T3 ES 2255167T3 ES 98930966 T ES98930966 T ES 98930966T ES 98930966 T ES98930966 T ES 98930966T ES 2255167 T3 ES2255167 T3 ES 2255167T3
- Authority
- ES
- Spain
- Prior art keywords
- shader
- node
- scene
- type
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
Abstract
Se describe un sistema gráfico informatizado en el cual un nuevo tipo de entidad, referenciado como "fenómeno", puede ser creado, instanciado y utilizado para formar una imagen de una escena. Un fenómeno es un DAG degradador encapsulado que comprende uno o más nodos, cada uno de los cuales comprende un degradador o un conjunto encapsulados de los DAG que se interconectan de forma que puedan cooperar, que se instancian y se unen a entidades de la escena que se crean durante el procedimiento de definición de la escena para definir diversos tipos de características de la escena. Los fenómenos seleccionados para su utilización por un operador en referencia a una escena pueden estar predefinidos, o pueden construirse a partir de nodos de degradadores de base, por el operador utilizando un creador de fenómenos. El editor de fenómenos permite que el operador vea los efectos producidos por las diferentes configuraciones de los valores de los parámetros que se seleccionan.
Description
Sistema gráfico por ordenador.
La invención se refiere, en general, al campo de
los gráficos por ordenador, diseño asistido por ordenador y
similares y, más particularmente, a sistemas y métodos para generar
sistemas de shader y usar los sistemas de shader así generados para
renderizar una imagen o una escena. La invención, en particular,
proporciona un nuevo tipo de componente útil en un sistema de
gráficos por ordenador, identificado en adelante como un
"phenomenon", el cual comprende un sistema que incluye un DAG
("gráfico acíclico dirigido") de shaders empaquetado y
encapsulado o conjunto de DAGs de shaders cooperadores, cada uno de
los cuales puede incluir uno o más shaders, y que es generado y
encapsulado para ayudar a definir, al menos, una porción de escena,
de una manera que asegurará que los shaders pueden cooperar
correctamente durante la renderización.
En gráficos por ordenador, diseño geométrico
asistido por ordenador y similares, un artista, dibujante o similar
(al que de forma general se hace referencia en adelante como un
"operador") trata de generar una representación tridimensional
de objetos en una escena, como la mantenida por un ordenador, y más
tarde renderizar las correspondientes imágenes bidimensionales de
los objetos de la escena desde una o más orientaciones. Al
principio, fase de generación de la representación,
convencionalmente, los sistemas de gráficos por ordenador generan
una representación tridimensional a partir de, por ejemplo, varios
dibujos lineales bidimensionales que comprenden los contornos y/o
secciones transversales de los objetos de la escena y, aplicando
varias operaciones a tales líneas que darán como resultado
superficies bidimensionales en un espacio tridimensional y la
modificación subsiguiente de los parámetros y puntos de control de
tales superficies para corregir o, de otro modo, modificar la forma
de la representación resultante del objeto. Durante este proceso, el
operador también define diferentes propiedades de las superficies de
los objetos, la estructura y características de las fuentes de luz
que iluminan la escena y la estructura y características de una o
más cámaras simuladas que generan las imágenes. Después de que la
estructura y las características de la escena, fuente(s) de
luz y cámara(s) han sido definidas, en una segunda fase, un
operador habilita al ordenador para renderizar una imagen de la
escena desde una dirección de visión específica.
Los objetos de la escena, fuente(s) de luz
y cámara(s) son definidos, en la primera fase de definición
de la escena, mediante las correspondientes representaciones
matemáticas multidimensionales que incluyen, al menos, las tres
dimensiones espaciales y, posiblemente, una dimensión de tiempo. Las
representaciones matemáticas están almacenadas típicamente en una
estructura de datos en forma de árbol. Las propiedades de las
superficies de los objetos, a su vez, son definidas mediante
"árboles de shaders", cada uno de los cuales incluye uno o más
shaders los cuales, durante la segunda fase de renderización de la
escena, habilitan al ordenador para renderizar las correspondientes
superficies, proporcionando esencialmente valores de color
representativos de los colores de las respectivas superficies. Los
shaders de un árbol de shaders son generados por un operador o son
proporcionados a priori por un sistema de gráficos por
ordenador, en un lenguaje de alto nivel tal como C o C++, y juntos
habilitan al ordenador para renderizar una imagen de una superficie
correspondiente en la segunda fase de renderización de la
escena.
Los árboles de shaders fueron presentados por R.
Cook en el artículo "Árbol de shaders", ACM Computer Graphics,
vol. 18, no. 3, julio 1.984, y redefinidos en el lenguaje de shading
RenderMan, presentado en "A Language for Shading and Lighting
Calculations" por P. Hanrahan u otros, ACM Computer Graphics,
vol. 24, no. 4, abril 1.991. Otro lenguaje y sistema de shading está
descrito por B. Corrie y otros en el Computer Science Technical
Report TR-CS-93-02
del Computer Sciences Laboratory of The Australian National
University, titulado "Data Shader Language and Interface
Specification", junio 1.993.
Varios problemas surgen de la generación y uso de
shaders y árboles de shaders según se proveen actualmente en las
herramientas para gráficos por ordenador. Primero, los shaders
generalmente no pueden cooperar unos con otros al menos que estén
programados para hacerlo. Típicamente, los valores de entrada son
valores constantes, lo que limita la flexibilidad de los shaders y
la capacidad para renderizar características de una manera
interesante y viva. Además, generalmente es difícil establecer
sistemas de shaders cooperadores que puedan obtener sus valores de
entrada desde una fuente común.
La presente invención es como se reivindica en
las reivindicaciones.
La invención proporciona un sistema de gráficos
por ordenador nuevo y mejorado y un método que provee una
cooperación aumentada entre shaders facilitando la generación de
DAGs de shaders empaquetados y encapsulados, cada uno de los cuales
puede incluir uno o más shaders, generados de una manera que asegura
que los shaders de los DAGs de shaders pueden cooperar correctamente
durante la renderización.
En un breve resumen, se proporciona un sistema de
gráficos por ordenador en el cual un nuevo tipo de entidad, a la que
se hará referencia como "phenomenon", puede crearse,
instanciarse y usarse para renderizar una imagen de una escena. Un
phenomenon es un DAG de shaders encapsulado que comprende uno o más
nodos que, a su vez, comprenden cada uno un shader, o un conjunto
encapsulado de DAGs de ese tipo que están interconectados de forma
que cooperen, los cuales son instanciados y asignados a entidades de
la escena que son creadas durante el proceso de definición de la
escena para definir diversos tipos de características de una escena,
incluyendo características de color y texturas de las superficies
de objetos de la escena, características de volúmenes y geometrías
de la escena, características de fuentes de luz que iluminan la
escena, características de cámaras simuladas que serán simuladas
durante la renderización y otras numerosas características que son
útiles al renderizar.
Los phenomena seleccionados para su uso por un
operador en relación con una escena pueden estar predefinidos o
pueden ser construidos a partir de nodos de shader base por un
operador que usa un creador de phenomena. El creador de phenomena
asegura que los phenomena son construidos de forma que los shaders
del DAG o DAGs cooperadores pueden cooperar correctamente durante la
renderización de una imagen de la escena.
Antes de ser aplicado a una escena, un phenomenon
es instanciado proporcionando valores, o funciones que son usadas
para definir los valores, para cada uno de los parámetros del
phenomenon que usa un editor de phenomena.
Después de que una representación de una escena
ha sido definida y los phenomena aplicados, un generador de imágenes
de escena puede generar una imagen de la escena. En esa operación,
el generador de la imagen de la escena opera en una serie de fases
que incluyen una fase de preprocesado, una fase de renderización y
una fase opcional de postprocesado. Durante la fase de preprocesado,
el generador de la imagen de la escena puede ejecutar operaciones de
preprocesado tales como mapeado de sombras y fotones, resolución de
herencia múltiple y similares. El generador de la imagen de la
escena puede ejecutar operaciones de preprocesado si, por ejemplo,
un phenomenon aplicado a la escena incluye un shader de geometría
para generar la geometría definida por él para la escena. Durante la
fase de renderización, el generador de la imagen de la escena
renderiza la imagen. Durante la fase de postprocesado, el generador
de la imagen de la escena puede ejecutar operaciones de
postprocesado si, por ejemplo, un phenomenon aplicado a la escena
incluye un shader que define operaciones de postprocesado, tales
como cálculos de profundidad de campo o de desenfoque de movimiento
que son dependientes de la información de velocidad y profundidad
almacenada en relación con cada valor de pixel de la imagen
renderizada.
Esta invención está indicada con minuciosidad en
las reivindicaciones anexas. Lo anterior y más ventajas de esta
invención pueden ser mejor entendidas refiriéndose a la descripción
siguiente tomada en conjunto con los dibujos que acompañan, en los
cuales:
la Figura 1 representa un sistema de gráficos por
ordenador que proporciona una cooperación aumentada entre shaders
facilitando la generación de DAGs de shaders empaquetados y
encapsulados, cada uno de los cuales puede incluir uno o más
shaders, los cuales DAGs de shaders son generados de una manera que
aseguran que los shaders del DAG de shaders pueden cooperar
correctamente durante la renderización, construido de acuerdo con la
invención;
la Figura 2 es un diagrama funcional de bloques
del sistema de gráficos por ordenador representado en la Figura
1;
la Figura 3 representa una interfaz gráfica de
usuario para una realización del creador de phenomena usado en el
sistema de gráficos por ordenador cuyo diagrama funcional de bloques
se representa en la Figura 2;
la Figura 4 representa gráficamente un phenomenon
ilustrativo generado usando el creador de phenomena representado en
las Figuras 2 y 3;
la Figura 5 representa una interfaz gráfica de
usuario para una realización del editor de phenomena usado en el
sistema de gráficos por ordenador cuyo diagrama funcional de bloques
se representa en la Figura 2;
las Figuras 6A y 6B representan detalles de la
interfaz gráfica de usuario representada en la Figura 5; y
la Figura 7 es un diagrama de flujo que
representa las operaciones ejecutadas por una porción de generación
de la imagen de la escena del sistema de gráficos por ordenador
representado en la Figura 2 para generar una imagen de una
escena.
La Figura 1 adjunta aquí representa elementos que
comprenden un sistema 10 de gráficos por ordenador construido de
acuerdo con la invención. El sistema 10 de gráficos por ordenador
proporciona una cooperación aumentada entre shaders facilitando la
generación de nuevos componentes de gráficos por ordenador, a los
que se hará referencia aquí como "phenomenon" (en singular) o
"phenomena" (en plural), que son usados para definir
características de una escena para su uso en su renderización. Un
phenomenon es un sistema empaquetado y encapsulado que comprende uno
o más shaders, los cuales están organizados e interconectados en
forma de uno o más gráficos acíclicos dirigidos ("DAGs"), con
cada DAG que incluye uno o más shaders. Los phenomena generados por
el sistema 10 de gráficos por ordenador son generados de tal manera
que se asegura que el shader o los shaders de cada DAG de shaders
pueden cooperar correctamente durante la renderización, para
facilitar la renderización de efectos visuales realistas o
complejos. Además, para los phenomena que comprenden múltiples DAGs
de shaders que cooperan, el sistema 10 de gráficos por ordenador
genera los phenomena de tal forma que los shaders de todos DAGs de
shaders pueden cooperar correctamente durante la renderización para
facilitar la renderización de efectos visuales progresivamente
realistas o complejos.
En referencia a la Figura 1, el sistema 10 de
gráficos por ordenador de la realización incluye un ordenador que, a
su vez, incluye un módulo procesador 11 y elementos de interfaz de
operador que comprenden componentes de entrada de datos del operador
tales como un teclado 12A y/o un ratón 12B (generalmente
identificados como elemento(s) de entrada de datos del
operador 12) y un elemento de salida de datos para el operador tal
como un dispositivo de visualización de vídeo 13. El sistema 10 de
ordenador ilustrativo es de arquitectura de ordenador convencional
de programa almacenado. El módulo procesador 11 incluye, por
ejemplo, procesador, memoria y dispositivos de almacenamiento
masivo tales como elementos de almacenamiento en disco y/o cinta (no
mostrados por separado) que ejecutan las operaciones de procesado y
almacenamiento en relación con los datos digitales suministrado a
los mismos. El (los) elemento(s) 12 de entrada de datos del
operador está(n) previsto(s) para permitir al operador
introducir información para procesar. El dispositivo 13 de
visualización de vídeo está previsto para mostrar visualmente al
operador la información de salida generada por el módulo procesador
11 sobre una pantalla 14, incluyendo los datos que el operador puede
introducir para procesar, información que el operador puede
introducir para controlar el procesado, así como información
generada durante el procesado. El módulo procesador 11 genera
información para mostrar visualmente mediante el dispositivo de
visualización de vídeo 13 usando la denominada "interfaz gráfica
de usuario" ("GUI"), en la cual se visualiza información
para diferentes programas de aplicación usando varias
"ventanas". Aunque el sistema 10 de ordenador se muestra de
forma que comprende determinados componentes, tales como el teclado
12A y el ratón 12B para recibir la información de entrada de un
operador y un dispositivo de visualización de vídeo 13 para mostrar
visualmente información de salida al operador, se apreciará que el
sistema 10 de ordenador puede incluir una variedad de componentes
añadidos a o sustitutivos de los representados en la Figura 1.
Además, el módulo procesador 11 puede incluir uno
o más puertos de red, generalmente identificados por la referencia
numérica 14, los cuales están conectados a enlaces de comunicaciones
que conectan el sistema 10 de ordenador a una red de ordenadores.
Los puertos de red habilitan al sistema 10 de ordenador para
transmitir información a, y recibir información desde, otros
sistemas de ordenador y otros dispositivos que estén en la red. En
una red típica organizada de acuerdo con, por ejemplo, el paradigma
cliente-servidor, ciertos sistemas de ordenador de
la red están designados como servidores, los cuales almacenan datos
y programas (en general, "información") para su procesado por
los otros, sistemas de ordenador clientes, habilitando con ello a
los sistemas de ordenador cliente para compartir de forma
conveniente la información. Un sistema de ordenador cliente que
necesita acceso a la información mantenida por un servidor concreto
habilitará al servidor para descargarle la información a través de
la red. Después de procesar los datos, el sistema de ordenador
cliente puede también devolver los datos procesados al servidor
para su almacenamiento. Además de sistemas de ordenador (que
incluyen los servidores y clientes descritos más arriba), una red
puede incluir también, por ejemplo, impresoras y dispositivos de
fax, dispositivos de almacenamiento y distribución de audio o vídeo
digitales y otros similares los cuales pueden ser compartidos entre
los diferentes sistemas de ordenador conectados a la red. Los
enlaces de comunicaciones que interconectan los sistemas de
ordenador de la red pueden, como es convencional, comprender
cualquier medio de transporte de información conveniente, incluyendo
cables, fibras ópticas u otros medios para transportar señales
entre los sistemas de ordenador. Los sistemas de ordenador
transfieren información a través de la red por medio de mensajes
transferidos a través de los enlaces de comunicaciones incluyendo,
en cada mensaje, información y un identificador que identifica el
dispositivo que debe recibir el
mensaje.
mensaje.
Como se reseñó más arriba, el sistema 10 de
gráficos por ordenador proporciona una cooperación aumentada entre
shaders facilitando la generación de phenomena que comprenden DAGs
de shaders empaquetados y encapsulados o DAGs de shaders que
cooperan, con cada uno de los DAG de shaders que comprende al menos
un shader, el cual define características de una escena
tridimensional. Pueden usarse phenomena para definir diversos tipos
de características de una escena, incluyendo características de
color y textura de las superficies de los objetos de la escena,
características de volúmenes y geometrías de la escena,
características de fuentes de luz que iluminan la escena,
características de cámaras simuladas u otros dispositivos de
grabación de imágenes que serán simulados durante la renderización y
otras numerosas características que son útiles al renderizar como
resultará evidente a partir de la descripción siguiente. Los
phenomena son construidos de forma que aseguran que los shaders del
DAG o los DAGs que cooperan pueden cooperar correctamente durante la
renderización de una imagen de la escena.
La Figura 2 representa un diagrama funcional de
bloques del sistema 10 de gráficos por ordenador usado en una
realización de la invención. Como se representa en la Figura 2, el
sistema 10 de gráficos por ordenador incluye dos porciones
generales, que incluyen una porción 20 de generación de la
estructura de la escena y una porción 21 de generación de la imagen
de la escena. La porción 20 de generación de la estructura de la
escena es usada por un artista, dibujante o similar (en general, un
"operador") durante la fase de generación de entidades de
escena para generar una representación de varios elementos que serán
usados por la porción 21 de generación de la imagen de la escena al
renderizar una imagen de la escena, lo cual puede incluir, por
ejemplo, los objetos que están en la escena y las características de
sus superficies, la estructura y características de la fuente o las
fuentes de luz que iluminan la escena y la estructura y
características de un dispositivo determinado, tal como una cámara,
que será simulado al generar la imagen cuando la imagen es
renderizada. La representación generada por la porción 20 de
generación de la estructura de la escena está en la forma de una
representación matemática que es almacenada en la base de datos 22
de objetos de la escena. La representación matemática es evaluada
por la porción 21 de renderización de imagen para su visualización
por el operador. La porción 20 de generación de la estructura de la
escena y la porción 21 de generación de la imagen de la escena
pueden residir en o formar parte del mismo ordenador, en cuyo caso
la base de datos 22 de objetos de la escena puede también residir en
el mismo ordenador o, alternativamente, en un servidor para el cual
el ordenador 20 es un cliente. Alternativamente, las porciones 20 y
21 pueden residir en o formar parte de dos ordenadores diferentes,
en cuyo caso la base de datos 22 de objetos de la escena puede
residir bien en cualquiera de los ordenadores o en el servidor de
ambos.
Más particularmente, la porción 20 de generación
de la estructura de la escena es usada por el operador para generar
una representación matemática que define, comprendiendo las
estructuras geométricas de los objetos de la escena, las ubicaciones
y características geométricas de las fuentes de luz que iluminan la
escena, y las ubicaciones, características geométricas y ópticas de
las cámaras que van a ser simuladas al generar las imágenes que van
a ser renderizadas. La representación matemática, preferiblemente,
define las tres dimensiones espaciales y así identifica la ubicación
de los objetos en la escena y las características de los objetos.
Los objetos pueden ser definidos atendiendo a sus características en
una, dos o tres dimensiones, que incluyen líneas rectas o curvas
insertadas en un espacio tridimensional, superficies bidimensionales
insertadas en un espacio tridimensional, una o más superficies
tridimensionales delimitadas y/o cerradas o cualquier combinación de
ellas. Además, las representaciones matemáticas pueden definir
también una dimensión temporal, la cual puede ser particularmente
útil en relación con la animación por ordenador, en la cual se
considera que los objetos y sus respectivas características se
mueven en función del tiempo.
Además de la representación matemática de la
estructura geométrica del objeto u objetos de la escena a ser
renderizada, la representación matemática define, además, las una o
más fuentes de luz que iluminan la escena y una cámara. La
representación matemática de una fuente de luz define, en
particular, la ubicación y/o la dirección de la fuente de luz con
relación a la escena y las características estructurales de la
fuente de luz, que incluyen si la fuente de luz es una fuente
puntual, una línea recta o curva, una superficie plana o curvada o
similar. La representación matemática de la cámara define, en
particular, los parámetros convencionales de una cámara, que
incluyen la objetivo o objetivo, la longitud focal, la orientación
del plano de la imagen, etc.
La porción 20 de generación de la estructura de
la escena también facilita la generación de phenomena, lo que será
descrito con detalle más abajo, y la asociación de phenomena a los
elementos de escena correspondientes. Los phenomena definen, en
general, otra información que se requiere para completar la
definición de la escena y que será usada en la renderización. Esta
información incluye, pero no está limitada a, características de los
colores, texturas, etc. de las superficies de las entidades
geométricas definidas por la porción 20 de generación de la
estructura de la escena. Un phenomenon puede incluir
representaciones matemáticas u otros objetos que, cuando son
evaluados durante la operación de renderización, permitirán al
ordenador generar la imagen renderizada para mostrar la
visualización de sus respectivas superficies de la manera deseada.
La porción 20 de generación de la estructura de la escena, bajo
control del operador, asocia efectivamente los phenomena a las
representaciones matemáticas para los respectivos elementos (esto
es, objetos, superficies, volúmenes y similares) con los cuales
deben ser usados aquellos, "aplicando" efectivamente los
phenomena a los elementos respectivos.
Después de que las representaciones matemáticas
han sido generadas por la porción 20 de generación de la estructura
de la escena y almacenadas en la base de datos 22 de representación
de escena, la porción 21 de generación de la imagen de la escena es
usada por un operador durante una fase de renderización para generar
una imagen de la escena en, por ejemplo, la unidad 13 de
visualización en vídeo (Figura 1).
La porción 20 de generación de la estructura de
la escena incluye varios elementos, incluyendo un generador 23 de
representación de entidad geométrica, un creador 24 de phenomena,
una base de datos 25 de phenomena, un editor 26 de phenomena, una
base de datos 32 de nodos de shader base, una base de datos 33 de
instancias de phenomena y un ensamblador de escena 34, todos los
cuales operan bajo control de la información de entrada del operador
introducida a través de una interfaz 27 de operador. La interfaz 27
de operador puede incluir, generalmente, los dispositivos 12 de
introducción de datos del operador y la unidad 13 de visualización
de vídeo del sistema 10 de gráficos por ordenador como se describió
más arriba en relación con la Figura 1. El generador 23 de
representaciones de entidades geométricas, bajo el control de los
datos introducidos por operador desde la interfaz 27 de operador,
facilita la generación de la representación matemática de los
objetos de la escena y de la o las fuente(s) de luz y la
cámara descritos más arriba. El creador 24 de phenomena proporciona
un mecanismo por medio del cual el operador puede, usando la
interfaz 27 de operador y los nodos de shader base de la base de
datos 32 de nodos de shader de base, generar phenomena que pueden
ser usados en relación con la escena o de otra manera (como se
describirá más abajo). Después de que se genera un phenomenon por
el creador 24 de phenomena, éste (es decir, el phenomenon) será
almacenado en la base de datos 25 de phenomena. Después de que un
phenomenon ha sido almacenado en la base de datos 25 de phenomena,
una instancia del phenomenon puede ser creada por el editor 26 de
phenomena. En esa operación, el operador usará el editor 26 de
phenomena para proporcionar valores para los diferentes parámetros
del phenomenon (si es el caso). Por ejemplo, si el phenomenon ha
sido creado para proporcionar características, tales como balance de
color, granulado de textura, brillo o similar, los cuales serán
establecidos, ajustados o modificados basándose en los datos de
entrada del operador en el momento de la aplicación o más tarde, el
editor 26 de phenomena permite al operador, a través de la interfaz
27 de operador, establecer, ajustar o modificar la característica
concreta. Los valores para los parámetros o pueden ser fijos o
pueden variar de acuerdo con una función de una variable (por
ejemplo, tiempo). El operador, usando el ensamblador 34 de escena,
puede aplicar instancias de phenomena generadas usando el editor 26
de phenomena a elementos de la escena según son generados por el
generador 23 de representación de entidad geométrica.
Aunque se ha descrito que el editor 26 de
phenomena recupera phenomena de la base de datos 25 de phenomena los
cuales han sido generados por el creador 24 de phenomena de la
porción 20 de generación de la estructura de la escena del sistema
10 de gráficos por ordenador, se apreciará que uno o más de los
phenomena, quizá todos, provistos en el sistema 10 de gráficos por
ordenador pueden estar predefinidos y haber sido creados por otros
dispositivos (no mostrados) y almacenados en la base de datos 25 de
phenomena para su uso por el editor 26 de phenomena. En tal caso, el
operador, que controla el editor de phenomena a través de la
interfaz 27 de operador, puede seleccionar phenomena apropiados
predefinidos para su aplicación a la escena.
La porción 21 de generación de la imagen de la
escena incluye varios componentes incluyendo un generador 30 de
imágenes y una interfaz 31 de operador. Si la porción 21 de
generación de la imagen de la escena forma parte del mismo ordenador
que la porción 20 de generación de la estructura de la escena, la
interfaz 31 de operador puede, pero no necesita, comprender los
mismos componentes que la interfaz 27 de operador. Por otro lado, si
la porción 21 de generación de la imagen de la escena forma parte de
un ordenador diferente del ordenador en el que está la porción de
generación de la estructura de la escena, la interfaz 31 de operador
comprenderá, generalmente, componentes diferentes que los de la
interfaz 27 de operador, aunque los componentes de las dos
interfaces 31 y 27 de operador pueden ser similares. El generador 30
de imágenes, bajo control de la interfaz 31 de operador, recupera la
representación de la escena a ser renderizada de la base de datos 22
de representaciones de escena y genera una imagen renderizada para
su visualización en la unidad de visualización de vídeo de la
interfaz 31 de operador.
Antes de ir más adelante, sería de ayuda
describir más un "phenomenon" usado en relación con la
invención. Un phenomenon proporciona información que, añadida a la
representación matemática generada por el generador 23 de
representaciones de entidades geométricas, se usa para completar la
definición de la escena que será usada en la renderización,
incluyendo, pero no limitándose a, características de los colores,
las texturas y los volúmenes cerrados, etc. de las superficies de
las entidades geométricas definidas por la porción 20 de generación
de la estructura de la escena. Un phenomenon comprende uno o más
nodos interconectados en forma de un gráfico acíclico dirigido
("DAG") o una pluralidad de DAGs que cooperan. Uno de los nodos
es un nodo raíz primario que se usa para aplicando el phenomenon a
una entidad de la escena o, más específicamente, a una
representación matemática de la entidad. Otros tipos de nodos que
pueden usarse en un phenomenon comprenden nodos raíz opcionales y
nodos de shader. Los nodos de shader pueden comprender cualquiera de
una pluralidad de shaders convencionales, que incluyen shader
simples convencionales, así como shaders de textura, shaders de
material, shaders de volumen, shaders de ambiente, shaders de sombra
y shaders de desplazamiento y shaders de material que pueden usarse
en relación con la generación de una representación que va a ser
renderizada. Además, varios otros tipos de nodos shader pueden
usarse en un phenomenon, incluyendo
(i) Shaders de geometría, que pueden usarse para
añadir objetos geométricos a la escena. Los shaders de geometría
comprenden, esencialmente, representaciones matemáticas estáticas o
procedimentales de entidades en el espacio tridimensional, similares
a las representaciones que son generadas por el generador 23 de
representaciones de entidades geométricas en relación con entidades
de la escena, excepto en que pueden ser proporcionadas en un momento
previo al procesado para, por ejemplo, definir las respectivas
regiones en las cuales van a estar delimitados otros shaders usados
en el correspondiente phenomenon. Un shader de geometría,
esencialmente, tiene acceso a los elementos de construcción de la
escena del generador 23 de representaciones de entidades
geométricas de escena de forma que puede alterar la representación
de escena según ésta está almacenada en la base de datos de objetos
de escena para, por ejemplo, modificar o crear nuevos elementos
geométricos de la escena de manera estática o procedimental. Debe
notarse que un phenomenon que conste enteramente de un DAG de
shaders de geometría o de un juego de DAGs de shaders de geometría
que cooperan pueden usarse para representar objetos de una escena
de manera procedimental. Esto es, en contraste con el modelado
típico, el cual se lleva a cabo en un sistema de modelado por un
operador humano mediante la ejecución de una secuencia de
operaciones de modelado para obtener la representación deseada de un
objeto en el ordenador. Por lo tanto, en esencia, un phenomenon de
geometría representa una operación parametrizada abstracta de
modelado encapsulada y automatizada. Una instancia de un phenomenon
de geometría (esto es, un phenomenon de geometría asociado a un
conjunto de valores paramétricos que o bien son fijos o varían con
el tiempo o con algo similar) de una manera predeterminada dará como
resultado una extensión de escena geométrica específica cuando es
evaluado por el generador 30 de imágenes de la escena en el tiempo
de ejecución durante la fase de preprocesado.
(ii) Shaders de fotones, que pueden usarse para
controlar los recorridos de fotones de la escena y las
características de interacción de los fotones con las superficies de
los objetos de la escena, tales como absorción, reflexión y
similares. Los shader de fotones facilitan la simulación físicamente
correcta de la iluminación global y los cáusticos en relación con la
renderización. En una realización, los shaders de fotones son usados
durante la renderización por el generador 30 de imágenes de la
escena durante la operación de preprocesado.
(iii) Shaders de volumen de fotones, que son
similares a los shader de fotones, excepto en que operan en relación
con un volumen tridimensional del espacio de la escena en vez de
sobre la superficie de un objeto. Esto permite que se extienda la
simulación de cáusticos y de iluminación a volúmenes y medios
participativos encerrados que los acompañan, tales como dispersión
de fotones por partículas de polvo o niebla en el aire, por vapor de
agua tal como en las nubes, o similares.
(iv) Shader de emisor de fotones, que son
similares también a los shaders de fotones, excepto en que están
relacionados con las fuentes de luz y por lo tanto a la emisión de
fotones. Los fotones simulados para los cuales se simula la emisión
en relación con los shaders de emisor de fotones pueden entonces ser
procesados en relación con los shaders de fotones, los cuales pueden
ser usados para simular recorrido y características de interacción
con superficies de los fotones simulados, y con los shaders de
volumen de fotones que pueden ser usados para simular recorridos y
otras características en volúmenes tridimensionales, en particular,
a lo largo de los correspondientes recorridos.
(v) Shaders de contorno, que son usados en
relación con las líneas de generación de contornos durante la
renderización. En la realización, hay tres subtipos de shaders de
contorno, a saber, shaders de almacenamiento de contorno, shaders de
contraste de contorno y shaders de generación de contorno. Un shader
de almacenamiento de contorno se usa para recoger la información de
muestreo de contorno para, por ejemplo, una superficie. Un shader de
contraste de contorno se usa para comparar dos conjuntos de la
información de muestreo que es recogida usando un shader de
almacenamiento de contorno. Finalmente, un shader de generación de
contorno se usa para generar la información de puntos de contorno,
para su almacenamiento en una memoria buffer, y que es usada
entonces por un shader de salida de datos (descrito más abajo) para
generar líneas de contorno.
(vi) Shaders de salida de datos, que se usan para
procesar la información que está en las memorias buffer generadas
por el generador 30 de imágenes de escena durante la renderización.
Un shader de salida de datos puede acceder a la información de pixel
generada durante la renderización para, en una realización, ejecutar
operaciones de composición, convoluciones complejas y dibujo de
líneas de contorno a partir de la información de puntos de contorno
generada por los shaders de generación de contorno como se describió
más arriba.
(vii) Shaders de volumen tridimensional, que se
usan para controlar cómo la luz y otros rayos visibles y similares
pasan a través de parte o todo el espacio vacío tridimensional de
una escena. Un shader de volumen tridimensional puede usarse para
cualquiera de los varios tipos de efectos de volumen incluyendo, por
ejemplo, niebla y efectos procedimentales del tipo de humo, llamas,
pelaje y nubes de partículas. Además, ya que un shader de volumen
tridimensional se usa en relación con la luz, también son útiles en
relación con sombras que aparecerían a partir de los efectos
procedimentales; y
(viii) Shaders de luz, que se usan para controlar
las características de emisión de las fuentes de luz, incluyendo,
por ejemplo, características de color, dirección y atenuación que
pueden ser resultado de propiedades tales como las formas de las
correspondientes fuentes de luz, proyección de textura, sombreado y
otras propiedades de la luz.
Otros tipos de shaders, que pueden ser útiles en
relación con la definición de la escena pueden también usarse en un
phenomenon.
Un phenomenon está definido por
(i)una descripción de los parámetros
controlables externamente del phenomenon,
(ii) un nodo raíz primario y, opcionalmente, uno
o más nodos raíz opcionales,
(iii) una descripción de la estructura interna
del phenomenon, que incluye la identificación de los shaders que van
a usarse como nodos y cómo están interconectados para formar un DAG
o una pluralidad de DAGs que cooperan, y
(iv) opcionalmente, una descripción de cajas de
diálogo y similares que pueden ser definidas por el phenomenon para
su uso por el editor 26 de phenomena para permitir al operador que
proporcione valores para los parámetros o propiedades que se usarán
en la evaluación del correspondiente phenomenon.
Además, un phenomenon puede incluir declaraciones
externas y códigos ejecutables mediante enlaces desde bibliotecas,
como es estándar en programación.
Como se resaltó más arriba, un phenomenon puede
incluir una pluralidad de DAGs que cooperan. En un phenomenon de ese
tipo, durante la renderización, la información generada a partir del
procesado de uno o más nodos de un primer DAG del phenomenon puede
ser usada en el procesado en relación con uno o más nodos de un
segundo DAG del phenomenon. Los dos DAGs son, no obstante,
procesados de forma independiente y pueden ser procesados en
diferentes etapas del proceso de renderización. La información
generada por un nodo correspondiente del primer DAG que puede estar
"cooperando" con un nodo del segundo DAG (esto es, que puede
ser usado por el nodo del segundo DAG en su procesado), puede ser
transferida desde el nodo correspondiente del primer DAG al nodo
del segundo DAG a través de cualquier canal de comunicación
conveniente, del tipo de una memoria buffer que le puede ser
asignada. Proveer todos los DAGs que pueden necesitar cooperar de
esta manera en un único phenomenon asegura que todas las condiciones
para la cooperación serán satisfechas, lo que puede no ser el caso
si los DAGs son provistos no encapsulados o separados en phenomena
distintos o en otras entidades.
Como ejemplo de un phenomenon que incluye varios
DAGs que cooperan, un phenomenon puede incluir varios DAGs, que
incluyen un DAG de shader de material, un DAG de shader de salida de
datos e instrucciones para generar una memoria buffer de
identificadores de etiquetado. El DAG de shader de material incluye,
al menos, un shader de material para generar un valor de color para
un material y también almacena información de etiquetado sobre los
objetos que son encontrados durante el procesado del DAG de shader
de material en la memoria buffer de identificadores de etiquetado
que es establecida en relación con el procesado de las instrucciones
de generación de la memoria buffer de identificadores de etiquetado.
El DAG de shader de salida de datos, a su vez, incluye al menos un
shader de salida de datos que recupera la información de etiquetado
de la memoria buffer de identificadores de etiquetado para facilitar
la ejecución de operaciones de composición específica de objetos.
Además de las instrucciones de generación de la memoria buffer de
identificadores de etiquetado, el phenomenon puede tener también
instrucciones para controlar modos de operación del generador 30 de
imágenes de la escena de tal forma que ambos DAGs puedan funcionar
y cooperar. Por ejemplo, tales instrucciones pueden controlar la
densidad de muestra mínima requerida por los dos DAGs para ser
evaluada.
Como un segundo ejemplo de un phenomenon que
incluye múltiples DAGs de shader que cooperan, un phenomenon de
material puede representar un material que es simulado tanto por un
DAG de shader de fotones, que incluye al menos un shader de fotones,
como por un DAG de shader de material, que incluye al menos un
shader de material. Durante la renderización, el DAG de shader de
fotones será evaluado durante el preprocesado de cáusticos e
iluminación global y el DAG de shader de material será evaluado más
tarde durante la renderización de una imagen. Durante el procesado
del DAG de shader de fotones, la información que representa los
fotones simulados será almacenada de tal manera que pueda ser usada
durante el procesado posterior del DAG de shader de material para
añadir contribuciones de iluminación de la etapa de preprocesado de
cáusticos o iluminación global. En una realización, el DAG de shader
de fotones almacena la información de fotones simulados en un mapa
de fotones, el cual es usado por el DAG de shader de fotones para
comunicar la información de los fotones simulados al DAG de shader
de material.
Como tercer ejemplo de un phenomenon que incluye
múltiples DAGs de shader que cooperan, un phenomenon puede incluir
un DAG de shader de contorno, que incluye al menos un shader del
tipo de shader de contorno, y un DAG de shader de salida de datos,
que incluye al menos un shader de salida de datos. El DAG de shader
de contorno se usa para determinar cómo dibujar líneas de contorno
almacenando "puntos" de un color, transparencia, anchura y
otros atributos seleccionados. EL DAG de shader de salida de datos
se usa para recoger todas las celdas creadas durante la
renderización y, cuando se completa la renderización, unirlas en
líneas de contorno. El DAG de shader de contorno incluye un shader
de almacenamiento de contorno, un shader de contraste de contorno y
un shader de generación de contorno. El shader de almacenamiento de
contorno se usa para recoger la información de muestreo para su uso
posterior por un shader de contraste de contorno. El shader de
contraste de contorno, a su vez, se usa para determinar si la
información de muestreo recogida por el shader de almacenamiento de
contorno es tal que un punto de contorno va a ser colocado en la
imagen y, si es así, el shader de generación de contorno coloca
realmente el punto de contorno. Este phenomenon ejemplo ilustra una
cooperación de cuatro etapas que incluye
(1) una primera etapa, en la cual se recoge la
información de muestreo (por el shader de almacenamiento de
contorno);
(2) una segunda etapa, en la cual la decisión
sobre si una celda de contorno va a ser colocada (por el shader de
contraste de contorno);
(3) una tercera etapa, en la cual se crea el
punto de contorno (por el shader de generación de contorno); y
(4) una cuarta etapa, en la cual los puntos de
contorno creados son creados (por el DAG de shader de salida de
datos).
Ninguno de los shaders de cualquiera de las
etapas hace uso de otro shader de otra etapa sino que, en cambio,
son procesados y evaluados individualmente en momentos diferentes,
pero cooperan para permitir la generación del resultado final.
Como cuarto ejemplo de phenomenon que incluye
múltiples DAGs de shader que cooperan, un phenomenon puede incluir
un DAG de shader de volumen y un DAG de shader de geometría. El DAG
de shader de volumen incluye, al menos, un shader de volumen que
define propiedades de un volumen confinado, por ejemplo un shader de
pelaje que simula pelaje dentro del volumen confinado. El DAG de
shader de geometría incluye, al menos, un shader de geometría que se
usa para incluir una superficie de límite externa como una nueva
geometría en la escena antes de que comience la renderización, con
DAGs de shader de material y de volumen adecuados asignados a la
superficie de límite externa para definir los cálculos que deben ser
ejecutados en relación con el cabello en relación con el DAG de
shader de volumen original. En este phenomenon ilustrativo, la
cooperación es entre el DAG de shader de geometría y el DAG de
shader de volumen, con el DAG de shader de geometría introduciendo
una geometría procedimental en la cual el DAG de shader de geometría
soporta el DAG de shader de volumen. El DAG de shader de volumen
hace uso de esta geometría, pero no sería capaz de crear la
geometría misma puesto que la geometría es generada usando el DAG
de shader de geometría durante una operación de preprocesado antes
de la renderización, en tanto que el DAG de shader de volumen se usa
durante la renderización. La cooperación explicada en relación con
este cuarto ejemplo ilustrativo difiere de la explicada en relación
con los primero a tercero de los ejemplos ilustrativos desde que el
shader o los shaders que comprenden el shader de geometría
proporcionan de forma procedimental elementos que son usados por el
DAG de shader de volumen, y no sólo almacenan datos, como es el caso
en relación con la cooperación en relación con los primero al
tercero de los ejemplos ilustrativos.
Todos estos ejemplos explican efectos de gráficos
por ordenador en los cuales una imagen de una escena puede ser
renderizada usando múltiples DAGs de shader que cooperan pero que
son independientes y que son agrupados y encapsulados en un único
phenomenon.
Con estas bases, las operaciones ejecutadas en
relación con el creador 24 de phenomena y el editor 26 de phenomena
se describirán en relación con las Figuras 3 y 5, respectivamente.
Además, un phenomenon ilustrativo creado en relación con el creador
24 de phenomena se describirá en relación con la Figura 4 y detalles
de las operaciones ejecutadas por el editor 26 de phenomena en
relación con el phenomenon representado en relación con la Figura 4
serán descritos en relación con las Figuras 6A Y 6B. La Figura 3
representa una ventana 40 del creador de phenomena, que el creador
24 de phenomena habilita a la interfaz 27 de operador para que la
muestre visualmente al operador, para permitir al operador definir
un nuevo phenomenon y modificar la definición de un phenomenon
existente. La ventana 40 del creador de phenomena incluye una
pluralidad de recuadros, incluyendo un recuadro biblioteca de
objetos 41, un recuadro de nodos de gráfico soportados 42, un
recuadro 43 de controles y un phenomenon recuadro de superficie de
dibujo de gráficos 44. El recuadro biblioteca de objetos 41 puede
incluir uno o más iconos de phenomena, identificados en general por
el número de referencia 45, cada uno de los cuales representa un
phenomenon que ha sido, al menos parcialmente, definido para su uso
en la porción 20 de generación de la estructura de la escena. El
recuadro de nodos de gráfico soportados 42 incluye uno o más iconos,
identificados en general por el número de referencia 46, que
representan entidades, tales como interfaces, los diferentes tipos
de shaders que pueden usarse en un phenomenon y otras similares, que
pueden ser seleccionadas por el operador para su uso en un
phenomenon. Como se describirá más abajo, los iconos representados
en el recuadro de nodos de gráfico soportados 42 pueden ser usados
por un operador para formar los nodos del gráfico acíclico dirigido
que define un phenomenon que va a ser creado o modificado. En una
realización, hay varios tipos de nodos, que incluyen:
(i) Un nodo raíz primario, que forma la raíz del
gráfico acíclico dirigido y conforma la conexión con la escena y
proporciona típicamente un valor de color durante la
renderización.
(ii) Varios tipos de nodos raíz opcionales, que
pueden usarse como puntos de anclaje de un DAG de phenomenon para
soportar el nodo raíz principal (ítem (i) anterior). Tipos
ilustrativos de nodos raíz opcionales incluyen:
- (a)
- Un nodo raíz de objetivo, que puede usarse para insertar shaders de objetivo o DAGs de shaders de objetivo en una cámara para su uso durante la renderización;
- (b)
- Un nodo raíz de volumen, que puede usarse para insertar un shader o DAGs de shaders de volumen global (o atmósfera) en una cámara para su uso durante la renderización;
- (c)
- Un nodo raíz de ambiente, que puede usarse para insertar shaders o DAGs de shader de ambiente en una cámara para su uso durante la renderización;
- (d)
- Un nodo raíz de geometría, que puede usarse para especificar shaders o DAGs de shader de geometría que pueden ser preprocesados durante la renderización para habilitar la geometría de soporte procedimental u otros elementos de una escena que van a ser añadidos a la base de datos de la escena;
- (e)
- Un nodo raíz de almacenamiento de contorno, que puede usarse para insertar un shader de almacenamiento de contorno en la estructura de datos de opciones de la escena;
- (f)
- Un nodo raíz de salida de datos, que puede usarse en relación con el postprocesado después de una fase de renderización, y
- (g)
- Un nodo raíz de contraste de contorno, que puede usarse para insertar un shader de contraste de contorno en la estructura de datos de opciones de la escena.
(iii) Un nodo de shader, que representa a un
shader, esto es, una función escrita en un lenguaje de alto nivel
como C o C++.
(iv) Un nodo de luz, que se usa conjuntamente con
una fuente de luz. Un nodo de luz provee a la fuente de luz de un
shader de luz, color, intensidad, origen y/o dirección y,
opcionalmente, un shader de emisor de fotones.
(v) Un nodo de material, que se usa conjuntamente
con una superficie. Un nodo de material provee a una superficie de
un valor de color y tiene entradas de datos para una indicación
opaca, que indica si la superficie es opaca, y para shaders de
material, volumen, ambiente, sombra, desplazamiento, fotón, volumen
de fotón y contorno.
(vi) Un nodo de phenomenon, que es una instancia
de phenomenon.
(vii) Un nodo de constante, que proporciona un
valor constante, que puede ser un dato de entrada a cualquiera de
los demás nodos. El valor constante puede ser de la mayoría de los
tipos de tipos de datos usados para entidades en el lenguaje de
programación, tales como shaders, representados por cualquiera de
los demás nodos, tales como un escalar, un vector, una lógica (un
booleano), color, transformación etc.; y
(viii) Un nodo de diálogo, que representa cajas
de diálogo que pueden ser mostradas visualmente por el editor 26 de
phenomena al operador y que pueden ser usadas por el operador para
proporcionar información de entrada para controlar el phenomenon
antes de o durante la renderización. Los nodos de diálogo pueden
habilitar al editor 26 de phenomena para permitir que se muestren
visualmente botones, barras deslizantes, volantes, etc. para
permitir al operador especificar, por ejemplo, el color u otros
valores a ser usados en relación con la superficie a la cual está
conectado el phenomenon que incluye el nodo de diálogo.
Como se muestra en la Figura 3, tanto el recuadro
biblioteca de objetos 41 como el recuadro de nodos de gráfico
soportados 42 incluyen iconos de flechas a derecha e izquierda,
identificados en general por el número de referencia 47, que
permiten que los iconos mostrados en los correspondientes recuadros
sean desplazados a la izquierda o a la derecha (como se muestra en
la Figura 3), para desplazar los iconos a ser visualizados en la
ventana 40 del creador de phenomena si hay más entidades de las que
pudieran visualizarse de una vez.
El recuadro 43 de controles contiene iconos (no
mostrados) que representan botones que el operador puede usar para
ejecutar las operaciones de control que incluyen, por ejemplo,
borrar o duplicar nodos en el recuadro biblioteca de objetos 41 o el
recuadro de nodos de gráfico soportados 42, comenzar la construcción
de un nuevo phenomenon, arrancar un sistema de ayuda en línea, salir
del creador 24 de phenomena, etc.
La superficie de dibujo de gráficos 44 del
phenomenon proporciona un área en la cual un phenomenon puede ser
creado o modificado por un operador. Si el operador desea modificar
un phenomenon existente, el o ella puede, usando una metodología de
"arrastrar y soltar" que usa un dispositivo de puntero del tipo
de un ratón, seleccionar y arrastrar el icono 45 desde el recuadro
biblioteca de objetos 41 que representa el phenomenon hasta la
superficie de dibujo de gráficos 44 del phenomenon. Después de que
el icono 45 asociado con el phenomenon que va a ser modificado ha
sido arrastrado a la superficie de dibujo de gráficos 44 del
phenomenon, el operador puede habilitar que el icono 45 se expanda
para mostrar uno o más nodos, interconectados por flechas, que
representan el gráfico que define el phenomenon. Un gráfico 50 que
representa un phenomenon ilustrativo, se representa en la Figura 3.
Como se muestra en la Figura 3, el gráfico 50 incluye una pluralidad
de nodos de gráfico que comprenden círculos y bloques, cada uno de
los cuales está asociado con una entidad que puede usarse en un
phenomenon, estando los nodos interconectados por flechas para
definir el gráfico asociado al phenomenon.
Después de que el gráfico asociado con el icono
45 que ha sido arrastrado a la superficie de dibujo de gráficos 44
del phenomenon ha sido expandido para mostrar el gráfico que define
el phenomenon asociado con el icono 45, el operador puede modificar
el gráfico que define el phenomenon. En esta operación, el operador
puede, usando la correspondiente metodología de "arrastrar y
soltar", seleccionar y arrastrar iconos 46 desde el recuadro de
nodos de gráfico soportados 42 que representan entidades para ser
añadidas al gráfico de la superficie de dibujo de gráficos 44 del
phenomenon, para establecer con ello un nuevo nodo para el gráfico.
Después de que el nuevo nodo ha sido establecido, el operador puede
interconectarlo a un nodo del gráfico existente haciendo un clic en
ambos nodos de una manera adecuada de forma que habilita que una
flecha sea visualizada entre ellos. Los nodos del gráfico pueden
también ser desconectados de otros nodos, borrando las flechas que
se extienden entre los nodos correspondientes, y suprimidos del
gráfico mediante una actuación adecuada de un botón de supresión del
recuadro 43 de controles.
De forma similar, si el operador desea crear un
nuevo phenomenon, el o ella puede, usando la correspondiente
metodología de "arrastrar y soltar", seleccionar y arrastrar
iconos 46 desde el recuadro de nodos de gráfico soportados 42 que
representan las entidades para ser añadidas al gráfico de la
superficie de dibujo de gráficos 44 del phenomenon, para establecer
con ello un nuevo nodo del gráfico que va a ser creado. Después de
que se ha establecido un nuevo nodo en la superficie de dibujo de
gráficos 44 del phenomenon, el operador puede interconectarlo a un
nodo del gráfico existente haciendo un clic en ambos nodos de una
manera adecuada de forma que habilita que una flecha sea visualizada
entre ellos. Los nodos del gráfico pueden también ser desconectados
de otros nodos, borrando las flechas que se extienden entre los
nodos correspondientes, y suprimidos del gráfico mediante una
actuación adecuada de un botón de supresión del recuadro 43 de
controles.
Después de que el operador ha especificado el DAG
o conjunto de DAGs que cooperan para el phenomenon, bien para un
phenomenon nuevo o bien para un phenomenon modificado, y antes de
que el phenomenon representado por el gráfico sea almacenado en la
base de datos 25 de phenomena, el creador 24 de phenomena examinará
el gráfico del phenomenon para verificar que es coherente y puede
ser procesado durante la renderización. En esta operación, el
creador 24 de phenomena asegurará que las interconexiones entre
nodos del gráfico no forman un ciclo, asegurando por ello que el
gráfico o los gráficos asociados con el phenomenon forman gráficos
acíclicos dirigidos, y que las interconexiones entre los nodos del
gráfico representan los correspondientes tipos de datos de entrada
y salida que son coherentes. Se apreciará que, si el creador 24 de
phenomena determina que los nodos del gráfico sí forman un ciclo, el
phenomenon formará esencialmente un lazo sin fin que generalmente no
podrá ser procesado adecuadamente. Estas operaciones asegurarán que
el phenomenon así creado o modificado puede ser procesado por la
porción de generación de la imagen de la escena cuando una imagen de
una escena a la que el phenomenon está aplicado está siendo
renderizada.
Después de que el operador ha creado o modificado
el phenomenon, éste será almacenado en la base de datos 25 de
phenomena.
La Figura 4 representa un phenomenon ilustrativo
creado en relación con el creador 24 de phenomena que puede ser
generado usando la ventana del creador de phenomena descrita más
arriba en relación con la Figura 3. El phenomenon ilustrativo
representado en la Figura 4, que está identificado por el número de
referencia 60, es uno que puede usarse para las características de
la superficie de un material de madera. Con referencia a la Figura
4, el phenomenon 60 incluye un nodo raíz, identificado por el número
de referencia 61, que se usa para aplicar el phenomenon 60 a un
elemento de la escena. Otros nodos del gráfico incluyen un nodo 62
de shader de material, un nodo 63 de shader de textura de material,
un nodo 64 de shader de ruido coherente, los cuales representan,
respectivamente, un shader de material, un shader de textura y un
shader de ruido coherente, y un nodo 65 de diálogo. El nodo 65 de
diálogo representa una caja de diálogo que es mostrada visualmente
por el editor 26 de phenomena para permitir al operador que
proporcione la información de entrada para su uso con el phenomenon
cuando la imagen es renderizada.
Los detalles de un shader de material, un shader
de textura y un shader de ruido coherente son conocidos para los
expertos en la técnica y no se describirán más aquí. En general, el
shader de material tiene uno o más datos de salida, representados
por "resultado", que son suministrados al nodo raíz 61. El
shader de material, a su vez, tiene varias entradas de datos,
incluyendo una entrada de "brillo", una entrada de color
"ambiente", una entrada de color "difuso", una entrada de
"transparencia" y una entrada de "luces", y se muestra que
el nodo 62 de shader de material representado por ellos está
recibiendo entradas de ellos desde el nodo 65 de diálogo (en el caso
de la entrada de brillo), desde el nodo 63 de shader de textura (en
el caso de las entradas de color ambiente y difuso), desde una
constante dada por hardware (en el caso de la entrada de
transparencia) y desde una lista de luces (en el caso de la entrada
de luces). El valor de la constante dada por hardware, indicado como
"0,0", suministrada en la entrada de transparencia indica que
el material es opaco. La entrada de "brillo" está conectada a
una salida de "brillo" suministrada por el nodo 65 de diálogo
y, cuando el shader de material representado por el nodo 62 es
procesado durante la renderización, éste obtendrá el valor de la
entrada de brillo para él desde la caja de diálogo representada por
el nodo de diálogo, como se describirá más abajo en relación con las
Figuras 6A y 6B.
Las entradas de color ambiente y difuso del
shader de material representado por el nodo 62 son proporcionadas
por la salida del shader de textura, como se indica por la conexión
de la salida "resultado" del nodo 63 a las correspondientes
entradas del nodo 62. Cuando el phenomenon 60 de material de madera
es procesado durante la operación de renderización y, en particular,
cuando el shader de material representado por el nodo 62 es
procesado, éste permitirá que el shader de textura representado por
el nodo 63 sea procesado para proporcionar los valores de entrada de
color ambiente y difuso. El shader de textura, a su vez, tiene tres
entradas, incluyendo las entradas de color ambiente y difuso,
representadas por las entradas "color 1" y "color 2"
mostradas en el nodo 63, y una entrada "mezcla". Los valores
para las entradas de color ambiente y difuso son proporcionados por
el operador usando la caja de diálogo representada por el nodo de
diálogo 65, según se representa mediante las conexiones de las
respectivas salidas de color difuso y ambiente del nodo 65 de
diálogo con el nodo 63 de shader de textura en la Figura 4.
Además, el valor de entrada para la entrada del
shader de textura representado por el nodo 63 es proporcionado por
el shader de ruido coherente representado por el nodo 64. Así,
cuando el shader de textura representado por el nodo 63 es procesado
durante la operación de renderización, éste permitirá que el shader
de ruido coherente representado por el nodo 64 sea procesado para
proporcionar el valor de entrada mezcla. El shader de ruido
coherente tiene dos entradas, que incluyen una entrada de
"turbulencia" y una entrada de "cilíndrico". El valor para
la entrada de turbulencia es proporcionado por el operador usando la
caja de diálogo representada por el nodo 65 de diálogo, como se
representa por las conexiones desde la salida de turbulencia del
nodo 65 de diálogo con el nodo 64 del shader de ruido coherente. El
valor de entrada para la entrada cilíndrico, que se muestra como un
valor lógico "VERDADERO", es dado por hardware en el phenomenon
60.
Las operaciones ejecutadas por el editor 26 de
phenomena serán descritas en relación con la Figura 5. La Figura 5
representa una ventana 70 de editor de phenomena que el editor 26 de
phenomena habilita para que sea mostrada visualmente por la interfaz
27 de operador para su uso por un operador en una realización de la
invención para establecer y ajustar los valores de entrada para los
phenomena que han sido aplicados a la escena. En particular, el
operador puede usar la ventana de editor de phenomena para
establecer valores para los phenomena que son suministrados por
cajas de diálogo asociadas a nodos de diálogo, del tipo del nodo 65
(Figura 4), establecidos por los correspondientes phenomena durante
su creación o modificación como se describió anteriormente en
relación con la Figura 3. La ventana 70 de editor de phenomena
incluye una pluralidad de recuadros, incluyendo una recuadro
biblioteca de objetos 71 y un recuadro de controles 72, y también
incluye una ventana 73 de diálogo del phenomenon y una ventana 74 de
previsualización del phenomenon. El recuadro biblioteca de objetos
71 representa iconos 80 que representan los diferentes phenomena
que están disponibles para su aplicación a una escena. Como con la
ventana 40 del creador de phenomena (Figura 3), el recuadro
biblioteca de objetos incluye iconos de flecha a izquierda y
derecha, identificados en general por el número de referencia 81,
que permiten que los iconos mostrados en el correspondiente recuadro
sean desplazados a la izquierda o a la derecha (como se muestra en
la Figura 3), para desplazar los iconos que van a ser visualizados
en la ventana 790 de editor de phenomena si hay más iconos de los
que pudieran ser visualizados de una vez.
El recuadro de controles 72 contiene iconos (no
mostrados) que representan botones que el operador puede usar para
ejecutar operaciones de control, que incluyen, por ejemplo, borrar o
duplicar iconos en el recuadro biblioteca de objetos 71, arrancar un
sistema de ayuda on-line, salir del editor 26 de
phenomena, etc.
El operador puede seleccionar un phenomenon cuyos
valores de parámetros van a ser establecidos mediante una
manipulación adecuada de un dispositivo de puntero del tipo de un
ratón de cara a crear una instancia de un phenomenon. (Una instancia
de un phenomenon se corresponde con un phenomenon cuyos valores de
parámetros han sido fijados). Después de que el operador ha
seleccionado un phenomenon, el editor 26 de phenomena habilitará a
la interfaz de operador 27 para que muestre visualmente la caja de
diálogo asociada a su nodo de diálogo en la ventana de diálogo del
phenomenon. Una caja de diálogo ilustrativa, usada en relación con
una realización del phenomenon de material madera 60 descrito
anteriormente en relación con la Figura 4, se describirá más
adelante en relación con las Figuras 6A y 6B. Según el operador
suministra y ajusta los valores de entrada que pueden ser
suministrados a través de la caja de diálogo, el editor 26 de
phenomena procesa efectivamente el phenomenon y muestra visualmente
los datos de salida resultantes en la ventana 74 de previsualización
del phenomenon. Así, el operador puede usar la ventana 70 del editor
de phenomena para ver el resultado de los valores que él o ella
establecen usando las entradas disponibles a través de la caja de
diálogo mostrada en la ventana de diálogo del phenomenon.
Las Figuras 6A y 6B representan gráficamente
detalles de un nodo de diálogo (en el caso de la Figura 6A) y una
caja de diálogo ilustrativa asociada (en el caso de la Figura 6B),
que se usan en relación con el phenomenon 60 de material madera
representado en la Figura 4. El nodo de diálogo, que está
identificado por el número de referencia 65 en la Figura 4, es
definido y creado por el operador usando el creador 24 de phenomena
durante el proceso de creación o modificación del phenomenon
particular al cual está asociado. Con referencia a la Figura 6A, la
caja de diálogo 65 incluye una pluralidad de baldosas, a saber, una
baldosa 90 de color ambiente, una baldosa 91 de color difuso, una
baldosa 92 de turbulencia y una baldosa 93 de brillo. Se apreciará
que los respectivos baldosas 90 a 93 están asociados a los
correspondientes valores de salida de color ambiente, color difuso,
turbulencia y brillo proporcionados por el nodo de diálogo 65 como
se describió anteriormente en relación con la Figura 4. Las baldosas
de color ambiente y difuso están asociados a valores de color, que
pueden ser especificados usando una especificación
color/transparencia convencional rojo/verde/azul/alfa, o
"RGBA", y, así, cada una de las baldosas de color estarán
asociadas realmente a valores de entrada múltiples, uno para cada
uno de los colores rojo, verde y azul en la representación de color
y uno para transparencia (alfa). Por otro lado, cada una de las
baldosas de turbulencia y brillo, 92 y 93, está asociada con un
valor escalar.
La Figura 6B representa una caja de diálogo 100
ilustrativa que está asociada al nodo de diálogo 65 (Figura 6A),
según se visualiza en la interfaz 27 de operador bajo control del
editor 26 de phenomena. En la caja de diálogo 100, las baldosas de
color ambiente y difuso 90 y 91 del nodo de diálogo 65 son
visualizadas cada una por la interfaz 27 de operador como conjuntos
respectivos de barras deslizantes, identificados en general por los
números de referencia 101 y 102, respectivamente, cada uno de los
cuales está asociado a uno de los colores de la representación de
color a ser usada durante el procesado del phenomenon asociado
durante la renderización. Además, las baldosas 92 y 93 de
turbulencia y brillo del nodo de diálogo 65 son visualizadas cada
una de ellas por la interfaz 27 de operador como barras deslizantes
individuales 103 y 104. Las barras deslizantes de los respectivos
conjuntos de barras deslizantes 101 y 102 pueden ser manipuladas por
el operador, usando un dispositivo de puntero del tipo de un ratón,
de una manera convencional para habilitar con ello al editor 26 de
phenomena para que ajuste las correspondientes combinaciones de
colores para los valores respectivos de color ambiente y difuso
proporcionados por el nodo de diálogo 65 a los shaders asociados con
los otros nodos del phenomenon 60 (Figura 4). Además, las barras
deslizantes 103 y 104 asociadas a las entradas de turbulencia y
brillo pueden ser manipuladas por el operador habilitando con ello
al editor 26 de phenomena para que ajuste los valores respectivos de
turbulencia y brillo proporcionados por el nodo de diálogo 65 a los
shaders asociados a los otros nodos del phenomenon 60 de material
madera.
Volviendo a la Figura 2, después de que el
operador, usando el editor 26 de phenomena, ha establecido los
valores para los diferentes phenomena y las instancias de phenomena
asociados a una escena, esos valores son almacenados con la escena
en la base de datos 22 de objetos de la escena. después de esto, una
imagen de la escena puede ser renderizada por la porción 21 de
generación de la imagen de la escena, en particular, mediante el
generador 30 de imágenes de la escena para su visualización por la
interfaz 31 de operador. Las operaciones ejecutadas por el generador
30 de imágenes de la escena se describirán en general en relación
con el diagrama de flujo representado en la Figura 7. En referencia
a la Figura 7, el generador 30 de imágenes de la escena opera en una
serie de fases, que incluye una fase de preprocesado, una fase de
renderización y una fase de postprocesado. En la fase de
preprocesado, el generador 30 de imágenes de la escena examinará los
phenomena que están aplicados a una escena para determinar si
necesitará ejecutar operaciones de preprocesado y/o postprocesado en
relación con ellos (paso 100). El generador 30 de imágenes de la
escena determina entonces si las operaciones del paso 100 indicaron
que se requieren operaciones de preprocesado en relación con al
menos un phenomenon aplicado a la escena (paso 101) y, si es así,
ejecutará las operaciones de preprocesado (paso 102). Operaciones de
preprocesado ilustrativas incluyen, por ejemplo, la generación de
geometría de escena, si un phenomenon aplicado a la escena incluye
un shader de geometría, para generar la geometría definida por él
para la escena. Otras operaciones ilustrativas de preprocesado
incluyen, por ejemplo, mapeado de sombras y fotones, resolución de
herencia múltiple y otras similares. Después del paso 102, o del
paso 101 si el generador 30 de imágenes de la escena hace una
determinación negativa en ese paso, el generador 30 de imágenes de
la escena puede ejecutar más operaciones de preprocesado que pueden
ser requeridas en relación con la representación de la escena antes
de la renderización, las cuales no están relacionadas con los
phenomena aplicados a la escena (paso 103).
Después del paso 103, el generador 30 de imágenes
de la escena ejecutará la fase de renderización en la cual ejecuta
las operaciones de renderización en relación con la representación
de escena preprocesada para generar una imagen renderizada (paso
104). En esta operación, el generador 30 de imágenes de la escena
identificará los phenomena almacenados en la base de datos 22 de
objetos de escena que van a ser aplicados a los diferentes
componentes de la escena, según fueron generados por el generador 23
de representación geométrica de entidades y aplicar todos los nodos
raíz primarios y opcionales de los respectivos phenomena a los
componentes de escena adecuados al tipo de nodo raíz. Después de
esto, el generador 30 de imágenes de la escena renderizará la
imagen. Además, el generador 30 de imágenes de la escena generará
información, según sea necesario, que pueda ser usada en las
operaciones de postprocesado durante la fase de postprocesado.
Después de la fase de renderización (paso 104),
el generador 30 de imágenes de la escena ejecutará la fase de
postprocesado. En esta operación, el generador 30 de imágenes de la
escena determinará si las operaciones ejecutadas en el paso 100
indicaron que se requerían operaciones de postprocesado en relación
con los phenomena aplicados a la escena (paso 105). Si el generador
30 de imágenes de la escena hace una determinación positiva en el
paso 105, ejecutará las operaciones de postprocesado requeridas en
relación con los phenomena aplicados a la escena (paso 106). Además,
el generador 30 de imágenes de la escena puede ejecutar también
otras operaciones de postprocesado que no están relacionadas con los
phenomena del paso 106. El generador 30 de imágenes de la escena
puede ejecutar operaciones de postprocesado en relación con la
manipulación de los valores de pixel para corrección de color,
filtrando para proporcionar diferentes efectos ópticos. Además, el
generador 30 de imágenes de la escena puede ejecutar operaciones de
postprocesado si, por ejemplo, un phenomenon aplicado a la escena
incluye un shader de salida de datos que define operaciones de
postprocesado, tales como cálculos de profundidad de campo o
desenfoque de movimiento que pueden ser, en una realización, hechos
enteramente en un shader de salida de datos, por ejemplo,
dependiendo de la información sobre velocidad y profundidad
almacenada en relación con cada valor de pixel, en relación con la
imagen renderizada.
La invención proporciona varias ventajas. En
particular, la invención proporciona un sistema de gráficos por
ordenador que proporciona herramientas para crear (en referencia al
creador 24 de phenomena) y manipular (en referencia al editor 26 de
phenomena) phenomena. Los phenomena así creados son procesados por
el creador 24 de phenomena para asegurar que son coherentes y que
pueden ser procesados durante la renderización. Ya que los
phenomena son creados antes de ser aplicados a una escena, se
apreciará que pueden ser creados por programadores u otros que sean
expertos en el desarrollo de programas para ordenador, aliviando con
ello a otros, tales como los artistas, dibujantes y similares de la
necesidad de desarrollarlos. También, los phenomena liberan al
artista de la complejidad de instrumentar la escena con muchos
shaders diferentes e interrelacionados separándola (esto es, la
complejidad) en una tarea independiente ejecutada en adelante por un
usuario experto del creador de phenomena. Con los phenomena, la
instrumentación se hace ampliamente automatizada. Una vez que un
phenomenon o instancia de phenomenon ha sido creado, es
independiente de la escena y puede ser reutilizado en muchas escenas
evitando así trabajo repetitivo.
Se apreciará que varios cambios y modificaciones
pueden ser hechas a la invención. Como se señaló más arriba, ya que
los phenomena pueden ser creados de forma separada de su uso en
relación con una escena, el creador 24 de phenomena, usado para
crear y modificar phenomena, y el editor 26 de phenomena, usado para
crear instancias de phenomena, pueden ser suministrados a sistemas
de gráficos por ordenador independientes. Por ejemplo, un sistema
10 de gráficos por ordenador que incluye un editor 26 de phenomena
no necesita incluir un creador 24 de phenomena si, por ejemplo, la
base de datos 25 de phenomena incluye los phenomena adecuados
creados previamente y el operador no necesitará crear o modificar
phenomena.
Además, como se señaló más arriba, los valores de
parámetros de un phenomenon pueden ser fijos o pueden variar
basándose en una función de una o más variables. Por ejemplo, si uno
o más valores de los respectivos parámetros varían de acuerdo con el
tiempo como variable, la instancia de phenomenon puede hacerse
dependiente del tiempo, o "animada". Esto es discretizado
normalmente en intervalos de tiempo que son etiquetados por los
números de fotograma de una serie de fotogramas que comprenden una
animación, pero la dependencia del tiempo puede, sin embargo, tomar
la forma de cualquier función evaluada en el tiempo de parámetros de
phenomenon, cada una de las cuales puede ser etiquetada con un valor
de tiempo absoluto, de forma que, incluso si una imagen es
renderizada en números de fotograma sucesivos, los shaders no están
ligados a intervalos discretos.
A este respecto, el editor de phenomena se usa
para seleccionar los valores dependientes del tiempo para uno o más
parámetros de un phenomenon, creando una "instancia de
phenomenon" dependiente del tiempo. La selección de valores
dependientes del tiempo para los parámetros de un phenomenon se
lleva a cabo, en una realización particular, mediante la asignación
gráficamente interactiva de lo que será denominado en adelante como
"árboles de control de propiedades del phenomenon" a un
phenomenon. Un árbol de control de propiedades del phenomenon, que
puede tener la forma de un árbol o un DAG, es asignado a los
parámetros del phenomenon, realmente fuera del phenomenon, y es
almacenado con el phenomenon en la base de datos de instancias de
phenomena. Un árbol de control de propiedades del phenomenon
consiste en uno o más nodos, cada uno de los cuales es un shader en
el sentido de las funciones que proporciona, por ejemplo, curvas de
movimiento, funciones de búsqueda de datos y similares. Un árbol de
control de propiedades del phenomenon, preferiblemente, puede
permanecer poco profundo y tendrá normalmente sólo muy pocos niveles
de ramificación. Un árbol de control de propiedades del phenomenon
puede constar de un único shader, que define una función para
computar el valor para el parámetro asociado a él en el tiempo de
ejecución. Un árbol de control de propiedades del phenomenon puede
permanecer poco profundo porque el phenomenon permite y estimula la
encapsulación de los árboles complicados de shader o DAGs,
facilitando su evaluación de una manera optimizada durante el paso
de renderización mediante, por ejemplo, el almacenamiento de datos
para su reutilización. Permitir al operador que asigne tales árboles
de control de propiedades del phenomenon para controlar los
parámetros del phenomenon incrementa la flexibilidad del usuario
para llevar a cabo efectos a medida basados en el uso de un
phenomenon empaquetado predefinido. El número de instancias de
phenomenon distintas que puede ser creado de este modo por ello se
incrementa grandemente, mientras que la facilidad de uso no está
comprometida gracias a la encapsulación de toda la complejidad del
phenomenon.
Además, se apreciará que la apariencia y
estructuras de las ventanas usadas en relación con el creador 24 de
phenomena y el editor 26 de phenomena, descritas en relación con las
Figuras 3 y 5, pueden diferir de las descritas aquí.
Se apreciará que un sistema de acuerdo con la
invención puede ser construido en todo o en parte a partir de
hardware de uso especial o de un sistema de ordenador de uso
general, o cualquier combinación de ellos, cualquier porción del
cual puede ser controlada mediante un programa adecuado. Cualquier
programa puede, en todo o en parte, comprender parte de o estar
almacenado en el sistema de manera convencional o puede, en todo o
en parte, ser proporcionado al sistema a través de una red u otro
mecanismo para transferir información de una manera convencional.
Además, se apreciará que el sistema puede ser operado y/o controlado
de otro modo por medio de información proporcionada por un operador
que usa los elementos de entrada del operador (no mostrados) que
pueden estar conectados directamente al sistema o que pueden
transferir la información al sistema a través de una red u otro
mecanismo para transferir información de manera convencional.
La descripción que antecede ha sido limitada a
una realización específica de esta invención. Estará claro, sin
embargo, que pueden hacerse diferentes variaciones y modificaciones
a la invención con la obtención de algunas o todas las ventajas de
la invención.
Claims (32)
1. Un sistema de gráficos por ordenador para
generar una imagen de una escena a partir de una representación de
la escena a la cual está aplicado, al menos, un shader de gráfico
acíclico dirigido (DAG) que comprende una pluralidad de nodos,
incluyendo al menos un nodo raíz primario para aplicar el DAG de
shaders a un elemento de la representación de la escena y al menos
un nodo de shader conectado a él en el DAG, comprendiendo el sistema
de gráficos por ordenador:
A. un módulo preprocesador configurado para
determinar si el al menos un nodo de shader es del tipo que se usa
para ejecutar una operación de preprocesado en relación con dicha
representación y, si es así, usar el al menos un nodo shader para
ejecutar dicha operación de preprocesado para generar una
representación preprocesada de la escena; y
B. un módulo renderizador configurado para
generar la imagen renderizada a partir de la representación de la
escena o, si el sistema de gráficos por ordenador incluye el módulo
preprocesador, la representación preprocesada de la escena.
2. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1 en el cual el al menos un nodo
shader es de un tipo de nodo shader de geometría, estando
configurado el módulo de preprocesado para ejecutar dicha operación
de preprocesado usando el al menos un nodo shader del tipo de nodo
de shader de geometría para definir la geometría para la escena.
3. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1 en el cual el al menos un nodo de
shader es de un tipo de nodo de shader de fotones, estando
configurado el módulo preprocesador para ejecutar la operación de
preprocesado usando el al menos un nodo de shader del tipo de nodo
de shader de fotones para controlar el recorrido de al menos un
fotón de la escena o al menos una característica de interacción de
al menos un fotón con una superficie de un objeto de la escena.
4. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1 en el cual el al menos un nodo de
shader es de un tipo de nodo de shader de emisor de fotón, estando
configurado el módulo preprocesador para ejecutar dicha operación de
preprocesado usando el al menos un nodo de shader del tipo de nodo
de shader de emisor de fotón para simular la generación de al menos
un fotón por una fuente de luz que ilumina la escena.
5. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1 en el cual el al menos un nodo de
shader es de un tipo de nodo de shader de volumen de fotón, estando
configurado el módulo preprocesador para ejecutar dicha operación de
preprocesado usando el al menos un nodo de shader del tipo de nodo
de shader de volumen de fotón para simular la interacción de al
menos un fotón de una fuente de luz con un volumen tridimensional
del espacio de la escena.
6. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1, incluyendo, además, el sistema de
gráficos por ordenador un módulo postprocesador configurado para
determinar si el al menos un nodo de shader es de un tipo que se usa
en ejecutar una operación de postprocesado en relación con dicha
representación y, si es así, usar el al menos un nodo de shader para
ejecutar dicha operación de postprocesado en relación con una imagen
renderizada.
7. Un sistema de gráficos por ordenador como el
definido en la reivindicación 6 en el que el nodo de shader es de un
tipo de nodo de shader de salida de datos, estando configurado el
módulo postprocesador para ejecutar dicha operación de postprocesado
usando el al menos un nodo de shader del tipo de nodo de shader de
salida de datos.
8. Un sistema de gráficos por ordenador como el
definido en la reivindicación 6 en el que la imagen renderizada
comprende una pluralidad de pixeles asociado cada uno de ellos con
un valor de pixel, estando configurado el módulo postprocesador para
ejecutar dicha operación de postprocesado en relación con dichos
valores de pixel.
9. Un sistema de gráficos por ordenador como el
definido en la reivindicación 6 en el que el módulo postprocesador
está configurado para usar el al menos un nodo de shader del tipo de
nodo de shader de salida de datos para ejecutar al menos una de
entre una operación de composición, una operación de convolución
compleja o una operación de dibujado de línea de contorno.
10. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1 que incluye, además, un segundo DAG
de shader que comprende el nodo raíz primario y al menos un nodo de
shader, en el cual el al menos un nodo shader de uno de dichos DAGs,
cuando es usado por al menos uno de entre el módulo preprocesador o
el módulo renderizador, proporciona al menos un valor que es usado
en el preprocesado del al menos un nodo de shader del otro de
dichos DAGs.
11. Un sistema de gráficos por ordenador como el
definido en la reivindicación 1 en el que dicho DAG de shader tiene,
además, al menos un nodo raíz opcional para aplicar el DAG de shader
a un segundo elemento de la representación de escena, estando
conectado, además, el al menos un nodo raíz opcional al al menos un
nodo de shader del DAG.
12. Un método de gráficos por ordenador para
generar una imagen de una escena a partir de una representación de
la escena a la que está aplicado al menos un gráfico acíclico
dirigido (DAG) de shader que comprende una pluralidad de nodos,
incluyendo un nodo raíz primario para aplicar el DAG de shader a un
elemento de la representación de escena y al menos un nodo de
shader conectado a él en el DAG, método de gráficos por ordenador
que incluye:
A. un paso preprocesador para determinar si el al
menos un nodo de shader es del tipo que se usa para ejecutar una
operación de preprocesado en relación con dicha representación y, si
es así, usar el al menos un nodo shader para ejecutar dicha
operación de preprocesado para generar una representación
preprocesada de la escena; y
B. un paso renderizador para generar la imagen
renderizada a partir de la representación de la escena o, si el
método de gráficos por ordenador incluye el paso preprocesador, la
representación preprocesada de la escena.
13. Un método de gráficos por ordenador como el
definido en la reivindicación 12 en el cual el al menos un nodo
shader es de un tipo de nodo shader de geometría, incluyendo el paso
preprocesador el paso de ejecutar dicha operación de preprocesado
usando el al menos un nodo shader del tipo de nodo de shader de
geometría para definir la geometría para la escena.
14. Un método de gráficos por ordenador como el
definido en la reivindicación 12 en el cual el al menos un nodo de
shader es de un tipo de nodo de shader de fotones, incluyendo el
paso preprocesador el paso de ejecutar la operación de preprocesado
usando el al menos un nodo de shader del tipo de nodo de shader de
fotones para controlar el recorrido de al menos un fotón de la
escena o al menos una característica de interacción de al menos un
fotón con una superficie de un objeto de la escena.
15. Un método de gráficos por ordenador como el
definido en la reivindicación 12 en el cual el al menos un nodo de
shader es de un tipo de nodo de shader de emisor de fotón incluyendo
el paso preprocesador el paso de ejecutar dicha operación de
preprocesado usando el al menos un nodo de shader del tipo de nodo
de shader de emisor de fotón para simular la generación de al menos
un fotón por una fuente de luz que ilumina la escena.
16. Un método de gráficos por ordenador como el
definido en la reivindicación 12 en el cual el al menos un nodo de
shader es de un tipo de nodo de shader de volumen de fotón,
incluyendo el paso preprocesador el paso de ejecutar dicha operación
de preprocesado usando el al menos un nodo de shader del tipo de
nodo de shader de volumen de fotón para simular la interacción de al
menos un fotón de una fuente de luz con un volumen tridimensional
del espacio de la escena.
17. Un método de gráficos por ordenador como el
definido en la reivindicación 12, comprendiendo, además, el sistema
de gráficos por ordenador un paso postprocesador para determinar si
el al menos un nodo de shader es de un tipo que se usa en la
ejecución de una operación de postprocesado en relación con una
imagen renderizada y, si es así, usar el al menos un nodo de shader
para ejecutar dicha operación de postprocesado usando el al menos un
nodo de shader en relación con una imagen renderizada.
18. Un método de gráficos por ordenador como el
definido en la reivindicación 17 en el que el al menos un nodo de
shader es de un tipo de nodo de shader de salida de datos,
incluyendo el paso postprocesador el paso de ejecutar dicha
operación de postprocesado usando el al menos un nodo de shader del
tipo de nodo de shader de salida de datos.
19. Un método de gráficos por ordenador como el
definido en la reivindicación 17 en el que la imagen renderizada
comprende una pluralidad de pixeles asociado cada uno de ellos con
un valor de pixel, incluyendo el paso postprocesador el paso de
ejecutar dicha operación de postprocesado en relación con dichos
valores de pixel.
20. Un método de gráficos por ordenador como el
definido en la reivindicación 17 en el que el paso postprocesador
incluye el paso de usar el al menos un nodo de shader del tipo de
nodo de shader de salida de datos para ejecutar al menos una de
entre una operación de composición, una operación de convolución
compleja o una operación de dibujado de línea de contorno.
21. Un método de gráficos por ordenador como el
definido en la reivindicación 12 en el que el al menos un DAG de
shader comprende una pluralidad de DAGs, incluyendo cada uno de
dicha pluralidad de DAGs al menos un nodo de shader, en el cual el
al menos un nodo shader de uno de dichos DAGs, cuando es usado por
al menos uno de entre el paso preprocesador o el paso renderizador,
proporciona al menos un valor que es usado en el preprocesado del
al menos un nodo de shader del otro de dichos
DAGs.
DAGs.
22. Un producto de programa para ordenador para
su uso en relación con un ordenador para proporcionar un sistema de
gráficos por ordenador para generar una imagen de una escena a
partir de una representación de la escena a la cual está aplicado,
al menos, un gráfico acíclico dirigido (DAG) de shader que comprende
una pluralidad de nodos, incluyendo al menos un nodo raíz primario
para aplicar el DAG de shaders a un elemento de la representación
de la escena y al menos un nodo de shader conectado a él en el DAG,
comprendiendo el producto de programa de ordenador un medio legible
por un ordenador en el que han sido codificados:
A. un módulo preprocesador configurado para
permitir al ordenador determinar si el al menos un nodo de shader
es del tipo que se usa para ejecutar una operación de preprocesado
en relación con dicha representación y, si es así, usar el al menos
un nodo shader para ejecutar dicha operación de preprocesado para
generar una representación preprocesada de la escena; y
B. un módulo renderizador configurado para
permitir al ordenador generar la imagen renderizada a partir de la
representación de la escena o, si el producto de programa de
ordenador incluye el módulo preprocesador, la representación
preprocesada de la escena.
23. Un producto de programa para ordenador como
el definido en la reivindicación 22 en el cual el al menos un nodo
shader es de un tipo de nodo shader de geometría, estando
configurado el módulo de preprocesado para permitir al ordenador
ejecutar dicha operación de preprocesado usando el al menos un nodo
shader del tipo de nodo de shader de geometría para definir la
geometría para la escena.
24. Un producto de programa para ordenador como
el definido en la reivindicación 22 en el cual el al menos un nodo
de shader es de un tipo de nodo de shader de fotones, estando
configurado el módulo preprocesador para permitir al ordenador
ejecutar la operación de preprocesado usando el al menos un nodo de
shader del tipo de nodo de shader de fotones para controlar el
recorrido de al menos un fotón de la escena o al menos una
característica de interacción de al menos un fotón con una
superficie de un objeto de la escena.
25. Un producto de programa para ordenador como
el definido en la reivindicación 22 en el cual el al menos un nodo
de shader es de un tipo de nodo de shader de emisor de fotón,
estando configurado el módulo preprocesador para permitir al
ordenador ejecutar dicha operación de preprocesado usando el al
menos un nodo de shader del tipo de nodo de shader de emisor de
fotón para simular la generación de al menos un fotón por una fuente
de luz que ilumina la escena.
26. Un producto de programa para ordenador como
el definido en la reivindicación 22 en el cual el al menos un nodo
de shader es de un tipo de nodo de shader de volumen de fotón,
estando configurado el módulo preprocesador para permitir al
ordenador ejecutar dicha operación de preprocesado usando el al
menos un nodo de shader del tipo de nodo de shader de volumen de
fotón para simular la interacción de al menos un fotón de una fuente
de luz con un volumen tridimensional del espacio de la escena.
27. Un producto de programa para ordenador como
el definido en la reivindicación 22 en el que el medio legible por
ordenador tiene, además, codificado en él un módulo postprocesador
configurado para permitir al ordenador determinar si el al menos un
nodo de shader es de un tipo que se usa en ejecutar una operación de
postprocesado en relación con dicha representación y, si es así,
usar el al menos un nodo de shader para ejecutar dicha operación de
postprocesado en relación con una imagen renderizada.
28. Un producto de programa para ordenador como
el definido en la reivindicación 27 en el que el nodo de shader es
de un tipo de nodo de shader de salida de datos, estando configurado
el módulo postprocesador para permitir al ordenador ejecutar dicha
operación de postprocesado usando el al menos un nodo de shader del
tipo de nodo de shader de salida de datos.
29. Un producto de programa para ordenador como
el definido en la reivindicación 28 en el que la imagen renderizada
comprende una pluralidad de pixeles asociado cada uno de ellos con
un valor de pixel, estando configurado el módulo postprocesador para
permitir al ordenador ejecutar dicha operación de postprocesado en
relación con dichos valores de pixel.
30. Un producto de programa para ordenador como
el definido en la reivindicación 27 en el que el módulo
postprocesador está configurado para permitir al ordenador usar el
al menos un nodo de shader del tipo de nodo de shader de salida de
datos para ejecutar al menos una de entre una operación de
composición, una operación de convolución compleja o una operación
de dibujado de línea de contorno.
31. Un producto de programa para ordenador como
el definido en la reivindicación 22 que incluye, además, un segundo
DAG de shader que comprende el nodo raíz primario y al menos un nodo
de shader, en el cual el al menos un nodo shader de uno de dichos
DAGs, cuando es usado por al menos uno de entre el módulo
preprocesador o el módulo renderizador, proporciona al menos un
valor que es usado en el preprocesado del al menos un nodo de
shader del otro de dichos DAGs.
32. Un producto de programa para ordenador como
el definido en la reivindicación 22 en el que dicho DAG de shader
tiene, además, al menos un nodo raíz opcional para aplicar el DAG de
shader a un segundo elemento de la representación de escena, estando
conectado, además, el al menos un nodo raíz opcional al al menos un
nodo de shader del DAG.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5150797P | 1997-07-02 | 1997-07-02 | |
US51507P | 1997-07-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2255167T3 true ES2255167T3 (es) | 2006-06-16 |
Family
ID=21971724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES98930966T Expired - Lifetime ES2255167T3 (es) | 1997-07-02 | 1998-07-02 | Sistema grafico por ordenador. |
Country Status (10)
Country | Link |
---|---|
US (3) | US6496190B1 (es) |
EP (1) | EP0993659B1 (es) |
JP (1) | JP2001509620A (es) |
AT (1) | ATE311637T1 (es) |
AU (1) | AU752048B2 (es) |
CA (1) | CA2294233C (es) |
DE (1) | DE69832611T2 (es) |
DK (1) | DK0993659T3 (es) |
ES (1) | ES2255167T3 (es) |
WO (1) | WO1999001846A1 (es) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496190B1 (en) * | 1997-07-02 | 2002-12-17 | Mental Images Gmbh & Co Kg. | System and method for generating and using systems of cooperating and encapsulated shaders and shader DAGs for use in a computer graphics system |
US9007393B2 (en) * | 1997-07-02 | 2015-04-14 | Mental Images Gmbh | Accurate transparency and local volume rendering |
US7548238B2 (en) * | 1997-07-02 | 2009-06-16 | Nvidia Corporation | Computer graphics shader systems and methods |
US7092860B1 (en) * | 1999-02-03 | 2006-08-15 | Mitutoyo Corporation | Hardware simulation systems and methods for vision inspection systems |
EP1079332A1 (en) * | 1999-08-25 | 2001-02-28 | M.M. Multimedia A/S | Method of rendering states of a system |
US7165060B2 (en) * | 2000-02-14 | 2007-01-16 | Lockheed Martin Corporation | Information access, collaboration and integration system and method |
US7437408B2 (en) * | 2000-02-14 | 2008-10-14 | Lockheed Martin Corporation | Information aggregation, processing and distribution system |
EP1132863A1 (en) * | 2000-03-08 | 2001-09-12 | MVTec Software GmbH | Method and system for developing image processing applications |
CN102289832B (zh) * | 2000-06-09 | 2014-08-20 | 精工爱普生株式会社 | 图像指定文件的制作和使用了该文件的图像的播放 |
US7034828B1 (en) * | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
JP4740476B2 (ja) * | 2000-08-23 | 2011-08-03 | 任天堂株式会社 | グラフィックスシステム内におけるn個のアルファ演算の論理結合を提供する方法および装置 |
US6683619B1 (en) * | 2000-10-18 | 2004-01-27 | Sony Corporation | System and method for increasing performance when compositing images |
US6897880B2 (en) | 2001-02-22 | 2005-05-24 | Sony Corporation | User interface for generating parameter values in media presentations based on selected presentation instances |
EP1258837A1 (en) | 2001-05-14 | 2002-11-20 | Thomson Licensing S.A. | Method to generate mutual photometric effects |
US7564460B2 (en) * | 2001-07-16 | 2009-07-21 | Microsoft Corporation | Systems and methods for providing intermediate targets in a graphics system |
US20030090530A1 (en) * | 2001-09-07 | 2003-05-15 | Karthik Ramani | Systems and methods for collaborative shape design |
US7337093B2 (en) * | 2001-09-07 | 2008-02-26 | Purdue Research Foundation | Systems and methods for collaborative shape and design |
US20030076320A1 (en) * | 2001-10-18 | 2003-04-24 | David Collodi | Programmable per-pixel shader with lighting support |
US20040103147A1 (en) * | 2001-11-13 | 2004-05-27 | Flesher Kevin E. | System for enabling collaboration and protecting sensitive data |
US7176917B1 (en) * | 2002-08-09 | 2007-02-13 | Avid Technology, Inc. | Visual programming interface for a three-dimensional animation system for defining real time shaders using a real-time rendering engine application programming interface |
US20040095348A1 (en) * | 2002-11-19 | 2004-05-20 | Bleiweiss Avi I. | Shading language interface and method |
US7928997B2 (en) * | 2003-02-06 | 2011-04-19 | Nvidia Corporation | Digital image compositing using a programmable graphics processor |
US20050140672A1 (en) * | 2003-02-18 | 2005-06-30 | Jeremy Hubbell | Shader editor and compiler |
US7523406B2 (en) * | 2003-07-22 | 2009-04-21 | Autodesk Inc. | Dynamic parameter interface |
US20070165045A1 (en) * | 2004-01-12 | 2007-07-19 | Allegorithmic | Method and tool for modifying a procedural map |
US8704837B2 (en) | 2004-04-16 | 2014-04-22 | Apple Inc. | High-level program interface for graphics operations |
US8134561B2 (en) | 2004-04-16 | 2012-03-13 | Apple Inc. | System for optimizing graphics operations |
US7570267B2 (en) * | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7671862B1 (en) | 2004-05-03 | 2010-03-02 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7441206B2 (en) * | 2004-06-14 | 2008-10-21 | Medical Simulation Corporation | 3D visual effect creation system and method |
WO2006020001A2 (en) * | 2004-07-15 | 2006-02-23 | The Regents Of The University Of California | Fast multi-pass partitioning via priority based scheduling |
US7392506B2 (en) * | 2004-07-29 | 2008-06-24 | International Business Machines Corporation | Method, system and article of manufacture for testing a software application having a text-based screen with a test tool for a software application having a graphical user interface which uses objects |
US20060082577A1 (en) * | 2004-10-20 | 2006-04-20 | Ugs Corp. | System, method, and computer program product for dynamic shader generation |
US7710418B2 (en) * | 2005-02-04 | 2010-05-04 | Linden Acquisition Corporation | Systems and methods for the real-time and realistic simulation of natural atmospheric lighting phenomenon |
US7280107B2 (en) * | 2005-06-29 | 2007-10-09 | Microsoft Corporation | Procedural graphics architectures and techniques |
US7414623B2 (en) * | 2005-06-29 | 2008-08-19 | Microsoft Corporation | Adaptive sampling for procedural graphics |
AU2006265815A1 (en) * | 2005-07-01 | 2007-01-11 | Mental Images Gmbh | Computer graphics shader systems and methods |
US7496416B2 (en) * | 2005-08-01 | 2009-02-24 | Luxology, Llc | Input/output curve editor |
US8743116B1 (en) * | 2006-02-24 | 2014-06-03 | Microsoft Corporation | Shader network |
US7595963B1 (en) | 2006-06-07 | 2009-09-29 | Western Digital Technologies, Inc. | Head gimbal assembly including a flexure with a first conductive trace disposed between a slider and a dielectric layer |
US8203563B2 (en) * | 2006-06-16 | 2012-06-19 | Nvidia Corporation | System, method, and computer program product for adjusting a programmable graphics/audio processor based on input and output parameters |
US8493388B2 (en) * | 2006-08-09 | 2013-07-23 | Siemens Medical Solutions Usa, Inc. | Modular volume rendering using visual programming |
US7663621B1 (en) * | 2006-11-03 | 2010-02-16 | Nvidia Corporation | Cylindrical wrapping using shader hardware |
KR100898991B1 (ko) * | 2006-12-02 | 2009-05-27 | 한국전자통신연구원 | 3차원 그래픽 시스템의 쉐이더 제공 및 변환 장치 |
US8355021B2 (en) * | 2007-05-17 | 2013-01-15 | Siemens Aktiengesellschaft | Fused volume rendering |
FR2917199B1 (fr) * | 2007-06-05 | 2011-08-19 | Thales Sa | Generateur de code source pour une carte graphique |
US20100259537A1 (en) * | 2007-10-12 | 2010-10-14 | Mvtec Software Gmbh | Computer vision cad models |
US9321281B2 (en) * | 2009-03-27 | 2016-04-26 | Electronics For Imaging, Inc. | Selective ink cure |
KR20110066011A (ko) * | 2009-12-10 | 2011-06-16 | 한국전자통신연구원 | 이미지 특성 추출을 이용한 유사 쉐이더 검색장치 및 방법 |
JP5123353B2 (ja) | 2010-05-06 | 2013-01-23 | 株式会社スクウェア・エニックス | リアルタイムシーンを照明し,発見するバーチャルフラッシュライト |
US20130063460A1 (en) * | 2011-09-08 | 2013-03-14 | Microsoft Corporation | Visual shader designer |
US9224239B2 (en) | 2013-03-14 | 2015-12-29 | Dreamworks Animation Llc | Look-based selection for rendering a computer-generated animation |
US9171401B2 (en) | 2013-03-14 | 2015-10-27 | Dreamworks Animation Llc | Conservative partitioning for rendering a computer-generated animation |
US9659398B2 (en) | 2013-03-15 | 2017-05-23 | Dreamworks Animation Llc | Multiple visual representations of lighting effects in a computer animation scene |
US9626787B2 (en) | 2013-03-15 | 2017-04-18 | Dreamworks Animation Llc | For node in render setup graph |
US9230294B2 (en) | 2013-03-15 | 2016-01-05 | Dreamworks Animation Llc | Preserving and reusing intermediate data |
US9811936B2 (en) | 2013-03-15 | 2017-11-07 | Dreamworks Animation L.L.C. | Level-based data sharing for digital content production |
US9208597B2 (en) | 2013-03-15 | 2015-12-08 | Dreamworks Animation Llc | Generalized instancing for three-dimensional scene data |
US9514562B2 (en) | 2013-03-15 | 2016-12-06 | Dreamworks Animation Llc | Procedural partitioning of a scene |
US9589382B2 (en) | 2013-03-15 | 2017-03-07 | Dreamworks Animation Llc | Render setup graph |
US9218785B2 (en) | 2013-03-15 | 2015-12-22 | Dreamworks Animation Llc | Lighting correction filters |
US20140354658A1 (en) * | 2013-05-31 | 2014-12-04 | Microsoft Corporation | Shader Function Linking Graph |
WO2016137974A1 (en) | 2015-02-23 | 2016-09-01 | Wabash National, L.P. | Composite refrigerated truck body and method of making the same |
US10403025B2 (en) | 2015-06-04 | 2019-09-03 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
EP3101650A1 (en) * | 2015-06-04 | 2016-12-07 | Samsung Electronics Co., Ltd. | Method and apparatus for performing interleaving |
US10089775B2 (en) * | 2015-06-04 | 2018-10-02 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
US10549789B2 (en) | 2015-09-08 | 2020-02-04 | Wabash National, L.P. | Joining a rail member to a composite trailer structure |
MX2018002939A (es) | 2015-09-08 | 2018-06-18 | Wabash National Lp | Union de ensamble de suspension a una estructura de remolque compuesta. |
MX2016013715A (es) | 2015-10-23 | 2017-12-20 | Wabash National Lp | Moldes extruidos y metodos para fabricar paneles de camion compuestos. |
US10479419B2 (en) | 2016-02-24 | 2019-11-19 | Wabash National, L.P. | Composite refrigerated semi-trailer and method of making the same |
US10329763B2 (en) | 2016-02-24 | 2019-06-25 | Wabash National, L.P. | Composite floor structure and method of making the same |
US10239566B2 (en) | 2016-02-24 | 2019-03-26 | Wabash National, L.P. | Composite floor for a dry truck body |
US10478720B2 (en) * | 2016-03-15 | 2019-11-19 | Unity IPR ApS | Dynamic assets for creating game experiences |
US10479405B2 (en) | 2016-08-31 | 2019-11-19 | Wabash National, L.P. | Mounting bracket for a composite truck body floor |
US10407103B2 (en) | 2017-01-11 | 2019-09-10 | Wabash National, L.P. | Mounting bracket for a truck body and method for mounting a composite truck body to a chassis |
US10445319B2 (en) * | 2017-05-10 | 2019-10-15 | Oracle International Corporation | Defining subgraphs declaratively with vertex and edge filters |
CA3013741C (en) | 2017-08-10 | 2023-09-12 | Wabash National, L.P. | Transverse beam for composite floor structure and method of making the same |
CA3213679A1 (en) | 2017-08-25 | 2019-02-25 | Wabash National, L.P. | Composite floor structure with embedded hardpoint connector and method of making the same |
US10475151B2 (en) * | 2017-11-06 | 2019-11-12 | Basemark Oy | Graphics engine resource management and allocation system |
US10467722B2 (en) * | 2017-11-06 | 2019-11-05 | Basemark Oy | Combined rendering and computing resource allocation management system |
US11400987B2 (en) | 2018-08-15 | 2022-08-02 | Wabash National, L.P. | Slide rail assembly and landing gear assembly with embedded hardpoint connectors |
CA3052934C (en) | 2018-08-31 | 2023-07-04 | Wabash National, L.P. | Low-profile slide rail assembly with embedded or laminated hardpoint connectors |
US11358652B2 (en) | 2018-10-22 | 2022-06-14 | Wabash National, L.P. | Composite floor with integrated conduit |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4679077A (en) * | 1984-11-10 | 1987-07-07 | Matsushita Electric Works, Ltd. | Visual Image sensor system |
EP0528631B1 (en) * | 1991-08-13 | 1998-05-20 | Xerox Corporation | Electronic image generation |
AU6665194A (en) * | 1993-08-24 | 1995-03-21 | Taligent, Inc. | Object oriented shading |
US5978497A (en) * | 1994-09-20 | 1999-11-02 | Neopath, Inc. | Apparatus for the identification of free-lying cells |
JP3015262B2 (ja) * | 1994-09-27 | 2000-03-06 | 松下電器産業株式会社 | 3次元形状データ加工装置 |
US5745601A (en) * | 1995-07-31 | 1998-04-28 | Neopath, Inc. | Robustness of classification measurement apparatus and method |
US6057859A (en) * | 1997-03-31 | 2000-05-02 | Katrix, Inc. | Limb coordination system for interactive computer animation of articulated characters with blended motion data |
US6215495B1 (en) * | 1997-05-30 | 2001-04-10 | Silicon Graphics, Inc. | Platform independent application program interface for interactive 3D scene management |
US6496190B1 (en) * | 1997-07-02 | 2002-12-17 | Mental Images Gmbh & Co Kg. | System and method for generating and using systems of cooperating and encapsulated shaders and shader DAGs for use in a computer graphics system |
US6191787B1 (en) * | 1998-02-10 | 2001-02-20 | Schlumberger Technology Corporation | Interactively constructing, editing, rendering and manipulating geoscience models |
US6266053B1 (en) * | 1998-04-03 | 2001-07-24 | Synapix, Inc. | Time inheritance scene graph for representation of media content |
US6578197B1 (en) * | 1998-04-08 | 2003-06-10 | Silicon Graphics, Inc. | System and method for high-speed execution of graphics application programs including shading language instructions |
US6478735B1 (en) * | 1999-01-28 | 2002-11-12 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Physiological feedback method and system |
-
1998
- 1998-07-01 US US09/108,596 patent/US6496190B1/en not_active Expired - Lifetime
- 1998-07-02 CA CA002294233A patent/CA2294233C/en not_active Expired - Fee Related
- 1998-07-02 AT AT98930966T patent/ATE311637T1/de not_active IP Right Cessation
- 1998-07-02 ES ES98930966T patent/ES2255167T3/es not_active Expired - Lifetime
- 1998-07-02 WO PCT/IB1998/001073 patent/WO1999001846A1/en active IP Right Grant
- 1998-07-02 DK DK98930966T patent/DK0993659T3/da active
- 1998-07-02 JP JP2000501480A patent/JP2001509620A/ja active Pending
- 1998-07-02 DE DE69832611T patent/DE69832611T2/de not_active Expired - Lifetime
- 1998-07-02 EP EP98930966A patent/EP0993659B1/en not_active Expired - Lifetime
- 1998-07-02 AU AU81237/98A patent/AU752048B2/en not_active Ceased
-
2002
- 2002-08-30 US US10/232,069 patent/US6606092B2/en not_active Expired - Lifetime
-
2003
- 2003-06-16 US US10/462,500 patent/US7173617B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2294233C (en) | 2007-06-05 |
WO1999001846A1 (en) | 1999-01-14 |
DE69832611D1 (de) | 2006-01-05 |
US6606092B2 (en) | 2003-08-12 |
DE69832611T2 (de) | 2006-08-10 |
DK0993659T3 (da) | 2006-03-27 |
US20030222870A1 (en) | 2003-12-04 |
CA2294233A1 (en) | 1999-01-14 |
AU752048B2 (en) | 2002-09-05 |
US7173617B2 (en) | 2007-02-06 |
EP0993659B1 (en) | 2005-11-30 |
AU8123798A (en) | 1999-01-25 |
US20030001844A1 (en) | 2003-01-02 |
US6496190B1 (en) | 2002-12-17 |
EP0993659A1 (en) | 2000-04-19 |
ATE311637T1 (de) | 2005-12-15 |
JP2001509620A (ja) | 2001-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2255167T3 (es) | Sistema grafico por ordenador. | |
Wernecke | The Inventor mentor: programming object-oriented 3D graphics with Open Inventor, release 2 | |
US7548238B2 (en) | Computer graphics shader systems and methods | |
JP2002517839A (ja) | オブジェクトのルールベースグループを規定し、使用するアニメーションシステムおよび方法 | |
Hauser et al. | Two-level volume rendering-fusing MIP and DVR | |
AU2006265815A1 (en) | Computer graphics shader systems and methods | |
Johnson et al. | Artifact-based rendering: harnessing natural and traditional visual media for more expressive and engaging 3D visualizations | |
Plate et al. | A flexible multi-volume shader framework for arbitrarily intersecting multi-resolution datasets | |
US9704290B2 (en) | Deep image identifiers | |
Guevarra | Modeling and animation using blender: blender 2.80: the rise of Eevee | |
US11625900B2 (en) | Broker for instancing | |
Vergne et al. | Designing gratin, a GPU-tailored node-based system | |
Viola et al. | Tutorial 4: Illustrative Visualization | |
US5903274A (en) | System for color and opacity transfer function specification in volume rendering | |
US5936639A (en) | System for determining motion control of particles | |
Hamel et al. | An approach to visualizing transparency in computer-generated line drawings | |
Aas | TimeBender: Interactive Authoring of 3D Space-Time Narratives | |
Guevarra | Modeling and Animation Using Blender | |
Smyk et al. | JaTrac—an exercise in designing educational raytracer | |
Emsenhuber | Visibility histograms in direct volume rendering | |
Gröhn | 3D Engine Design And Implementation | |
McGraw et al. | Fractal image editing with PhotoFrac | |
Grollert | Two-level volume rendering—fusing MIP and DVR | |
Sampler | The Inventor Mentor: Programming ObjectOriented 3D Graphics with Open Inventor™, Release 2 | |
Nikishkov | Introduction to Java 3D™ |