Graficacion
sábado, 7 de diciembre de 2013
viernes, 6 de diciembre de 2013
Modelado Geometrico
Modelos geométricos
Describen componentes con propiedades geométricas inherentes y por lo tanto se presentan en forma natural a la representación gráfica. Forma entre los que se puede representar un modelo geométrico:
* Distribución espacial y forma de los componentes y otros componentes que afectan a la apariencia de los componentes.
* Conectividad de los componentes.
* Los valores de datos específicos para la aplicación
Modelado de superficie
Es la estimación de los valores de una superficie en cualquiera de sus puntos, partiendo de un conjunto de datos de muestreo (x,y,z), denominados puntos de control.

Aplicaciones
* Geología
* Geofísica
* Meteorología
* Ingeniería Ambiental
* Economía
* Medicina
Este modelo nos permite utilizar representaciones de los sólidos basadas el almacenamiento de la frontera, que es una entidad bidimensional. Para facilitar la representación se suele exigir, además que la frontera sea 2-variedad, esto es, cada punto de la frontera es homeomoformo a un disco en E2.
Existen dos enfoques para la presentación de la superficie externa del objeto:
1) El objeto se presenta con una lista de facetas, descritas por los lados y las aristas que la delimitan. La lista de caras puede incluir solamente informaciones geométricas propias de cada faceta (tamaño, posición respecto a un origen, etcétera), o puede estar estructurada en un conjunto más complejo, donde los nodos de tipo "caras" se ligan a los nodos arista a través de los nodos "lados". Estas conexiones pueden representarse en forma de gráficas o de una estructura de árbol.
2) El objeto se representa empleando superficies de "forma libre", que el usuario manipula interactivamente a través de puntos llamados de "control". Se utiliza una superficie representada por ecuaciones paramétricas, que efectúa una aproximación de envoltura exterior del objeto.

Modelado de sólido.

