Modificando as cores


Autor/fonte: Márcio Serrolli Pinho e Cláudio Kirner



Digg del.icio.us

O resultado obtido até agora é emocionante, não é mesmo? A gente tem a sensação de um enorme poder... pena que seja quase impossível enxergar alguma coisa nesse clarão branco sobre fundo preto. Mal dá para distinguir as arestas, por exemplo.

Nesta seção veremos como pintar (de maneira um pouco rudimentar) os objetos criados anteriormente. Para tanto, sugere-se a leitura das transparências sobre teoria das cores disponíveis na página de Computação Gráfica, bem como o uso das ferramentas para especificação de cores apresentadas nesse mesmo site.

Para o prosseguimento deste curso, e enquanto é realizada uma leitura cuidadosa das referências indicadas acima, basta lembrar alguns conceitos básicos de teoria das cores para dar prosseguimento ao aprendizado de VRML.

Essas idéias centrais são:

1. "Cor" é a manifestação perceptual de um estímulo eletromagnético adequado:

1.1. As microondas e os raios gamma são estímulos eletromagnéticos, porém não são adequados à percepção visual;
1.2. As cores se diferenciam pelas características do sinal eletromagnético (comprimento de onda, intensidade, mistura com outros sinais);

2. Diferentes estímulos eletromagnéticos adequados podem induzir à mesma cor;

3. A percepção cromática humana pode ser descrita por um modelo aditivo, onde cada cor é composta por três partes. Cada parte corresponde ao conteúdo de uma certa cor básica;

4. Um conjunto de cores básicas muito interessante é o formado pelo vermelho, pelo verde e pelo azul. A relevância deste conjunto de cores (chamado conjunto de primárias) decorre do fato da nossa retina decompor os estímulos visuais nestas três cores, antes de enviar o sinal ao cérebro;

5. As duas afirmações anteriores permitem concluir que toda cor perceptível por humanos pode ser descrita utilizando três valores, cada um deles associado a uma das cores do conjunto de primárias;

6. A especificação de cores em VRML é feita através desta representação, onde o mínimo vale 0 e o máximo vale 1.

É essencial ter uma idéia intuitiva a respeito da especificação de algumas cores antes de dar prosseguimento ao nosso estudo. Para tanto, considere os seguintes exemplos.

Algumas cores importantes e as suas representações RGB (o primeiro número é quanto ao R, o segundo número é quanto ao G e o terceiro número é quanto ao B):

. Vermelho - 1 0 0;
. Verde - 0 1 0;
. Azul - 0 0 1;
. Preto - 0 0 0;
. Branco - 1 1 1;
. Amarelo - 1 1 0;
. Magenta - 1 0 1;
. Ciano - 0 1 1;
. Cinza médio - 0.5 0.5 0.5.

De posse do conhecimento da teoria das cores, podemos agora pintar os nossos objetos. É importante constatar que a propriedade de cor está associada à forma e não à geometria, isto é, a especificação da cor será dentro da declaração "shape" porém fora da declaração "geometry", isto é, vários objetos podem possuir a mesma cor.

A linguagem VRML permite pintar com várias componentes:

. diffuseColor: Cor refletida pelo objeto (r,g,b);
. emissiveColor: Cor emitida pelo objeto (r,g,b);
. transparency: Proporção de luz que atravessa o objeto ([0,1]).

E o tipo de brilho pode ser controlado através de:

. shininess: Intensidade do brilho do objeto ([0,1]);
. specularColor: Cor do brilho do objeto (r,g,b);
. ambientIntensity: Quanto influi a luz ambiente na cor do objeto ([0,1]).

Essas especificações são opcionais e devem estar agrupadas na declaração do tipo de material que, por sua vez, faz parte da declaração da aparência do objeto.

Talvez a única maneira de dominar as possibilidades seja através da experimentação. Para tanto, e só para ilustrar os primeiros passos, seguem alguns exemplos. O leitor ou leitora deverá brincar à vontade para, depois, saber o que pode ser pedido à linguagem e o que não pode ser exigido.

sphere2.wrl:

#VRML V2.0 utf8
Shape{
appearance Appearance {
material Material {
diffuseColor 0 1 1
}
}
geometry Sphere{}
}

cylinder2.wrl:

#VRML V2.0 utf8
Shape{
appearance Appearance {
material Material {
diffuseColor .4 .4 1
}
}
geometry Cylinder{}
}

Mais exemplos de uso de cores serão utilizados para ilustrar a modificação de tamanhos e de outras transformações geométricas das primitivas. Sugere-se ao leitor ou leitora que, neste ponto, detenha a exploração deste site e invista um tempo aplicando propriedades de cores a todas as primitivas gráficas aprendidas.

Uma aplicação muito interessante de cores é a possibilidade de modificar a cor padrão do fundo. Isto é feito com o seguinte nó que, por questões práticas, deveria aparecer no início do arquivo. Um único nó deste tipo é permitido por mundo.

cylinder4.wrl:

#VRML V2.0 utf8
Background {skyColor[0 .6 .8]}
Shape{
appearance Appearance{
material Material{diffuseColor .7 .3 0}
}
geometry Cylinder{}
}

O seguinte esquema ilustra o uso de cores para pintar a semi-esfera do céu do nosso mundo virtual. O nó que realiza essa tarefa admite, também, a especificação das cores da semi-esfera do chão deste mesmo mundo.

Segue um exemplo de uso deste nó para colorir as fronteiras do nosso mundo virtual.

ceuterra.wrl:

#VRML V2.0 utf8
Background {
skyColor[0 0 1,
.5 0 .5,
1 0 0]
skyAngle[1.31, 1.57]
#
groundColor[1 0 0,
0 .5 .2,
0 .8 .3]
groundAngle[1.31, 1.57]
}




Enviado por xKuRt em 26/09/2006 às 13:59


Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Sexta, 18 de Abril de 2014




Top 5 membros

Últimos membros online

Últimos membros cadastrados



Capa do livro
O Codificador Limpo


Capa do livro
Microsoft Excel 2010 Passo a Passo


Capa do livro
Gramática Inglesa para Leigos





Hostnet

IMD