Manual de Apoio 2010
Manual de Apoio 2010
Manual de Apoio 2010
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.2 Utilização <strong>de</strong> Cores no OpenGLPo<strong>de</strong>mos representar todas as cores possíveis com a utilização <strong>de</strong> um cubo, mapeando as componentes Red,Green e Blue nos eixos x, y e z respectivamente (Figura 5.6).Figura 5.6: RGB ColorspaceNa origem ([x, y, z] = [0, 0, 0]) encontra-se o preto, no ponto [x, y, z] = [255, 255, 255] encontra-se o branco enos extremos do cubo em cada um dos eixos encontram-se as cores vermelho (x), ver<strong>de</strong> (y) e azul (z).Alterando a Cor utilizada para <strong>de</strong>senharA função utilizada para alterar a cor utilizada para <strong>de</strong>senho é a função:GL2 . glColor ( red , green , blue [, alpha ]);Na nome da função, o representa o número <strong>de</strong> argumentos. No caso <strong>de</strong> ser 3, a cor será <strong>de</strong>finida com astrês componentes RGB, no caso <strong>de</strong> ser 4, é especificado o valor adicional alpha que <strong>de</strong>fine o nível <strong>de</strong> transparência.O no nome na função especifica o tipo <strong>de</strong> argumento, que po<strong>de</strong>rá ser b, d, f, i, s, ub, ui, or us, querepresentam respectivamente, byte, double, float, integer, short, unsigned byte, unsigned integer, andunsigned short.A gran<strong>de</strong> maioria dos programas em OpenGL utilizam o glColor3f que permite especificar a intensida<strong>de</strong><strong>de</strong> cor entre 0f e 1f (1f = intensida<strong>de</strong> máxima <strong>de</strong> cor). No entanto é possível representar, por uma questão <strong>de</strong>conveniência, o valor da cor entre 0 e 255, utilizando por exemplo:gl. glColor3ub (0 , 255 , 128);No entanto, o seu uso é <strong>de</strong>saconselhado, uma vez que, a tendência no futuro aponta para adição <strong>de</strong> maisníveis <strong>de</strong> intensida<strong>de</strong> (> 255). O OpenGL na realida<strong>de</strong> representa os níveis <strong>de</strong> cor internamente utilizando umfloat, pelo que forçar a utilização <strong>de</strong> glColor3ub, implica um passo adicional para a conversão.5.2.1 ShadingFigura 5.7: Shading <strong>de</strong> uma linha42