Вы находитесь на странице: 1из 14

Computao Grfica Prova Antiga

1) (2 pontos) Cite trs problemas do algoritmo do pintor! Qual deles o pior e por que? (A reposta deve ter no mximo 50 palavras.) Resp: 1 - Quando h sobreposo entre polgonos ou quando dois polgonos se interceptam em trs
dimenses no possvel definir qual polgono est sobre os outros. 2 - Em implementaes bsicas, o algoritmo do pintor pode ser ineficiente. Ele fora o sistema a renderizar cada ponto de cada polgono no campo visual, mesmo que o polgono seja ocultado na cena final. Isso significa que, para cenas detalhadas, o algoritmo do pintor uma soluo ineficiente. 3 - Requer que objetos sejam ordenados em Z previamente

2) (2 pontos) Um professor de computao grfica da UFRJ decidiu implementar um algoritmo distribudo de rasterizao/z-buffer, onde 4 diferentes GPUs (A,B,C,D) ficam responsveis por dos tringulos na cena. O algoritmo tem duas etapas: na primeira, cada GPU rasteriza os seus buffers e na segunda etapa os buffers so mesclados para que seja gerada a imagem final. Ao final da primeira etapa existem os seguintes z-buffers: AZ, BZ, CZ, DZ e os seguintes frame buffers: AR, AG, AB, BR, BG, BB, CR, CG, CB, DR, DG, DB. O professor quer que os alunos faam a segunda etapa do algoritmo (C ou pseudo-cdigo) a qual recebe cada um desses buffers (que so do tipo float[L][C], onde L e C so o total de linhas e colunas dos buffers) e deve gerar os buffers finais: FZ, FR, FG, FB, mesclando o resultado final. Resp:

3) (2 pontos) Escreva a equao do 2 grau no formato at + bt + c = 0 que determina a interseo entre um raio e uma esfera. Considere um raio com origem em P0 passando em P1 (por exemplo, P0 a cmera e P1 o centro de um pixel); e uma esfera de raio r centrada em O. Dica: separe as componentes x, y, z; para o raio, faa uso de x = P1.x - P0.x, y = P1.y P0.y, z = P1.z - P0.z; para a esfera use a equao: (x-O.x) + (yO.y) + (z-O.z) = r. Resp:
Raio: Representao Paramtrica: P(t) = P0 + t * P1 , t > 0 Com P0 = [X0, Y0, Z0] e R1 = [X1, Y1, Z1] X = X0 + X1 * t Y = Y0 + Y1 * t Z = Z0 + Z1 * t Esfera: Sc = [Xc, Yc, Zc] S: (xs - Xc)^2 + (ys - Yc)^2 + (zs - Zc)^2 = r^2

Substituindo a equao do raio na equao da esfera: (X0 + X1*t - Xc)^2 + (Y0 + Y1*t - Yc)^2 + (Z0 + Z1*t - Zc)^2 = r^2 Desenvolvendo a equao e juntando as constantes: Teremos uma equao da forma: At^2 + Bt + C Onde A = X1^2 + Y1^2 + Z1^2 B = 2*(X1 * (X0 - Xc) + Y1 * (Y0 - Yc) + Z1 * (Z0 - Zc)) C = (X0 - Xc)^2 + (Y0 - Yc)^2 + (Z0 - Zc)^2 r^2 Para que de fato a equao resulte numa interseo: At^2 + Bt + C = 0

4) (2 pontos) No ray-tracing, quando a interseo de um raio com o objeto mais prximo um fragmento que pertence a um tringulo, devemos calcular sua cor (ou qualquer outra propriedade) usando a mdia da cor dos vrtices ponderada pela coordenada baricntrica do tringulo. Na rasterizao, o resultado da cor desse fragmento o mesmo, porm em momento nenhum feito o clculo da coordenada baricntrica. Ento, como que o algoritmo de rasterizao resolve isso? (Mximo de 60 palavras.) Resp: 5) (2 pontos) Dado as seguintes representaes de meso-estruturas (e algoritmos de render): (a) textura; (b) mapa de normal (bump mapping); (c) mapa de altura (displacement mapping); (d) mapa de altura (raycasting); (e) poligonal; (f) BRDF (shading function). Diga para cada um, quais das seguintes propriedades se aplicam: iluminao detalhada; silhoueta detalhada; auto-ocluso; auto-sombra; inter-reflexo.

