ES2290320T3 - Generacion de imagen usando metodologias estrictamente deterministas que usan rotaciones recurrentes para generar puntos de muestra. - Google Patents

Generacion de imagen usando metodologias estrictamente deterministas que usan rotaciones recurrentes para generar puntos de muestra. Download PDF

Info

Publication number
ES2290320T3
ES2290320T3 ES02749248T ES02749248T ES2290320T3 ES 2290320 T3 ES2290320 T3 ES 2290320T3 ES 02749248 T ES02749248 T ES 02749248T ES 02749248 T ES02749248 T ES 02749248T ES 2290320 T3 ES2290320 T3 ES 2290320T3
Authority
ES
Spain
Prior art keywords
sample points
sub
sample
rays
generate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES02749248T
Other languages
English (en)
Inventor
Georgy Abramov
Kristjan Valur Jonsson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia ARC GmbH
Original Assignee
Mental Images GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mental Images GmbH filed Critical Mental Images GmbH
Application granted granted Critical
Publication of ES2290320T3 publication Critical patent/ES2290320T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/55Radiosity

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Electron Beam Exposure (AREA)
  • Color Television Systems (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Image Analysis (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)
  • Error Detection And Correction (AREA)

Abstract

Un sistema de gráficos de ordenador para generar un valor de píxel correspondiente a un píxel de una imagen, siendo el píxel representativo de un punto de una escena, generando el sistema de gráficos de ordenador el valor del píxel por una evaluación de una integral de una función seleccionada, comprendiendo el sistema de gráficos de ordenador: A. un generador de puntos de muestra configurado para generar unos conjuntos respectivos de puntos de muestra cada uno de ellos asociado con uno de una serie de rayos de una traza de rayos configurada para tener una pluralidad de niveles de traza, siendo dividido el rayo al menos en un nivel en una pluralidad de rayos, estando cada rayo asociado con un identificador de instancia de rayo, estando configurado el generador de puntos de muestra para generar los puntos de muestra como una secuencia estrictamente determinística de baja discrepancia predeterminada a la cual se aplica un operador de rotación seleccionado de forma recurrente para los nivelesrespectivos; y B. un evaluador de funciones configurado para generar una pluralidad de valores de función cada uno de los cuales representa una evaluación de dicha función seleccionada en uno de los puntos de muestra generados por dicho generador de puntos de muestra y usar los valores de la función para general el valor del píxel.

Description

Generación de imagen usando metodologías estrictamente deterministas que usan rotaciones recurrentes para generar puntos de muestra.
La solicitud publicada de patente internacional Nº WO 98/58322 registrada el 23 de junio de 1998 a nombre de Martin Grabenstein y otros, titulada "Sistema y Método para generar valores de píxeles" (a la que en lo sucesivo se denomina la solicitud de Grabenstein) fue cedida al cesionario de la presente solicitud.
La solicitud de patente de EEUU Nº 09/884.861 registrada el 19 de junio de 2001 a nombre de Alexander Keller, titulada "Sistema y Método para generar valores de píxeles para los píxeles de una imagen usando metodologías estrictamente determinísticas para generar puntos de muestra" (a la que en lo sucesivo se denomina la solicitud de Keller) fue cedida al cesionario de la presente solicitud.
Campo de la invención
La invención se refiere generalmente al campo de los gráficos de ordenador, y más particularmente a los sistemas y métodos para generar valores de píxeles para los píxeles de una imagen que se restituyen usando secuencias de baja discrepancia estrictamente determinísticas y rotaciones recurrentes, como las rotaciones de Cranley-Patterson, para proporcionar puntos de muestra a fin de generar estimaciones de los valores de las integrales que representan los valores de los píxeles.
Antecedentes de la invención
En los gráficos de ordenador, se usa un ordenador para generar datos digitales que representan la proyección de las superficies de los objetos, por ejemplo en una escena tridimensional, iluminada por una o varias fuentes de luz, sobre una imagen plana bidimensional, a fin de simular el registro de la escena, por ejemplo mediante una cámara. La cámara puede incluir una lente para proyectar la imagen de la escena sobre el plano de la imagen, o puede comprender una cámara de microorificio, en cuyo caso no se usa lente alguna. La imagen bidimensional tiene la forma de un conjunto de elementos de imagen (los cuales son denominados indistintamente "píxeles" o "Pels"), y los datos generados para cada píxel representan el color y la luminancia de la escena tal como se proyecta sobre el plano de la imagen en el punto del píxel respectivo en el plano de la imagen. Las superficies de los objetos pueden tener cualquier número de tipos de características, incluyendo forma, color, especularidad, textura, etc., que son restituidos en la imagen lo más próximamente posible, para proporcionar una imagen de aspecto realista.
Típicamente, en los gráficos de ordenador, las imágenes se restituyen evaluando las integrales a fin de evaluar los rayos que se trazan entre una fuente de luz y los píxeles en el plano de la imagen, representando los rayos unos caminos que serían recorridos por los fotones entre una fuente de luz respectiva y los píxeles en el plano de la imagen. Las evaluaciones de las integrales proporcionan esencialmente una información en cuanto a la intensidad y el color del flujo de fotones que incide sobre los píxeles respectivos del plano de la imagen. Típicamente, las integrales tienen la forma
\vskip1.000000\baselineskip
100
donde "f" es una función definida sobre un cubo unidad [0, 1]^{3} de s_{1} + ...* s_{n} = s dimensiones. Dependiendo de la posición y de la orientación del plano de la imagen con respecto a la(s) fuente(s) de luz, algunos de los rayos pueden representar unos caminos de fotones directamente desde la fuente de luz al píxel del plano de la imagen. De manera similar, dependiendo de la posición y de la orientación del plano de la imagen con respecto a los objetos de la escena, algunos de los rayos pueden representar unos caminos de fotones desde la fuente de luz a un píxel del plano de la imagen después de haber sido reflejados por una o varias superficies de los objetos de la escena. Como se indicó anteriormente, las superficies de los objetos pueden tener cualquiera de cierto número de tipos de características, las cuales a su vez pueden afectar a cosas como los colores y las direcciones de los fotones reflejados desde las mismas. Un color de una superficie puede afectar a los colores de los fotones reflejados. Por ejemplo, si la superficie es azul, los fotones reflejados serían principalmente si no exclusivamente fotones asociados con el color azul. Otras características de la superficie pueden afectar a las direcciones de los fotones reflejados por las mismas, y de este modo afectar al (a los) recorrido(s) del (de los) rayo(s) trazados desde las respectivas superficies. Puesto que varios tipos de características de las superficies pueden hacer que los fotones se reflejen según cierto número de direcciones, un rayo que incida sobre una superficie es típicamente "dividido" en una pluralidad de rayos reflejados, los cuales pueden tener direcciones que dependen de las características de la superficie respectiva. Por ejemplo, si una superficie es generalmente especular, los rayos reflejados tendrán direcciones similares, próximas al ángulo de incidencia. Por otra parte, si la superficie es generalmente difusa, los rayos reflejados generalmente tendrán una amplia variedad de direcciones, las cuales pueden diferir sustancialmente del ángulo de incidencia.
\newpage
Típicamente, las integrales tales como las representadas en la ecuación (1) no tienen unas soluciones de forma cerrada, y por lo general son evaluadas numéricamente. Una integral tal como la representada en la ecuación (1) puede ser evaluada numéricamente de la forma siguiente:
101
donde cada 102 de la suma es una evaluación de la función "f" en un punto de muestra 103 en el dominio de la integración. Los mismos puntos pueden ser generados usando cualquiera de cierto número de metodologías; la solicitud de Grabenstein describe una metodología en la cual los puntos de muestra comprenden muestras de secuencias s-dimensionales estrictamente determinísticas de baja discrepancia, tales como las secuencias de Halton, y la solicitud de Keller describe una metodología en la cual los puntos de muestra comprenden conjuntos de puntos s-dimensionales de Hammersley. Generalmente, algunas de las dimensiones s_{1}, ... s_{n} están asociadas con las trazas de los fotones respectivos entre la fuente de luz y el plano de la imagen.
Particularmente, pueden surgir problemas en aquellas situaciones en las cuales cierto número de rayos tienen direcciones sustancialmente similares.
Resumen de la invención
La invención proporciona un sistema y un método nuevos y mejorados para generar valores de píxeles para los píxeles de una imagen que están siendo restituidos usando unas secuencias estrictamente determinísticas de baja discrepancia y rotaciones recurrentes, tales como las rotaciones de Cranley-Patterson, para proporcionar unos puntos de muestra para generar estimaciones de los valores de las integrales que representan los valores de los píxeles.
Haciendo un breve resumen, la invención proporciona un sistema de gráficos de ordenador para generar un valor de píxel correspondiente a un píxel de una imagen, siendo el píxel representativo de un punto de una escena. El sistema de gráficos de ordenador genera el valor del píxel por evaluación de una integral de una función seleccionada. El sistema de gráficos de ordenador comprende un generador de puntos de muestra y un evaluador de funciones. El generador de puntos de muestra está configurado para generar unos conjuntos respectivos de puntos de muestra cada uno de ellos asociado con uno de una serie de rayos de una traza de rayos configurada para tener una pluralidad de niveles de traza. El rayo, al menos en un nivel, puede ser dividido en una pluralidad de rayos, estando cada rayo asociado con un identificador de instancia de rayo. El generador de puntos de muestra está configurado para generar los puntos de muestra como una secuencia estrictamente determinística de baja discrepancia predeterminada a la cual se aplica un operador de rotación seleccionado de forma recurrente para los niveles respectivos. El evaluador de funciones está configurado para generar una pluralidad de valores de función cada uno de los cuales representa una evaluación de la función seleccionada en uno de los puntos de muestra generados por el generador de puntos de muestra y usar los valores de la función para general el valor del píxel.
En una realización, el operador de rotación seleccionado es el operador de rotación de Cranley-Patterson.
Adicionalmente, en una realización, el generador de puntos de muestra está configurado para guardar en memoria caché los puntos de muestra que genera para los niveles de traza respectivos y usar los puntos de muestra guardados en memoria caché durante la generación de los puntos de muestra para los niveles de traza subsiguientes.
Breve descripción de los dibujos
Esta invención queda definida particularmente en las reivindicaciones anexas. Se puede entender mejor lo anterior y las ventajas adicionales de esta invención haciendo referencia a la descripción siguiente tomada conjuntamente con los dibujos anexos, en los cuales:
la Fig. 1 representa a título ilustrativo un sistema de gráficos de ordenador construido de acuerdo con la invención;
la Fig. 2 representa a título ilustrativo una traza de rayo útil para entender la invención;
Descripción detallada de una realización ilustrativa
La invención proporciona un sistema de gráficos de ordenador y un método para generar valores de píxeles correspondientes a los píxeles de una imagen de una escena, el cual hace uso de una metodología estrictamente determinística para generar unos puntos de muestra a fin de usarlos para generar unos valores de muestra a fin de evaluar la integral o integrales cuya(s) función(ones) representan las contribuciones de la luz reflejada desde los diversos puntos de la escena al valor del píxel respectivo, a los cuales se aplica un operador de rotación seleccionado. La Fig. 1 aquí anexa representa un sistema informático 10 ilustrativo que hace uso de una metodología estrictamente determinística de este tipo. Haciendo referencia a la Fig. 1, el sistema informático 10 en una realización incluye un módulo procesador 11 y unos elementos de interfaz de operador que comprenden unos componentes de entrada de operador tales como un teclado 12A y/o un ratón 12B (generalmente identificados como elementos de entrada de operador 12) y un elemento de salida de operador tal como una pantalla de video 13. El sistema informático 10 ilustrativo es del tipo de arquitectura informática convencional con programas almacenados. El módulo de procesador 11 incluye, por ejemplo, uno o varios procesadores, memoria y dispositivos de almacenamiento masivo, tales como unos elementos de almacenamiento en disco o en cinta (no mostrados por separado), los cuales realizan las operaciones de procesamiento y almacenamiento relacionadas con los datos digitales que se proporciona a los mismos. Si el módulo de procesador 11 incluye una pluralidad de dispositivos de procesador, los dispositivos de procesador respectivos pueden ser configurados para procesar diversas partes de una única tarea en paralelo, en cuyo caso se puede ejecutar la tarea más rápidamente que en caso contrario. Los elementos de entrada de operador 12 están dispuestos para permitir a un operador introducir información para su procesamiento. El dispositivo de pantalla de video 13 es proporcionado para presentar la información de salida generada por el módulo de procesador 11 sobre una pantalla 14 al operador, incluyendo los datos que pueda introducir el operador para procesar, la información que pueda introducir el operador para controlar el procesamiento, así como la información generada durante el procesamiento. El módulo de procesador 11 genera información para su presentación por el dispositivo de pantalla de video 13 usando una así denominada "interfaz gráfica de usuario" ("GUI"), en la cual se presenta la información correspondiente a varios programas de aplicaciones usando diversas "ventanas". Aunque se muestra el sistema informático 10 como comprendiendo unos componentes particulares, tales como el teclado 12A y el ratón 12B para recibir la información de entrada procedente de un operador, y un dispositivo de presentación de video 13 para presentar la información de salida al operador, se apreciará que el sistema informático 10 puede incluir una variedad de componentes adicionalmente a los representados en la Fig. 1 o en lugar de los mismos.
Adicionalmente, el módulo de procesador 11 incluye uno o varios puertos de red, generalmente identificados por un número de referencia 14, los cuales están conectados a unos enlaces de comunicaciones que conectan el sistema informático 10 a una red informática. Los puertos de red permiten al sistema informático 10 transmitir información a otros sistemas informáticos y otros dispositivos de la red o recibirla de los mismos. En una red típica, organizada por ejemplo según el paradigma cliente servidor, algunos sistemas informáticos de la red son designados como servidores, los cuales guardan datos y programas (generalmente, "información") para su procesamiento por los otros, los sistemas informáticos clientes, para permitir de esta manera que los sistemas informáticos clientes compartan la información de manera adecuada. Un sistema informático cliente que necesita tener acceso a la información mantenida por un servidor concreto permitirá al servidor descargar la información al mismo a través de la red. Después de procesar los datos, el sistema informático cliente puede también devolver los datos procesados al servidor para su almacenamiento. Adicionalmente a los sistemas informáticos (que incluyen los anteriormente descritos servidores y clientes), una red puede incluir también, por ejemplo, impresoras y dispositivos de fax, dispositivos digitales de almacenamiento y de distribución de audio y de video, etc., los cuales pueden ser compartidos entre los diversos sistemas informáticos conectados a la red. Los enlaces de comunicación que interconectan los sistemas informáticos de la red pueden comprender, como resulta convencional, cualquier medio portador de información conveniente, incluyendo cables, fibras ópticas u otros medios portadores de señales entre sistemas informáticos. Los sistemas informáticos transfieren la información sobre la red por medio de mensajes transferidos sobre los enlaces de comunicación, incluyendo cada mensaje la información y un identificador que establece el dispositivo que va a recibir el mensaje.
En relación con la Fig. 2, se describirá un problema que trata la invención. Típicamente, en los gráficos de ordenador las imágenes son restituidas evaluando integrales para determinar las características de los rayos que se trazan entre una fuente de luz y los píxeles situados sobre el plano de la imagen. Los rayos representan unos caminos que han recorrido los protones simulados entre la(s) fuente(s) de luz respectiva(s) y los píxeles situados sobre el plano de la imagen. La Fig. 2 representa un camino 20 de rayo ilustrativo que incluye reflexiones en dos superficies 21 y 22 que son primordialmente brillantes pero casi especulares, seguidas por una reflexión en una superficie 23 que es primordialmente brillante pero casi difusa. Las reflexiones están representadas realmente en la Fig. 2 por refracciones para simplificar el tratamiento. El rayo 24, que representa el flujo de fotones que incide en la primera superficie 21, al tener lugar la reflexión es dividido en un número escogido de rayos que tienen direcciones que dependen de las características de la superficie 21. En la ilustración representada en la Fig. 2, el rayo 24 incidente en la superficie 21 es dividido en dos rayos 25 y 26, pero se apreciará que el sistema informático 10 de gráficos puede ser controlado de forma que se divida el rayo incidente en cualquier número de rayos al producirse la reflexión en la superficie. En la ilustración representada en la Fig. 2, ambos rayos 25 y 26 se dirigen a la superficie 22, pero con ángulos de incidencia ligeramente diferentes puesto que la superficie 21 es casi especular.
Al igual que el rayo 24 que incide en la superficie 21, los rayos 25 y 26 que se dirigen a la superficie 22 se dividirán en un número escogido de rayos que tienen direcciones que dependen de sus ángulos de incidencia así como de las características de la superficie 22; en la ilustración representada en la Fig. 2, el rayo 25 es dividido en dos rayos 27 y 28, y el rayo 26 es dividido en los rayos 29 y 30. Puesto que la superficie 22 es casi especular, los rayos 27 y 28 tienen casi el mismo ángulo de reflexión que los rayos 29 y 30. En la ilustración representada en la Fig. 2, los rayos 28 y 29 tienen también casi los mismos ángulos de reflexión al abandonar la superficie 22, mientras que los ángulos de reflexión de los rayos 27 y 30 difieren algo más sustancialmente.
Los rayos 27 a 30 son todos incidentes en la superficie 23. Al igual que las superficies 21 y 22, los ángulos de reflexión de los rayos reflejados en la superficie 23 dependerán de los ángulos de incidencia así como de las características superficiales de la superficie 23. Puesto que la superficie 23 es casi difusa, los ángulos de reflexión de los rayos 31 a 38 que son reflejados por la superficie 23 diferirán más sustancialmente que con las superficies 21 y 22 casi especulares. Sin embargo, los rayos, tales como los rayos 28 y 29, que tienen casi el mismo ángulo de incidencia, pares de rayos reflejados asociados, tendrán sustancialmente los mismos ángulos de reflexión. Esto se ilustra por el par de rayos 33 y 35 y el par de rayos 34 y 36.
La colección de rayos comprende un árbol de rayos, siendo el rayo 24 la raíz para el árbol de la ilustración representada en la Fig. 2. Cada rayo del árbol de rayos está identificado por un número de instancia, estando identificado el rayo 24 que incide en la superficie 21 con el número de instancia "i" y estando basados los rayos subsiguientes en ese número de instancia. Por consiguiente, los rayos 25 y 26, en los cuales se divide el rayo 24 al producirse la reflexión en la superficie 21, tendrán los números de instancia "i+1" e "i+2". De manera similar, los rayos 27 y 28, en los cuales se divide el rayo 25 al producirse la reflexión en la superficie 22, tendrán los números de instancia "i+2" e "i+3" y los rayos 29 y 30, en los cuales se divide el rayo 26 al producirse la reflexión en la superficie 22, tendrán los números de instancia "i+3" e "i+4". Como se muestra además en la ilustración representada en la Fig. 2, cada uno de los rayos 27 a 30, a su vez, se dividirá en un número escogido de rayos 31 a 38 cuando sean reflejados por la superficie 23 casi difusa, teniendo cada rayo un número de instancia que se basa en el número de instancia del rayo incidente.
Como resulta obvio, existe un solape en los números de instancia correspondientes a los diversos rayos, dependiendo el grado de solape del número de rayos en los cuales se divide cada rayo cuando interactúa con una superficie respectiva. Una investigación de la Fig. 2 revela que hay tres rayos, es decir, los rayos 28, 29 y 31 con el mismo número de instancia "i+3", dos de los cuales, es decir, los rayos 28 y 29, son reflejados por la superficie 22 e incidentes en la superficie 23, y los cuales tienen características espaciales similares. Adicionalmente, existen cuatro rayos, es decir, los rayos 30, 32, 33 y 35 con el mismo número de instancia "i+4", dos de los cuales, es decir, los rayos 33 y 35, son reflejados por la superficie 23 y tienen características espaciales similares. Generalmente, puesto que las superficies 21 y 22 son casi especulares, los rayos 27 a 30 tendrán casi las mismas direcciones y tendrán características espaciales muy similares. Por consiguiente, aunque los rayos reflejados por la superficie 23 casi difusa tendrán un cierto número de direcciones, puesto que muchos de los rayos que inciden sobre la superficie 23 lo hacen con ángulos similares, muchos de los rayos reflejados por la superficie 23 tendrán también unas direcciones y otras características espaciales similares. Se apreciará que la extensión del solape en los números de instancia dependerá del número de rayos en los cuales se divide cada rayo incidente al producirse su interacción con una superficie, y el grado en el cual los rayos reflejados tienen características espaciales similares dependerá de las características de la superficie desde la cual sean reflejados.
Generalmente, una imagen es restituida evaluando las integrales para evaluar los rayos que se trazan entre una fuente de luz y los píxeles sobre el plano de la imagen, representando los rayos los caminos que serían recorridos por los fotones entre una fuente de luz respectiva y el píxel situado sobre el plano de la imagen. Las evaluaciones de las integrales proporcionan esencialmente una información sobre la intensidad y el color del flujo de fotones que incide sobre los píxeles respectivos del plano de imagen. Típicamente, las integrales tienen la forma de:
104
Como se observó anteriormente, las integrales tales como la representada por la ecuación (6) (que es la misma que la ecuación (1)) no tienen típicamente unas soluciones de forma cerrada, y por consiguiente son generalmente evaluadas numéricamente. Se puede evaluar numéricamente una integral tal como la representada por la ecuación (6) de la manera siguiente:
105
donde cada término 106 de la suma es una evaluación de la función "f" en el punto de muestra 107 en el dominio de la integración. Se puede generar los puntos de muestra usando cualquier número de metodologías; la solicitud de Grabenstein describe una metodología en la cual los puntos de muestra comprenden unas muestras de secuencias s-dimensionales estrictamente determinísticas de baja discrepancia, tales como las secuencias de Halton, y la solicitud de Keller describe una metodología en la cual los puntos de muestra comprenden unos conjuntos s-dimensionales de puntos de Hammersley. Generalmente, algunas de las dimensiones s_{1}, ... s_{n} están asociadas a las trazas de fotones respectivas entre la fuente de luz y el plano de la imagen.
Pueden surgir problemas particularmente en situaciones en las cuales cierto número de rayos tienen direcciones sustancialmente similares, tal como los rayos 28 y 29 reflejados por la superficie 22 y que inciden en la superficie 23, y los rayos 33 y 35 reflejados por la superficie 23 puesto que es probable que se usen los mismos puntos de muestra para evaluar las integrales y así al menos la parte de las integrales que se refiere a esos rayos tendrá sustancialmente las mismas evaluaciones numéricas. Para adaptarse a eso, en vez de usar la ecuación (2) para evaluar numéricamente la integral de la ecuación (1), se puede evaluar la integral como
108
donde S^{(j)}_{i_{j}} son los operadores de rotación de Cranley-Patterson, es decir, desplazamientos de módulo "uno" usando las dimensiones correspondientemente más altas hasta s_{1}, ... s_{n} puntos de muestra dimensionales X^{(j)}_{i_{j}}, donde las primeras coordenadas s_{j} de cada punto de muestra X^{(j)}_{i_{j}} corresponden a X^{(j)}_{i_{j}} de la ecuación (6). Se puede tomar las coordenadas de los puntos de muestra X^{(j)}_{i_{j}} de una secuencia de Halton, una secuencia de Halton aleatorizada o cualquier otra secuencia de baja discrepancia. Para los diferentes valores del índice "j" se puede usar la misma secuencia de baja discrepancia u otra diferente. Por ejemplo, si los valores de alguno de los índices de división son conocidos previamente, se puede usar conjuntos de puntos de Hammersley aleatorizados o no aleatorizados. Para evitar desplazamientos repetidos usando la misma dimensión de las mismas secuencias de baja discrepancia, preferiblemente el valor de s_{j} es mayor de cero para j = 1, ..., n. Como ejemplo, si se usan secuencias de Halton aleatorizadas, los mismos puntos para la dimensión d, con s_{1} +...+s_{l} < d \leq s_{1} +...+s_{l+1} vendrán dados por
109
Donde cada \Phi_{b}(i, \sigma_{b} es un radical inverso aleatorizado definido por
110
para las bases b = b_{1}, ..., y las permutaciones \sigma = \sigma_{1}, ... para las bases respectivas. La aplicación de Keller describe una permutación ilustrativa \sigma que se define de manera recurrente como sigue. Comenzando a partir de la permutación \sigma_{2} = (0, 1) para la base b = 2, la secuencia de permutaciones se define como sigue:
(i)
si la base "b" es par, se genera la permutación \sigma_{b} tomando en primer lugar los valores de 2 \sigma_{b/2} y añadiendo los valores de 2 \sigma_{b/2}+1, y
(ii)
si la base "b" es impar, se genera la permutación \sigma_{b} tomando los valores de \sigma_{b-1} incrementando cada valor que sea mayor o igual a valores de (b-1)/2 en uno, e insertando el valor b+1 en el centro.
Este procedimiento recurrente da lugar a las permutaciones siguientes:
\sigma_{1} = (0, 1)
\sigma_{3} = (0, 1, 2)
\sigma_{4} = (0, 2, 1, 3)
\sigma_{5} = (0, 3, 2, 1, 4)
\sigma_{6} = (0, 2, 4, 1, 3, 5)
\sigma_{7} = (0, 2, 5, 3, 1, 4, 6)
\sigma_{8} = (0, 4, 2, 6, 1, 5, 3, 7)
Por consiguiente, dado el inverso radical para el valor "i" en la base "b" si el dígito "k-ésimo" de la representación para el inverso radical tiene el valor "j", el dígito "k-ésimo" del inverso radical aleatorizado tiene el valor correspondiente al valor del dígito "j-ésimo" de la permutación \sigma_{b} anterior.
Típicamente, el nivel de recurrencia en el trazado del rayo no debe exceder la profundidad del rayo, que generalmente se relaciona con el número de rayos que comprende un camino entre una fuente de luz y el plano de la imagen. Se puede generar muy rápidamente secuencias de Halton aleatorizadas y no aleatorizadas y conjuntos de puntos de Hammersley, puesto que se basan en la función inversa radical, la cual a su vez es muy plana. Aun con una profundidad de traza bastante grande, el costo de generar las coordenadas para los puntos de muestra es típicamente inferior al costo de generar los valores numéricos para la función "f" correspondiente a los puntos de muestra respectivos, los cuales, adicionalmente a la evaluación numérica pueden incluir también unos ensayos de intersección, búsquedas correspondientes a densidad o textura, etc.
Según la invención, se describe a continuación una metodología que explota la conservación en memoria caché de coordenadas de los puntos de muestra e ilustra como se puede usar las muestras guardadas en memoria caché en el trazado de rayos distribuido, en el cual se distribuye el trazado de rayos a través de una pluralidad de procesadores que proporciona el módulo de procesadores 11 (Fig. 1). Las ventajas de guardar en memoria caché resultan más evidentes si se usan metodologías que consumen más tiempo para generar secuencias de baja discrepancia en vez de la secuencia de Halton. Se describirá la nueva metodología en relación con el Segmento de Código 1:
111
112
113
El Segmento de Código 1 comprende dos clases, es decir, QMCContext y Ray. Una clase, la clase QMCContext, que comprende las líneas (1) a (13), proporciona dos métodos, es decir, un método get_sample y un método set_up_child_context. El método get_sample, que comprende las líneas (8) a la (17) proporciona los puntos de muestra que se usan en la ecuación (8). Cada nivel de contexto está esencialmente asociado a un nivel en el árbol de rayo (referencia Fig. 2). El método get_sample funciona de manera recurrente. Inicialmente, en la línea (10) determina si el nivel de recurrencia es el nivel de raíz, lo cual será el caso si no existe padre. Si existe un nivel de padre, el método get_sample verifica una memoria caché que se mantiene para el nivel padre en la recurrencia a fin de determinar si contiene un punto de muestra (línea 11). Si la memoria caché no contiene un punto de muestra, actualiza el punto de muestra para el nivel de recurrencia actual en la línea (16), y proporciona el punto de muestra actualizado a un método de la clase Ray como se describirá a continuación. Por otra parte, si la memoria caché no contiene un punto de muestra, el método get_sample genera el punto de muestra a partir del nivel de padre del padre en la línea (14), y añade el punto de muestra a la memoria caché del padre en la línea (15). A continuación, en la línea (16) el método get_sample actualiza el punto de muestra que generó en la línea (14) para el nivel de recurrencia actual en la línea (16) y proporciona el punto de muestra actualizado al método en la clase Ray. Finalmente, si en la línea se determina que no hay padre, lo cual será el caso si el nivel de recurrencia es el nivel de raíz, el método get_sample genera el punto de muestra en la línea (16) y proporciona el punto de muestra al método en la clase Ray.
El método setup_child_context, que comprende las líneas (18) a (23) de la clase QMCContext, inicia los métodos proporcionados por la clase QMCContext para el siguiente nivel inferior, si lo hubiera.
La clase Ray, que comprende las líneas (24) a la (36) inicia los métodos proporcionados por la clase QMCContext y adicionalmente incluye un método Shade. El método Shade, que comprende las líneas (27) a la (36), el cual se usa para evaluar la ecuación (8) correspondiente a un rayo concreto, invoca ambos métodos en el contexto de la clase QMCContext. El método Shade, en la línea (32), invoca el método get_sample en el contexto de la clase QMCContext para proporcionar unos puntos de muestra, los cuales son utilizados en la línea (33) para generar una muestra para su uso en relación con la ecuación (8). En la línea (34), el método Shade invoca el método setup_child_context en la clase QMCContext para preparar la clase QMCContext para el nivel de contexto siguiente, si lo hubiera.
La invención proporciona un sistema de gráficos de ordenador nuevo y mejorado que genera unos valores de pixel en una imagen que se restituye usando secuencias de baja discrepancia estrictamente determinísticas y rotaciones recurrentes, tales como la rotación de Cranley-Patterson, para proporcionar unos puntos de muestra para evaluar numéricamente las integrales que representan los valores de los píxeles.
Aunque se ha descrito la invención con rotaciones recurrentes de Cranley-Patterson, se apreciará que se puede usar otros tipos de rotaciones.
Se apreciará que se puede construir un sistema de acuerdo con la invención en su totalidad o en parte a partir de un hardware para uso especial o de un sistema informático para uso general, o de cualquier combinación de los mismos, pudiendo estar controlada cualquier parte del mismo por un programa adecuado. Cualquier programa puede comprender, en todo o parcialmente, una parte del sistema o para ser guardada en el mismo de manera convencional, o puede ser proporcionado al sistema, en todo o parcialmente, a través de una red u otro mecanismo para transferir información de manera convencional. Adicionalmente, se apreciará que el sistema puede ser operado y/o controlado de otra manera mediante la información proporcionada por un operador que usa elementos de entrada de operador (no representados), los cuales pueden ser conectados directamente al sistema o los cuales 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 precedente se ha limitado a una realización específica de esta invención. Resultará obvio, sin embargo, que se puede hacer diversas variaciones y modificaciones a la invención, alcanzando alguna o todas las ventajas de la misma. Es el objeto de las reivindicaciones anexas cubrir éstas y aquellas otras variaciones y modificaciones de este tipo como corresponden dentro del objeto de la invención.

Claims (9)

1. Un sistema de gráficos de ordenador para generar un valor de píxel correspondiente a un píxel de una imagen, siendo el píxel representativo de un punto de una escena, generando el sistema de gráficos de ordenador el valor del píxel por una evaluación de una integral de una función seleccionada, comprendiendo el sistema de gráficos de ordenador:
A.
un generador de puntos de muestra configurado para generar unos conjuntos respectivos de puntos de muestra cada uno de ellos asociado con uno de una serie de rayos de una traza de rayos configurada para tener una pluralidad de niveles de traza, siendo dividido el rayo al menos en un nivel en una pluralidad de rayos, estando cada rayo asociado con un identificador de instancia de rayo, estando configurado el generador de puntos de muestra para generar los puntos de muestra como una secuencia estrictamente determinística de baja discrepancia predeterminada a la cual se aplica un operador de rotación seleccionado de forma recurrente para los niveles respectivos; y
B.
un evaluador de funciones configurado para generar una pluralidad de valores de función cada uno de los cuales representa una evaluación de dicha función seleccionada en uno de los puntos de muestra generados por dicho generador de puntos de muestra y usar los valores de la función para general el valor del píxel.
2. Un sistema de gráficos de ordenador como el definido en la reivindicación 1, en el cual el operador de rotación seleccionado es el operador de rotación de Cranley-Patterson.
3. Un sistema de gráficos de ordenador como el definido en la reivindicación 1, en el cual el generador de puntos de muestra está configurado para guardar en memoria caché los puntos de muestra que genera para los niveles de traza respectivos y usar los puntos de muestra guardados en memoria caché durante la generación de los puntos de muestra para los niveles de traza subsiguientes.
4. Un método de gráficos de ordenador para generar un valor de píxel correspondiente a un píxel de una imagen, siendo el píxel representativo de un punto de una escena, generando el sistema de gráficos de ordenador el valor del píxel por una evaluación de una integral de una función seleccionada, comprendiendo el método de gráficos de ordenador:
A.
una etapa de generador de puntos de muestra para generar unos conjuntos respectivos de puntos de muestra cada uno de ellos asociado con uno de una serie de rayos de una traza de rayos configurada para tener una pluralidad de niveles de traza, siendo dividido el rayo al menos en un nivel en una pluralidad de rayos, estando cada rayo asociado con un identificador de instancia de rayo, incluyendo la etapa de generador de puntos de muestra la etapa de generar los puntos de muestra como una secuencia estrictamente determinística de baja discrepancia predeterminada a la cual se aplica un operador de rotación seleccionado de forma recurrente para los niveles respectivos; y
B.
una etapa de evaluador de funciones para generar una pluralidad de valores de función cada uno de los cuales representa una evaluación de dicha función seleccionada en uno de los puntos de muestra generados durante dicha etapa de generador de puntos de muestra y usar los valores de la función para general el valor del píxel.
5. Un método de gráficos de ordenador como el definido en la reivindicación 4, en el cual el operador de rotación seleccionado es el operador de rotación de Cranley-Patterson.
6. Un método de gráficos de ordenador como el definido en la reivindicación 4, en el cual la etapa de generador de puntos de muestra incluye la etapa de guardar en memoria caché los puntos de muestra que genera para los niveles de traza respectivos y usar los puntos de muestra guardados en memoria caché durante la generación de los puntos de muestra para los niveles de traza subsiguientes.
7. Un producto de programa informático para su uso en relación con un ordenador a fin de proporcionar un sistema de gráficos de ordenador para generar un valor de píxel correspondiente a un píxel de una imagen, siendo el píxel representativo de un punto de una escena, generando el sistema de gráficos de ordenador el valor del píxel por una evaluación de una integral de una función seleccionada, comprendiendo el sistema de gráficos de ordenador:
A.
un módulo de generador de puntos de muestra configurado para hacer posible que el ordenador genere unos conjuntos respectivos de puntos de muestra cada uno de ellos asociado con uno de una serie de rayos de una traza de rayos configurada para tener una pluralidad de niveles de traza, siendo dividido el rayo al menos en un nivel en una pluralidad de rayos, estando cada rayo asociado con un identificador de instancia de rayo, estando configurado el generador de puntos de muestra para generar los puntos de muestra como una secuencia estrictamente determinística de baja discrepancia predeterminada a la cual se aplica un operador de rotación seleccionado de forma recurrente para los niveles respectivos; y
\newpage
B.
un módulo de evaluador de funciones configurado para permitir al ordenador generar una pluralidad de valores de función cada uno de los cuales representa una evaluación de dicha función seleccionada en uno de los p9untos de muestra generados por dicho generador de puntos de muestra y usar los valores de la función para general el valor del píxel.
8. Un producto de programa informático como el definido en la reivindicación 7, en el cual el operador de rotación seleccionado es el operador de rotación de Cranley-Patterson.
9. Un producto de programa informático como el definido en la reivindicación 7, en el cual el módulo de generador de puntos de muestra está configurado para hacer posible que el ordenador guarde en memoria caché los puntos de muestra que genera para los niveles de traza respectivos y usar los puntos de muestra guardados en memoria caché durante la generación de los puntos de muestra para los niveles de traza subsiguientes.
ES02749248T 2001-06-07 2002-06-07 Generacion de imagen usando metodologias estrictamente deterministas que usan rotaciones recurrentes para generar puntos de muestra. Expired - Lifetime ES2290320T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29713901P 2001-06-07 2001-06-07
US297139P 2001-06-07

Publications (1)

Publication Number Publication Date
ES2290320T3 true ES2290320T3 (es) 2008-02-16

Family

ID=23145021

Family Applications (3)

Application Number Title Priority Date Filing Date
ES02778898T Expired - Lifetime ES2311067T3 (es) 2001-06-07 2002-06-07 Restitucion de imagenes usando la metodologia de la ruleta rusa para evaluar la iluminacion global.
ES02749248T Expired - Lifetime ES2290320T3 (es) 2001-06-07 2002-06-07 Generacion de imagen usando metodologias estrictamente deterministas que usan rotaciones recurrentes para generar puntos de muestra.
ES02765146T Expired - Lifetime ES2315396T3 (es) 2001-06-07 2002-06-07 Restitucion de imagenes utilizando una metodologia estrictamente deterministica para generar una secuencia tosca de puntos de muestra.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES02778898T Expired - Lifetime ES2311067T3 (es) 2001-06-07 2002-06-07 Restitucion de imagenes usando la metodologia de la ruleta rusa para evaluar la iluminacion global.

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES02765146T Expired - Lifetime ES2315396T3 (es) 2001-06-07 2002-06-07 Restitucion de imagenes utilizando una metodologia estrictamente deterministica para generar una secuencia tosca de puntos de muestra.

Country Status (9)

Country Link
US (3) US7046244B2 (es)
EP (3) EP1397782B1 (es)
JP (3) JP4133806B2 (es)
AT (3) ATE373288T1 (es)
AU (3) AU2002329516B2 (es)
CA (3) CA2449684A1 (es)
DE (3) DE60229129D1 (es)
ES (3) ES2311067T3 (es)
WO (3) WO2002101657A1 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7502027B1 (en) * 1999-09-13 2009-03-10 Solidworks Corporation Electronic drawing viewer
US7952583B2 (en) * 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient ray tracing
US7659894B2 (en) * 2000-06-19 2010-02-09 Mental Images Gmbh Terminating spatial partition hierarchies by a priori bounding memory
US7499053B2 (en) * 2000-06-19 2009-03-03 Mental Images Gmbh Real-time precision ray tracing
US8248416B2 (en) * 2000-06-19 2012-08-21 Mental Images Gmbh Efficient ray tracing without acceleration data structure
US7184042B2 (en) * 2000-06-19 2007-02-27 Mental Images Gmbh Computer graphic system and computer-implemented method for generating images using a ray tracing methodology that makes use of a ray tree generated using low-discrepancy sequences and ray tracer for use therewith
US7773088B2 (en) * 2000-06-19 2010-08-10 Mental Images Gmbh Simultaneous simulation of markov chains using quasi-monte carlo techniques
US8188997B2 (en) * 2000-06-19 2012-05-29 Mental Images Gmbh Accelerated ray tracing using shallow bounding volume hierarchies
US20050278406A1 (en) * 2002-05-15 2005-12-15 Alexander Keller System and computer-implemented method for evaluating integrals using stratification by rank-1 lattices
US7589729B2 (en) * 2002-05-15 2009-09-15 Mental Images Gmbh Image synthesis by rank-1 lattices
US7567248B1 (en) * 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
US7298370B1 (en) * 2005-04-16 2007-11-20 Apple Inc. Depth ordering of planes and displaying interconnects having an appearance indicating data characteristics
US8698844B1 (en) * 2005-04-16 2014-04-15 Apple Inc. Processing cursor movements in a graphical user interface of a multimedia application
WO2007002494A2 (en) * 2005-06-23 2007-01-04 Mental Images Gmbh Real-time precision ray tracing
EP2052366A2 (en) * 2006-08-15 2009-04-29 Mental Images GmbH Simultaneous simulation of markov chains using quasi-monte carlo techniques
WO2008076852A1 (en) * 2006-12-14 2008-06-26 Mental Images Gmbh Computer graphics using meshless finite elements for light transport
US7755628B2 (en) 2006-12-29 2010-07-13 Intel Corporation Method and apparatus for multi-level ray tracing
US8623019B2 (en) * 2007-07-03 2014-01-07 Pioneer Surgical Technology, Inc. Bone plate system
US9619917B2 (en) 2008-10-03 2017-04-11 Apple Inc. Depth of field for a camera in a media-editing application
US8131770B2 (en) * 2009-01-30 2012-03-06 Nvidia Corporation System, method, and computer program product for importance sampling of partitioned domains
US8266623B2 (en) 2009-04-29 2012-09-11 Nvidia Corporation System, method, and computer program product for decomposing a sampling task into a plurality of jobs
KR101661166B1 (ko) * 2010-06-14 2016-09-29 연세대학교 산학협력단 3차원 영상 시스템에서 광선 추적 방법 및 장치
US8860725B2 (en) 2010-08-13 2014-10-14 Nvidia Corporation System, method, and computer program product for deterministically simulating light transport
JP2012181825A (ja) * 2011-02-09 2012-09-20 Canon Inc 画像処理装置およびその方法
JP5839907B2 (ja) * 2011-09-15 2016-01-06 キヤノン株式会社 画像処理装置および画像処理方法
US8847957B1 (en) * 2011-10-05 2014-09-30 Nvidia Corporation Divide-and-conquer system, method, and computer program product for providing photon mapping
CN102496170A (zh) * 2011-12-06 2012-06-13 阳赛 一种用于采样任务分解的方法
CN102496173A (zh) * 2011-12-06 2012-06-13 阳赛 一种用于采样点分离的数字偏移方法
US9202139B2 (en) * 2012-07-18 2015-12-01 Nvidia Corporation System, method, and computer program product for generating a subset of a low discrepancy sequence
US9367955B2 (en) * 2012-11-26 2016-06-14 Nvidia Corporation System, method, and computer program product for tiled screen space sample scrambling for parallel deterministic consistent light transport simulation
KR102223064B1 (ko) * 2014-03-18 2021-03-04 삼성전자주식회사 영상 처리 장치 및 방법
US9679398B2 (en) * 2015-10-19 2017-06-13 Chaos Software Ltd. Rendering images using color contribution values of render elements
CN114646290B (zh) * 2022-03-02 2023-08-25 中国地质调查局西安矿产资源调查中心 一种地球物理勘探野外点位放样方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6529193B1 (en) * 1996-06-25 2003-03-04 Mental Images Gmbh & Co. Kg System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points
CA2258928A1 (en) 1996-06-25 1997-12-31 Mental Images G.M.B.H. & Co., Kg. System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points
GB9713186D0 (en) * 1997-06-24 1997-08-27 Univ Sheffield Artificial joints
US6664961B2 (en) * 2000-12-20 2003-12-16 Rutgers, The State University Of Nj Resample and composite engine for real-time volume rendering

Also Published As

Publication number Publication date
US6911976B2 (en) 2005-06-28
EP1419485A1 (en) 2004-05-19
JP2005506607A (ja) 2005-03-03
JP4344606B2 (ja) 2009-10-14
ATE402458T1 (de) 2008-08-15
DE60227811D1 (de) 2008-09-04
AU2002329516B2 (en) 2008-10-02
WO2002099751A1 (en) 2002-12-12
US20030034968A1 (en) 2003-02-20
CA2449690C (en) 2008-03-25
JP2005503607A (ja) 2005-02-03
US7046244B2 (en) 2006-05-16
ES2311067T3 (es) 2009-02-01
AU2002319869B2 (en) 2008-10-02
CA2449684A1 (en) 2002-12-12
US6885370B2 (en) 2005-04-26
AU2002348894B2 (en) 2008-10-16
JP4133806B2 (ja) 2008-08-13
US20030052874A1 (en) 2003-03-20
CA2449282A1 (en) 2002-12-19
US20030063082A1 (en) 2003-04-03
CA2449690A1 (en) 2002-12-12
EP1405271B1 (en) 2008-07-23
DE60222437T2 (de) 2008-06-12
ES2315396T3 (es) 2009-04-01
EP1397782A1 (en) 2004-03-17
ATE373288T1 (de) 2007-09-15
CA2449282C (en) 2010-01-05
EP1397782B1 (en) 2008-10-01
EP1419485B1 (en) 2007-09-12
WO2002099754A1 (en) 2002-12-12
EP1405271A1 (en) 2004-04-07
WO2002101657A1 (en) 2002-12-19
JP4100625B2 (ja) 2008-06-11
DE60222437D1 (de) 2007-10-25
JP2005505810A (ja) 2005-02-24
DE60229129D1 (de) 2008-11-13
ATE409928T1 (de) 2008-10-15

Similar Documents

Publication Publication Date Title
ES2290320T3 (es) Generacion de imagen usando metodologias estrictamente deterministas que usan rotaciones recurrentes para generar puntos de muestra.
ES2272547T3 (es) Generacion de valores de pixeles utilizando metodologias estrictamente deterministicas para generar puntos de muestra.
US6529193B1 (en) System and method for generating pixel values for pixels in an image using strictly deterministic methodologies for generating sample points
US7358971B2 (en) Generating images using ray tracing and ray tree generated using low-discrepancy sequences
US7453461B2 (en) Image generation using low-discrepancy sequences
AU2002319869A1 (en) Image rendering using strictly deterministic methodologies using recursive rotations for generating sample points
US7425957B2 (en) Computer graphics methods and systems using quasi-monte carlo methodology
US20080049019A1 (en) Generating Images Using Multiple Photon Maps
US20090141026A1 (en) Computer graphics with enumerating qmc sequences in voxels
US20070211051A1 (en) Computer Graphics Systems, Methods and Computer Program Products Using Sample Points Determined Using Low-Discrepancy Sequences
US20050278406A1 (en) System and computer-implemented method for evaluating integrals using stratification by rank-1 lattices
EP1628263B1 (en) Generating pixel values using strictly deterministic methodologies for generating sample points
Bungartz et al. Global illumination in computer graphics
CN117011438A (zh) 头发渲染方法、装置、设备、存储介质和计算机程序产品