Vous êtes sur la page 1sur 69

COMPUTACIÓN GRÁFICA

Modelamiento
Los métodos en el espacio de objetos:

Algoritmos para determinar que partes de los objetos
deben ser renderizados en coordenadas 3D

Los métodos se basan en la coparacion de objetos –
sus posiciones y dimensiones con respecto a una
posicion del observador.

Para N objetos se requerirá de N*N operaciones de
comparacion

Es eficiente para un pequeño numero de objetos

Métodos de ordenamiento y subdivision de
superficies
Los métodos en el espacio de la
imagen:

Se basan en los pixeles que se dibujarán en 2D. Se
debe determinar que objeto contribuye a ese pixel

La complejidad es proporcional al numero de pixels
por el numero de objetos

La complejidad espacial es dos veces el numero de
pixeles (Un arreglo para el Frame Buffer y otro para
el Depth Buffer

Se utilizan metodos de buffer de profundidad y ray
casting
Será una cara posterior si:

Que pasará si existen varios objetos superponiendose en la


linea de vista?
Especificación de Materiales
Antes de Activar la iluminación se deben
especificar los materiales para cada poligono. Esto
determinara su respuesta a la incidencia de luz.

Caracteristicas de los materiales:



Reflexión Difusa (diffuse) - Color de base al
reflejar una luz blanca.

Reflexion especular (specular)

Refexion ambiental (ambient)

Coeficiente de brillo (Shininess) – Cantidad y
concentración de puntos luminosos

Coeficiente de emision (emission)
Especificación de Materiales
GLvoid glMaterialfv(GLenum face, GLenum pname,const GLfloat *params );

GLenum face GLenum pname Const GLfloat


*params
GL_FRONT GL_DIFFUSE ( R, G, B, 1.0 )
GL_BACK GL_AMBIENT ( R, G, B, 1.0 )
GL_FRONT_AND_BACK GL_AMBIENT_AND_DIFFUSE ( R, G, B, 1.0 )

GL_EMISSION ( R, G, B, 1.0 )
GL_SPECULAR ( R, G, B, 1.0 )
GL_SHININESS [ 0, 128 ]
Luces
OpenGl soporta en principio, hasta 8 luces simultaneas, cada una con
nombre propio:

GL_LIGHT0, GL_LIGHT1, GL_LIGHT2 …. , GL_LIGHT8

Activar o desactivar una fuente de luz:

glEnable ( GL_LIGHT3 ) ;
glDisable ( GL_LIGHT3 ) ;
Luces
Caracteristicas de la Luz: ambiental, Difusa, especular

GLvoid glLightfv ( GLenum light, GL_AMBIENT, const GLfloat *params );


GLvoid glLightfv ( GLenum light, GL_DIFFUSE, const GLfloat *params );
GLvoid glLightfv ( GLenum light, GL_SPECULAR, const GLfloat *params );

Posicionando la fuente de luz:


GLvoid glLightfv( GLenum light, GL_POSITION, const GLfloat *params );
*params corresponde al valor de la coordenada homogénea (X, Y, Z, W) dónde colocar la luz. Si
w = 0.0 se considerará que la luz se encuentra infinitamente lejos de nosotros
Por defecto la luz se encuentra en (0.0, 0.0, 1.0, 0.0) iluminando en la dirección
negativa de las Z's. Los rayos de la luz se asumen paralelos.

Atenuacion con la distancia


GLvoid glLightfv ( GL_LIGHT5, GL_CONSTANT_ATTENUATION, 0.8 ) ;
GLvoid glLightfv ( GL_LIGHT5, GL_LINEAR_ATTENUATION, 0.5 ) ;
GLvoid glLightfv ( GL_LIGHT5, GL_QUADRATIC_ATTENUATION, 0.1 ) ;
EJERCICIO:
Modificar un programa agregar 2 solidos diferentes e
incorporar diferentes fuentes y opciones de
iluminación (minimo 2) adicionales.

Vous aimerez peut-être aussi