You are on page 1of 68

RASTERIZAO E RENDERIZAO

Aloisio Henrique Guilherme Fonseca Jaicon A. Marmitt

2009

RASTERIZAO

MTODOS DE RASTERIZAO

MTODOS DE RASTERIZAO

MTODOS DE RASTERIZAO

MTODOS DE RASTERIZAO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

COMPUTAO DO ALGORITMO

Ainda so necessrios uma adio de floats e uma round operation. possvel fazer um algoritmo apenas com somas de inteiros. O nome desse algoritmo : Bresenhams algorithm.

Funcionamento do Algoritmo de Bresenhams


No processo de rasterizao de (x1,y1) para (x2,y2), suponha que o pixel (xk, yk) j foi desenhado. Obviamente, a posio X do prximo pixel : xk+1. 0<m<1(Inclinao menor que 45), logo a posio Y do prximo pixel : yk ou yk+1.

Funcionamento do Algoritmo de Bresenhams

Qual devemos escolher? E=(xk+1, yk) ou NE=(xk+1, yk+1)?

Chamemos de ek, o erro do ltimo pixel desenhado (xk, yk).


NE

yk+1

yk+1

NE

m
yk (xk,yk)

ek

ek+1
E

m
yk (xk,yk)

ek+1 ek
E

Algoritmo: Estima-se o novo erro (ek+1) caso a escolha seja o pixel E (yk+1 = yk)
ek+1 = ek + m

Se (ek+1 > 0.5) significa que deveramos escolher NE (yk+1 = yk +1) Neste caso, o valor correto para ek+1 : ek+1 = ek + m 1 (um valor negativo)
Para facilitar o algoritmo, considere o primeiro pixel com erro = -0.5 e a deciso passa a ser (ek+1 > 0)

Para transformar todas as operaes em inteiros: multiplicar por (2*Dx)


void BresLine0(int x1, int y1, int x2, int y2, int color) { int Dx = x2 - x1; int Dy = y2 - y1; float m = (float)Dy/Dx; float e = -0.5; int x,y; PutPixel(x1, y1, color); void BresLine1(int int int { int DDx, Dx = x2 int DDy, Dy = y2 DDx = Dx<<1; DDy = Dy<<1; int ei = -Dx; int x,y; x1, int y1, x2, int y2, color) - x1; - y1;

PutPixel(x1, y1, color); for (x=x1+1; x<=x2; x++) { e+=DDy; if (e>=0) { y++; e-=DDx; } PutPixel(x, y, color); } } ei = 2*Dx

for (x=x1+1; x<=x2; x++) { e+=m; if (e>=0) { y++; e-=1; } PutPixel(x, y, color); }
}

Amostragem, Aliasing, e Anti-aliasing


A linha, que no universo fsico contnua, amostrada em uma matriz finita 2D de pixels. Tal discretizao pode causar distores visuais como cisalhamento ou efeito de escada.

Essas distores so chamadas de aliasing. Para reduzir o problema de aliasing, usa-se uma tcnica chamada anti-aliasing. A tcnica consiste em uma superamostragem (uma vez que o aliasing causada por uma subamostragem)

SUPERAMOSTRAGEM
Superamostragem = Amostrar um objeto numa resoluo maior do que ser reconstrudo.
dividir os pixels em subpixels (i.e. 9), aplicar o algoritmo de Bresenham nesses sub-pixels

contar o nmero de sub-pixels acesos por pixel

O pixel ser aceso com intensidade proporcional ao nmero de sub-pixels acesos.

1 3 3 2

Rasterizao de Polgonos
A operao de preenchimento de polgonos a operao de rasterizao que tem por objetivo atribuir a cor do polgono aos pxeis pertencentes ao polgono.

Para um polgono simples, a definio do que constitui o seu interior no apresenta quaisquer ambiguidades, mesmo quando o polgono multiplamente conexo, tal como a figura mostra.

Porm, quando o permetro do polgono se intercepta a si prprio, a definio do que constitui o interior pode ser ambgua e, portanto, suscetvel de diferentes interpretaes. Com efeito, se no existem dvidas sobre o que constitui o interior do polgono A da figura, o mesmo no acontece quanto ao interior do polgono B, que pode ser interpretado das duas formas que a figura apresenta.

O algoritmo para preenchimento de polgonos a seguir, foi concebido para tratar quaisquer polgonos simples, cncavos ou convexos, e polgonos multiplamente conexos. Pode tambm ser aplicado a polgonos autointerceptantes desde que a interpretao do que constitui o interior de tais polgonos, seja a interpretao do tipo do polgono B, que apresenta uma zona interior no pertencente ao polgono.

Algoritmo Bsico de Preenchimento de Polgonos