(a)

(b)

(c,d)

(e)

(f)

Resp: a) Textura - nenhum; b) Bump Mapping - iluminao detalhada; c) Displacement mapping - iluminao detallhada, silhueta detalhada e auto-ocluso; d) Raycasting - iluminao detallhada, silhueta detalhada, auto-ocluso e auto-sombra; e) Poligonal - iluminao detallhada, auto-ocluso, auto-sombra e interreflexo; f) BRDF - iluminao detallhada, auto-ocluso, auto-sombra e interreflexo ;

Matria Nveis de escala


Os nveis de escala so: Cena - Objetos do mundo virtual Macro - Representao dos objetos Meso - Textura Micro-escala - Nvel Fotomtrico

Escala de Cena
A escala de cena onde possumos mltiplos objetos para representar. Nesse nvel de escala precisaremos de algoritmos para representar o que ir e o que no ir aparecer na cena. Veremos tambm como acelerar os algoritmos e tambm verificar os elementos que influenciam na cena: cmera e luzes. Os trs algortimos estudados so: Algoritmo do Pintor - o mais intuitivo Rasterizao e z-buffer - o mais usado Ray-tracing - o que gera resultados mais bonitos

Algoritmo do Pintor
O algoritmo do pintor uma das solues mais simples para o problema de visibilidade em grficos de computador a 3D. Quando se pretende projetar uma cena a 3D num plano a 2D, a dado ponto necessrio decidir que polgonos esto visveis e quais os que esto escondidos. (Wikipedia) O algoritmo consta em pintar a cena dos objetos mais distantes

para os objetos mais prximos do observador (cmera).

Em implementaes bsicas, o algoritmo do pintor pode ser ineficiente. Ele fora o sistema a renderizar cada ponto de cada polgono no campo visual, mesmo que o polgono seja ocultado na cena final. Isso significa que, para cenas detalhadas, o algoritmo do pintor uma soluo ineficiente. Um outro problema encontrado quando h polgonos sobrepostos como na figura abaixo.

A soluo seria dividir cada polgono na metade para verificar o que deveria ser pintado primeiro.

Pontos Fortes Simplicidade

Principais Problemas ineficiente pois pinta tudo do cenrio Problema de ordenao (sobreposio de poligonos - figura 2) Ordenao prvia dos objetos em Z

Rasterizao / Z-Buffer
O termo rasterizao, em geral, pode ser aplicado a qualquer processo pelo qual informaes contidas em vetores podem ser convertidas num formato raster (pixels ou pontos), por exemplo transformar uma imagem vetorial em uma imagem bitmap. Em condies normais de utilizao, o termo refere-se popular renderizao, algoritmo para exibir