El modelado de sólidos es una rama del modelado geométrico que hace énfasis en la aplicabilidad general de modelos, e insiste únicamente en la creación de representaciones “completas” de objetos físicos sólidos, esto es, representaciones que son adecuadas para la respuesta de preguntas geométricas arbitrarias de manera algorítmica.
El objetivo de la aplicabilidad general, separa al modelado de sólidos de otros tipos de modelado geométrico, los cuales están enfocados hacia propósitos especiales. Los modelos gráficos (Graphical Models) intentan describir undibujo de un objeto mas que el objeto en si mismo.
El modelado de sólidos es el conjunto de teorías, técnicas y sistemas orientados a la representación “completa en cuanto a información” de sólidos. Dicha representación debe permitir (al menos en principio) calcular automáticamente cualquier propiedad bien conocida de cualquier solido almacenado.
jueves, 5 de diciembre de 2013
jueves, 14 de noviembre de 2013
Lineas
Algoritmo DDA para generacion de lineas.
Es un algoritmo que se basa en el calculo y la evaluacion de un DeltaX(X) y un DeltaY(Y). Por medio de las siguientes ecuaciones:
DeltaX = DeltaY / m
DeltaY = m * DeltaX
Leer Coordenadas P1(Xinicial, Yinicial)
Leer Coordenadas P2(Xfinal,Yfinal)
Asignar a DeltaX la diferencia de Xfinal - Xinicial
Asignar a DeltaY la diferencia de Yfinal - Yinicial
Si ABS( DeltaX) > ABS(DeltaY)
Asignar a Pasos el ABS(DeltaX)
De lo contrario
Asignar a Pasos el ABS(DeltaY)
Asignar a Xincremento el resultado de DeltaX / Pasos
Asignar a Yincremento el resultado de DeltaY / Pasos
Asignar a X el valor de Xinicial
Asignar a Y el valor de Yinicial
Iluminar pixel en coordenada X,Y
Desde k=1 hasta Pasos
Asignar a X la suma de X + Xincremento
Asignar a Y la suma de Y + Yincremento
Iluminar pixel en Coodenada X,Y
Fin de Algoritmo(DDA)
Es
considerado uno de los algoritmos más efectivos para dibujar líneas
mediante rastreo. Emplea cálculos incrementales con valores enteros. La
forma de determinar el siguiente pixel a dibujar en la generación de una
línea, se describe a continuación:
1.- Punto inicial P1(Xinicial,Yinicial).
2.- Se desplaza una columna (incrementando la posición en X)
3.- Se traza el pixel cuyo valor de Y de la línea de rastreo se aproxima más a la trayectoria de la línea. Se capturan los dos extremos de la línea P1(Xinicial,Yinicial) y P2(Xfinal,Yfinal)
4.- Se dibuja el primer pixel correspondiente al extremo izquierdo de la línea(P1)
5.- Se calculan los parámetros que permitien decidir cuál será el proximo pixel a dibujar (DeltaX, DeltaY y ConstanteP).
6.- Dependiendo del valor que tome el Parámetro ConstanteP se evalúa y determina la coordenada a dibujar que puede ser:
1.- (X+1,Y) para ConstanteP < 0
2.- Sino (X+1,Y+1)
El proceso anterior debe repetirse 4DeltaX veces.
Pseudocodigo.
Leer Coordenadas P1(Xinicial, Yinicial)
Leer Coordenadas P2(Xfinal, Yfinal)
Asignar a DeltaX el ABS( Xfinal - Xinicial)
Asignar a DeltaY el ABS( Yfinal -Yinicial)
Asignar a ConstanteP el resultado de 2*DeltaY - DeltaX
Si Xinicial > Xfinal
Asignar Xfinal a X
Asignar Yfinal a Y
Asignar Xinicial a Ultimo
De lo contrario
Asignar Xinicial a X
Asignar Yinicial a Y
Asignar a Xfinal a Ultimo
Iluminar pixel en coordenada X,Y
Hacer mientras X<Ultimo
Asignar X + 1 a X
Si ConstanteP < 0
Asignar ConstanteP + 2 *DeltaY a ConstanteP
De lo contrario
Asignar Y+1 a Y
Asignar a ConstanteP el resultado de ConstanteP+2 *(DeltaY-DeltaX)
Iluminar pixel en coordenada X,Y
Fin de Algoritmo (Bresenham)
Código:
void Bres(int x0,int y0,int xFin,int yFin)
{
int dx = fabs(xFin - x0),
dy = fabs(yFin - y0);
int p = 2 * dy - dx;
int dosDy = 2 * dy,
dosDyMenosDx = 2 * (dy - dx);
int x, y;
/* Determinamos que punto usamos como inicio. */
if (x0 > xFin) {
x = xFin;
y = yFin;
xFin = x0;
}
else {
x = x0;
y = y0;
}
setPixel (x, y);
while (x <>
x++;
if (p <>
p += dosDy;
else {
y++;
p += dosDyMenosDx;
}
setPixel (x, y);
}
}
Es un algoritmo que se basa en el calculo y la evaluacion de un DeltaX(X) y un DeltaY(Y). Por medio de las siguientes ecuaciones:
DeltaX = DeltaY / m
DeltaY = m * DeltaX
Se
efectua un muestreo de la linea en intervalos unitarios en una
coordenada y se determinan los valores enteros correspondientes mas
proximos a la trayectoria de la linea para la siguiente coordenada.
Se
aceptan como datos de entradas las dos posiciones de los pixeles
correspondientes a los extremos de la linea p1(Xinicial, Yinicial) y
p2(Xfinal, Yfinal). Las diferencias horizontal y vertical entre las
posiciones de los extemos dados, se asigna las variables DeltaX y DeltaY
respectivamente. La diferencia con la mayor magnitud determina el valor
del parametro Pasos. Se procede a determinar la compensacion necesaria
(incremento), para generar la posicion del pixel siguiente a lo largo de
la trayectoria de la linea. Luego, se ilumina la posicion en la
pantalla y se repite este proceso ciclico, hasta obtener la linea
deseada.
Pseudocodigo.
Leer Coordenadas P2(Xfinal,Yfinal)
Asignar a DeltaX la diferencia de Xfinal - Xinicial
Asignar a DeltaY la diferencia de Yfinal - Yinicial
Si ABS( DeltaX) > ABS(DeltaY)
Asignar a Pasos el ABS(DeltaX)
De lo contrario
Asignar a Pasos el ABS(DeltaY)
Asignar a Xincremento el resultado de DeltaX / Pasos
Asignar a Yincremento el resultado de DeltaY / Pasos
Asignar a X el valor de Xinicial
Asignar a Y el valor de Yinicial
Iluminar pixel en coordenada X,Y
Desde k=1 hasta Pasos
Asignar a X la suma de X + Xincremento
Asignar a Y la suma de Y + Yincremento
Iluminar pixel en Coodenada X,Y
Fin de Algoritmo(DDA)
Código:
void DDA(int x0,int y0,int xFin,int yFin)
{
int dx = xFin - x0, dy = yFin - y0, steps, k;
float xIncremento, yIncremento;
float x = x0, y = y0;
if (fabs (dx) > fabs (dy))
steps = fabs (dx); /* |m|<1>
else
steps = fabs (dy); /* |m|>=1 */
xIncremento=float(dx)/float (steps);
yIncrement = float (dy) / float (steps);
setPixel (round (x), round (y));
for (k = 0; k <>
{
x += xIncremento;
y += yIncremento;
setPixel (round (x), round (y));
}
}
void DDA(int x0,int y0,int xFin,int yFin)
{
int dx = xFin - x0, dy = yFin - y0, steps, k;
float xIncremento, yIncremento;
float x = x0, y = y0;
if (fabs (dx) > fabs (dy))
steps = fabs (dx); /* |m|<1>
else
steps = fabs (dy); /* |m|>=1 */
xIncremento=float(dx)/float (steps);
yIncrement = float (dy) / float (steps);
setPixel (round (x), round (y));
for (k = 0; k <>
{
x += xIncremento;
y += yIncremento;
setPixel (round (x), round (y));
}
}
Algoritmo de Bresenham para trazar líneas.
Es un
algoritmo creado para dibujar rectas en los dispositivos de graficos
rasterizados, como por ejemplo un monitor de computadora, que determina
que pixeles se rellenaran, en funcion de la inclinacion del angulo de la
recta a dibujar.
Es un
algoritmo preciso para la generacion de lineas de rastreo que convierte
mediante rastreo las lineas al utilizar solo calculos incrementales con
enteros que se pueden adaptar para desplegar circunferencias y curvas.
Los ejes verticales muestran las posiciones de rastreo y los ejes
horizontales identifican las columnas de pixel.
1.- Punto inicial P1(Xinicial,Yinicial).
2.- Se desplaza una columna (incrementando la posición en X)
3.- Se traza el pixel cuyo valor de Y de la línea de rastreo se aproxima más a la trayectoria de la línea. Se capturan los dos extremos de la línea P1(Xinicial,Yinicial) y P2(Xfinal,Yfinal)
4.- Se dibuja el primer pixel correspondiente al extremo izquierdo de la línea(P1)
5.- Se calculan los parámetros que permitien decidir cuál será el proximo pixel a dibujar (DeltaX, DeltaY y ConstanteP).
6.- Dependiendo del valor que tome el Parámetro ConstanteP se evalúa y determina la coordenada a dibujar que puede ser:
1.- (X+1,Y) para ConstanteP < 0
2.- Sino (X+1,Y+1)
El proceso anterior debe repetirse 4DeltaX veces.
Leer Coordenadas P2(Xfinal, Yfinal)
Asignar a DeltaX el ABS( Xfinal - Xinicial)
Asignar a DeltaY el ABS( Yfinal -Yinicial)
Asignar a ConstanteP el resultado de 2*DeltaY - DeltaX
Si Xinicial > Xfinal
Asignar Xfinal a X
Asignar Yfinal a Y
Asignar Xinicial a Ultimo
De lo contrario
Asignar Xinicial a X
Asignar Yinicial a Y
Asignar a Xfinal a Ultimo
Iluminar pixel en coordenada X,Y
Hacer mientras X<Ultimo
Asignar X + 1 a X
Si ConstanteP < 0
Asignar ConstanteP + 2 *DeltaY a ConstanteP
De lo contrario
Asignar Y+1 a Y
Asignar a ConstanteP el resultado de ConstanteP+2 *(DeltaY-DeltaX)
Iluminar pixel en coordenada X,Y
Fin de Algoritmo (Bresenham)
Código:
void Bres(int x0,int y0,int xFin,int yFin)
{
int dx = fabs(xFin - x0),
dy = fabs(yFin - y0);
int p = 2 * dy - dx;
int dosDy = 2 * dy,
dosDyMenosDx = 2 * (dy - dx);
int x, y;
/* Determinamos que punto usamos como inicio. */
if (x0 > xFin) {
x = xFin;
y = yFin;
xFin = x0;
}
else {
x = x0;
y = y0;
}
setPixel (x, y);
while (x <>
x++;
if (p <>
p += dosDy;
else {
y++;
p += dosDyMenosDx;
}
setPixel (x, y);
}
}
miércoles, 13 de noviembre de 2013
Conceptos Unidad III
Tecnicas de sombreado clásicas y avanzadas
Clasicas: iluminación local
OpenGL calcula la iluminación en cada vértice, y obtiene una terna rgb que se usará para dar color a los polígonos o aristas. El valor obtenido en cada vértice es la suma de cinco componentes:
Emisión (E)
Luz ambiental global (A1)
Luz ambiental específica del polígono (A2)
Reflexión difusa (D)
Reflexión especular (S)
La formula final es la suma de todos los términos anteriores:
I = E + A1 + A2 + D + S
OpenGL calcula el valor de I para cada vértice del modelo, y usa esos colores para asignar un color a todos los pixeles.
En general, I depende de las características de las fuentes de luz definidas y las características del material asignado a los polígonos que se dibujen.
En adelante, una terna RGB o color es un conjunto de tres valores reales entre cero y uno, ambos incluidos.
Posterior relleno de triangulos.
Para ello se realizan varias fases de procesamiento por Pixel. Comprobar si cada nuevo pixel es visible o no (comprobación de profundidad).
Interpolación lineal del color para el nuevo pixel (método de Gouraud).
Si existe una textura definida o transparencia, efectuar la modificación de color correspondiente.
En esta etapa se trata de asignar colores a los pixeles correspondientes al interior de cada triángulo proyectado que cae dentro del área de visualización.
Renderizado en tiempo real.
La idea fundamental del procesado en tiempo real es que todos los objetos deben ser descompuestos en polígonos. Estos polígonos serán descompuestos a su vez en triangulos. Cada triangulo será proyectado sobre la ventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Una vez se han generado los triangulos, en la pipeline existen dos partes claramente diferenciadas: una primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que estos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por los triangulos.
Realistas: iluminacion global.
Trazado de rayos.
El trazado de rayos computa la interacción de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad especifica de un determinado material.
Radiosidad.
En el estado inicial la escena consta de dos tipos de objetos: objetos que emiten luz y objetos que reciben luz. A partir de aquí, en una primera vuelta, se computa la luz que recibe cada objeto en una aproximación mas exacta, cada parte de un objeto, según una subdivisión cuya densidad puede precisarse en sucesivas aproximaciones. Cada una de estas partes, según su grado de reflexividad, su orientación y su distancia con respecto a las fuentes de luz original, se convertirá en una segunda vuelta, en un nuevo emisor de energía lumínica, una fuente de luz secundaria que iluminara a su vez a los objetos que le rodean.
Calculos de iluminacion por pixel.
La iluminación por píxel en tiempo real es una tecnología revolucionaria ofrecida como primicia por NVIDIA Shading Rasterizer. La iluminación dinámica a nivel de píxel libera a los desarrolladores de las restricciones de otros sistemas de iluminación y pone a su alcance toda una gama de sofisticados efectos.
Alto acabado.
Sombreado Constante o plano. Un cálculo para todo el polígono. Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo). El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Sombreado constante o plano.
Un calculo para todo el poligono.
Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo)
El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Interpolacion de Intensidades (Gouraud).
Se basa en la interpolación de intensidad o color.
Considera que facetas planas vecinas proceden de aproximar una superficie curva
* Elimina en gran medida las discontinuidades de iluminación
* Es sencilla, pero produce peores resultados en objetos con brillos especulares que el método de Phong.
*Implementado en OpenGL
Calcula normales al poligono.
La iluminación cte. no produce buenos resultados en superficies curvas (aprox. por facetas planas).
Evaluar la ecuación de iluminación en cada punto de una superficie genérica es muy costoso. Posible solución: aproximar mediante facetas planas e interpolar dentro de cada polígono. Hay que evitar producir una apariencia “faceteada” (bandas de Mach; respuesta del ojo humano).
interpolacion de normales (PHONG)
Se basa en la interpolación de la dirección de la normal, calculada de la misma forma que antes. Igual que en Gouraud, se interpola a lo largo de cada línea de barrido, entre los puntos inicial y final, interpolados a su vez de los valores de los vértices de la arista. Captura mejor los brillos especulares en el medio de facetas planas. Si el coeficiente de reflexión especular es pequeño, los resultados no difieren tanto.
Raytracing
El raytracing o trazado de rayos es un algoritmo para síntesis de imágenes tridimensionales.
En el algoritmo Ray Casting se determinan las superficies visibles en la escena que se quiere sintetizar trazando rayos desde el observador (cámara) hasta la escena a través del plano de la imagen. Se calculan las intersecciones del rayo con los diferentes objetos de la escena y aquella intersección que esté más cerca del observador determina cuál es el objeto visible.
Buffer de profundidad
El Z-Buffer se basa en que al generar la posición de un punto en la pantalla la computadora reserve una zona de memoria especial, llamada Z-Buffer, información relacionada con la profundidad del punto que ocupa en la escena representada. Cuando el ordenador representa un nuevo punto consulta el Z-Buffer del píxel que corresponde en pantalla. Si el valor que ya existe en el píxel es mayor que el que posee el nuevo punto, el sistema asume que este último es el visible y lo sustituye en la memoria del Z- Buffer.
Buffer stencill
Stencill Buffer es una memoria intermedia que analiza y actualiza píxeles junto con “depth buffer” o buffer de profundidad. Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad.
Stencil buffer es similar al buffer de profundidad en que los dos son colección de planos de bit que no se pueden mostrar.
Fuentes de color
Para la mayoría de las aplicaciones, se puede modelar fuentes de luz en base a tres componentes primarios, RGB, y puede usar cada uno de los tres colores fuentes para obtener el componente de color correspondiente que un observador humano vería.
Luz ambiente
La luz ambiente ilumina por igual todas las zonas en sombra para simular el efecto de interacción entre objetos que hace que las partes en sombra de los objetos queden parcialmente iluminadas. Esta iluminación uniforme se llama luz ambiente. Si se sigue este segundo enfoque, se puede postular una intensidad ambiente en cada punto del ambiente.
Spotlights
Los spotlights se caracterizan por un rango delgado de ángulos por los cuales se emite luz. Se puede construir un spotlight sencillo de una fuente de punto limitando los ángulos de donde la luz de la fuente se puede ver.
Fuentes de luz distantes
La mayoría de los cálculos de sombreado requieren la dirección de un punto sobre la superficie a la fuente de luz. Según se mueve a lo largo de la superficie, se debe recomputar este vector para calcular la intensidad en cada punto, una computación que es una parte significativa del cálculo del sombreado. Sin embargo, si la fuente de luz está lejos de la superficie.
intensidad completa
La intensidad completa exclusivamente Por efectos de iluminación es la siguiente:
Clasicas: iluminación local
OpenGL calcula la iluminación en cada vértice, y obtiene una terna rgb que se usará para dar color a los polígonos o aristas. El valor obtenido en cada vértice es la suma de cinco componentes:
Emisión (E)
Luz ambiental global (A1)
Luz ambiental específica del polígono (A2)
Reflexión difusa (D)
Reflexión especular (S)
La formula final es la suma de todos los términos anteriores:
I = E + A1 + A2 + D + S
OpenGL calcula el valor de I para cada vértice del modelo, y usa esos colores para asignar un color a todos los pixeles.
En general, I depende de las características de las fuentes de luz definidas y las características del material asignado a los polígonos que se dibujen.
En adelante, una terna RGB o color es un conjunto de tres valores reales entre cero y uno, ambos incluidos.
Posterior relleno de triangulos.
Para ello se realizan varias fases de procesamiento por Pixel. Comprobar si cada nuevo pixel es visible o no (comprobación de profundidad).
Interpolación lineal del color para el nuevo pixel (método de Gouraud).
Si existe una textura definida o transparencia, efectuar la modificación de color correspondiente.
En esta etapa se trata de asignar colores a los pixeles correspondientes al interior de cada triángulo proyectado que cae dentro del área de visualización.
Renderizado en tiempo real.
La idea fundamental del procesado en tiempo real es que todos los objetos deben ser descompuestos en polígonos. Estos polígonos serán descompuestos a su vez en triangulos. Cada triangulo será proyectado sobre la ventana bidimensional y rellenado con los colores adecuados para reflejar los efectos de la iluminación, texturas, etc. Una vez se han generado los triangulos, en la pipeline existen dos partes claramente diferenciadas: una primera etapa operaciones realizadas sobre cada uno de los vértices, y después de que estos se proyecten sobre la ventana, entonces comienza una segunda fase de cálculos realizados para cada pixel cubierto por los triangulos.
Realistas: iluminacion global.
Trazado de rayos.
El trazado de rayos computa la interacción de la luz desde un punto de vista determinado y es particularmente adecuado para superficies reflectantes. Puede utilizarse como propiedad especifica de un determinado material.
Radiosidad.
En el estado inicial la escena consta de dos tipos de objetos: objetos que emiten luz y objetos que reciben luz. A partir de aquí, en una primera vuelta, se computa la luz que recibe cada objeto en una aproximación mas exacta, cada parte de un objeto, según una subdivisión cuya densidad puede precisarse en sucesivas aproximaciones. Cada una de estas partes, según su grado de reflexividad, su orientación y su distancia con respecto a las fuentes de luz original, se convertirá en una segunda vuelta, en un nuevo emisor de energía lumínica, una fuente de luz secundaria que iluminara a su vez a los objetos que le rodean.
Calculos de iluminacion por pixel.
La iluminación por píxel en tiempo real es una tecnología revolucionaria ofrecida como primicia por NVIDIA Shading Rasterizer. La iluminación dinámica a nivel de píxel libera a los desarrolladores de las restricciones de otros sistemas de iluminación y pone a su alcance toda una gama de sofisticados efectos.
Alto acabado.
Sombreado Constante o plano. Un cálculo para todo el polígono. Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo). El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Sombreado constante o plano.
Un calculo para todo el poligono.
Obtenemos una intensidad que aplicamos a un conjunto de puntos de un objeto (p.ej. todo un triángulo)
El polígono representa una superficie plana real del objeto que se modela y no es una aproximación de un objeto curvo.
Interpolacion de Intensidades (Gouraud).
Se basa en la interpolación de intensidad o color.
Considera que facetas planas vecinas proceden de aproximar una superficie curva
* Elimina en gran medida las discontinuidades de iluminación
* Es sencilla, pero produce peores resultados en objetos con brillos especulares que el método de Phong.
*Implementado en OpenGL
Calcula normales al poligono.
La iluminación cte. no produce buenos resultados en superficies curvas (aprox. por facetas planas).
Evaluar la ecuación de iluminación en cada punto de una superficie genérica es muy costoso. Posible solución: aproximar mediante facetas planas e interpolar dentro de cada polígono. Hay que evitar producir una apariencia “faceteada” (bandas de Mach; respuesta del ojo humano).
Se basa en la interpolación de la dirección de la normal, calculada de la misma forma que antes. Igual que en Gouraud, se interpola a lo largo de cada línea de barrido, entre los puntos inicial y final, interpolados a su vez de los valores de los vértices de la arista. Captura mejor los brillos especulares en el medio de facetas planas. Si el coeficiente de reflexión especular es pequeño, los resultados no difieren tanto.
Raytracing
El raytracing o trazado de rayos es un algoritmo para síntesis de imágenes tridimensionales.
En el algoritmo Ray Casting se determinan las superficies visibles en la escena que se quiere sintetizar trazando rayos desde el observador (cámara) hasta la escena a través del plano de la imagen. Se calculan las intersecciones del rayo con los diferentes objetos de la escena y aquella intersección que esté más cerca del observador determina cuál es el objeto visible.
Buffer de profundidad
El Z-Buffer se basa en que al generar la posición de un punto en la pantalla la computadora reserve una zona de memoria especial, llamada Z-Buffer, información relacionada con la profundidad del punto que ocupa en la escena representada. Cuando el ordenador representa un nuevo punto consulta el Z-Buffer del píxel que corresponde en pantalla. Si el valor que ya existe en el píxel es mayor que el que posee el nuevo punto, el sistema asume que este último es el visible y lo sustituye en la memoria del Z- Buffer.
Buffer stencill
Stencill Buffer es una memoria intermedia que analiza y actualiza píxeles junto con “depth buffer” o buffer de profundidad. Añade planos de bits adicionales para cada píxel además de los bits de color y profundidad.
Stencil buffer es similar al buffer de profundidad en que los dos son colección de planos de bit que no se pueden mostrar.
Fuentes de color
Para la mayoría de las aplicaciones, se puede modelar fuentes de luz en base a tres componentes primarios, RGB, y puede usar cada uno de los tres colores fuentes para obtener el componente de color correspondiente que un observador humano vería.
Luz ambiente
La luz ambiente ilumina por igual todas las zonas en sombra para simular el efecto de interacción entre objetos que hace que las partes en sombra de los objetos queden parcialmente iluminadas. Esta iluminación uniforme se llama luz ambiente. Si se sigue este segundo enfoque, se puede postular una intensidad ambiente en cada punto del ambiente.
Spotlights
Los spotlights se caracterizan por un rango delgado de ángulos por los cuales se emite luz. Se puede construir un spotlight sencillo de una fuente de punto limitando los ángulos de donde la luz de la fuente se puede ver.
Fuentes de luz distantes
La mayoría de los cálculos de sombreado requieren la dirección de un punto sobre la superficie a la fuente de luz. Según se mueve a lo largo de la superficie, se debe recomputar este vector para calcular la intensidad en cada punto, una computación que es una parte significativa del cálculo del sombreado. Sin embargo, si la fuente de luz está lejos de la superficie.
intensidad completa
La intensidad completa exclusivamente Por efectos de iluminación es la siguiente:
Suscribirse a:
Entradas (Atom)