Considere-se a figura a seguir, onde se encontra representado o permetro de um polgono e uma linha horizontal que corresponde a uma linha de pxeis do dispositivo no qual se pretende rasterizar o polgono. A linha horizontal chamada linha de varrimento (ou scanline) e intercepta os lados do polgono em pontos bem determinados. Estes pontos, uma vez ordenados por abscissa (coordenada x) crescente, podem ser agrupados em pares de pontos consecutivos. O conjunto dos pxeis existentes entre dois pontos de interseo consecutivos (x1 e x2, por exemplo) denominado de span. Os pxeis de um dado span pertencem ao interior do polgono e, portanto, sero os pxeis a que ser atribuda a cor do polgono.

Polgono e respectiva tabela de lados no incio do processo de preenchimento.


Arbitrando que as linhas de varrimento comeam a varrer o polgono a partir do menor valor de y, A figura a seguir apresenta um polgono e a respectiva tabela de lados no seu estado inicial. A lista de lados correspondendo ao valor 1 da menor ordenada de vrtices contm os lados AB e BC, por esta ordem, dado que o valor de 1/m para o lado AB (5/2) menor que o valor correspondente do lado BC (6/4). Identicamente, ao nvel 7, o lado EF deve preceder o lado DE. lista de lados ativos, chamada Tabela de Lados Ativos, inicialmente vazia, adicionada a lista de lados cujo ymin igual ao valor da ordenada da linha de varrimento corrente. Se a tabela de lados ativos estiver sempre ordenada segundo as abscissas e porque a lista de lados que lhe adicionada est tambm ordenada, fcil ento manter ordenada a tabela de lados ativos.

Tambm como a figura acima mostra, a estrutura de dados de cada lado deve conter os valores de ymax, x e 1/m, em que, inicialmente, atribudo a x o valor de x(ymin). Esta estrutura no necessita de quaisquer outros valores depois de calculado o valor de 1/m. Por convenincia na construo de listas de lados, usual incluir nesta estrutura a referncia ao lado que se lhe segue na lista.

Algoritmo de preenchimento
Em face do anterior, podemos agora apresentar completamente o algoritmo para o preenchimento de polgonos que ser: 1. Construir a tabela de lados e inserir nela todos os lados do polgono exceto os lados horizontais. 2. Construir a tabela de lados ativos, deixando-a vazia. 3. Inicializar Y como o valor da menor ordenada de todos os vrtices do polgono. 4. Repetir os passos 5 a 9 at que tanto a tabela de lados como a tabela de lados ativos fiquem vazias

5. Mover da tabela de lados para a tabela de lados ativos os lados para os quais Y= ymin, ordenando a tabela de lados ativos. 6. Preencher os spans da linha de varrimento corrente utilizando os pares dos valores de x dos lados existentes na tabela de lados ativos pela ordem em que os lados se encontrem na tabela. 7. Remover da tabela de lados ativos todos os lados para os quais Y igual a ymax 1. 8. Incrementar o valor de Y de uma unidade. 9. Incrementar de 1/m o valor de x dos lados existentes na tabela de lados ativos.

A figura acima exemplifica a evoluo da tabela de lados ativos, da tabela de lados e dos valores dos campos dos lados quando se procede ao preenchimento do polgono representado na figura anterior, partindo da menor ordenada do polgono (1) at se atingir a sua maior ordenada (11)

A tabela acima apresenta os intervalos de intersees definidas por pares de lados consecutivos (spans) e os pxeis interiores do polgono para todos os valores da ordenada da linha de varrimento deste exemplo.

Rendering
O que Rendering ? Qual a utilidade ? Alguns Componentes do Rendering Tcnicas mais utilizadas Mtodos de utilizao

O que Rendering ?
Render o processamento dos parmetros de luz, imagem, ponto de vista, sombras e objetos. o clculo de como o modelo 3D tridimensional, dever se apresentar tendo, em determinados acabamentos, iluminados por determinadas luzes em um determinado ponto de vista, o resultado de uma imagem perfeita do produto final. Uma fotografia`` da cena descrita.

Qual a utilidade ?
Quando uma pr-imagem completa, o rendering utilizado. Este por sua vez contm, texturas, luz, bump mapping, e outros componentes que so aplicados aos objetos. O resultado uma imagem completa, de alto detalhamento . Ele usado em quase toda a parte 3D da computao grfica. Tem uso em vdeo games, simuladores, filmes, efeitos especiais etc.

Componentes do Rendering

Shading
Na computao grfica shading se refere ao processo de alterar a cor baseada no ngulo de incidncia da luz e a distncia da mesma ao objeto tentando criar um efeito foto realstico.

Texture Mapping
Este componente tem como objetivo adicionar textura na superfcie de um objeto ou simplesmente cor a um modelo gerado por computador ou um modelo 3D.

Bump Mapping
Esta uma tcnica de dimensionamento usando mltiplas texturas e efeitos luminosos para simular relevo em superfcies. Ela adiciona perturbaes a cada pixel para simular uma estrutura mais prxima ao relevo real.

Fogging
Esta tcnica utilizada na Computao Grfica 3D para simular o efeito de distncia.

