Hasta ahora la forma de dar color a las primitivas en OpenGL era mediante el llamado a glColor3f() con la que se puede lograr que cada vértice tenga un color y OpenGL se encarga de difuminar este a través de la primitiva que se esté construyendo.
Este tutorial muestra el uso de la iluminación “clásica” en OpenGL (fixed function pipeline) y de la asignación de materiales (color materials) a las superficies. Aún no se tocará el tema de texturas ni de per-pixel lighting que espero revisar en tutoriales posteriores. Como referente es buena idea revisar algún libro o artículo donde se trate la teoría del color, nada muy complicado, con el fin de entender como opera el modelo de color e iluminación en OpenGL y en general las técnicas de CG.
La iluminación en OpenGL está dada por dos componentes, la superficie del objeto, que es asignada a las primitivas y un conjunto de luces “globales” que interactúan con las superficies para dar el aspecto final a los objetos. Tanto en las luces como en la superficie es necesario especificar 3 parámetros: ambiental, difuso y brillo. En el caso de la luz, los parámetros se refieren a la emisión y en el caso de la superficie a la absorción.
COLOR
El color es parte de cada componente, tanto de luz como de superficie. Tanto en la realidad como en OpenGL las fuentes de luz pueden tener todas las componentes de colores (luz blanca), solo algunas (luz de colores) o ninguna, que no tiene ningún paralelo real. En el caso de OpenGL estas componentes son especificadas en la tripleta RGB de siempre.
Para el caso de la superficie se especifica el color que la superficie mostraría en presencia de una luz blanca, aunque en el caso de OpenGL el color de cada componente de superficies es multiplicado por el de la luz para obtener el color resultante.
En el caso de OpenGL el color es una propiedad que se especifica vértice por vértice mediante el llamado de glColor() , el color correspondiente a una textura o el producto de un procesado tipo pex-pixel sobre la superficie de un modelo. Este segmento de código, insertado en la función de render, por ejemplo:
Continuar Leyendo… »


,
si usted cree que sus derechos de propiedad intelectual han sido vulnerados en esta pagina escriba a