ES2893260T3 - Sombreado representaciones CG de materiales - Google Patents

Sombreado representaciones CG de materiales Download PDF

Info

Publication number
ES2893260T3
ES2893260T3 ES15167852T ES15167852T ES2893260T3 ES 2893260 T3 ES2893260 T3 ES 2893260T3 ES 15167852 T ES15167852 T ES 15167852T ES 15167852 T ES15167852 T ES 15167852T ES 2893260 T3 ES2893260 T3 ES 2893260T3
Authority
ES
Spain
Prior art keywords
mirror
color
image
mirrors
illumination color
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.)
Active
Application number
ES15167852T
Other languages
English (en)
Inventor
Peter Ognyanov Mitev
Ivaylo Katev Iliev
Ivelin Yankov Yordanov
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.)
Chaos Software Ltd
Original Assignee
Chaos Software Ltd
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 Chaos Software Ltd filed Critical Chaos Software Ltd
Application granted granted Critical
Publication of ES2893260T3 publication Critical patent/ES2893260T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/16Using real world measurements to influence rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Spectrometry And Color Measurement (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Investigating Or Analysing Materials By Optical Means (AREA)
  • Compounds Of Alkaline-Earth Elements, Aluminum Or Rare-Earth Metals (AREA)
  • Polyurethanes Or Polyureas (AREA)
  • Compositions Of Macromolecular Compounds (AREA)

Abstract

Un método de sombreado de representaciones gráficas por ordenador de materiales, comprendiendo el método: obtener (1002) datos que describen un material físico, en donde los datos que describen el material físico incluyen una pluralidad de imágenes en paleta de una primera muestra (250) del material físico, en donde cada una de las imágenes en paleta comprende una imagen reflejada respectiva de una primera muestra del material físico reflejada por un espejo respectivo de una pluralidad de espejos (204); recibir (1004) una solicitud de sombreado para sombrear un punto particular en una representación de gráficos por ordenador del material físico de un motor de representación, en donde la solicitud identifica una posición de mapeo del punto particular, una dirección de vista en la posición de mapeo, y una dirección de luz en la posición de mapeo; calcular (1006) un color de iluminación directa en la posición de mapeo usando la pluralidad de imágenes en paleta; calcular (1008) un color de iluminación indirecta en la posición de mapeo usando los datos que describen el material físico; generar (1010) un color final en la posición de mapeo combinando el color de iluminación directa y el color de iluminación indirecta; proporcionar (1012) el color final al motor de representación para su uso al representar la representación de gráficos por ordenador del material físico; generar (1102) un diagrama Voronoi (1150) de un hemisferio definido por posiciones de la pluralidad de espejos que reflejan, cada uno, una vista de la muestra de material situada por encima de la pluralidad de espejos desde una perspectiva diferente; generar (1104) una tabla bidimensional que contiene una pluralidad de celdas, en donde cada una de las celdas está mapeada al hemisferio por un par de ángulos respectivos, horizontal y vertical; y para cada una de las celdas: construir (1106) un círculo sobre una superficie del elipsoide en el par de ángulos horizontal y vertical que corresponde a la celda, y almacenar (1108) una pluralidad de pares [posición, peso] como datos que corresponden a la celda, que comprende: ubicar aleatoriamente un número predeterminado de puntos dentro del círculo, para cada uno de los puntos, determinar un espejo respectivo más cercano, para cada uno de los espejos, determinar un recuento de puntos que tenga el espejo como el espejo más cercano al punto, y determinar un par [posición, peso] respectivo para cada uno de los espejos, en donde la posición identifica el espejo y el peso se determina dividiendo el recuento de puntos para el espejo entre el número predeterminado.

Description

DESCRIPCIÓN
Sombreado representaciones CG de materiales
Antecedentes
Esta memoria descriptiva se refiere al sombreado de representaciones de materiales de gráficos por ordenador (CG). Durante el proceso de representar una representación CG de un material, se pueden usar una o más técnicas de sombreado para determinar, p. ej., el color y el brillo de las superficies del material, basándose en la iluminación deseada en la escena representada.
"Material Classification using BRDF Slices" (Wang etal., 2009 IEEE Conf. Comput. Vis. Pat. Recog. (2009) págs. 2805­ 2811) describe la obtención de muchas imágenes de un objeto en diferentes condiciones de iluminación para tener más muestras de Función de Distribución de Reflectancia Bidireccional (BRDF) de las superficies.
"A Basis Illumination Approach to BRDF Measurement" (Ghosh et al., Int. J. Comput. Vis. 90:2 (2010) págs. 183-197) describe la medición de BRDF en una representación de base proyectando la luz incidente como una secuencia de funciones de base desde una zona de direcciones esférica.
Sumario
En general, un aspecto innovador de la materia objeto descrita en esta memoria descriptiva puede materializarse en un aparato que incluye una fuente de luz que tiene una lente para emitir luz; una pluralidad de primeros espejos planos, en donde la fuente de luz puede moverse para iluminar directamente cada espejo plano de la pluralidad de primeros espejos planos; un soporte de muestra configurado para suspender una muestra de material entre la pluralidad de primeros espejos y la fuente de luz, en donde el soporte de muestra está situado de manera que cada uno de los primeros espejos refleja una vista respectiva de la muestra de material desde una perspectiva diferente; y una cámara próxima a la fuente de luz y configurada para capturar una imagen respectiva de los primeros espejos que reflejan la muestra de material mientras que la fuente de luz está situada para iluminar directamente cada uno de los espejos planos.
Estas y otras realizaciones pueden incluir, opcionalmente, una o más de las siguientes características. La luz emitida puede ser luz colimada. Iluminar directamente un espejo plano puede incluir emitir luz desde la lente de la fuente de luz que es reflejada por un segundo espejo para intersecar el primer espejo plano. La cámara puede configurarse adicionalmente para proporcionar las imágenes a un sistema para su uso en la generación de estructuras de datos para sombrear una representación de gráficos de ordenador de la muestra de material. Los primeros espejos planos pueden estar dispuestos de modo que respectivas superficies de los primeros espejos planos definan un elipsoide. Un centro de la muestra de material puede situarse en un primer punto focal de una elipse formada tomando una sección transversal del elipsoide que pasa a través de un centro del elipsoide y se encuentra a lo largo de un semieje del elipsoide. La cámara puede estar situada en un segundo punto focal de la elipse. La fuente de luz puede estar montada en un disco giratorio.
En general, otro aspecto innovador de la materia objeto descrita en esta memoria descriptiva puede materializarse en métodos que incluyen las acciones de obtención de una pluralidad de primeras imágenes, en donde cada primera imagen incluye una pluralidad de regiones, en donde cada región corresponde a un espejo respectivo de una pluralidad de espejos y comprende una imagen reflejada de una primera muestra de un material reflejado por el espejo correspondiente, y en donde la pluralidad de espejos define un elipsoide; para cada primera imagen: generar una imagen respectiva de región para cada región en la primera imagen extrayendo la imagen reflejada que corresponde a la región de la primera imagen, en donde cada imagen de región comprende una pluralidad respectiva de píxeles de imagen de región y convertir en paleta cada una de las imágenes de región; y proporcionar cada imagen convertida en paleta a un motor de representación de gráficos por ordenador (CG) para su uso al sombrear una representación CG del material.
Otras realizaciones de este aspecto incluyen los correspondientes sistemas informáticos, aparatos y programas informáticos grabados en uno o más dispositivos de almacenamiento informático, cada uno configurado para realizar las acciones de los métodos.
Un sistema de uno o más ordenadores puede estar configurado para realizar operaciones o acciones particulares gracias a tener software, firmware, hardware o una combinación de estos instalados en el sistema que, en funcionamiento, hace que el sistema realice las acciones. Uno o más programas informáticos pueden estar configurados para realizar operaciones o acciones particulares gracias a incluir instrucciones que, cuando son ejecutadas por el aparato de procesamiento de datos, hacen que el aparato realice las acciones.
Estas y otras realizaciones pueden incluir, opcionalmente, una o más de las siguientes características. El método puede incluir adicionalmente obtener datos de calibración de geometría y datos de calibración de color para su uso al calibrar la pluralidad de primeras imágenes. Generar la imagen de región respectiva para cada región en la primera imagen puede incluir: extraer la imagen reflejada que corresponde a la región de la primera imagen usando los datos de calibración de geometría; y ajustar el color de la imagen reflejada usando los datos de calibración de color para generar la imagen de región. El método puede incluir adicionalmente para cada píxel de imagen de región: dividir el elipsoide definido por la pluralidad de espejos en un primer número de sectores, en donde un rayo reflejado por el material tiene una probabilidad igual de aterrizar en cada uno de los sectores, dividir cada uno de los sectores en un segundo número de piezas, en donde un rayo reflejado por el material tiene una probabilidad igual de aterrizar en cada una de las piezas, y generar una tabla que tiene una pluralidad de celdas, en donde cada una de las celdas en la tabla almacena datos que identifican un centro de una respectiva pieza del elipsoide. El método puede incluir adicionalmente proporcionar las tablas para cada píxel de imagen de región a un motor de representación para su uso en la determinación de efectos de iluminación indirecta en la representación CG del material. Dividir el elipsoide definido por la pluralidad de espejos en el primer número de sectores puede incluir acumular de manera iterativa probabilidades locales de subdivisiones de una superficie del elipsoide. La probabilidad local de cada subdivisión puede ser un brillo local de la subdivisión dividido entre un brillo promedio de la superficie del elipsoide. Dividir cada uno de los sectores en el segundo número de piezas puede incluir acumular de manera iterativa probabilidades locales de las subdivisiones del sector. El método puede incluir adicionalmente obtener una pluralidad de segundas imágenes, en donde cada segunda imagen es una imagen directa de una segunda muestra, más grande, del material reflejado por el correspondiente espejo, y en donde cada segunda imagen comprende una pluralidad respectiva de segundos píxeles de imagen; determinar un píxel respectivo de imagen de región más similar para cada segundo píxel de imagen; y almacenar un mapeo que asocia cada segundo píxel de imagen con el correspondiente píxel de imagen de región más similar para el segundo píxel de imagen. Cada segunda imagen puede tomarse en un ángulo respectivo, y en donde cada uno de los ángulos respectivos corresponde a un ángulo en el que uno respectivo de la pluralidad de espejos refleja la primera muestra del material. La determinación de un respectivo píxel de imagen de región más similar para cada segundo píxel de imagen puede incluir: determinar una respectiva firma para cada píxel de imagen de región y cada segundo píxel de imagen; y seleccionar los píxeles más similares de imagen de región basándose en las firmas. La determinación de la respectiva firma para cada píxel de imagen de región y cada segundo píxel de imagen puede incluir: calcular una altura del píxel y alturas de un número predeterminado de vecinos del píxel; y calcular la firma para el píxel basándose en las alturas. La determinación de la respectiva firma para cada píxel de imagen de región y cada segundo píxel de imagen puede incluir calcular la firma para el píxel basándose en una coincidencia de color. La selección de los píxeles de imagen de región más similares basándose en las firmas puede incluir seleccionar un píxel de imagen de región que tiene una firma que es una distancia más pequeña desde la firma para el segundo píxel de imagen que el píxel de imagen de región más similar desde el segundo píxel de imagen.
Pueden implementarse realizaciones particulares de la materia objeto descrita en esta memoria descriptiva para conseguir una o más de las siguientes ventajas. Una representación CG de un material puede sombrearse de manera eficaz sin obtener múltiples imágenes de alta resolución de una muestra grande de los materiales físicos. Las representaciones de materiales que tienen texturas complicadas y variables pueden sombrearse eficazmente. Las representaciones de materiales pueden sombrearse eficazmente usando menos datos y en una cantidad de tiempo más breve.
En general, otro aspecto innovador de la materia objeto descrita en esta memoria descriptiva puede materializarse en métodos que incluyen las acciones de obtención de datos que describen un material físico, en donde los datos que describen el material físico incluyen una pluralidad de imágenes en paleta de una primera muestra del material físico, en donde cada una de las imágenes en paleta comprende una imagen reflejada respectiva de una primera muestra del material físico reflejada por un espejo respectivo de una pluralidad de espejos; recibir una solicitud de sombreado para sombrear un punto particular en una representación de gráficos por ordenador (CG) del material físico desde un motor de representación, en donde la solicitud identifica una posición de mapeo del punto particular, una dirección de vista en la posición de mapeo y una dirección de luz en la posición de mapeo; calcular un color de iluminación directa en la posición de mapeo usando la pluralidad de imágenes en paleta; calcular un color de iluminación indirecta en la posición de mapeo usando los datos que describen el material físico; generar un color final en la posición de mapeo combinando el color de iluminación directa y el color de iluminación indirecta; y proporcionar el color final al motor de representación para su uso al representar la representación CG del material físico.
Otras realizaciones de este aspecto incluyen los correspondientes sistemas informáticos, aparatos y programas informáticos grabados en uno o más dispositivos de almacenamiento informático, cada uno configurado para realizar las acciones de los métodos.
Un sistema de uno o más ordenadores puede estar configurado para realizar operaciones o acciones particulares gracias a tener software, firmware, hardware o una combinación de estos instalados en el sistema que, en funcionamiento, hace que el sistema realice las acciones. Uno o más programas informáticos pueden estar configurados para realizar operaciones o acciones particulares gracias a incluir instrucciones que, cuando son ejecutadas por el aparato de procesamiento de datos, hacen que el aparato realice las acciones.
Estas y otras realizaciones pueden incluir, opcionalmente, una o más de las siguientes características. Las posiciones de la pluralidad de espejos pueden definir un hemisferio. El método puede incluir adicionalmente generar un diagrama Voronoi de un hemisferio definido por posiciones de una pluralidad de espejos que reflejan, cada uno, una vista de una muestra de material situado por encima de la pluralidad de espejos desde una perspectiva diferente; generar una tabla bidimensional que contiene una pluralidad de celdas, en donde cada una de las celdas está mapeada al hemisferio por un respectivo par de ángulos horizontal y vertical; y para cada una de las celdas: construir un círculo a través de una superficie del elipsoide en el par de ángulos horizontal y vertical que corresponden a la celda, y almacenar una pluralidad de pares (posición, peso) como datos que corresponden a la celda, lo que comprende: ubicar aleatoriamente un número predeterminado de puntos dentro del círculo, para cada uno de los puntos, determinar un espejo respectivo más cercano para cada uno de los puntos, para cada uno de los espejos, determinar un recuento de puntos que tienen el espejo como el espejo más cercano para el punto, y determinar un par respectivo (posición, peso) para cada uno de los espejos, en donde la posición identifica el espejo y el peso se determina dividiendo el recuento de puntos para el espejo entre el número predeterminado.
El cálculo del color de iluminación directa en la posición de mapeo usando la pluralidad de imágenes en paleta puede incluir: identificar una primera celda en la tabla bidimensional que corresponde a la dirección de vista; identificar una segunda celda en la tabla bidimensional que corresponde a la dirección de luz; determinar una primera imagen en paleta contribuyente y una segunda imagen en paleta contribuyente usando los pares (posición, peso) almacenados en la primera celda y en la segunda celda; extraer un primer píxel de la primera imagen de la paleta contribuyente y un segundo píxel de la segunda imagen de la paleta contribuyente; y determinar el color de iluminación directa usando los píxeles extraídos y los pesos para la primera y segunda celdas. La extracción de un píxel de cada una de las imágenes en paleta contribuyentes puede incluir extraer los píxeles mediante el traslado de coordenadas de la posición de mapeo a una ubicación en cada imagen en paleta contribuyente. La determinación del color de iluminación directa usando los píxeles extraídos y los pesos puede incluir: determinar un color del primer píxel y un color del segundo píxel; ponderar el color del primer píxel basándose en los pesos en los pares (posición, peso) usados para seleccionar la primera imagen en paleta contribuyente; ponderar el color del segundo píxel basándose en los pesos de los pares (posición, peso) usados para seleccionar la segunda imagen en paleta contribuyente; y sumar los colores ponderados para determinar el color de iluminación directa. La generación del diagrama Voronoi puede incluir identificar un espejo más cercano para cada punto en el elipsoide, en donde el espejo más cercano es el espejo que presenta una distancia más corta desde el punto hasta el centro del espejo. La generación del diagrama Voronoi puede incluir adicionalmente asignar cada punto que comparte un mismo espejo más cercano a una misma zona en el diagrama Voronoi. La construcción del círculo sobre la superficie puede incluir seleccionar, desde cada posible círculo que cubre al menos dos zonas en el diagrama Voronoi, el círculo que tiene el radio más pequeño. Los datos que describen el material físico pueden incluir una tabla K x M para un primer píxel en una primera imagen de región, en donde la primera imagen de región corresponde a la dirección de vista recibida, en donde el primer píxel corresponde a la posición de mapeo recibida, y en donde cada celda de la tabla contiene una posición de un centro de una pieza respectiva de un elipsoide definido por la pluralidad de espejos.
El cálculo del color de iluminación indirecta en la posición de mapeo usando los datos que describen el material físico puede incluir: determinar un primer color de iluminación indirecta en la posición de mapeo, lo que comprende: generar un primer número aleatorio no entero seleccionado de un intervalo de cero a K; generar un segundo número aleatorio no entero seleccionado de un intervalo de cero a M; indexar la tabla usando el primer número aleatorio y el segundo número aleatorio para identificar celdas que delimitan el primer número aleatorio y el segundo número aleatorio; identificar posiciones contenidas en las celdas identificadas; combinar las posiciones para generar una posición final; y seguir el trazado de un rayo en la dirección definida por la posición final para determinar el primer color de iluminación indirecta; y calcular el color de iluminación indirecta en la posición de mapeo basándose al menos en parte en el primer color de iluminación indirecta. El cálculo del color de iluminación indirecta en la posición de mapeo basándose al menos en parte en el primer color de iluminación indirecta puede incluir usar el primer color de iluminación indirecta como el color de iluminación indirecta. El cálculo del color de iluminación indirecta en la posición de mapeo basándose al menos en parte en el primer color de iluminación indirecta puede incluir: calcular uno o más colores distintos de iluminación indirecta; y combinar el uno o más colores distintos de iluminación indirecta con el primer color de iluminación indirecta para generar un color de iluminación indirecta final.
Los detalles de una o más realizaciones de la materia objeto de esta memoria descriptiva se exponen en los dibujos adjuntos y en la siguiente descripción. Otras características, aspectos y ventajas de la materia objeto se harán evidentes a partir de la descripción, los dibujos y las reivindicaciones.
Breve descripción de los dibujos
La Figura 1 es una ilustración de alto nivel de un ejemplo de sistema para sombrear una representación de gráficos por ordenador (CG) de un material físico.
La Figura 2A es un diagrama de un ejemplo de escáner de muestra de material.
La Figura 2B ilustra un ejemplo de configuración de componentes en un escáner de muestra de material.
La Figura 3 es un diagrama de la parte inferior de un ensamblaje de fuente de luz-cámara.
La Figura 4 muestra una vista de un ensamblaje de espejo desde arriba.
La Figura 5 es un ejemplo de imagen especular generada por un escáner de muestra de material.
La Figura 6 es un diagrama de flujo de un ejemplo de técnica para generar imágenes en paleta para su uso en la determinación de la iluminación directa para una representación CG de material.
La Figura 7 es un diagrama de flujo de un ejemplo de técnica para generar estructuras de datos para su uso en la determinación de los efectos de iluminación indirecta para una representación CG de un material.
La Figura 8 es un diagrama de flujo de un ejemplo de técnica para calibrar la geometría y el color de las imágenes producidas por un escáner de muestra de material.
La Figura 9 es un diagrama de flujo de un ejemplo de técnica para generar un mapeo entre píxeles en imágenes directas y píxeles en imágenes especulares.
La Figura 10 es un diagrama de flujo de un ejemplo de técnica para calcular el color final en una posición de mapeo dada.
La Figura 11A es un diagrama de flujo de un ejemplo de técnica para determinar los efectos de la iluminación directa en una posición de mapeo dada.
La Figura 11B muestra un ejemplo de diagrama Voronoi.
La Figura 12 es un diagrama de flujo de un ejemplo de técnica para determinar los efectos de la iluminación indirecta en una posición de mapeo dada.
Los números de referencia y designaciones similares en los diversos dibujos indican elementos similares.
Descripción detallada
La Figura 1 es una ilustración de alto nivel de un ejemplo de sistema 100 para sombrear una representación de gráficos por ordenador (CG) de un material físico, p. ej., madera, tela, cuero o metal, usando una muestra física del material.
El sistema 100 incluye un motor 106 de representación. El motor 106 de representación representa imágenes o animaciones, p. ej., usando técnicas convencionales. En general, el motor 106 de representación genera imágenes o animaciones desde una escena preparada, p. ej., basándose en modelos u otros criterios de representación. Como parte del proceso de representación y para tener en cuenta los efectos de las condiciones de iluminación deseadas de la escena representada en las representaciones CG de materiales físicos, es decir, para representar con precisión una imagen de un material físico en un modelo tridimensional, el motor 106 de representación puede necesitar obtener información de sombreado para las representaciones CG de un módulo 108 de sombreado. El módulo 108 de sombreado puede ser, p. ej., un componente de software enchufable para el motor 106 de representación.
El módulo 108 de sombreado recibe una solicitud de información de sombreado del motor 106 de representación que identifica el material que va a sombrearse, la posición de mapeo que va a sombrearse, es decir, una posición en un mapeo UV del modelo tridimensional de la imagen, la dirección de vista para la posición de mapeo y la dirección de luz en la posición de mapeo. La posición de mapeo puede expresarse, por ejemplo, en coordenadas UV. En respuesta a la solicitud, el módulo 108 de sombreado determina el color final en la posición de mapeo usando datos obtenidos de un sistema 104 constructor de material y proporciona el color final al motor 106 de representación para su representación. Para determinar el color final en la posición de mapeo, el módulo 108 de sombreado determina los efectos de la iluminación directa e indirecta en la posición. La iluminación directa es iluminación proporcionada desde una fuente de luz sin reflejo de otras superficies. La iluminación indirecta es iluminación proporcionada por el reflejo de la luz de otras superficies, es decir, un reflejo de luz proporcionado desde una fuente de luz directa de superficies que rodean un objeto en una escena. La determinación del color final en una posición de mapeo dada se describe con más detalle a continuación, con referencia a la Figura 10.
El sistema 104 constructor de material puede implementarse como instrucciones de programa informático que se ejecutan en uno o más aparatos de procesamiento de datos (p. ej., ordenadores personales, servidores, tabletas informáticas, teléfonos inteligentes, etc.) en una o más ubicaciones geográficas. El sistema 104 constructor de material recibe imágenes de una muestra de un material físico generadas por un escáner 102 de muestra de material y genera estructuras de datos para su uso mediante módulos de sombreado, p. ej., el módulo 108 de sombreado, al sombrear representaciones CG del material. A continuación, se describe la generación de datos para su uso en la determinación de los efectos de la iluminación directa en el sombrado de una representación CG del material bajo una iluminación directa, con referencia a la Figura 6. La generación de datos para su uso en la determinación de los efectos de iluminación indirecta en el sombreado de la representación CG del material se describe a continuación, con referencia a la Figura 7.
El escáner 102 de muestra de material es un aparato que genera imágenes de la muestra física del material dado y las proporciona al sistema 104 constructor de material. Cada imagen generada por el escáner 102 de muestra de material incluye múltiples imágenes de la muestra en direcciones de vista e iluminación variables. Un ejemplo de un escáner de muestra de material se describe a continuación, con referencia a la Figura 2.
La Figura 2A es un diagrama de un ejemplo de escáner 200 de muestra de material. El escáner 200 de muestra de material es un aparato que genera imágenes de una muestra 250 de material. A modo de ilustración, el material puede ser una pieza de tela, madera, cuero, piel, moqueta, metal, vidrio, plástico una combinación de estos u otros materiales. Las dimensiones de la muestra 250 pueden ser, por ejemplo, aproximadamente de dos centímetros con cincuenta y cuatro milímetros por dos centímetros con cincuenta y cuatro milímetros (una pulgada por una pulgada). Son posibles otros tamaños de muestra. En general, la muestra 250 será una porción pequeña de un material que va a sombrearse durante la representación.
El escáner 200 incluye un ensamblaje 240 de fuente de luz-cámara. El ensamblaje 240 de fuente de luz-cámara incluye una fuente 202 de luz y una cámara 208. La fuente 202 de luz incluye una lente que emite luz dirigida a un espejo 210, que refleja la luz hacia un ensamblaje 215 de espejo.
El ensamblaje 215 de espejo incluye un conjunto 204 de espejos planos. Los espejos 204 están dispuestos de modo que definen un elipsoide. Es decir, los espejos 204 están situados de modo que las superficies reflectantes de los espejos se aproximan a una porción de una superficie externa de un elipsoide. En general, las dimensiones de las superficies reflectantes de los espejos son mayores que las de la muestra 250. Por ejemplo, si las dimensiones de la muestra son de dos centímetros con cincuenta y cuatro milímetros por dos centímetros con cincuenta y cuatro milímetros (una pulgada por una pulgada), cada espejo puede ser de cinco centímetros con ocho milímetros por cinco centímetros con ocho milímetros (dos pulgadas por dos pulgadas).
La fuente 202 de luz puede moverse para iluminar directamente cada uno de los espejos 204. Es decir, la fuente 202 de luz puede moverse radialmente y el ángulo de la fuente 202 de luz, el ángulo del espejo 210, o ambos, pueden ajustarse para, en alguna combinación de posición radial de la fuente 202 de luz y los ángulos de la fuente 202 de luz y del espejo 210, la superficie reflectante de cada uno de los espejos sea iluminada directamente por luz emitida por la lente de la fuente de luz y sea reflejada por el espejo 210. En el ejemplo ilustrado de la Figura 2, por ejemplo, la fuente 202 de luz está situada de manera que un rayo 225 de luz ilustrativo emitido por la fuente 202 de luz se refleja en el espejo 210 e interseca directamente la superficie reflectante de uno de los espejos 204 planos. Para que la fuente 202 de luz pueda moverse para iluminar cada uno de los espejos, la fuente 202 de luz puede montarse en un disco 220 giratorio y en una pista que permita que la fuente 202 de luz se desplace a lo largo del radio del disco. La fuente de luz puede ser, p. ej., una fuente de luz colimada, es decir, una fuente de luz que produce rayos de luz colimados, es decir, rayos de luz que son aproximadamente paralelos entre sí.
El ensamblaje 215 de espejo también incluye un soporte 206 de muestra. El soporte 206 de muestra está configurado para suspender la muestra 250 entre el conjunto 204 de espejos y la fuente 202 de luz dentro del escáner 200. En particular, el soporte 206 de muestra está configurado para suspender la muestra de modo que la muestra esté mirando lejos de la fuente 202 de luz y el centro de la muestra esté aproximadamente en un punto focal de una elipse 299 definida por los espejos 204, es decir, la elipse 299 que se forma tomando una sección transversal del elipsoide a través de su centro y a lo largo de uno de sus semiejes. Al situar los espejos 204 y la muestra 250 de material en esta configuración, cada uno de los espejos 204 reflejará una imagen de la muestra en un ángulo respectivo cuando la fuente 202 de luz está iluminando directamente uno cualquiera de los espejos 204. En algunas implementaciones, el soporte 206 de muestra está configurado adicionalmente para permitir que la muestra se gire a lo largo de uno o más ejes.
La cámara 208 está situada próxima a la fuente 202 de luz. Por ejemplo, la cámara 208 puede estar situada aproximadamente por encima del centro de la muestra. En particular, la cámara 208 puede estar situada aproximadamente en el otro punto focal de la elipse 299. El posicionamiento de la cámara 208 con relación al conjunto 204 de espejos y la muestra 250 se describe con más detalle a continuación, con referencia a la Figura 2B.
En algunas implementaciones, la cámara 208 está configurada para capturar una imagen de los espejos 204 en respuesta a una solicitud, p. ej., una solicitud recibida de un sistema constructor de material, p. ej., el sistema 104 constructor de material de la Figura 1. En particular, la cámara 208 puede capturar una imagen respectiva de los espejos 204 cuando la fuente 202 de luz está situada para iluminar directamente cada uno de los espejos. Por ejemplo, si hay 40 posiciones y 40 espejos, la cámara 208 puede estar configurada para capturar 40 imágenes, cada una de las cuales incluye 40 imágenes reflejadas de la muestra con la fuente de luz situada para iluminar directamente uno respectivo de los espejos. Una imagen reflejada de la muestra 250 es una imagen de uno de los espejos 204 mientras el espejo 204 está reflejando una imagen de la muestra 250 soportada por el soporte 206 de muestra. Aunque se usa un escáner 200 con 40 espejos a modo de ejemplo, es posible cualquier número de espejos, y, en consecuencia, de imágenes.
Una vez que se han capturado las imágenes de los espejos, las imágenes se pueden proporcionar al sistema constructor de material para su procesamiento. En algunas implementaciones, antes de ser procesadas por el sistema constructor de material, las imágenes se convierten a un formato particular, p. ej., el formato OpenEXR. En otras implementaciones, el sistema constructor de material procesa las imágenes en el formato en el que son capturadas por la cámara 204.
La Figura 2B ilustra un ejemplo de configuración de componentes en el escáner 200 de muestra de material de la Figura 2A. Se muestra una elipse 299 que está definida por el conjunto 204 de espejos de la Figura A. La muestra 250 de material está situada en el primer punto focal de la elipse 299, es decir, el punto focal más cercano al conjunto 204 de espejos. La cámara 208 está situada en el otro punto focal de la elipse 299. A modo de ejemplo, el eje 299a mayor de la elipse 299, es decir, el eje que discurre a través de la muestra 250 y la cámara 208, puede tener aproximadamente 120 centímetros de longitud y el eje 299b menor puede tener aproximadamente 66 centímetros de longitud. En este ejemplo, la distancia entre la muestra 250 de material y la cámara 208 es de aproximadamente 50 centímetros. Sin embargo, son posibles otras dimensiones.
La Figura 3 es un diagrama de la parte inferior del ensamblaje 240 de fuente de luz-cámara de la Figura 2A. El ensamblaje 240 de fuente de luz-cámara incluye una fuente 202 de luz que está situada para emitir rayos de luz que se reflejan en un espejo 210 hacia un conjunto de espejos, p. ej., el conjunto 204 de espejos de la Figura 2A. La fuente 202 de luz está montada en un disco 220 giratorio para permitir que la fuente 202 de luz pueda moverse radialmente. Como se ha descrito anteriormente, el ángulo de la fuente 202 de luz, del espejo 210, o ambos, pueden ser ajustables. El ensamblaje 240 de fuente de luz-cámara incluye una apertura 275. Una cámara, p. ej., la cámara 208 de la Figura 2A, puede estar situada sobre la apertura.
La Figura 4 muestra una vista del ensamblaje 215 de espejo de la Figura 2A desde arriba. El ensamblaje 215 de espejo incluye un conjunto 204 de espejos planos. Como se ha descrito anteriormente, los espejos en el conjunto 204 de espejos planos están situados modo que las superficies reflectantes de los espejos se aproximan a una porción de una superficie exterior de un elipsoide. El ensamblaje 215 de espejo también incluye un soporte 206 de muestra. El soporte 206 de muestra está configurado para suspender una muestra por encima del conjunto 204 de espejos planos usando brazos 292 de soporte. Aunque no se ve en la vista desde arriba, la muestra está suspendida en la parte inferior del soporte 206 de muestra. Los brazos 292 de soporte están situados de modo que no obstruyan la vista de ninguno de los espejos del conjunto 204 de espejos planos en imágenes tomadas desde una cámara situada por encima del ensamblaje 215 de espejo.
La Figura 5 es un ejemplo de imagen especular 500 generada por un escáner de muestra de material, p. ej., el escáner 200 de muestra de material de la Figura 2A. La imagen especular 500 incluye un conjunto de regiones, p. ej., la región 502, correspondiendo cada una de las regiones a un área de la imagen 500 que contiene el reflejo de un espejo respectivo de un conjunto de espejos planos, p. ej., el conjunto 204 de espejos de la Figura 2A, y una imagen del lado superior de un soporte de muestra 504. Cada región incluye una imagen reflejada respectiva de una muestra del material que va a sombrearse. La imagen especular 500 es una imagen que se ha generado mientras una fuente de luz, p. ej., la fuente 202 de luz de la Figura 2A, estaba iluminando directamente uno de los espejos del conjunto de espejos y la muestra estaba suspendida del soporte de muestra. Por ejemplo, cuando se tomó la imagen especular 500, la fuente de luz puede haber estado iluminando directamente el espejo que corresponde a la región 502 de la imagen especular 500. En este caso, la región 502 incluirá una imagen reflejada de la muestra según se refleja en el correspondiente espejo mientras está siendo iluminado directamente por la fuente de luz.
La Figura 6 es un diagrama de flujo de un ejemplo de técnica 600 para generar imágenes en paleta para su uso en la determinación de los efectos de la iluminación directa para una representación CG de material. Por conveniencia, se describirá la técnica 600 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un sistema constructor de material, p. ej., el sistema 104 constructor de material de la Figura 1, debidamente programado, puede realizar la técnica 600.
El sistema calibra 602 el color y, opcionalmente, la geometría de las imágenes producidas por un escáner de muestra de material, p. ej., el escáner 102 de muestra de material de la Figura 1. A continuación, se describirá un ejemplo de técnica para calibrar la geometría y el color, con referencia a la Figura 8. Como resultado del proceso de calibración, el sistema genera datos de calibración de color que identifican una transformación de color que se aplicará a las imágenes reflejadas en las imágenes producidas por el escáner de muestra de material y, opcionalmente, datos de calibración de geometría que identifican ubicaciones de las imágenes reflejadas en las imágenes producidas por el escáner de muestra de material.
El sistema obtiene 604 un conjunto de imágenes especulares generadas por el escáner de muestra de material. Cada imagen especular, p. ej., la imagen especular 500 de la Figura 5, incluye un conjunto de regiones, correspondiendo cada una de las regiones a un espejo respectivo de un conjunto de espejos, p. ej., el conjunto 204 de espejos de la Figura 2A. Cada región, p. ej., la región 502 de la Figura 5, incluye una imagen reflejada respectiva de una muestra del material que va a sombrearse. En general, el conjunto de imágenes especulares incluirá el mismo número de imágenes especulares que el número de espejos del conjunto de espejos, incluyendo el conjunto de imágenes especulares imágenes tomadas mientras la fuente de luz está iluminando directamente diferentes espejos del conjunto de espejos.
Para cada imagen especular, el sistema genera 606 una imagen de región respectiva para cada región en la imagen especular usando los datos de calibración de color y, opcionalmente, los datos de calibración de geometría. El sistema genera las imágenes de región extrayendo la imagen reflejada de cada región. En particular, el sistema extrae el contenido de cada una de las regiones de la imagen especular usando las ubicaciones identificadas en los datos de calibración de geometría o, si no se realiza calibración de geometría, identificando las ubicaciones de las regiones directamente de la imagen especular.
Como parte de la generación de las imágenes de región, el sistema genera datos que definen un hemisferio usando las ubicaciones de los espejos. Es decir, el sistema usa datos que identifican las ubicaciones de los espejos para determinar un ángulo respectivo del centro de cada espejo con respecto a cualquier muestra de material o a la fuente de luz. El sistema usa, a continuación, estos ángulos para definir un hemisferio que tiene un radio predeterminado, p. ej., un radio de uno.
Opcionalmente, el sistema convierte cada región a una forma rectangular. El sistema puede ajustar, a continuación, el color de cada píxel de cada región basándose en los datos de calibración de color para generar las imágenes de región.
El sistema convierte en paleta 608 las imágenes de región y almacena 610 las imágenes en paleta. En general, convertir en paleta una imagen reduce los colores usados en la imagen a un número predeterminado de colores. En particular, el sistema sustituye el color de cada píxel con un índice de color que apunta a una celda en una tabla de paleta. La tabla de paleta contiene una lista de los colores usados en la imagen. El sistema puede convertir en paleta las imágenes de región usando, p. ej., técnicas de conversión en paleta convencionales. El sistema indexa la imagen convertida en paleta almacenada por pares (luz, cámara), donde el valor de "luz" para cada imagen convertida en paleta identifica el espejo que se estaba iluminando directamente mientras se tomaba la imagen en paleta, y el valor de "cámara" para cada imagen identifica el espejo sobre el que estaba situada la cámara mientras se tomaba la imagen en paleta. El sistema puede generar los identificadores para los espejos asignando a cada espejo un número entero respectivo que varía de uno al número total de espejos.
Las imágenes en paleta almacenadas pueden proporcionarse a un módulo de sombreado, p. ej., el módulo 108 de sombreado de la Figura 1, para su uso en la determinación de la iluminación directa para una representación CG del material. El sistema puede proporcionar las imágenes en paleta en asociación con el correspondiente par (luz, cámara) para cada imagen.
La Figura 7 es un diagrama de flujo de un ejemplo de técnica 700 para generar estructuras de datos para su uso en la determinación de los efectos de iluminación indirecta para una representación CG de un material. Por conveniencia, se describirá la técnica 700 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un sistema constructor de material, p. ej., el sistema 104 constructor de material de la Figura 1, debidamente programado, puede realizar la técnica 700.
En algunas implementaciones, la técnica 700 se realiza para cada píxel en cada imagen de región generada a partir de imágenes especulares obtenidas del escáner de muestra de material.
El sistema divide 702 el hemisferio definido por el conjunto de espejos en un primer número de sectores. En particular, el sistema divide el hemisferio de modo que un rayo reflejado por el material tenga una probabilidad igual de aterrizar en cada uno de los sectores. El sistema puede construir estos sectores de igual probabilidad basándose en probabilidades locales, donde cada probabilidad local es un brillo local dividido entre el brillo promedio del hemisferio completo. El brillo de cualquier subdivisión dada de una imagen puede medirse como, p. ej., el valor promedio de los colores rojo (R), verde (G) y azul (B) en la subdivisión, es decir, (R + G B) /3.
Para dividir el hemisferio en sectores, el sistema acumula de manera iterativa subdivisiones de la superficie del hemisferio. Es decir, el sistema selecciona pequeñas subdivisiones de la superficie del hemisferio, p. ej., siendo cada subdivisión 1/10000 de la superficie del hemisferio completa. Por ejemplo, el sistema puede seleccionar las subdivisiones atravesando la superficie del hemisferio a lo largo de cada eje usando un tamaño de paso predeterminado, p. ej., un grado.
El sistema suma la probabilidad de cada subdivisión sucesiva hasta que las probabilidades sumadas sumen 1/K, donde K es el primer número deseado de sectores. El sistema, a continuación, define el primer sector como el agregado de las subdivisiones incluidas en la suma y continúa con el proceso hasta que se haya definido cada sector.
El sistema divide 704 cada uno de los sectores en un segundo número de piezas. En particular, el sistema divide cada sector de modo que un rayo reflejado por el material tenga una probabilidad igual de aterrizar en cada una de las piezas. El sistema puede dividir cada sector en el segundo número de piezas usando, p. ej., la misma técnica anteriormente descrita para dividir el hemisferio.
El sistema genera 706 una estructura de datos que almacena datos que identifican el centro de cada una de las piezas. Por ejemplo, si hay K sectores cada uno dividido en M piezas, el sistema puede generar una tabla K x M, siendo los datos en cada entrada de la tabla la posición del centro de cada una de las piezas.
Una vez que se ha realizado la técnica 700 para cada píxel en cada imagen de región, el sistema puede proporcionar la estructura de datos a un módulo de sombreado, p. ej., el módulo 108 de sombreado de la Figura 1, para su uso en la determinación de la iluminación indirecta para una representación CG del material.
Además de los datos que identifican el centro de cada una de las piezas del hemisferio para cada uno de los píxeles y las imágenes de región convertidas en paleta, el sistema puede proporcionar también al módulo de sombreado información que identifica las dimensiones de la muestra física del material, el número de regiones en cada imagen especular, las ubicaciones de cada una de las regiones en la imagen especular, y los datos que identifican el hemisferio definido por los espejos.
La Figura 8 es un diagrama de flujo de un ejemplo de técnica 800 para calibrar la geometría y el color de las imágenes producidas por un escáner de muestra de material (p. ej., el escáner de material 102). Por conveniencia, se describirá la técnica 800 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un sistema constructor de material, p. ej., el sistema 104 constructor de material de la Figura 1, debidamente programado, puede realizar la técnica 800.
El sistema obtiene 802 una imagen especular generada por el escáner de muestra de material (p. ej., el escáner de material 102) usando un material de muestra que tiene un patrón predeterminado específico. Por ejemplo, el patrón puede ser un patrón de tablero de ajedrez. Son posibles otros patrones.
El sistema identifica 804 las ubicaciones iniciales de cada una de las regiones en la imagen especular. Por ejemplo, el sistema puede analizar la imagen especular para identificar cada borde de cada región en la imagen especular y determina cada intersección de dos bordes identificados usando, por ejemplo, técnicas de detección de borde. Cada punto de intersección puede identificarse como una esquina de una región y la ubicación de las regiones puede estar definida por los bordes y esquinas identificados.
En algunas implementaciones, el sistema ajusta 806 las ubicaciones iniciales basándose en el patrón predeterminado en el material. En particular, para cada región, el sistema realiza un análisis de Fourier de baja frecuencia y ajusta las ubicaciones iniciales basándose en el resultado del análisis de Fourier. El sistema determina la fase y frecuencia promedio de las cuatro regiones más grandes en una imagen especular dada y ajusta las ubicaciones de cada esquina inicial para igualar la fase de su región a la fase y frecuencia promedio para las cuatro regiones más grandes. El sistema almacena los datos de ubicación ajustados como datos de calibración de geometría que identifican las ubicaciones de imágenes reflejadas en las imágenes producidas por el escáner de muestra de material. En algunas implementaciones, el sistema no genera datos de calibración de geometría, sino que, en su lugar, identifica ubicaciones iniciales de regiones en cada imagen especular procesada por el sistema, p. ej., identificando los bordes e intersecciones, como se ha descrito anteriormente.
El sistema obtiene 808 una imagen especular generada por el escáner de muestra de material de un material blanco que tiene una función de distribución de reflectancia bidireccional (BRDF) difusa pura.
El sistema determina 810 la BRDF de esfera unitaria a partir de las imágenes especulares y almacena los datos como datos de calibración de color que identifican una transformación de color que va a aplicarse al color de las imágenes reflejadas. Es decir, el sistema puede usar los datos de calibración de color para normalizar el color de las imágenes tomadas por el escáner de muestra de material antes de que sean usadas por un módulo de sombreado.
Aunque la descripción anterior describe la generación de datos para su uso por un módulo de sombreado al sombrear una representación CG de un material físico, los datos anteriores se generan basándose en imágenes especulares de una muestra pequeña del material. En algunas circunstancias, puede ser beneficioso obtener imágenes denominadas directas de una muestra grande del material y proporcionar un mapeo al módulo de sombreado que identifica, para cada píxel en una de las imágenes directas de la muestra grande, el píxel más similar en cualquiera de las imágenes especulares para el píxel. Por ejemplo, cuando la muestra física incluye un patrón que no se repite, o, un patrón que se repite, pero que no puede capturarse completamente en una muestra pequeña del material, el módulo de sombreado podría tener que usar el mapeo proporcionado para mapear los píxeles de la muestra grande a los píxeles más similares en las imágenes especulares. En general, el área de superficie de la muestra grande será aproximadamente diez veces la de la muestra más pequeña usada para generar las imágenes especulares. La generación del mapeo se describe a continuación, con referencia a la Figura 9.
La Figura 9 es un diagrama de flujo de un ejemplo de técnica 900 para generar un mapeo entre píxeles en imágenes directas y píxeles en imágenes especulares. Por conveniencia, se describirá la técnica 900 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un sistema constructor de material, p. ej., el sistema 104 constructor de material de la Figura 1, debidamente programado, puede realizar la técnica 900.
El sistema obtiene 902 un conjunto de imágenes especulares de una muestra pequeña de un material físico desde un escáner de muestra de material, p. ej., el escáner 102 de muestra de material de la Figura 1.
El sistema obtiene 904 un conjunto de imágenes directas de una muestra grande del material físico. En general, cada imagen directa se toma a un ángulo que corresponde al ángulo en el que uno de los espejos del escáner de muestra de material refleja la imagen de la muestra pequeña. Por ejemplo, el conjunto de imágenes directas puede incluir cuatro imágenes que son capturadas, cada una, a un ángulo respectivo que corresponde a un ángulo respectivo de uno de los cuatro espejos del conjunto 204 de espejos que parece más cercano a la muestra en las imágenes especulares, p. ej., los espejos que corresponden a las regiones 506, 508, 510 y 512 de la Figura 5.
El sistema determina 906 una firma para cada píxel en cada una de las imágenes directas. Cada firma es un conjunto de valores que representa el píxel. Por ejemplo, las firmas pueden ser vectores n-dimensionales, donde n es un número entero predeterminado. El sistema puede calcular la firma para un píxel en cualquiera de una diversidad de maneras.
En algunas implementaciones, el sistema puede calcular la firma para un píxel calculando la altura del píxel y la altura de un número predeterminado, p. ej., ocho vecinos del píxel en la imagen. La firma puede calcularse, a continuación, basándose al menos en parte en las alturas. Por ejemplo, la firma puede ser un vector de los valores de altura. En general, puesto que la superficie del material físico no es plana, el valor de la altura de un píxel dado es el valor de la variación de la superficie del material físico en la dirección vertical en el punto que representa el píxel.
El sistema calcula las alturas para el píxel y los píxeles vecinos desde un mapa de altura para el material. Para generar el mapa de altura, el sistema genera un campo normal a partir de cuatro imágenes del material. Es decir, el sistema puede resolver dos sistemas de ecuaciones lineales, conteniendo cada una tres de las cuatro imágenes, para generar la altura para cada punto. Los sistemas de ecuaciones lineales pueden generarse suponiendo que el brillo medido en un punto es proporcional al producto escalar entre la superficie normal en el punto y la dirección de luz en el punto. El sistema puede combinar las soluciones de los dos sistemas para generar la altura en el punto, p. ej., usando algunos de los componentes de la solución del primer sistema y los otros componentes de la normal de la solución del segundo sistema.
Desde el campo normal, el sistema determina de manera iterativa el mapa de altura. En particular, la iteración inicial asume una altura cero para todos los píxeles. Para cada píxel, el sistema calcula la normal basándose en la diferencia esperada con respecto a los píxeles vecinos y la compara con la diferencia en el campo normal. El sistema resta el error de la altura actual para generar la altura final para la iteración. Una vez que el mapa de altura converge a un estado relativamente persistente entre las iteraciones, se usa el mapa de altura convergente como el mapa de altura final para determinar las alturas de los píxeles para la firma.
En otras implementaciones, el sistema puede generar la firma para un píxel basándose en una coincidencia de color. Para generar una firma de color coincidente para un píxel, el sistema identifica los píxeles que rodean el píxel de interés en cada una de las cuatro imágenes. Por ejemplo, para cada imagen, el sistema puede generar una cuadrícula de tres por tres píxeles estando el píxel de interés en el centro de la cuadrícula. El sistema genera, a continuación, la firma para el píxel basándose en los valores RGB para cada uno de los píxeles en cada una de las cuadrículas. Por ejemplo, la firma puede ser una lista ordenada de todos los valores RGB.
El sistema determina 908, a continuación, el píxel más similar a partir de cualquiera de las imágenes de región para cada píxel en cada una de las imágenes directas. En general, el píxel de imagen de región más similar a cualquier píxel de imagen directa dada es el píxel de imagen especular que tiene una firma con la distancia más pequeña entre este y la firma para el píxel de imagen directa. En particular, cuando se representan las firmas por vectores ndimensionales, la distancia d entre una firma A y una firma B satisface:
d = (A1-B1)2 + (A2-B2)2 + ... (An-Bn)2.
El sistema almacena 910 un mapeo que asocia cada píxel de las imágenes directas con el píxel más similar al píxel de una de las imágenes especulares. Por ejemplo, el sistema puede almacenar datos que asocian las coordenadas del píxel de la imagen directa con las coordenadas del píxel más similar en la imagen especular a la que pertenece.
La Figura 10 es un diagrama de flujo de un ejemplo de técnica 1000 para calcular el color final en una posición de mapeo dada. Por conveniencia, se describirá la técnica 1000 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un módulo de sombreado, p. ej., el módulo 108 de sombreado de la Figura 1, debidamente programado, puede realizar la técnica 1000.
El sistema obtiene datos que describen un material físico (etapa 1002) de un sistema constructor de material, p. ej., el sistema 104 constructor de material de la Figura 1. Los datos incluyen datos para su uso al calcular los efectos de la iluminación directa e indirecta en puntos particulares en representaciones CG del material físico. El sistema puede obtener los datos en diversos momentos, p. ej., en respuesta a recibir una solicitud para sombrear la representación CG del material físico o antes de recibir la solicitud. Dependiendo del material físico, los datos pueden incluir datos que asocian las coordenadas de cada píxel de cada una de un conjunto de imágenes directas de una muestra grande del material físico con datos que identifican el píxel más similar en cualquiera de las imágenes especulares de una muestra pequeña del material físico.
El sistema recibe una solicitud de sombreado desde un motor de representación (etapa 1004), p. ej., el motor 106 de representación de la Figura 1. La solicitud de sombreado identifica el material que va a sombrearse, la posición de mapeo que va a sombrearse, es decir, una posición en un mapeo UV del modelo tridimensional de la imagen, la dirección de vista para la posición de mapeo y la dirección de luz en la posición de mapeo.
Si los datos obtenidos por el sistema incluyen datos que asocian las coordenadas de cada píxel en cada uno de un conjunto de imágenes directas de una muestra grande del material físico con datos que identifican el píxel más similar en cualquiera de las imágenes especulares de una muestra pequeña del material físico, el sistema puede convertir la posición de mapeo identificada en la solicitud en un punto en las imágenes especulares de la muestra pequeña usando los datos. El sistema puede usar, a continuación, esa posición al calcular el color final.
El sistema calcula el color bajo iluminación directa en la posición de mapeo identificada en la solicitud usando los datos que describen el material físico (etapa 1006). A continuación, se describe un ejemplo de técnica para calcular el color bajo iluminación directa con referencia a la Figura 11.
El sistema calcula el color bajo iluminación indirecta en la posición de mapeo usando los datos que describen el material físico (etapa 1008). A continuación, se describe un ejemplo de técnica para calcular el color bajo iluminación indirecta con referencia a la Figura 12.
El sistema combina los colores para generar el color final en la posición de mapeo (etapa 1010). Por ejemplo, el sistema puede sumar el color bajo iluminación directa y el color bajo iluminación indirecta para generar el color final.
El sistema proporciona el color final al motor de representación para su uso al representar la representación CG del material físico (etapa 1012).
La Figura 11A es un diagrama de flujo de un ejemplo de técnica 1100 para determinar los efectos de la iluminación directa en una posición de mapeo dada. Por conveniencia, se describirá la técnica 1100 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un módulo de sombreado, p. ej., el módulo 108 de sombreado de la Figura 1, programado de manera apropiada, puede realizar la técnica 1100.
El sistema construye 1102 un diagrama Voronoi a través de una superficie definida por los ángulos de los espejos en el escáner de muestra de material. Es decir, para cada punto de la superficie, el sistema identifica el espejo más cercano, donde la distancia desde un punto hasta un espejo está definida por la distancia desde el punto hasta el centro del espejo. Todos los puntos que comparten el mismo espejo más cercano forman de manera colectiva una zona en el diagrama Voronoi. La superficie puede ser, p. ej., la porción del elipsoide definida por las posiciones de los espejos, como se describe con referencia a las Figuras 2A y 2B. Como alternativa, la superficie puede ser el hemisferio definido por los ángulos de los espejos.
La Figura 11B muestra un ejemplo de diagrama Voronoi 1150. El ejemplo de diagrama Voronoi 1150 se construyó sobre un hemisferio definido por los ángulos de los espejos en un escáner de muestra de material. El diagrama 1150 incluye un número de zonas, p. ej., la zona 1152 y la zona 1154, incluyendo, cada una, todos los puntos que comparten el mismo espejo más cercano del conjunto de espejos.
Volviendo a la descripción de la Figura 11A, el sistema genera 1104 una tabla que se mapea a la superficie en ángulo horizontal y vertical. Es decir, cada celda de la tabla representa un área respectiva de la superficie que tiene una anchura y altura angular respectivas. Por ejemplo, si la tabla es una tabla de 1025 x 256, cada celda de la tabla representa un área respectiva que tiene una anchura de 0,35 grados y una altura de 0,35 grados.
Para cada celda de la tabla, el sistema construye 1106 un círculo centrado en el centro del área representado por la celda sobre la superficie e identifica las intersecciones del círculo con las zonas del diagrama Voronoi. El sistema construye cada círculo de manera que el círculo tenga el radio más pequeño posible que cubra al menos dos zonas del diagrama Voronoi para cualquier dirección, es decir, cualquier línea dibujada a través del centro del círculo en una dirección arbitraria debe cruzar dos o más zonas del diagrama Voronoi antes de salir del círculo.
El sistema almacena 1108 datos en cada celda de la tabla. En particular, en cada celda, el sistema almacena uno o más pares (posición, peso). Para identificar los pares (posición, peso) para una celda dada, el sistema ubica aleatoriamente un número N predeterminado de puntos aleatorios dentro del círculo para la celda. Por ejemplo, N puede ser 200, 500, 1000 o 2500. Para cada punto, el sistema determina el espejo más cercano, y determina, para cada uno de los espejos, cuántos puntos tiene el espejo como el espejo más cercano para el punto. El sistema almacena, a continuación, un par respectivo (posición, peso) para cada espejo, donde el valor de posición identifica el espejo y se calcula el peso dividiendo el número de puntos que tiene el espejo como el espejo más cercano entre el número total de puntos aleatorios N. El sistema almacena, a continuación, cada uno de los pares (posición, peso) en la correspondiente celda de la tabla.
El sistema recibe 1110 datos que identifican el material que va a sombrearse, la posición de mapeo que va a sombrearse, es decir, una posición en un mapeo UV del modelo tridimensional de la imagen, la dirección de vista para la posición de mapeo y la dirección de luz en la posición de mapeo.
El sistema modifica 1112 la dirección de vista y las direcciones de luz de modo que se mapean a celdas de la tabla. Por ejemplo, si se proporcionan las direcciones al sistema en forma de (x,y,z) con un intervalo de [-1,1], el sistema puede modificar las coordenadas x e y como sigue: el sistema puede añadir 1 a cada una de las coordenadas x e y para cambiar su intervalo a [0, 2] y a continuación dividir cada una de las coordenadas x e y entre 2 para cambiar el intervalo a [0,1]. El sistema puede multiplicar, a continuación, x e y por la anchura de la tabla, es decir, el número de columnas de la tabla para cambiar el intervalo a [0, anchura].
El sistema identifica 1114 celdas de la tabla usando la dirección de vista y la dirección de luz. Es decir, el sistema identifica una primera celda usando la dirección de vista y una segunda celda usando la dirección de luz. El sistema puede identificar una celda desde un conjunto de coordenadas usando la coordenada x como el índice de columna para la celda y la coordenada y como el índice de fila para la celda.
El sistema identifica 1116 imágenes en paleta contribuyentes y un peso respectivo para cada imagen contribuyente usando el contenido almacenado en las celdas identificadas de la tabla. Es decir, cada una de las celdas identificadas almacena uno o más pares (posición, peso). El sistema calcula cada posible par (posición1, posición2), donde posición1 es una de las posiciones almacenadas en la celda identificada usando la dirección de vista, y posición2 es una de las posiciones almacenadas en la celda identificada por la dirección de luz. Para cada par (posición1, posición2), el sistema calcula un peso multiplicando el peso que está emparejado con la posición1 por el peso que está emparejado con la posición2. El sistema mapea, a continuación, cada par (posición1, posición2) a la imagen en paleta identificada por el par (luz, cámara) que tiene valores que hacen coincidir el par (posición1, posición2) y usa el peso para el par (posición1, posición2) como el peso para la imagen en paleta.
El sistema selecciona 1118 un píxel desde cada imagen en paleta contribuyente. El sistema puede seleccionar los píxeles de cada imagen usando las coordenadas UV recibidas del motor de representación, es decir, trasladando las coordenadas UV recibidas a una ubicación de imagen y seleccionando el píxel en esa ubicación en cada imagen contribuyente.
El sistema determina 1120 el color bajo iluminación directa en la posición de mapeo basándose en los pesos para cada imagen contribuyente. Es decir, el sistema multiplica el color de cada píxel por el peso para la imagen correspondiente y suma, a continuación, los colores ponderados para determinar el color bajo iluminación directa en la posición.
La Figura 12 es un diagrama de flujo de un ejemplo de técnica para determinar los efectos de la iluminación indirecta en una posición de mapeo dada. Por conveniencia, se describirá la técnica 1200 como una realizada por un sistema de uno o más aparatos de procesamiento de datos ubicados en una o más ubicaciones. Por ejemplo, un módulo de sombreado, p. ej., el módulo 108 de sombreado de la Figura 1, programado de manera apropiada, puede realizar la técnica 1200.
El sistema accede 1202 a los datos que identifican el centro de cada una de las piezas del hemisferio obtenidas desde el escáner de muestra de material. Es decir, el sistema accede a la tabla K x M que corresponde al píxel y a la imagen de región que están identificadas por la posición en el mapeo UV y la dirección de luz especificada en la solicitud. En otras palabras, el sistema identifica la imagen de región que corresponde a la dirección de luz especificada en la solicitud, identifica el píxel en la imagen identificada que corresponde a la posición en el mapeo UV, y accede a la tabla K x M que corresponde al píxel identificado.
El sistema genera 1204 dos números aleatorios. Los números aleatorios son números no enteros, seleccionándose el primer número de un intervalo de cero a K y seleccionándose el segundo número de un intervalo de cero a M.
El sistema indexa 1206 la tabla usando los dos números aleatorios para identificar las cuatro celdas de tabla que delimitan el par de números. Por ejemplo, si el primer número es 2,4 y el segundo número es 3,6, las cuatro celdas que delimitan el par de números serán las celdas que tienen los índices [2,3], [2,4], [3,3] y [3,4].
El sistema identifica 1208 las posiciones almacenadas en las celdas de tabla que delimitan el par de números.
El sistema mezcla 1210 las posiciones usando interpolación bilineal para generar una posición final y, a continuación, sigue el trazado 1212 de un rayo desde la posición de mapeo en la dirección definida por la posición final para determinar el color para el rayo. Para determinar el color para el rayo, el sistema puede enviar una solicitud al motor de representación que identifica la dirección del rayo y el motor de representación puede devolver el color que resulta de seguir el trazado del rayo en esa dirección.
En algunas implementaciones, el sistema puede repetir las etapas 1204 a 1212 múltiples veces para generar múltiples colores. El sistema puede promediar, a continuación, los colores generados al emitir cada rayo para determinar el color final en la posición de mapeo.
Las realizaciones de la materia objeto y las operaciones descritas en esta memoria descriptiva pueden implementarse en circuitería electrónica digital, o en software, firmware o hardware informático, incluyendo las estructuras divulgadas en esta memoria descriptiva y sus equivalentes estructurales o en combinaciones de una o más de las mismas. Las realizaciones de la materia objeto descritas en esta memoria descriptiva pueden implementarse como uno o más programas informáticos, es decir, uno o más módulos de instrucciones de programa informático, codificados en un medio de almacenamiento informático para su ejecución por, o para controlar la operación de, un aparato de procesamiento de datos. Como alternativa o, además, las instrucciones de programa pueden codificarse en una señal propagada artificialmente, p. ej., una señal eléctrica, óptica o electromagnética generada por máquina, que se genera para codificar información para su transmisión a un aparato receptor adecuado para su ejecución por un aparato de procesamiento de datos. Un medio de almacenamiento informático puede ser, o estar incluido en, un dispositivo de almacenamiento legible por ordenador, un sustrato de almacenamiento legible por ordenador, un conjunto o dispositivo de memoria de acceso aleatorio o en serie o una combinación de uno o más de los mismos. Además, aunque un medio de almacenamiento informático no es una señal propagada, un medio de almacenamiento informático puede ser un origen o destino de instrucciones de programa informático codificadas en una señal propagada generada artificialmente. El medio de almacenamiento informático puede ser también, o estar incluido en, uno o más componentes o medios físicos independientes.
Las operaciones descritas en esta memoria descriptiva pueden implementarse como operaciones realizadas por un aparato de procesamiento de datos en datos almacenados en uno o más dispositivos de almacenamiento legible por ordenador o recibirse de otras fuentes. La expresión "aparato de procesamiento de datos" abarca todas las clases de aparatos, dispositivos y máquinas para procesar datos, que incluyen, a modo de ejemplo, un procesador programable, un ordenador, un sistema en un chip o múltiples o combinaciones de lo anterior. El aparato puede incluir también, además de hardware, código que crea un entorno de ejecución para el programa informático en cuestión, p. ej., código que constituya el firmware de procesador, una pila de protocolo, un sistema de gestión de base de datos, un sistema operativo, un entorno de tiempo de ejecución de plataforma cruzada, una máquina virtual o una combinación de uno o más de los mismos. El aparato y el entorno de ejecución pueden realizar diversas infraestructuras de modelos informáticos diferentes, p. ej., servicios web, informática distribuida e infraestructuras de informática en red.
Un programa informático (también conocido como un programa, software, aplicación de software, guion o código) puede escribirse en cualquier forma de lenguaje de programación, incluyendo lenguajes compilados o interpretados, lenguajes declarativos o procedurales, y puede desplegarse en cualquier forma, incluyendo un programa independiente o un módulo, componente, subrutina, objeto u otra unidad adecuada para su uso en un entorno informático. Un programa informático puede corresponder, pero no necesariamente, a un fichero en un sistema de ficheros. Un programa puede almacenarse en una porción de un fichero que mantiene otros programas o datos, p. ej., uno o más guiones en un documento de lenguaje de marcas, en un único fichero dedicado para el programa en cuestión, o en múltiples ficheros coordinados, p. ej., ficheros que almacenan uno o más módulos, subprogramas o porciones de código. Un programa informático puede desplegarse para que se ejecute en un ordenador o en múltiples ordenadores que están ubicados en un sitio o distribuidos a través de múltiples sitios e interconectados por una red de comunicación.
Los procesos y los diagramas de flujo descritos en esta memoria descriptiva pueden ser realizados por uno o más procesadores programables que ejecutan uno o más programas informáticos para realizar operaciones operando en datos de entrada y generando salidas. Los procesadores adecuados para la ejecución de un programa informático incluyen, a modo de ejemplo, tanto microprocesadores de propósito general como especial, y uno cualquiera o más procesadores de cualquier clase de ordenador digital. En general, un procesador recibirá instrucciones y datos de una memoria de sólo lectura o una memoria de acceso aleatorio o ambas. Los elementos esenciales de un ordenador son un procesador para realizar acciones de acuerdo con unas instrucciones y uno o más dispositivos de memoria para almacenar instrucciones y datos. En general, un ordenador incluirá también, o estará operativamente acoplado para recibir datos desde o transferir datos a, o ambos, a uno o más dispositivos de almacenamiento masivo para almacenar datos. Sin embargo, un ordenador no necesita tener tales dispositivos. Además, un ordenador puede estar embebido en otro dispositivo, p. ej., un teléfono móvil, un teléfono inteligente, un reproductor de audio o vídeo móvil, una consola de juegos, un receptor de sistema de posicionamiento global (GPS) y un dispositivo informático que puede llevarse puesto, por nombrar solo unos pocos. Los dispositivos adecuados para almacenar instrucciones de programa informático y datos incluyen todas las formas de memoria no volátil, medios y dispositivos de memoria, incluyendo, a modo de ejemplo, dispositivos de memoria de semiconductores, discos magnéticos y similares. El procesador y la memoria pueden complementarse con, o estar incorporados en, circuitería de lógica de propósito especial.
Para proporcionar una interacción con un usuario, las realizaciones de la materia objeto descritas en esta memoria descriptiva pueden implementarse en un ordenador que tenga un dispositivo de visualización para presentar visualmente información al usuario y un teclado y un dispositivo señalador, p. ej., un ratón o una bola de mando, mediante el cual el usuario puede proporcionar una entrada al ordenador. Asimismo, pueden usarse otros tipos de dispositivos para proporcionar una interacción con un usuario; por ejemplo, la realimentación proporcionada al usuario puede ser cualquier forma de realimentación sensorial, p. ej., realimentación visual, realimentación auditiva o realimentación táctil; y la entrada del usuario puede recibirse en cualquier forma, incluyendo entradas y salidas acústicas, de voz o táctiles.
Aunque esta memoria descriptiva contiene muchos detalles de implementación específicos, estos no deben interpretarse como limitaciones del alcance de cualquier invención o de lo que se reivindicaría, sino más bien como descripciones de características específicas de realizaciones particulares de invenciones particulares. Ciertas características que se describen en esta memoria descriptiva en el contexto de realizaciones separadas pueden implementarse también combinadas en una única realización. A la inversa, diversas características que se describen en el contexto de una única realización pueden implementarse también en múltiples realizaciones de manera separada o en cualquier subcombinación adecuada. Además, aunque las características hayan podido describirse anteriormente en el sentido de que actúan en ciertas realizaciones e incluso reivindicarse inicialmente como tal, una o más características de una combinación reivindicada pueden eliminarse, en algunos casos, de la combinación y la combinación reivindicada puede estar dirigida a una subcombinación o variación de una subcombinación.
De manera similar, aunque se han ilustrado las operaciones en los dibujos en un orden particular, este no debe entenderse que requiere que tales operaciones se realicen en el orden particular mostrado o en orden secuencial, o que se realicen todas las operaciones ilustradas, para conseguir resultados deseables. En ciertas circunstancias, la multitarea y el procesamiento paralelo pueden ser ventajosos. Además, la separación de diversos componentes de sistema en las realizaciones anteriormente descritas no debe entenderse que se requiera tal separación en todas las realizaciones, y debería entenderse que los componentes y sistemas de programa descritos pueden estar generalmente integrados juntos en un único producto de software o empaquetados en múltiples productos de software.
Por lo tanto, se han descrito realizaciones particulares de la materia objeto. Otras realizaciones están dentro del alcance de las siguientes reivindicaciones.

Claims (15)

REIVINDICACIONES
1. Un método de sombreado de representaciones gráficas por ordenador de materiales, comprendiendo el método:
obtener (1002) datos que describen un material físico, en donde los datos que describen el material físico incluyen una pluralidad de imágenes en paleta de una primera muestra (250) del material físico, en donde cada una de las imágenes en paleta comprende una imagen reflejada respectiva de una primera muestra del material físico reflejada por un espejo respectivo de una pluralidad de espejos (204);
recibir (1004) una solicitud de sombreado para sombrear un punto particular en una representación de gráficos por ordenador del material físico de un motor de representación, en donde la solicitud identifica una posición de mapeo del punto particular, una dirección de vista en la posición de mapeo, y una dirección de luz en la posición de mapeo; calcular (1006) un color de iluminación directa en la posición de mapeo usando la pluralidad de imágenes en paleta; calcular (1008) un color de iluminación indirecta en la posición de mapeo usando los datos que describen el material físico;
generar (1010) un color final en la posición de mapeo combinando el color de iluminación directa y el color de iluminación indirecta;
proporcionar (1012) el color final al motor de representación para su uso al representar la representación de gráficos por ordenador del material físico;
generar (1102) un diagrama Voronoi (1150) de un hemisferio definido por posiciones de la pluralidad de espejos que reflejan, cada uno, una vista de la muestra de material situada por encima de la pluralidad de espejos desde una perspectiva diferente;
generar (1104) una tabla bidimensional que contiene una pluralidad de celdas, en donde cada una de las celdas está mapeada al hemisferio por un par de ángulos respectivos, horizontal y vertical; y
para cada una de las celdas:
construir (1106) un círculo sobre una superficie del elipsoide en el par de ángulos horizontal y vertical que corresponde a la celda, y
almacenar (1108) una pluralidad de pares [posición, peso] como datos que corresponden a la celda, que comprende:
ubicar aleatoriamente un número predeterminado de puntos dentro del círculo,
para cada uno de los puntos, determinar un espejo respectivo más cercano,
para cada uno de los espejos, determinar un recuento de puntos que tenga el espejo como el espejo más cercano al punto, y
determinar un par [posición, peso] respectivo para cada uno de los espejos, en donde la posición identifica el espejo y el peso se determina dividiendo el recuento de puntos para el espejo entre el número predeterminado.
2. El método de la reivindicación 1, que comprende adicionalmente:
representar la representación de gráficos por ordenador del material físico.
3. El método de la reivindicación 1, en donde las posiciones de la pluralidad de espejos definen un hemisferio.
4. El método de la reivindicación 1, en donde calcular el color de iluminación directa en la posición de mapeo usando la pluralidad de imágenes en paleta comprende:
identificar una primera celda en la tabla bidimensional que corresponde a la dirección de vista;
identificar una segunda celda en la tabla bidimensional que corresponde a la dirección de luz;
determinar una primera imagen en paleta contribuyente y una segunda imagen en paleta contribuyente usando los pares [posición, peso] almacenados en la primera celda y en la segunda celda;
extraer un primer píxel de la primera imagen de la paleta contribuyente y un segundo píxel de la segunda imagen de la paleta contribuyente; y
determinar el color de iluminación directa usando los píxeles extraídos y los pesos para la primera y segunda celdas.
5. El método de la reivindicación 4, en donde extraer un píxel de cada una de las imágenes en paleta contribuyentes comprende extraer los píxeles mediante el traslado de coordenadas de la posición de mapeo a una ubicación en cada imagen en paleta contribuyente.
6. El método de la reivindicación 4, en donde determinar el color de iluminación directa usando los píxeles extraídos y los pesos comprende:
determinar un color del primer píxel y un color del segundo píxel;
ponderar el color del primer píxel basándose en los pesos en los pares [posición, peso] usados para seleccionar la primera imagen en paleta contribuyente;
ponderar el color del segundo píxel basándose en los pesos de los pares (posición, peso) usados para seleccionar la segunda imagen en paleta contribuyente; y
sumar los colores ponderados para determinar el color de iluminación directa.
7. El método de la reivindicación 1, en donde generar el diagrama Voronoi comprende identificar un espejo más cercano para cada punto del elipsoide, en donde el espejo más cercano es el espejo que presenta una distancia más corta desde el punto hasta el centro del espejo.
8. El método de la reivindicación 7, en donde generar el diagrama Voronoi comprende adicionalmente asignar cada punto que comparte un mismo espejo más cercano a una misma zona (1152, 1154) del diagrama (1150) Voronoi.
9. El método de la reivindicación 1, en donde construir el círculo sobre la superficie comprende seleccionar, desde cada posible círculo que cubre al menos dos zonas (1152, 1154) del diagrama (1150) Voronoi, el círculo que tiene el radio más pequeño.
10. El método de la reivindicación 1, en donde los datos que describen el material físico comprenden una tabla K x M para un primer píxel en una primera imagen de región, en donde la primera imagen de región corresponde a la dirección de vista recibida, en donde el primer píxel corresponde a la posición de mapeo recibida, y en donde cada celda de la tabla contiene una posición de un centro de una pieza respectiva de un elipsoide definido por la pluralidad de espejos.
11. El método de la reivindicación 10, en donde calcular el color de iluminación indirecta en la posición de mapeo usando los datos que describen el material físico comprende:
determinar un primer color de iluminación indirecta en la posición de mapeo, que comprende:
generar un primer número aleatorio no entero seleccionado de un intervalo de cero a K:
generar un segundo número aleatorio no entero seleccionado de un intervalo de cero a M;
indexar la tabla usando el primer número aleatorio y el segundo número aleatorio para identificar celdas que delimitan el primer número aleatorio y el segundo número aleatorio;
identificar posiciones contenidas en las celdas identificadas;
combinar las posiciones para generar una posición final; y
seguir el trazado de un rayo en la dirección definida por la posición final para determinar el primer color de iluminación indirecta; y
calcular el color de iluminación indirecta en la posición de mapeo basándose al menos en parte en el primer color de iluminación indirecta.
12. El método de la reivindicación 11, en donde calcular el color de iluminación indirecta en la posición de mapeo basándose al menos en parte en el primer color de iluminación indirecta comprende usar el primer color de iluminación indirecta como el color de iluminación indirecta.
13. El método de la reivindicación 11, en donde calcular el color de iluminación indirecta en la posición de mapeo basándose al menos en parte en el primer color de iluminación indirecta comprende:
calcular uno o más colores distintos de iluminación indirecta; y
combinar el uno o más colores distintos de iluminación indirecta con el primer color de iluminación indirecta para generar un color de iluminación indirecta final.
14. Un sistema que comprende uno o más ordenadores y uno o más dispositivos de almacenamiento que almacenan instrucciones que cuando son ejecutadas por el uno o más ordenadores hacen que el uno o más ordenadores realicen operaciones, en donde las operaciones comprenden el método de una cualquiera de las reivindicaciones 1 a 13.
15. Un medio legible por ordenador que almacena instrucciones que cuando son ejecutadas por uno o más ordenadores hacen que el uno o más ordenadores realicen operaciones del método de una cualquiera de las reivindicaciones 1 a 13.
ES15167852T 2014-05-15 2015-05-15 Sombreado representaciones CG de materiales Active ES2893260T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/278,025 US8982125B1 (en) 2014-05-15 2014-05-15 Shading CG representations of materials
US14/448,666 US8982126B1 (en) 2014-05-15 2014-07-31 Shading CG representations of materials

Publications (1)

Publication Number Publication Date
ES2893260T3 true ES2893260T3 (es) 2022-02-08

Family

ID=52632264

Family Applications (3)

Application Number Title Priority Date Filing Date
ES16157620T Active ES2802225T3 (es) 2014-05-15 2015-05-15 Sombreado de representaciones CG de materiales
ES15167852T Active ES2893260T3 (es) 2014-05-15 2015-05-15 Sombreado representaciones CG de materiales
ES20163770T Active ES2932404T3 (es) 2014-05-15 2015-05-15 Sombreado de representaciones CG de materiales

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES16157620T Active ES2802225T3 (es) 2014-05-15 2015-05-15 Sombreado de representaciones CG de materiales

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES20163770T Active ES2932404T3 (es) 2014-05-15 2015-05-15 Sombreado de representaciones CG de materiales

Country Status (9)

Country Link
US (3) US8982125B1 (es)
EP (3) EP3739549B1 (es)
JP (2) JP5813900B1 (es)
KR (2) KR101607607B1 (es)
CN (2) CN105096374B (es)
AU (1) AU2015201456C1 (es)
CA (2) CA2924144C (es)
DK (3) DK3079122T3 (es)
ES (3) ES2802225T3 (es)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713838B2 (en) * 2013-05-03 2020-07-14 Nvidia Corporation Image illumination rendering system and method
US8982125B1 (en) 2014-05-15 2015-03-17 Chaos Software Ltd. Shading CG representations of materials
KR102306780B1 (ko) * 2014-12-15 2021-09-30 삼성전자주식회사 영상 처리 장치 및 방법
JP6604744B2 (ja) * 2015-05-03 2019-11-13 キヤノン株式会社 画像処理装置、画像処理方法、画像形成システム及びプログラム
EP3488182A4 (en) 2016-07-20 2020-08-26 Mura Inc. 3D SURFACE MEASUREMENT SYSTEMS AND METHODS
DE102017127367A1 (de) * 2016-12-09 2018-06-14 Nvidia Corporation Automatischer detaillierungsgrad für physikalisch basierte materialien
US10504273B2 (en) 2016-12-09 2019-12-10 Nvidia Corporation Automatic level-of-detail for physically-based materials
CN108460825A (zh) * 2018-03-15 2018-08-28 中辰远瞻(北京)照明设计有限公司 一种夜景照明方案效果图制作方法
US11030800B2 (en) * 2019-11-08 2021-06-08 Chaos Software Ltd. Rendering images using modified multiple importance sampling
CN111179402B (zh) * 2020-01-02 2023-07-14 竞技世界(北京)网络技术有限公司 一种目标对象的渲染方法、装置及***
JP7362121B2 (ja) * 2020-02-25 2023-10-17 株式会社パパラボ 色・質感測定装置及び方法
KR20230021962A (ko) * 2021-08-06 2023-02-14 현대자동차주식회사 자동차 실내 마감재 변화에 따른 간접조명 색 보정 장치 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6858826B2 (en) * 1996-10-25 2005-02-22 Waveworx Inc. Method and apparatus for scanning three-dimensional objects
DE10108075A1 (de) * 2001-02-20 2002-09-19 Oce Document Technologies Gmbh Vorrichtung und Verfahren zum zeilenförmigen Beleuchten eines Objektes mittels LEDs und eines elliptischen Spiegels
JP3922543B2 (ja) * 2002-06-05 2007-05-30 ソニー株式会社 撮像装置、および画像表示装置
US6831641B2 (en) * 2002-06-17 2004-12-14 Mitsubishi Electric Research Labs, Inc. Modeling and rendering of surface reflectance fields of 3D objects
US7830522B2 (en) * 2002-09-25 2010-11-09 New York University Method and apparatus for determining reflectance data of a subject
DK1774465T3 (da) * 2004-07-23 2009-08-17 3Shape As Adaptiv 3D scanning
JP2006139726A (ja) * 2004-11-15 2006-06-01 Mitsubishi Heavy Ind Ltd 質感再現システム
US7929142B2 (en) * 2007-09-25 2011-04-19 Microsoft Corporation Photodiode-based bi-directional reflectance distribution function (BRDF) measurement
TWI374398B (en) * 2008-06-16 2012-10-11 Univ Nat Cheng Kung Method and apparatus for forming 3-d image
JP5294403B2 (ja) * 2008-11-19 2013-09-18 国立大学法人 名古屋工業大学 三次元ct計測システム
US9071834B2 (en) * 2009-04-25 2015-06-30 James Yett Array of individually angled mirrors reflecting disparate color sources toward one or more viewing positions to construct images and visual effects
US20130120385A1 (en) * 2009-09-15 2013-05-16 Aravind Krishnaswamy Methods and Apparatus for Diffuse Indirect Illumination Computation using Progressive Interleaved Irradiance Sampling
JP5721070B2 (ja) * 2011-03-08 2015-05-20 国立研究開発法人産業技術総合研究所 光学特性測定装置
US8432435B2 (en) 2011-08-10 2013-04-30 Seiko Epson Corporation Ray image modeling for fast catadioptric light field rendering
KR101351745B1 (ko) * 2012-06-29 2014-01-16 인텔렉추얼디스커버리 주식회사 3차원 얼굴 생성 장치 및 방법
US8982125B1 (en) 2014-05-15 2015-03-17 Chaos Software Ltd. Shading CG representations of materials

Also Published As

Publication number Publication date
EP3739549B1 (en) 2022-09-07
ES2802225T3 (es) 2021-01-18
KR20150132031A (ko) 2015-11-25
CA2924144C (en) 2016-10-04
AU2015201456B1 (en) 2015-05-07
CA2891431A1 (en) 2015-08-07
DK3079122T3 (da) 2020-06-22
CN105096374B (zh) 2017-04-26
JP2015219918A (ja) 2015-12-07
DK3739549T3 (da) 2022-11-28
CA2924144A1 (en) 2015-08-07
JP6138880B2 (ja) 2017-05-31
EP2977960A1 (en) 2016-01-27
JP5813900B1 (ja) 2015-11-17
EP3079122B1 (en) 2020-03-18
EP3079122A1 (en) 2016-10-12
US9235927B2 (en) 2016-01-12
DK2977960T3 (da) 2021-10-04
ES2932404T3 (es) 2023-01-18
CN105787990B (zh) 2019-10-22
CA2891431C (en) 2016-08-02
CN105787990A (zh) 2016-07-20
US20150332497A1 (en) 2015-11-19
US8982126B1 (en) 2015-03-17
AU2015201456C1 (en) 2015-10-15
JP2016027487A (ja) 2016-02-18
KR101656420B1 (ko) 2016-09-09
US8982125B1 (en) 2015-03-17
EP3739549A1 (en) 2020-11-18
KR20160029059A (ko) 2016-03-14
EP2977960B1 (en) 2021-07-14
CN105096374A (zh) 2015-11-25
KR101607607B1 (ko) 2016-03-30

Similar Documents

Publication Publication Date Title
ES2893260T3 (es) Sombreado representaciones CG de materiales
US11508115B2 (en) Quotidian scene reconstruction engine
CN110998658A (zh) 利用结构化光和泛光的深度图
US20140205146A1 (en) Systems and methods of tracking object movements in three-dimensional space
CN114556431A (zh) 增强现实的3d重建
AU2015204402B2 (en) Shading cg representations of materials
US20220301221A1 (en) Determining Object Pose From Image Data
Petrasova et al. System Configuration