Shadows
Esta tcnica se refere ao sombreamento que causado pela obstruo da luz por um objeto.

Reflection
Esta tcnica responsvel pelo espelhamento das imagens, ou seja, seu reflexo assim como em um espelho.

Refraction
A refrao ocorre quando a velocidade e direo de incidncia da luz quebrada por algum motivo seja reflexo ou pelo tipo de ambiente que est sendo propagado a luz.

Depth of Field
Componente que simula o foco apenas nas proximidades da rea em que destinada a viso ou seja todas as outras reas fora da viso ficaro embaadas.

Motion Blurr
Motion Blurr o fato de um objeto estar em movimento com grande velocidade, este fator faz com que o objeto aparea apenas em rastros totalmente desfocado.

Photorealistic Morphing
O foto realismo na Computao Grfica trata de utilizar uma imagem real e transformar a mesma em uma imagem 3D.

Non-photorealistic rendering
Este mtodo mais utilizado para a formulao de desenhos e jogos de computadores que no procuram uma imagem real ou seja nada foto realstico apenas desenhos.

Tcnicas Mais Utilizadas


Existem diversas tcnicas de rendering porm as mais utilizadas so: Scanline Rendering; Ray Casting; Radiosity; Ray Tracing;

Scanline Rendering
um algoritmo para uma superfcie visvel que trabalha com bases de leitura e processamento linha a linha ou pixel a pixel. Ele mantm uma tabela das atividades e as pontes que j no so mais relevantes so removidas da tabela. Ele l um vetor e transforma esses pontos em imagens (pixels). Amplamente barato e implementado em hardware. Utilizado em aplicaes de tempo real. Velocidade: 5 multiplicaes e 4 adies por pixel. Baixa qualidade de imagens.

Ray Tracing
a tcnica de renderizao de uma cena que calcula a imagem desta cena simulando a forma como os raios de luz percorrem o seu caminho no mundo real. Ela usada no desenvolvimento de sistemas ticos como: lentes de cmeras, microscpios, binculos. Caractersticas de realismo. Velocidade: 48 multiplicaes e 47 adies por pixel. Algoritmo

Criar um raio a partir do ponto de viso (observador) e que passe pelo PixelActual Inicializar NearestT em INFINITO Inicializar NearestObject em NULL Para cada objecto da cena { Se o raio intercepta o ObjectoActual { Se a distncia t da intercepo menor que NearestT { Colocar NearestT = t distncia da intercepo Colocar NearestObject = ObjectoActual } } } Se NearestObject = NULL { Preencher PixelActual com a cor do fundo } Seno { Lanar um novo raio a cada fonte de luz para comprovar as sombras Se a superfcie reflectora { gerar um raio reflector (recursivo) } Se a superfcie transparente { gerar um raio refractor (recursivo) } Usar NearestObject e NearestT para processar a funo sombreado Preencher este pixel com a cor resultante da funo sombreado } }

Radiosity
Esta tcnica funciona trabalhando com os focos de luz, ou seja, em um ambiente ele ajusta um nico ponto de iluminao e trabalha com os diferentes nveis de luz em relao a imagem. Trabalha a iluminao global do ambiente. Ele altamente detalhista, muito utilizado em imagens que se precisa do mximo de detalhe possvel.

Radiosity

Radiosity
Vantagens Alta qualidade de imagens. Semelhana com fotos reais. Desvantagens Necessidade de Grande Capacidade de Processamento. Tempo.

Ray Casting
Tcnica para gerao de imagens que consiste em uma emisso "imaginria" de um raio atravs de cada pixel na tela do computador, e para cada objeto da cena atingido pelo raio, calculado a contribuio de cor e de intensidade obtida para esse pixel. Tcnica demorada mas bastante precisa.

Mtodos de Rendering

Real Time (tempo real) Non-Real Time (sem tempo real)

Real Time
Normalmente usado para mdias interativas, assim como games e simulaes, calculado e mostrado em tempo real, de faixas entre 20 a 120 frames por segundo (fps). Em tempo real o objetivo do rendering mostrar o mximo de informaes possveis que o olho pode processar, ou seja, 30 frames por segundo. O objetivo neste caso no foto realismo mas sim velocidade.

Non-Real Time
So animaes para mdias no interativas assim como filmes e vdeos, pois so renderizadas muito mais devagar. Um render de tempo no real aciona um processo limitado de quadros para obter uma melhor qualidade de imagem. O tempo de renderizao individual pode variar de alguns segundos at dias para as cenas mais complexas. Esses frames so exibidos sequencialmente a altas taxas tipicamente 24, 25 ou 30 frames por segundo para transparecer a iluso de movimento contnuo.

Referncias
http://www.tecgraf.puc-rio.br/ http://disciplinas.ist.utl.pt/leic-cg/programa/livro/Rasterizacao.pdf http://graphs.ucpel.tche.br/luzzardi/ComputerGraphics/ http://en.wikipedia.org/wiki/Rendering_(computer_graphics)

You might also like