Personal tools

Difference between revisions of "Funciones en OpenGL"

From hpcwiki

Jump to: navigation, search
(Funciones de OpenGL para la iluminación)
(Funciones de OpenGL para la iluminación)
Line 1: Line 1:
==Funciones de OpenGL para la iluminación==
+
==Funciones de OpenGL para la iluminación en C==
  
 
Es posible definir múltiples fuentes de iluminación a través de light_names que van desde GL_LIGHT0 hasta GL_LIGHT7, y es posible definir las propiedades de estas por medio de la función:
 
Es posible definir múltiples fuentes de iluminación a través de light_names que van desde GL_LIGHT0 hasta GL_LIGHT7, y es posible definir las propiedades de estas por medio de la función:
Line 14: Line 14:
  
 
   glEnable(light_name);
 
   glEnable(light_name);
 +
 +
Es posible configurar tres colores diferentes para cada luz. Uno especifica el color del componente ambiental, otro para la componente difusa y otro para la componente especular, mediante el uso de la función:
 +
 +
  glLightfv(light_name, GL_AMBIENT,  vector_color1);
 +
  glLightfv(light_name, GL_DIFFUSE,  vector_color1);
 +
  glLightfv(light_name, GL_SPECULAR, vector_color1);
 +
 +
La atenuación de la luz con respecto a la distancia entre la luz y un punto del objeto se puede configurar por medio de una función cuadrática.

Revision as of 11:16, 6 August 2013

Funciones de OpenGL para la iluminación en C

Es posible definir múltiples fuentes de iluminación a través de light_names que van desde GL_LIGHT0 hasta GL_LIGHT7, y es posible definir las propiedades de estas por medio de la función:

 glLightfv(light_name, light_property, property_value)

Lo primero es definir la posición y el tipo de luz. Existen fuentes puntuales que se ubican en algún punto (x,y,z) de la escena y fuentes direccionales que se encuentran lejos de la escena de tal forma que los rayos de la fuente de luz se consideran paralelos. La función de arriba usando la propiedad GL_POSITION permite definir tanto el tipo de luz como su posición o su dirección. Esto se define con el tercer parámetro de la función, el cual debe ser un arreglo de 4 valores de punto flotante (float). Si el cuarto elemento del arreglo es cero la luz será direccional y los tres primeros parámetros especifican la dirección de esta. Si el cuarto es uno, la luz es puntual y los tres primeros sirven para especificar la posición en la escena.

Para activar los algoritmos de iluminación es necesario hacer un llamado a la función:

 glEnable(GL_LIGHTING);

Y para que trabaje la luz que se ha definido es necesario activarla usando el nombre, de esta forma:

 glEnable(light_name);

Es posible configurar tres colores diferentes para cada luz. Uno especifica el color del componente ambiental, otro para la componente difusa y otro para la componente especular, mediante el uso de la función:

 glLightfv(light_name, GL_AMBIENT,  vector_color1);
 glLightfv(light_name, GL_DIFFUSE,  vector_color1);
 glLightfv(light_name, GL_SPECULAR, vector_color1);

La atenuación de la luz con respecto a la distancia entre la luz y un punto del objeto se puede configurar por medio de una función cuadrática.