A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Renderização do Espectro Marcelo Gonella

Apresentações semelhantes


Apresentação em tema: "Renderização do Espectro Marcelo Gonella"— Transcrição da apresentação:

1 Renderização do Espectro Marcelo Gonella gonella@tecgraf.puc-rio.br

2 Fundamentos de Computação Gráfica – T1 Objetivo Desenhar um gráfico Intensidade x Comprimento de onda para um conjunto de dados lidos de um arquivo que representa uma cor. Se a cor representada pela curva não puder ser representada no espaço de cores sRGB (monitor), adicionar saturação para aproximá-la. Como resultado, deve-se exibir a curva (gráfico), a cor aproximada e o cinza adicionado (saturação adicional) para a aproximação.

3 Fundamentos de Computação Gráfica – T1 Teoria O olho humano percebe apenas as freqüências entre 380nm e 780nm. As cores como as percebemos são uma mistura de diversas ondas em diferentes comprimentos e intensidades. Elas são definidas pela média das intensidades ponderada pela capacidade de absorção do olho para cada comprimento e intensidade.

4 Fundamentos de Computação Gráfica – T1 CIE Colour Matching Functions Através de experiências o CIE descobriu como o olho humano percebe cada comprimento de onda. O resultado mapeou estes comprimentos de onda, suas intensidades e contribuições para os valores Tristimulus X,Y,Z que são independentes de dispositivo e são calculados da seguinte forma: Onde k, no iluminante d65 é definido como: kX = 95.042343 kY = 100 kZ = 108.86108

5 Fundamentos de Computação Gráfica – T1 Conversão para componentes RGB Resolvendo-se a integral, temos um valor XYZ que representa a cor definida pela curva. Temos então que fazer as transformações necessárias para poder exibi-las no monitor de vídeo. Função de conversão: void convertXYZtoRGB ( float* r, float* g, float* b, float x, float y, float z ) { *r = x * 3.2406f - y * 1.5372f - z * 0.4986f; *g = x * -0.9689f + y * 1.8758f + z * 0.0415f; *b = x * 0.0557f + y * -0.2040f + z * 1.0570f; }

6 Fundamentos de Computação Gráfica – T1 Espaço de cores representáveis (sRGB) Nesta conversão podemos observar que muitas vezes chegaremos a valores RGB com componentes negativas ou maiores do que 1. Estas cores não podem ser representadas pelo monitor de vídeo. Aproximando as cores para exibição Existem muitas maneiras de aproximar as cores para o espaço de cores sRGB. Neste trabalho utilizamos a técnica de adição de branco. Para isso, descobrimos qual das componentes (r, g ou b) é a maior e qual é a menor. Se a menor for negativa, será adicionado um valor suficiente para levá-la à 0. Se o máximo for maior que 1, todos os valores serão divididos por ele, consequentemente, o maior passará a ser 1. Correção Gamma Todas as cores neste trabalho utilizam correção gamma

7 Fundamentos de Computação Gráfica – T1 Resultados Cor da curva Cor adicionada


Carregar ppt "Renderização do Espectro Marcelo Gonella"

Apresentações semelhantes


Anúncios Google