formas tridimensionais num computador. Rasterizao atualmente a tcnica mais popular para a produo em tempo real de grficos 3D. Aplicaes em real-time (tempo real) precisam responder de imediato aos usurios e, em geral, necessidade de produzir taxas de pelo menos 30 frames por segundo ( de preferncia 60). Comparada a outras tcnicas, como renderizao, rasterizao extremamente rpida. No entanto, rasterizao simplesmente o processo de computar as formas a geometria para pixels e no prescreve uma determinada forma de calcular a cor desses pixels. (fonte: wikipdia http://pt.wikipedia.org/wiki/ Rasteriza%C3%A7%C3%A3o) A rasterizao conceitualmente simples e muito eficaz nas GPUs. Ela utiliza uma matriz de imagens e uma matriz de profundidade (z-buffer) visando saber o que dever ser desenhado na tela. feita atravs de tringulos (ver as vantagens do uso de tringulos). Utiliza interpolao linear para clculo de cores, profundidade e outros. Independe da ordem que os objetos so passados para a placa de vdeo. O algoritmo de Z-Buffer consiste em rasterizar os polgonos em uma ordem qualquer verificando a profundidade de cada pixel. Caso o valor corrente seja menor que o valor j existente o pixel descartado, caso contrrio o valor dele mantido e seu valor atualizado em um buffer chamado z-buffer. Por ser simples, pode ser implementado em hardware e facilmente paralelizvel, sendo por isso o algoritmo mais utilizado estando presente em todas as placas de vdeos atuais.

Pontos Fortes paralelizvel - eficiente de ser processado

Principais Problemas Ainda pinta pixels que no sero apresentados Ainda precisa de uma matriz de profundidade (confirmar) Pode ficar lento se o numero de polgonos for grande

Fontes: Rasterizao: http://pt.wikipedia.org/wiki/Rasteriza%C3%A7%C3%A3o Z-Buffer: http://pt.wikipedia.org/wiki/Z-buffer

Ray Tracing
O algoritmo ray tracing um algoritmo recursivo que consiste em projetar, a partir do observador, um vetor (raio) para cada um dos pixels constituintes da nossa cena/imagem, vetor este que ir interceptar os objetos que formam a cena em anlise. As interseces a que esto sujeitos cada um dos vetores projetados tem que ser confirmadas para todos os objetos que compe a imagem a fim de determinar qual o que est mais prximo do observador.

Se um determinado raio no intersectar nenhum objeto no seu trajeto, atribudo ao pixel, por onde o raio passa, a cor do fundo da cena. No caso de o raio intersectar algum objeto, e aps ter-se confirmado que esta a interseco mais prxima do observador para esse mesmo raio, necessrio determinar a cor do pixel correspondente. Para tal necessrio calcular a iluminao no ponto da cena que o raio atinge, iluminao esta que pode ser proveniente diretamente de fontes de luz, pode ser luz proveniente de outro objeto que por reflexo ilumina o ponto que estamos a analisar, pode ser luz refratada transmitida atravs do objeto e que assim ilumina o ponto, ou pode ainda ser uma combinao de mais do que uma destas formas de iluminao, que, diga-se de passagem, a situao mais comum. (Wikipedia) Para a determinao das componentes de luz que atingem o ponto em anlise, o algoritmo recorre a trs tipos de raios diferentes a que chamamos de raios secundrios. Raios refletidos; (cuidado com o nmero de recursividades.) Raios refratados; Raios de sombra. Para melhorar mais a qualidade da imagem ainda temos mais dois itens. Anti-aliasing (anti serrilhado) Lanamos um raio para cada sub-pixel. (Os valores de x e y de cada sub-pixel no pode ser repetido) Fazemos uma mdia dos valores obtidos Radiosidade

Como Acelerar os Algoritmos?


O ponto crtico no algoritmo do pintor a ordenao dos objetos. O desperdcio da rasterizao consta no fato que ela desenha superfcies que no sero vistas. O Ray-tracing lento porque faz um elevado nmero de testes de interseo

Acelerando Pintor - Algortimo do pintor Utilizar a BSP Tree Lista ordenada com ordem n log n

Acelerando Ray-Tracing - Algoritmo de ray-tracing Reduzir o nmero de raios Sub-amostragem Coerncia temporal Reduzir o nmero de testes por raio Utilizar uma subdiviso espacial para reduzir o nmero de objetos a serem testados Utilizar ordenao de frente-para-trs

Os testes terminam aps a primeira interseo Bounding-box (caixa envolvente nos objetos facilitam verificar as intersees - so menos precisas)

Acelerando a Rasterizao - Algoritmo de rasterizao Os algoritmos utilizados para acelerar a rasterizao so os algoritmos de culling. A idia desses algoritmos determinar a visibilidade dos objetos antes que eles sejam enviados para a placa grfica e sejam processadados desnecessariamente. H vrios tipos: Frustum Culling Este algoritmo pr-classifica os objetos como visveis e invisveis e elimina todos que no esto dentro do campo de viso (Frustum). Faz uso de subdivises espaciais Objetos visveis podem sofrer ocluses (no podero ser visializados) - ainda desenha-se algo que no poder ser visto.

Occlusion Culling Em uma cena 3D um objeto pode estar a frente do outro a partir de um determinado ponto de vista (ocluso). Quando isso ocorre os objetos ocludidos no so desenhados. So importantes, principalmente para cenas outdoor. Portal Culling utilizada principalmente para cenas indoor. A sua idia bsica dividir a cena em setores e identificar a ligao entre eles (portais). Todos os objetos no visveis entre diferentes setores, a partir do ponto de vista do portal, so descartados. Back-face Culling A faces no-visualizadas dos objetos (parte de trs) so removidas. Um exemplo prtico quando a cmera entra em um personagem de video-game e nada exibido.

Ilustrao dos diferentes cullings

Visibility culling (filtro de visibilidade) Frustum culling Faz uso de subdivises espaciais Pr-classifica objetos como visveis e invisveis (usa um tronco de pirmide com a base sendo a cmera. Os objetos fora so classificados como invisves.) Objetos visveis podem sofrer ocluses Occlusion culling Objetos que esto localizados atrs de outros objetos opacos podem ser descartados. Portal culling Divide a cena em setores e portais. Verifica quais setores sero visveis pelos seus cortes atravs dos portais. Back-face culling Parte de trs de objetos no precisam ser desenhadas. Exemplo prtico quando a cmera entra em um personagem de video-game e nada exibido.

Cmera
So necessrios 8 parmetros para definir uma cmera em perspectiva em um mundo virtual. 3 parmetros para o sistema de coordenada de olho Eye At Up 1 para definir a abertura da cmera (zoom) Fov Field of view (campo de viso). Extenso angular de um ambiente ou semelhante que vista em um certo momento 2 para definir as distncias de interesse Near Far 2 para definir a resoluo da tela (pixels na horizontal e na vertical) Width Nmero de pixels na horizontal Height

Nmero de pixels na vertical

Iluminao
Os tipos de iluminao que podemos ter so: Vdeo falando de Iluminao Luz indireta Iluminao global (foto-realista). Iluminao ambiente (simples). Luz Pontual Ilumina igualmente para todos os lados. Luz Direcional Ilumina somente numa direo principal. Cone de Luz

Escala de Objetos
Como o prprio nome j diz, esse o nvel de escala para representao dos objetos. Os temas que sero tratados so: Representao geomtrica Shading (iluminao) Interseo do traado de raios Pipeline grfico (rasterizao) Tringulo Phong e Gouraud Como acelerar?

Representao Geomtrica H trs tipos de representao da geometria do objeto. Implcita Equao determina a descrio geomtrica Exemplo: qudricas, cbicas e torus Paramtrica Funo determinante da construo Exemplo: Bzier e Nurbs Explcita A geometria descrita ponto-a-ponto Exemplo: mapa de tringulos e mapa de alturas

Shading - Iluminao
A representao do objeto contar com 5 componentes para descrever a iluminao. Iluminao ambiente Componente difusa

Permite que um objeto possar ser visto de vrias direes definida como I = Id*Kd*Cos T Id a intensidade da fonte de luz Kd a primeira propriedade de material Componente especular A cor do objeto depende da posio do observador definida como I = Ie*Ke*cosn T Ie a intensidade da fonte de luz Ke a segunda propriedade de material n a terceira propriedade de material Reflexo Consiste na mudana de direo de propagao de energia ao entrar em contato com a superfcie refletora. Refrao

Interseo do traado de raios Pipeline Grfico


a sequncia de aes ocorridas na GPU para renderizar uma imagem. Consta das seguintes etapas:

Transformao dos modelos Modelos 3D so definidos no seu prprio sistema de coordenadas (espao do objeto). Orienta os modelos(elementos) para um sistema de coordenadas comum (espao do mundo). Iluminao (Shading) Os vrtices so iluminados de acordo com as propriedades do material, as normais e as luzes. Componentes de ambiente, difusa e especular. Transformao da viewing Transforma as coordenadas de mundo nas coordenadas da cmera (ou do olho) Clipping Normaliza o espao do frustum: [0 a 1, 0 a 1, 0 a 1] As primitivas fora do frustum so removidas e as parcialmente fora so clipadas Projeo Os vrtices so projetados no espao discreto da imagem: pixel(u,v) e profundidade (zdepth) Utilizar a regra da mo esquerda Rasterizao Rasteriza as primitivas, acendendo os pixels. Interpola valores de cor, profundidade, coordenadas de textura, etc. Visibilidade / Z-Buffer O z-buffer guarda a profundidade de cada pixel desenhado Os pixels de cada primitiva so desenhados apenas se passarem pelo teste de profundidade.

Cada estgio do pipeline usa seu sistema de coordenadas. Para entender bem o que o pipeline preciso entender o que so essas transformaes.

Espao de coordenadas: Espao do objeto; Espao do mundo; Espao da cmera (ou do olho); Espao de Clipping; Espao de tela; Um pouco mais de rasterizao: Como rasterizar linhas? Uso do algoritmo de Bresenham. Como rasterizar polgonos? Para aumentar a eficincia, no devermos acender dois pixels simultneos; Se os polgonos so de cores diferentes, a cor final ir depender da ordem em que so desenhados. A tcnica utilizada pintar apenas os pixels internos e os de fronteira de apenas dois lados da figura (pixels de cima e da esquerda, por exemplo.) Como verificar se um ponto est dentro de um polgono? Traar um raio qualquer vindo do infinito at o ponto. Se o raio cruzar um nmero par de bordas, o ponto est fora do polgono. Se o raio cruzar um nmero mpar de bordas, o ponto est dentro do polgono. A rasterizao o estgio onde os polgonos so preenchidos. O processamento de cada fragmento (pixel) disparado durante o processo de rasterizao.

Tringulos
Os tringulos foram escolhidos para uso nas GPUs por possuirem algumas propriedades especiais, tais como: Vrtices so sempre coplanares; sempre convexo; Interpolao linear nica (coordenadas baricntricas) Qualquer malha de polgonos pode ser transformada em malha de tringulos; Especialidade das GPUs.

Phong x Gouraud
A iluminao de uma malha de tringulos depende das normais dos polgonos. Como calcular as normais dos polgonos e como evitar a aparncia Flat? Phong shading se refere um conjunto de tcnicas de computao grfica 3D. Phong shading inclui um modelo para reflexo de luz em superfcies e um mtodo compatvel de estimativa de cores de pixels por interpolao de superfcies normais em polgonos rasterizados. O modelo de reflexo tambm pode ser chamado de Phong reflection model, Phong illumination ou Phong lighting. Pode ser chamado Phong shading no contexto de Pixel shaders ou outros lugares onde o clculo de iluminao possa ser chamado de "shading". O mtodo de interpolao tambm pode

ser chamado Phong interpolation, que geralmente chamado de "per-pixel lighting". Tpicamente chamada de "shading" quando contrastada com outros mtodos de interpolao como Gouraud shading ou flat shading. O modelo de reflexo Phong pode ser usado em conjuo com qualquer um desses mtodos de interpolao. Gouraud uma tcnica da computao grfica de renderizao de sombras em objetos 3D publicada por Henri Gouraud em 1971. Caracterizada por criar um degrad de cores entre todos os vrtices de um polgono tridimensional. Este degrade calculado a partir das cores da textura das faces destes polgonos em conjunto com todas as fontes de luz que incidem sobre este polgono em um determinado instante.

Escala de mesoestrutura
Trata a aparncia e textura dos objetos. Trabalha em um nvel de escala intermediria entre Escala de objeto e a de micro-escala.

Textura
Ao tocar um objeto possvel sentir sua textura. A textura tambm fornece uma informao visual. Uma boa tcnica de aplicao de textura deve resultar numa cena em que o usurio possa imaginar a sensao de tocar um objeto apenas observando a imagem reproduzida. Tipos de representao: Mapa de cores Um mapa 2D representado por uma imagem Composto de Texels Aplicado sobre uma superfcie Pode ser sinttica ou digitalizada Mapa de normais (bump mapping) Mapa de altura Volumtrica Poligonal Funes de iluminao (BRDF)

Mapeamento de textura Cada vrtice da malha possuir uma coordenada de textura. As coordenadas de textura so interpoladas no interior do tringulo e cada fragmento (pixel) tem sua coordenada (u,v). feita uma interpolao bilinear dos texels mais prximos da coordenada de textura. Anti-Aliasing O anti-aliasing uma tcnica para melhorar a qualidade da imagem removendo o efeito de aliasing, que o efeito em forma de serra que se cria ao desenhar uma reta em diagonal. Mip-Mapping uma seqncia de texturas, cada uma das quais uma representao/resoluo progressivamente

menor da mesma imagem. A altura e a largura de cada imagem, ou nvel, no mipmap uma potncia de dois menor que o nvel anterior. Mipmaps no tem que possuir mesma altura e largura. Texturas em 3D Existem diferentes padres de aplicao de textura, como Spherical mapping, cylindrical mapping e planar mapping. Mapa de normais - Bump mapping A normal de uma superfcie determinante para definirmos sua iluminao. A ideia do mapa perturbar a normal ao longo da superfcie. O objetivo dar a sensao de haver depresses e elevaes (bumps). Pode-se mapear os vetores normais [x,y,z] em cores [r,g,b]. Nas placas atuais usa-se multi-textura e fragment programming. Mapa de altura - Displacement mapping O displacement mapping normalmente usado por um mapa de altura. O mapa de altura aplicado sobre uma malha original gerando a malha resultante. Vantagem: formao de silhuetas, Desvantagem: muitos polgonos. Mesoestrutura Volumtrica Supera as limitaes do mapa de alturas. Pode representar estruturas com algum grau de trnsparncia. Mesoestrutura Poligonal Uma malha de polgonos representando a textura. Possu um excesso de polgonos. Invivel interativamente h pouco tempo atrs. Funes de iluminao - BRDF uma funo de quatro dimenses que define como a luz refletida numa superfcie opaca. A funo recebe a direo da luz incidente e a direo da luz refletida, ambas definidas respeitando a normal da superfcie. Possu um mapa das texturas fotografadas de diferentes ngulos e diferentes fontes de iluminao. Efeitos de renderizao experados Iluminao detalhada; Silhueta detalhada; Auto-ocluso;

Auto-sombra; Interreflexo;

Outros efeitos em 3D Fog Foco Enviroment mapping

Possves questes de prova


Explique porque o Algoritmo de Bresenham(rasterizar linhas) tem 8 casos e explique-os. Resp: So quatro quadrantes e cada um possu dois casos (x > y e o oposto). Qual a diferena entre Phong e Gouraud Shading? Resp: Enquanto Phong utiliza as normais da superfcie para fazer sua interpolao, Gouraud usa os vrticies dos tringulos. O que luz detalhada, silhueta detalhada, auto-ocluso, auto-sombra e auto-reflexo? Resp: So efeitos de renderizao obtidos no objeto ao aplicar-se as tcnicas de

representao das mesoestruturas, visando aumentar o nvel de detalhamento do objeto.

Вам также может понравиться