ComputacaoGrafica2

download ComputacaoGrafica2

of 105

Transcript of ComputacaoGrafica2

Programa Especial de Treinamento / PET/AGRO Pgina 11.Histrico e Aplicaes da Computao Grfica1.1.DefiniesMtodos e Tcnicas de converter dados paraum dispositivo via computadorouSub-rea da Cincia da Computao que consiste me mtodos e tcnicas usa-das para criar, armazenar e manipular modelos de objetos e suas imagens via com-putador.1.2.Nomes UsuaisCompugrafia: Romero ToriGrfica Computacional: Harold Santos1.3.Breve Histrico1950: Incio da Computao Grfica, pela primeira vez, um tubo de raios cat-dicos ligado um Computador, on MIT e Projeto Sage, onde um radar foi ligado um Computador, num projeto do exrcito americano, utilizando interao com LightPen;1959: Surge o termo Computer Graphics - criado por Verne L. Hudson, quan-do o mesmo coordenava um projeto para a Boeing de simulao de fatores humanosem avies;Programa Especial de Treinamento / PET/AGRO Pgina 2 - Apostila de Computao Grfica (Incompleta)-1962: No MIT o projeto TX2 com o aluno Ivan Sutherland usa um computadorpara fazer desenhos em sua tese de doutorado;1970: Surgem os primeiros monitores varredura.1.4.Aplicaes da C.G.: Anlise de dados; Computao Cientfica; CAD / CAM e CAE; Simulao Visual; Processamento de Textos; Entretenimento; Medicina; Outros.1.5.Equipamentos para Computao Grfica:1.5.1. IntroduoDados Grfico podem ser classificados em:Vetoriais:Dados representados por pontos coordenados elinhas, capazes deligar tais pontos;Matriciais: Consiste de uma matriz de pontos no espao e a cada ponto asso-ciado um atributo de Intensidade;1.5.2. Representao X Apresentao:Chama-se representao da imagem estrutura de dados que a contmeApresentao da imagem relao da mesma com o equipamento que a repro-duz;Programa Especial de Treinamento / PET/AGRO Pgina 3 - Apostila de Computao Grfica (Incompleta)-1.5.3.Equipamentos de entradaA entrada pode ser diferenciada em 2 categorias diferentes: coordenadasrelativas x coordenadas absolutas.VETORIAL:Coordenadas - mouses (pticos e mecnicos)relativas - joysticks, bolota e diaisCoordenadas - tecladosabsolutas - mesas digitalizadoras- caneta ptica - light pen- tela ptica - touch screenMATRICIAL:Digitalizadoresdevdeo:apartirdeumsinaldetelevisogeraumamatrizdepontos em um monitor de vdeo;- FRAME GRABBER -Varredoresdigitais(SCANNER):sobaseadosnaabsorodaluz;versodoFRAME GRABBER para papel.FILM SCANNER: o equivalente para filme.Programa Especial de Treinamento / PET/AGRO Pgina 4 - Apostila de Computao Grfica (Incompleta)-1.5.4. Processadores Grficos1.5.4.1. Introduo:Nadcadade60TecnologiadaComputaoGrficadiscuteofatode um computador, ao invs de manusear caracteres, manusear pixel (pontos indivi-duais da tela).Fcilmonitores para branco.Cor alm de controlar pontos acesos e apagados, era necessrio con-trolar-se as cores.Processadoresgrficosnecessitamadministrardispositivosdevisualizaocomplexos, diferente de processadores que se destinam s ao armazenamento e ma-nuseiodeprocessamentomatemtico.Assim,computadoresgrficosnecessitam,alm da unidade de processamento central, de mdulos dedicados exclusivamente aogerenciamento do dispositivo de visualizao.Problemas:No modo grfico; a mquina deve oferecer recursos para representao de algumasprimitivas;Amquina,nomodogrfico,perdeoacessoaogeradordecaracteresalfa-numricos, logo necessrio prover meios para tal soluo.Definio: Processador grfico a parte do hardware responsvel pela integra-o do gerenciamento simultneo da tela e dos recursos grficos mnimos residentes(no hardware).Programa Especial de Treinamento / PET/AGRO Pgina 5 - Apostila de Computao Grfica (Incompleta)-- bit map:mltiplos planos de bits que armazenama imagem gerada de forma digital;Requisitos mnimos -circuitos de varredura seqencial: traduzem estemapa ao processo grficodigital para sua visualizao fsica natela;- circuitosquepermitem manusear / modificar este mapa;1.5.5. Equipamentos De Sada1.5.5.1. Plotters:traadores grficos (de mesa e de tambor)1.5.5.2. Terminais de vdeoAtualmente: CRT Tubos de raios catdicos princpio da televiso.Um ctodo aquecido emite um feixe eletrnico que convenientementefocalizadoporumconjuntodelenteseacelerado.Aoincidirnasuperfciedetubo,que recoberta de fsforo: pontos bombardeados pelos eltrons emite luz e a associ-aodepontosacesosformaaimagem.Ofeixeeletrnicodesviadopelaaodecampos magnticos produzidos por bobinas qual aplicada uma d.d.p. proporcio-nal ao desvio desejado.Caracterstica dos terminais de vdeo:Programa Especial de Treinamento / PET/AGRO Pgina 6 - Apostila de Computao Grfica (Incompleta)-i) Resoluo: n de pontos distintos que pode ser aceso, que depende da capa-cidadedosistemacomputacionalquegerenciaodisplay.Propriedade:aspectratio aspect ratio = x/y uma linha vertical de x pontos de mesmo de uma linha ho-rizontal de y pontos;ii)Persistnciadofsforo:capacidadedoelementoqumicoreteraluminosi-dade;iii) Sistema de deflexo: controlador do esboo produzido na tela;MTODOS DE VARREDURA2 metodologias bsicas para gerao de imagens na tela grfica:Varredura randmica ou vetorial - random/vector scanVarredura rastreada ou matricial - raster scanAt1980prevaleciaequipamentodevarredurarandmicamtodo ideal para representar vetores, tpicos das aplicaes de CAD. Hoje predominam equipamentos de varredura matricial.Funcionamento:Random-scan:ofeixedeeltronsdirecionadosomenteparaaspartesdatelaonde a figura desenhada.Raster-scan: o feixe de eltrons disparado sobre todas as partes da tela, sendo atela criada por um conjunto de pontos processo da televiso varre-se a telaPrograma Especial de Treinamento / PET/AGRO Pgina 7 - Apostila de Computao Grfica (Incompleta)-decimapara baixo e da esquerda para a direitamarcandoostrechosvisveisdu-rante o trajeto.PAL - 256 linhas de varreduraTVNTSC - 525 linhas de varredurasCONAP256 2048, j chegando a 4096 linhas.MONITORES COLORIDOSComposto de 3 camadas de fsforo diferentes e sensveis s cores ver-melho,verde e azul. O tubo possui 3diferentescanhesdeluz.Estescanhespo-demsermontadosnumaconfiguraotriangularoulinear.Osfsforosnatelasoformadoscomotrades.Aconvergnciafeitaporumaplacametlicachamadashadow-mask.DSVT - Direct View Storage TubePrograma Especial de Treinamento / PET/AGRO Pgina 8 - Apostila de Computao Grfica (Incompleta)-Funciona como CRT convencional.H,noentanto,noseuinterior,ummonitor auxiliar (o canho de inundao) - Flood Gun.Funcionamento: O canho primrio usado para desenhar a definio da ima-gem sobre a grade de armazenamento, formada de material no-condutor. Eltrons dealta velocidade do canho primrio colidem a grade de armazenamento fazendo sairalgunseltronsquesoatradosparaagradecoletora,decargapositiva.Comoagrade dearmazenamentono-condutora,areaondeoseltronsforamremovidosmanter-se-a positiva. Esta rea positiva armazenada a definio da figura. O canhodeinundaoproduzumcontnuojatodeeltronsdebaixavelocidadequepassamatravs da grade coletora e so atrados para as reas positivas da tela de armazena-mento.Esteseltronsatingemateladefsforoatravsdagradedearmazenamentosem afetar sua carga.Para se apagar a imagem basta aplicar uma carga positiva elevada na su-perfciedearmazenamento.Umaenxurradadeeltronsdeinundaoatradaparaela, apagando a imagem e causando um forte claro, como se explodisse um FLASH.DISPLAYS DE CRISTAL LQUIDOFundamentos:PaineldePlasma:Umacamadadegsneon,misturadacomoutros gases comprimida entre duas placas de vdeo. Essas placas possuem no seuinterior fileiras de condutores milimtricos. O gs ionizado pela passagem de cor-renteeltricanestescondutores.Aopassarporumainterseoacorrenteprovocaemulso de luz pelo gs.No caso do display de cristal lquido, as molculas de cristal lquido en-contram-se,inicialmente,semdirecionamento.Aplicando-seumpotencialeltricoaos condutores, tais molculas se arranjam, impedindo a passagem de luz atravs dasPrograma Especial de Treinamento / PET/AGRO Pgina 9 - Apostila de Computao Grfica (Incompleta)-superfciesdepolarizao,comisto,certasclulastornam-seescuras,mostrandoafigura nos cruzamentos.1.5.5.3. Impressoras:- de impacto-laserPrograma Especial de Treinamento / PET/AGRO Pgina 10 - Apostila de Computao Grfica (Incompleta)-2.SISTEMAS DE COORDENADAS2.1.RESOLUOTodos dispositivos grficos usam uma grade retangular de localizaes ende-reveis. Este retngulo chamado de Display Rectangle ou Graphics I/O Rec-tangle. Dispositivos grficos so fixados de acordo com sua resoluo grfica, onmero de horizontais versus posies verticais.Parmetros importantes: caractersticas grficas bsicas;1. ndh => N de localizaes grficas endereveis horizontalmente;2. ndv => N de localizaes grficas endereveis verticalmente;3. width => a largura fsica de retngulo em milmetros;4. height => a altura fsica de retngulo em milmetros.width -245,0 ndh - 640Geral: monitor PCheigth - 186,0 ndv - 200Baseado nestes conceitos, define-se:1. Resoluo horizontalRes-horiz = ndh/width2. Tamanho de pontos na horizontal (horizontal dot size)Hor-dot-size = width/ndh3. Resoluo verticalres-vert = ndv/height4. Tamanho de pontos na vertical (vertical dot size)Programa Especial de Treinamento / PET/AGRO Pgina 11 - Apostila de Computao Grfica (Incompleta)-vert-dot-size = height/ndv5. Total de pontos endereveistotal-nr-dot = ndv*ndh6. Graphics aspect ratioaspect-ratio = vert-dot-size/horiz-dot-size7. Physical aspect ratioPhys-aspect-ratio = height/width2.2.SISTEMAS DE COORDENADAS DO USURIOChama-se coordenada do usurio ao sistema de coordenadas que umusurio escolhe para trabalhar.mais freqente := sistema cartesianooutra opo := sistema polarPara o GKS => Sistema cartesiano => chamado de world coordinates (WC).Os objetos (grficos) so especificados no sistema de coordenadas do usurioe devem ser convertidos em coordenadas apropriadas do dispositivo fsico.A poro do desenho que deve aparecer na tela e chamada de JANELA.Uma janela geralmente definida por seus limites mais altos e menores.Formato geral da definio de uma janela:WINDOW(min-x,max-x,min-y,max-y)A janela pode apresentar poro do objeto, objeto inteiro ou objeto maisrea vazia.Programa Especial de Treinamento / PET/AGRO Pgina 12 - Apostila de Computao Grfica (Incompleta)-Wraparound => envolver a vizinhanaclipping => efeito pelo qual h uma poro visvel do objeto na janela e por-es invisveis de objeto fora da janela.JANELA POSSIBILITAVISO DE TODO(NO CLIPPING)Anlogo: janela possibilita viso do todo e de grande rea em branco:JANELA C/ CLIPPINGPrograma Especial de Treinamento / PET/AGRO Pgina 13 - Apostila de Computao Grfica (Incompleta)-Oexemploacimademonstraaaplicaodeescalasarbitrriasparamapea-mento de um objeto dentro de uma janela.Descrio de wraparound: o uso de escalas deferentes por programadores dife-rentes pode gerar problemas de um desenho aparecer recortado ao se mudar o dispo-sitivo de sada pelo novo programador/operador. A faltadeusodeescalasnormali-zadas pode gerar tal problema.2.3.SISTEMAS DE COORDENADAS NORMALIZADASParacontornaroproblemaanterior,considerandoagrandediversidadedeequipamentos existentes, com diferentes resolues grficas, onde h um sistema decoordenadas para cada tipo de dispositivo, prope-se o sistema de coordenadas nor-malizadas-NDC-(NormalizedDeviceCoordinates)comvaloresdecoordenadasvariando de 0 a 1.Programa Especial de Treinamento / PET/AGRO Pgina 14 - Apostila de Computao Grfica (Incompleta)-A poro retangular da tela sobre a qual a janela e todo seu contedo so ma-peadas chamada de:VIUPORTE - VIEWPORT -definio de uma viuporte:VIEWPORT(min-x,max-x,min-y,max-y)Numa situao em que definamos diferentes viuports conforme:VIEWPORT-1 (0.0 , 0.5 , 0.0 , 0.5)VIEWPORT-2 (0.5 , 1.0 , 0.0 , 0.5)VIEWPORT-3 (0.0 , 0.5 , 0.5 , 1.0)VIEWPORT-4 (0.5 , 1.0 , 0.5 , 1.0)Obs.: Pode ser que o mapeamento para uma viuporte gere solues com desfi-guraodeimagemcasoosaspectratiosdawindoweviuportnocorrespondam,Programa Especial de Treinamento / PET/AGRO Pgina 15 - Apostila de Computao Grfica (Incompleta)-isto , as dimenses dos lados da janela no correspondem as dimenses de lados daviuporte. O mapeamento da lados das WC para as NDC produz a imagem com esca-las diferentes.Janela e viuporte com diferentesaspectos aspect-ratios Transf. deTransformaoWCNDC DCNormalizaode estaoPrograma Especial de Treinamento / PET/AGRO Pgina 16 - Apostila de Computao Grfica (Incompleta)-2.3.1. Transformao De NormalizaoTalmapeamento descrito atravs defrmulasquesurgemdaproporcionali-dade, ou seja, de um posicionamento relativo de umponto na janela deve refletir noponto correspondente na viuporte.Por interpolao, obtm-se:XW -XWmin=XN-XNmin =>XWmax - XWminXNmax - XNminXN = (XW- XWmin)*( XNmx - XNmin) + XNminXWmx - XWminXN = (XNmx - XNmin )*(XW -XWmin) + XNmin XWmx-XWmine finalmente;XN = XNmin + fat-vis-x (*) ( XW - XWmin )ouXN = Sx.(XW - XWmin) + XNminSx = fator de escala window/viewportAnalogamente:YN = YNmin + fat-vis-y . (YW - YWmin )sendofat-vis-y = YNmx-YNminPrograma Especial de Treinamento / PET/AGRO Pgina 17 - Apostila de Computao Grfica (Incompleta)-YNmax- YWminTRANSFORMAO (graficamente)2.3.2. Transformao de estao(NDC-DC)Conseguida commap-ndc-dc(Xn,Yn,Xd,Yd):-XD1 is Xn*NPX,YD1 is Yn*NPV,round(Xd1,0,XD2),round(Yd1,0,YD2),XD is integer(XD2),YD is NPV - integer(YD2).onde: round(X,N,Xz) => arredonda X com N casas decimais, devolvendo o re-sultado e Xz.NPX = ndh - 1;NPY - ndv - 1CGA - ndh - 640 ;ndv = 200 (baixa resoluo)Programa Especial de Treinamento / PET/AGRO Pgina 18 - Apostila de Computao Grfica (Incompleta)-OPERAES DE VIEWING (Visualizao)3.GERAO DE PRIMITIVAS GRFICAS3.1. Gerao de Linhas3.1.1.Mtodo AnalticoUm TRC (Raster) pode ser considerado como uma matriz de pontos dis-cretos, no possvel traar diretamente uma linha unindo ponto a ponto. O processode descrever da melhor maneira possvel a linha encontrando as melhores aproxima-es chamado de rasterizao. Para linhas horizontais, verticais ou inclinadas 45, oprocesso no acusa problemas.3.1.2.Analisador Diferencial Digital (DDA)Tcnica baseada na soluo da equao diferencial. Para uma linha reta: dy= K (constante)ou y= y2- y1Para outras linhas, ser necessrio decidirque pixel ser usado (?)Quando o dispositivo apresentar razovelPrograma Especial de Treinamento / PET/AGRO Pgina 19 - Apostila de Computao Grfica (Incompleta)- dxxx2 - x1A soluo :yi+1 = yi + yyi+1 = yi +y2 - y1 .x x2 - x1Programa Especial de Treinamento / PET/AGRO Pgina 20 - Apostila de Computao Grfica (Incompleta)-|x2- x1| > |y2 - y1|SimNoincremento = y2 - y1/ x2- x1incremento = x2- x1/ y2 - y1y = y1x = x1p/ x de x1at x2 faa p/y de y1at y2 faadot (x,y,cor) dot (x,y,cor)y = y + incremento(*)x = x + incremento(*)(*) determina a densidade da linha(x2, y2) yi= valor para um do passo da linha. (x1, y1)Problema: Truncamentos e arredondamentos.Programa Especial de Treinamento / PET/AGRO Pgina 21 - Apostila de Computao Grfica (Incompleta)-Exerccio: Apresentar que pontos sero usados para conceber a reta (0,0) at(8, 4) utilizando o mtodo acima.3.1.3. Algoritmo de BresenhamJustificativa: O mtodo acima consome muito tempo com truncamentos.BRESENHAM prope trabalho somente com inteiros. No h uso de variveis reais.Para simplificar o algoritmo, supomos o incremento como uma unidade e a inclina-o da linha est entre 0 e 1. O algoritmo usa uma varivel de deciso di que a cadapasso proporcional diferena entre s e t mostrado na figura. Se s < t ento Siest mais perto da linha desejada e ser o escolhido; seno Ti esta mais perto e ser oescolhido.Movimentos do algoritmo de BRESENHAMIncrementos unitrios sero dados na direo da maior deslocamento.Assim, a inclinao da reta tem 0 tg 1. A cada incremento na direo maior, ovalor da outra coordenada pode ser incremento ou no.Para uma reta no primeiro octante: incremento em y dever ser igual a 1ou no haverincremento, para cada incremento em x. Para decidir, observamos quese yi ou yi+1 est mais prximo da posio da reta real.3.1.3.1.Descrio AlgortmicaDemonstraoPrograma Especial de Treinamento / PET/AGRO Pgina 22 - Apostila de Computao Grfica (Incompleta)-Pontos Negros:reta Selecionado pelo al-goritmoTi= (r+1, q+1) desejada de BRESENHAM

ty x dydx.Obs: a linha ser desenhadadePi-1= (r, q) (x1, y1) at(x2, y2).(= (xi- 1, yi - 1)) A linha se transforma de (0,0) at (dx, dy) ondedx= x2 - x1dy= y2 - y1 e a equao da reta y x dydx.Nota-se que ys - q = s;masydydxr r qs + + .( ) .( ) 1 1s =dydxt= (q + 1) - yt ; mas ydydxr rt |.

`, + + .( ) ( ) 1 1t = (q +1) -dydxlogo + (s - t) = 2.dydx( ) r q 1 2 1, dai dx.(s - t) = 2.(r.dy - q.dx) + 2dy - dx;chamando dx(s - t) = diPrograma Especial de Treinamento / PET/AGRO Pgina 23 - Apostila de Computao Grfica (Incompleta)-di = 2.(rdy - qdx) + 2dy - dx; mas{{r = xi - 1 q yi 1d =2.(xi -1)dy - 2.(yi -1). dx + 2dy - dx ;(1),daid +1 = 2. xi. dy - 2yi. dx + 2dy - dx;fazendo d +1-d ,tem- se:ii i i ' + d +1- d = 2dy - 2dx(y - yd = d + 2dy - 2dx.(ylenbrando que d = dx.(s - t); se s t d 0 - Tse s < t d < 0 - Si) Se d 0 tomamos T(y d + 2.(dy - dx)ii) Se d < 0 tomamos S(y d +1= d + 2. dyPara (i =1),como (xd = 2. dy - dx ,por 1i i i i-1(i+ 1) i iii ii ii i i ii i i i i0 i)), ) ( , )yyyii11010 0Obs.: O algoritmo acima funciona bem para linhas do primeiro octante. Comopodemos generalizar que uma linha em outros octantes pode ser obtida partir doprimeiro necessrio apenas desenvolver transformaes do primeiro para os demaisoctantes.Descrio Algortmica - quadroconsiderando (x0, y0) = (0, 0) (i = 1):Programa Especial de Treinamento / PET/AGRO Pgina 24 - Apostila de Computao Grfica (Incompleta)-x = x2 - x1 ;y = y2 - y1Delta = d = 2. y - xpara x de x1 at x2 faa:liga pixel (x, y, cor)d0Sim No

Y < y+1 Y no altera yd = d + 2.( y - x) d = d + 2. y3.1.3.2. AntialiasingComo retas e arestas so contnuas, seu traado em monitores do tiporaster causam certas imprecises, porque tais dispositivos so discretos. O fen-meno chamado de aliasing (serrilhado).Solues para antialiasing.Aumentar a taxa de amostragem - com aumento da resoluo do RASTERVerificar quanto cada pixel se encontra dentro da linha a ser desenhada.3.1.3.3.Algoritmo De Bresenham Modificado Com Antialiasing:Programa Especial de Treinamento / PET/AGRO Pgina 25 - Apostila de Computao Grfica (Incompleta)-Obs:Linha (x1,y1)(x2,y2)I n de intensidades disponveisx = x1; y = y1x =x2 - x1; y = y2 - y1m I y x ( / ); w m 1 ;e I / 2 ( 1 / 2paraintensidade I) plot (x , y , m/2)while (x < x)ife < w themx = x + 1, e = e + melsex = x + 1 , y = y +1, e = e - mend ifplot (x , y , e)end whilefinishALGORITMO GERAL DE BRESENHAM (utilizao para todos os quadran-tes )-ver livro do Roger, pg. 40/413.2.GERAO DA CIRCUNFERNCIAPrograma Especial de Treinamento / PET/AGRO Pgina 26 - Apostila de Computao Grfica (Incompleta)-3.2.1.Equao paramtricaA equao de circunferncia (cnicas, de forma geral) enfrenta proble-mas similares gerao de retas, adicionando-se a dificuldade de clculo de funestrigonomtricas. A primeira proposta de soluo dada pelo clculo de pontos numperodo, usando as funes sen e cos:0 2 t y r tx r t 'sen( )cos( )passo:t - mantm adequada a densidade dos pontosPrograma Especial de Treinamento / PET/AGRO Pgina 27 - Apostila de Computao Grfica (Incompleta)-x raio ;y = 0para t de 1 at 360 com passo tpixel (x , y , cor)x ry rtt cos( )sen( )180180Programa Especial de Treinamento / PET/AGRO Pgina 28 - Apostila de Computao Grfica (Incompleta)-Problemas : - uso de funes trigonomtricas.- densidade dos pontos varia com o raio. Algoritmo Incremental Com Simetriabase: deslocamento angular com incremento de 1 pixel (deslocamento em radianos- 1/r)Uma propriedade importante que pode-se usar no algoritmo a simetria da cir-cunferncia:cos (x) = cos ( t x)cos (x) = cos (-x) sen (x) = sen ( - x)sen (x) = sen ( + x) = - sen (-x)Programa Especial de Treinamento / PET/AGRO Pgina 29 - Apostila de Computao Grfica (Incompleta)-Problema: uso de funes trigonomtricas o que reduz muito a eficincia doalgoritmo.Soluo: algoritmo incremental com deslocamento angular constante e pe-queno, com a rotao a partir de um ponto inicial: x x yy y xn n nn n n++ + '11cos sencos sen onde :cos e sen so valores fixos.Problema:uso de xn e yn nas prximas iteraes causa erros cumulativosSoluo: uso de nmeros reais com funo de arredondamento, calculandocada pixel.3.2.1.1. ALGORITMOx r ;y = 0;gera pontos sobre o eixo:Programa Especial de Treinamento / PET/AGRO Pgina 30 - Apostila de Computao Grfica (Incompleta)-pixel (x , y , cor),pixel (-x , y , cor),pixel (x , -y , cor),pixel (-x , -y , cor).demais pontos(0 t p / 4 com passo 1 / r) :x = r cos t,y = r sen t,pixel (x , y , cor),pixel (x , -y , cor),pixel (-x , y , cor),pixel (-x , -y , cor),pixel (y , x , cor),pixel (y , -x , cor),pixel (-y , -x , cor).3.2.2. Algoritmo de BresenhamA soluo dada por BRESENHAM tambm utiliza a noo de simetria,gerando o primeiro quadrante e os demais por simetria. Utiliza-se ainda um crculocentrado na origem. Comeamos no ponto (O,R) e vamos diminuindo x exaustiva-mente, ou comeamos no ponto (R,O) e diminumos u exaustivamente.Escolha: (O,R).Partindo de (O,R), gerando a circunferncia no sentido horrio, o algo-ritmo pode escolher entre 3 pontos diferentes, sendo que a escolha deve recair sobreaquele que est mais prximo do crculo ideal:- horizontalmente para direita; (mh)- diagonalmente para baixo direita; (md)Programa Especial de Treinamento / PET/AGRO Pgina 31 - Apostila de Computao Grfica (Incompleta)-- verticalmente para baixo; (mv)m h x y Rm d y Rm v y Ri iii== ( x= ( xii( ) ( )) ( )) ( )+ + + + + '11 112 2 22 2 22 2 2O algoritmo escolhe o pixel que minimize o quadrado da distncia entreum destes pixel e o crculo verdadeiro (mv, md, mh).Chamando i =diferena entre o quadrado da distncia do pixel aocentro e o raio da circunferncia, temos: i = (xi +1)2 +(yi - 1)2 + R2 (pixel diago-nal)1)caso(i < 0) - O ponto B est no interior do crculo e deve-se escolheroutro ponto: caso 1 ou 2.Se mh md e md mvea) se 0o ponto escolhido o A;Programa Especial de Treinamento / PET/AGRO Pgina 32 - Apostila de Computao Grfica (Incompleta)-b) se> 0o ponto escolhido o B;2) caso(i < 0) - O ponto B est fora da circunferncia(caso 3 ou 4)a) se0 o ponto escolhido o B;b) se> 0o ponto escolhido o C;Programa Especial de Treinamento / PET/AGRO Pgina 33 - Apostila de Computao Grfica (Incompleta)-4.PREENCHIMENTO DE REASTerminais de varredura tm como vantagem (sobre terminais vetoriais) acapacidade de representao de reas preenchidas (cheias). H necessidade de umalgoritmo para preenchimento de reas do tipo polgono de circunferncias.4.1.Algoritmo de VarreduraPrincpio: o contorno do polgono j est desenhado na tela com uma determi-nada cor, diferente daquela de fundo.-necessita de um ponto interno deste polgono.Descrio: A partir do ponto fornecido, muda a cor do pixel at encontrar umpixel de cor diferente da cor de fundo, seguindo as linhas de varredura; (encontraruma aresta do polgono).-Uma lista ligada armazena pontos que servem para continuar o algoritmo; taispontos fazem o papel de ponto inicial, na iterao seguinte.Obs.: o algoritmo se presta preenchimento de qualquer rea fechada.4.2.Algoritmo de Anlise GeomtricaBaseadonadescriogeomtrica(como,porexemplo,umalistadevrtices).Identificaospontosexternosdopolgonoeasinterseesdasarestasdopolgonocom as linhas de varredura.Programa Especial de Treinamento / PET/AGRO Pgina 34 - Apostila de Computao Grfica (Incompleta)-1 passo: montar a tabela de lados:LADO YminYmxX paraYmin1/m1 0 10 80 -8,02 10 30 0 +2,03 30 50 40 -1,04 50 70 20 +2,05 30 70 110 -1,256 0 30 130 -0,677 0 30 130 -1,08 10 30 80 +0,67Programa Especial de Treinamento / PET/AGRO Pgina 35 - Apostila de Computao Grfica (Incompleta)-(Armazenamento do polgono-8 lados)2 passo: Interseo com a linha de varreduraVamos excluir os lados que esto acima da linha de varredura ( y=20) (Ymin 20)e os que esto abaixo da mesma (Ymx 20). Assim a anlise ser dasarestas 2, 6, 7 e 8.A interseo dada pela frmula:x 1mY -Y +Xvarredura min Ymin ( )(Equao da reta)Observe: (aresta 7) x = -1.0 (20 - 0) + 130 = 1103passo:Ordenam-seospontosetraa-seaslinhas,tomando-asde2em2.Ordenamento de x, com valores crescentes: y=20 (x=20) (x=116,6) (x=110)(x=86,7) (1) (2)(3)(4)Programa Especial de Treinamento / PET/AGRO Pgina 36 - Apostila de Computao Grfica (Incompleta)-O preenchimento comea para x par e termina para x impar.Problema: linha de varredura (y = 30) encontra um vrtice- A primeira interseo no ponto (40 , 30) 1 nico ponto para mudar oestado de preenchimento.- A interseo(100,30)nodevemudaresteestado,pois,opreenchi-mento deve continuar.Soluo: (100,30) deve ser representado na lista de intersees por um nmeropar de pontos (dois ou mesmo nenhum), neste caso, os lados esto totalmente acimaou abaixo do vrtice, as inclinaes tm sinais diferentes.Programa Especial de Treinamento / PET/AGRO Pgina 37 - Apostila de Computao Grfica (Incompleta)-4.3.Preenchimento De CircunfernciaQuandooproblemaumacircunferncia,opreenchimentosimples:calcula-se facilmente a interseo dela com a linha de varredura:x (clculo) = R2 - y2EXERCCIOS:1) Preencher as seguintes reasPrograma Especial de Treinamento / PET/AGRO Pgina 38 - Apostila de Computao Grfica (Incompleta)-2) Estenda o algoritmo, de maneira a cobrir as seguintes reas:Programa Especial de Treinamento / PET/AGRO Pgina 39 - Apostila de Computao Grfica (Incompleta)-5.TRANSFORMAES GEOMTRICASSo (alteraes) operaes matemticas que permitem alterar uniforme-mente o aspecto de um desenho j armazenado no computador. Tais transformaespermitemalteraesuniformesdeumaimagemdefinidasobreumsistemadecoor-denadas.Nohcomprometimentodaestruturadodesenhomasdoaspectoqueomesmo assumir. (mudana de orientao / escala).Observao:interessantenotarqueasoperaesdetransformaodevisualizao (WC/NDC) So combinaes de transformaes de escala (altera valo-res das coordenadas de modo proporcional ) e de translao.3 tipos fundamentaisde transformao:ESCALATRANSLAOROTAO (ao redor da origem)Programa Especial de Treinamento / PET/AGRO Pgina 40 - Apostila de Computao Grfica (Incompleta)-5.1.Transformao De EscalaMultiplicao de todas as coordenadas que definem o desenho por fato-res de escala no nulos.BIDIMENSIONAL Fator de escala horizontal-X Fator de escala vertical-Y' 'x E x xy E y y== ou

]]]

]]]

]]]xyExEyxy00obs: E >1 Ampliacao da imagem0 E (menos operaes)Programa Especial de Treinamento / PET/AGRO Pgina 50 - Apostila de Computao Grfica (Incompleta)-5.8.TRANSFORMAES EM 3 DIMENSES:A idia bsica consiste emtrabalhar com algoritmos e estrutura de dados querepresentem tridimensionalmente a imagem com converso de coordenadas tridimen-sionais para projeo bidimensionais, no memento da representao de imagem. Ponto=>representadopor3coordenadas(x,y,z)epor4coordenadasnocaso de coordenadas homogneas: Matrizes 4x4Representao matricial : (Wx , Wy , Wz , W) ; W 0 . Se W1 => W divi-dido nas 3 primeiras coordenadas homogneas para obter a coordenada cartesiana doponto (x,y,z) .5.8.1.Escala:multiplicao de cada uma das coordenadas pelo fator de escala correspon-dente. Efeito: aproximao ou afastamento do ponto em relao origem do sistema,proporcionalmente, em cada eixo, aos fatores de escala;Matriz: ExEyEz0 0 00 0 00 0 00 0 0 1

]]]]]] e, portanto:[ ] [ ]x y x y zExEyEz, ,. 1 10 0 00 0 00 0 00 0 0 1

]]]]]]Programa Especial de Treinamento / PET/AGRO Pgina 51 - Apostila de Computao Grfica (Incompleta)-5.8.2.Translao:A seguir a matriz homognea representa a translao em 3 dimenses:T3 = 1 0 0 00 1 0 00 0 1 01 T T Tx y z

]]]]]] onde Tx , Ty , Tz representam as constantesde deslocamento em cada eixo. [ ] [ ]x y z w x y z w T, , ,. 35.8.3.Rotao:Quando trabalha-se com 3 dimenses deve-se definir qual o plano sobre o quala rotao deve ser realizada, ou seja, qual o eixo em torno de qual se proceder a ro-tao.Se: plano de rotao por eixo x e y, seja eixo de rotao z:Rz = cos sensen cos 0 00 00 0 1 00 0 0 1

]]]]]]xzA rotao em torno de eixo x seria:yRx =1 0 0 00 00 00 0 0 1cos sensen cos

]]]]]] xPrograma Especial de Treinamento / PET/AGRO Pgina 52 - Apostila de Computao Grfica (Incompleta)-zE, finalmente, em torno do eixo y seria: yRy = cos sensen cos 0 00 1 0 10 00 0 0 1

]]]]]]xz5.8.4. Rotao em torno de um eixo arbitrrio:Sejam (a, b, c) e (a, b, c) os pontos que determinam os eixos:PASSOS:1) Translao de forma a fazer o eixo de rotao passar pela origem (Tx = -a;Ty = -b; Tz = -c);2) Rotao em torno de eixo x, de forma que o eixo de rotao fique no planoxz; (angulo );3) Nova rotao agora em torno de eixo y (angulo ) at que o eixo de rotaocoincida com o eixo z;4) Rotao em torno de eixo z com o ngulo desejado ( ) ;5) Rotao de - em torno do eixo y;Programa Especial de Treinamento / PET/AGRO Pgina 53 - Apostila de Computao Grfica (Incompleta)-6) Rotao de -em torno do eixo x;7) Translao com (Tx = a; Ty = b; Tz = c).inversaResumo Novo_Ponto = Ponto_velho.T R R R R R Tx y y x. . . . . . 1 1 1Exerccio para implementar:Apresente as transformaes simples aplicadas um tringulo qualquerdefinido nos eixos x, y, z.Apresenteumesquemanoqualpelomenos2transformaesforamaplicadas uma figura qualquer.Programa Especial de Treinamento / PET/AGRO Pgina 54 - Apostila de Computao Grfica (Incompleta)-6.ALGORITMODERECORTE (CLIPPING): Todo recorte deve ser efetuado nosistema de coordenadas de usurioJANELAVIEWPORTfig. 1: Recorte de pontos, linhas, caracteres6.1. Pontos: Processo rpido e muito simples. O ponto que deve ser apresentado na vi-ewport aquele para o qual as inequaes abaixo so satisfeitas.Programa Especial de Treinamento / PET/AGRO Pgina 55 - Apostila de Computao Grfica (Incompleta)-x x x e y y ymin max min max Opontoquenosatisfazasquatroinequaesacima,ouumadelasqualquerno deve ser apresentado.6.2.Linhas:Exige mais clculos e testes do que o processo anterior. Embora seja necess-rio considerar apenas as partes finais da linha e no uma infinita quantidade de pon-tos.No desenho acima a linha EF, Cujos pontos finais se encontram dentro dos li-mites da janela aceita trivialmente.Linhas GH e IJ => dever ser cortadas.6.2.1. 1 soluo:Checagem por meio da equao paramtrica envolvendo os limites da janela ea prpria linha.Consiste num processo de grande quantidade de clculos e teste e no muitoeficiente. Num display tpico, centenas ou milhares de linhas de linha podemser encontradas.Um algoritmo eficiente deve promover alguns testes iniciais na linha deforma a determinar se clculos de interseo so realmente necessrios . Inicialmen-te,opardepontosfinaispodeserchecadoparaobservarseambospertencemja-nela, fazendo a linha ser aceita trivialmente. Ao mesmo tempo, a linha pode ser trivi-almenterejeitada,portestessimplestambm,comonocasodalinhaCD,queapre-Programa Especial de Treinamento / PET/AGRO Pgina 56 - Apostila de Computao Grfica (Incompleta)-sentay>ymax(da janela). Podem ser por exemplo, rejeitados pontosqueestoabaixode ymin e esquerda de xmin ou direita de xmax.6.2.2. Algoritmo de Cohen-Sutherland:Projetadoparaidentificareficientementequelinhaspodemsertrivial-mente aceitas ou rejeitadas checando regies. Clculos de interseo so necessriosapenas para linhas na qual os casos acima falharem.Programa Especial de Treinamento / PET/AGRO Pgina 57 - Apostila de Computao Grfica (Incompleta)-1 bit-o ponto est esquerda da janela - b0- P(4)2 bit-o ponto est direita da janela - b1- P(3)3 bit-o ponto est abaixo da janela - b2- P(2)4 bit-o ponto est acima da janela - b3- P(1)(b3 b2 b1 b0)1 passo: Associar cdigos aos pontos finais usando a regra:se xXP =1;do contrario P =0se xXP =1;do contrario P =0se yYP =1;do contrario P =0se yYP =1;do contrario P =01 L code(4) code(4)1 L code(3) code(3)1 T code(1) code(1)1 B code(2) code(2)< > '< > 'Programa Especial de Treinamento / PET/AGRO Pgina 58 - Apostila de Computao Grfica (Incompleta)-2 verificar se totalmente visvel:- Se os dois cdigos associados as duas extremidades do segmento dereta forem zero a linha totalmente visvel.soma1 : = 0 ; soma2 : = 0 ;for i = 1 to 4soma1 : = soma1 + P1CODE (i)soma2 : = soma2 + P2CODE (i)if soma1 = 0 and soma2 = 0 themlinha totalmente visvel3 passo: verificar sea linha invisvel, se encontrando totalmente direita,ou esquerda, ou acima ou abaixo.Inter : = 0for i = 1 to 4Inter : = Inter + integer ((P1. CODE(i) + P2. CODE(i)) / 2)IfInter 0 then linha invisvelelse next iEx: linha KL P1 (0 0 1 0) ;P2(0 1 1 0) OK-linha invisivellinha GH P1 (0 0 0 1) ;P2 (1 0 0 0) Falhalinha IJP1 (1 0 0 1) ;P2 (1 0 0 0) OK-linha invisivel1'4 passo: Verificar se um dos pontos est dentro da janela.Soma1 = 0ou Soma2 = 0Programa Especial de Treinamento / PET/AGRO Pgina 59 - Apostila de Computao Grfica (Incompleta)-Se estiver, basta tomar uma intersecoXc XcXdXe XfXf,, 5 passo: A linha parcialmente visvel ou totalmente invisvel para o primei-ro passo, devem ser calculadas as intersees.Esquerda: XL, Y = M* (XL - X1) + Y1 ;M 0;Direita: XR, Y = M* (XR - X1) + Y1 ;M 0;Top: YT, X = X1 + 1/M . (YT - Y1);M 0;Botton: YB, X = X1 + 1/M . (YB - Y1);M 0;Exemplo:Esquerda: X= -1 Y = 2/3. [ -1 - (-3/2)] + 1/6 = {YB Y = YT }Direita: X= 1 Y = 2/3. [1 - (-3/2)] + 1/6 = 11/6 {FORA}Top: Y= 1 X = -3/2 + 3/2. [ 1 - 1/6] = -1/4 {XL -1/4 XR }Botton: Y= -1 X = -3/2 + 3/2. [ 1 - 1/6] =-13/4 {FORA}Programa Especial de Treinamento / PET/AGRO Pgina 60 - Apostila de Computao Grfica (Incompleta)-Exemplo: Prove a eficincia do algoritmo anterior para os casos A e B abaixo:6.2.3. ALGORITMO DA SUBDIVISO DO PONTO MDIO-MIDPOINT SUBDIVISION ALGORITHM-Oalgoritmoanteriornecessitavadeclculoparaobterainterseodalinhacom os limites da janela. O clculo direto pode ser evitado com utilizao de buscabinria, dividindo a linha em pontos mdios. Este algoritmo, que um caso particulardo anterior foi proposto por Sproull e Sutherland.Sua implementao em software mais lenta que o processo de utiliza-o do clculo direto da interseo da linha com asbordas da janela. Noentanto,sua implementao em hardware mais rpida por podermos utilizar arquitetura pa-ralela e diviso e multiplicao por 2 muito rpido.P1 (-3/2 ,1/6)P2 (1/2 , 3/2)P1 (-1 , 1/2)Programa Especial de Treinamento / PET/AGRO Pgina 61 - Apostila de Computao Grfica (Incompleta)-Diviso por 2, com bits:n 6 = 0110 deslocando 1 bit para a direita, temos o n dividido por 20011 ( em decimal=3)Novamente, um teste inicial efetuado para detectar linhas trivialmenteinvisveis ou normalmente visveis. Linhas para as quais o teste inicial falha so sub-divididas em 2 partes iguais.X = X + X2 ;Y = Y + Y2m2m2 1 1O teste aplicado em cada uma das metades at que a interseo com asbordas da janela obtida ou o comprimento da parte decorrente da subdiviso infi-nitesimal. A visibilidade do ponto ento determinada.(busca logartmica)ILUSTRAO DA TCNICA Seja a janela abaixo e as linhas conforme esboadas:Programa Especial de Treinamento / PET/AGRO Pgina 62 - Apostila de Computao Grfica (Incompleta)-Linha f: P1-1000; P2-0010 necessrio checarSubdiviso Pm1-1010 P2-0010 trivialmente rejeitadoSubdiviso Pm1 - 1010 P1-1000 trivialmente rejeitadoSubdivises sucessivas levam a rejeitar completamente a linhaLinha c: P1 (0001)P2 (0100) necessrio checar ponto mdio Pm1 (0001) mesmo resultado para ambos os lados* Analisando Pm1 P2 inicialmente:- dividimos em Pm2 P totalmente visivelP (0000)m1m2 ( ) 0000'P parcialmente visivelPm22( )( )00000100' Traa-se Pm1 P m2;continuamos a diviso de Pm2 P m2Pordivisessucessivas,segmentosmenorespoderosertraadoseainterseo com a janela obtida.O segmento Pm1 P1 ento analisados da mesma forma. O problema detraar pequenos segmentos a ineficincia. O ideal obter os dois pontos e traar alinha que est entre eles (dentro da janela, claro).6.3.Recorte de polgonos:Programa Especial de Treinamento / PET/AGRO Pgina 63 - Apostila de Computao Grfica (Incompleta)-Emalgumasaplicaes,hnecessidadedepromoverorecortedepol-gonos, cujos vrtices esto armazenados numa estrutura de dados qualquer. Para se-rem exibidos, os polgonos devem primeiro passar por uma operao de transforma-odevisualizaoedepoisporumprocessoderecorteatseremconvertidosnascoordenadasdoequipamento.Oalgoritmoquerecortapolgonosdevepreverdife-rentes casos, tais como:6.3.1. Algoritmos de Sutherland HodgmanEstratgia de soluo de uma srie de problemas simples e idnticos queresolvem o problema quando combinados:Soluo: Recortar uma polgono atravs do recorte de suas laterais (reas quetocam os limites da janela)Sero feitos 4 recortes: Polgonocncavorecorta-do em 2 polgonosseparadosedis-tintos.Programa Especial de Treinamento / PET/AGRO Pgina 64 - Apostila de Computao Grfica (Incompleta)-Com o polgono de lados definidos pelos vrtices: U1, U2, U3,... Unpara cada lado observa-se a relao entre vrtices sucessivos e as janelas (limites)lados definidos pelos vrtices da lista de sadas sero apresentados na tela. Ca-sos possveis:CASO 1:dois vrtices adicionado lista de sadas (p, no caso)CASO2:opontoideinterseotratadocomoumvrticedesada(asertraado)CASO 3: os dois vrtices so descartados.CASO 4: os dois pontos i e p so colocados na lista de vrtices de sada.Figura: Recorte de polgo-no,lado a lado:Programa Especial de Treinamento / PET/AGRO Pgina 65 - Apostila de Computao Grfica (Incompleta)-Algoritmo destinado a obter as interseesO primeiro ponto no colocado na lista de sadas (s, da fig. 1, anterior), j que omesmo o vrtice inicial e j se encontra na mesma, pois o processo seqencial.para linhas do polgono totalmente invisvel, nenhum ponto adicionado lista desadas (caso 3).para casos 2 e 4, necessrio calcular as interseesparaumdadovrtice,senecessriocalcularseomesmoestdentroouforadeumajanela,temosumafunoqueaplicaumtestebaseadoemprodutovetorial,como:P1 . P2 XP1 . P3 =XP1 . P2 XP1 . P4= .Faz-se o produto vetorial de P1 . P2XP1 . P3, caso o mesmo resultadoem vetor entrando (mdulo negativo) o ponto est do lado de dentro da janela, se omesmo for positivo, o ponto est do lado de fora da janela.O mdulo do produto vetorial de dois vetores V(Vx, Vy)e W (Wx, Wy) um vetor cuja magnitude dada por Vx Wy - Vy Wx . Se este n for positivo pontofora. Se este n for negativo ponto dentro.Programa Especial de Treinamento / PET/AGRO Pgina 66 - Apostila de Computao Grfica (Incompleta)-6.3.2 Algoritmo de Weiter-AthertonOalgoritmoanteriormentediscutidorequerumaregioderecortecon-vexa. Em contexto de tratamento de linhas escondidas, muitas regies cncavas apa-recem.OmtodopropostoporW.A.maiscomplexoemaispoderosoqueomtodo anterior. Ele capaz de recortar um polgono cncavo com buracos interi-ores definindo um outro polgono cncavo.Polgono a ser recortado polgono sujeitoPolgono que definido na regio recortada polgono a ser recortadoRegio de recorte : polgono recorteO algoritmo descreve ambos, polgono sujeito e polgono recorte por uma listacircular de vrtices e recorta o polgonosujeito por traar em voltas das laterais dopolgono sujeito na direo horria at que a interseo com o polgono recorte sejaencontrada.Seafronteiraentrenopolgonorecorteoalgoritmoprocedeaolongodos limites do polgono sujeito. Se a fronteira deixa o polgono recorte, o algoritmofaz um retorno direita e segue o polgono recorte no sentido horrio at encontrar ainterseo de onde partiu.7.PROJEESDefinio: enxergamos em 2 dimenses no h muita necessidade de trata-mentoem3dimenses.Logo,modelostridimensionaisdevemserconvertidosemimagensbidemensionais,estaafinalidadedoalgoritmodeprojeo.Projeoconverso genrica de entidades de uma dada dimenso para outra de menor ordem.Programa Especial de Treinamento / PET/AGRO Pgina 67 - Apostila de Computao Grfica (Incompleta)-Nossoestudo.Projeo:3D2D(interessenasdiversasaplicaescompu-grficas)7.1.INTRODUO: TIPOS DE PROJEO (3D2D)O que determina a projeo so 2 elementos:* plano de projeo quadro* centro de projeo ponto de vista (c)H diversas tcnicas para projetar 3D2D:projeo paralela;casos particularesprojeo axionomtrica; do espelhamentoprojeo perspectiva; (+ interesse)A projeo de um corpo fica definida pelo conjunto de pontos do quadroobtidos da sua interseo comaslinhasvisuais-projetoras-quesaemdeoeatin-gem c. claro que o tamanho e a forma da figura projetada dependem da formadeposicionamento do objetoemrelaoaoplanodeprojeoeaocentro.Observequeaprojetorasempreumalinhareta(logo,soprojeesgeomtricas)comooquadro um plano, logo, so projees planas.Programa Especial de Treinamento / PET/AGRO Pgina 68 - Apostila de Computao Grfica (Incompleta)-Classificao em relao ao centro de projeoa) Projeo Cnica-perspectiva: o centro de projeo um ponto prprio, emcoordenadas finitas no sistema tridimensional. Esta projeo deforma a figura, dimi-nuindo os objetos mais distantes e distorcendo os ngulos.b)Projeocilndricas-paralela:temumpontoimprpriocomocentrodeprojeo- isto ; as linhas visuais encontram-se no infinito. Mantm a proporciona-lidade da figura.7.2.Transformaes de projeo :Aprojeodeumobjetopodeserformuladacomoumatransformaocomoasvistasanteriormente.Destaforma,podeserrepresentadaporumamatriz4x4 que, aplicada um ponto do espao obtenha um ponto do plano.Consideraes para obter as matrizes de transformao:O objeto a ser projetado deve estar descrito em relao a um sistema de coordena-das tal que as direes principais do mesmo coincidam com os eixos do sistema;Casonosejapossveldefiniroseixosprincipaisdemaneiraclara,usa-se um paraleleppedo envoltrio.Oplanodeprojeoumplanovertical,colocadoperpendicularmenteaoeixozdo sistema de coordenadas do objeto;O objeto est modelado por um conjunto de pontos convenientemente.Programa Especial de Treinamento / PET/AGRO Pgina 69 - Apostila de Computao Grfica (Incompleta)-OBS.: havendo mais de um objeto em cena necessrio uma converso entreos sistemas de coordenadas do objeto e da cena. Os pontos de cada objeto devem serconvertidos para o sistema global por uma transformao de mudana de base, antesde se efetuar as transformaes de projeo:7.3.PROJEES CNICASi)doponto:bastalig-loaocentrodeprojeoeobterainterseodaretacom o plano de projeo.ii) da reta: idem ao anterior para dois pontos da retaPrograma Especial de Treinamento / PET/AGRO Pgina 70 - Apostila de Computao Grfica (Incompleta)-7.3.1. Clculo da transformao de perspectiva:Por semelhana de tringulos, podemos encontrar:Yd=YZYY dZYZdXZXp,pRp,pRpRppp,;.., XdX dZXZdp ppppDestas relaes obtm-se a matriz de transformao da perspectiva cnica:Obs: Se o centro de projeo for (0,0,d)teramos:Pcon =1 0 0 00 1 0 00 0 1 0 0 0 X =XZ + dd ; Y1d,0

]]]]]]+YZ ddAssim[ ]Xp Yp Zp 1.1 0 0 00 1 0 00 0 1 0 0 01d0

]]]]]] [ ]Xp Yp ZpZp YpZp / d d1dXpZp d /

]]]Programa Especial de Treinamento / PET/AGRO Pgina 71 - Apostila de Computao Grfica (Incompleta)-Exemplo:Sejaoobjetodefinidopelastabelasabaixo:eplanodeprojeoZ=Z0, simule a projeo do mesmo na tela de um computador:lado (1, P1, P2) lado (6, P2, P4)lado (2, P1, P3) lado (7, P3, P5)lado (3, P1, P4) lado (8, P4, P5)lado (4, P1, P5)lado (5, P2, P3)PONTO10 0 020 0 030 0 540 0 050 0 0Programa Especial de Treinamento / PET/AGRO Pgina 72 - Apostila de Computao Grfica (Incompleta)-Poderamos ter perspectivas definitivas sobre 2e3pontosdeprojeo.Dadas por:Pontos de projecao1 0 0 1 0 0 0 0 00 0 0 0projecao x = r 1 0 0 1 0 0 0 1 0 0 0 0

1r111r11r113x ry rPontos dey rz rrr'

]]]]]]]'

]]]]]]]12230022Anomalias da perspectivaPerspectivageraanomaliasqueaumentamorealismoemtermosdeprofundidade, mas alteram as medidas e formas reais.1. Encurtamentoperspectivo:aumentandoadistnciadoobjetoaocentrodeproje-o menor parece ser;2. Pontosdefuga:asprojeessocategorizadaspelonmerodepontosdefugaprincipais (n de eixos que o plano de projeo corta). Se a projeo com 1 pontode fuga principal ento o plano de projeo corta o eixo z e linhas paralelas aos ei-xos x e y no convergem.3. Confusovisual:objetossituadosatrsdocentrodeprojeosoprojetadosnoplano de projeo de cima para baixo e de trs para frente, conforme: Programa Especial de Treinamento / PET/AGRO Pgina 73 - Apostila de Computao Grfica (Incompleta)-4.Distorotopolgica:Fenmenopelaqualumsegmentoderetaqueuneumponto situado frente do observador com um ponto situado sua retaguarda efeti-vamente projetado segundo uma linha quebrada de comprimento infinito. A causa ofatodeque pontos do plano quecontem o ponto central da projeo soprojetadosno infinito pela transformao perspectiva.OBS:IMPORTANTE:Hpossibilidadedaexistnciadeum,doisoutrspontos de fuga principais, se o plano de projeo perpendicular (e a normal ao pla-no, paralela) e um, dois ou trs eixos.7.3.2. Projees Cilndricas (ou paralelas)H 2 tipos de projees paralelas, baseadas na relao entre a direo deprojeo e a normal ao plano de projeo:i) Proj. Ortogonal: a direo de projeo a mesma direo da normal ao planode projeo;ii) Proj. Oblqua: as direes citadas acima no so as mesmas.7.3.3.PROJEES OBLQUASFornecem sensao espacial e permitem medidasNeste caso, a direo de projeo no forma 90 com o plano de projeo, mas oplano de projeo paralelo a um dos 3 eixos.Geralmente:faz-seumafaceparalelaaoplanodeprojeo,normalmenteaquecontm mais detalhes. Esta face projeta-se em sua verdadeira grandeza, de forma aevitar a deformao das formas circulares desta face.Programa Especial de Treinamento / PET/AGRO Pgina 74 - Apostila de Computao Grfica (Incompleta)-DEFINIES MATEMTICAS:Seja o cubo unitrio ao ladoque dever ser projetado no plano xy.A matriz para projeo oblqua podeser escrita em funo de x e l.Note que (0, 0, 1) pode ser proje-tado em xy como:( )( ) l.cos ,l.sinlevando o outro ponto no espaco dado porPl.sin ,, ,.cos , lComoalinhaprojetora,quenoperpendicularaoplanodeprojeo,deve passar por P e P e as demais sero paralelas ela, chegamos :Considerando um ponto genrico (x, y, z): sua projeo dada por (xp,yp, ).Com estes 2 pontoseconsiderandoovetorPP,quedefinearetaprojetora,temos, como equao simtrica da reta:Programa Especial de Treinamento / PET/AGRO Pgina 75 - Apostila de Computao Grfica (Incompleta)-x xly yl sinzx xlzx z ly z lsinp pp + +.cos .;.cos. cos. 1destas relacoes,temosxeyppe chegamos matriz da projeo oblquo:Pobl.=1 0 0 00 1 0 0l.cos l.sin0 00 0 0 1

]]]]]]Obs.:se l = 1 e = 45(= 45, tambm)=> projeo cavaleira (cavalier)se l = 1/2 e = 45[(= arctg 2) (aprox: 63,4)]a projeo projeo dita gabi-nete (cabinet)Proj. cavaleira: a projeo de uma linha perpendicular ao plano de projeo de mesmo comprimento que a linha em si.Exemplos:Programa Especial de Treinamento / PET/AGRO Pgina 76 - Apostila de Computao Grfica (Incompleta)-Proj.cabinet:direodeprojeoformaaprox.63,4comoplanodeproje-o.1. Paraumcabodearestade8cm,encontreaperspectivacavaleiradomesmo,su-pondo o mesmo com um dos vrtices na origem do sistema de coordenadas (x, y,z)2.Obtenha a projeo cabinet para o cubo acima.8.TRATAMENTO DE LINHAS / SUPERFCIES ESCONDIDAS8.1.INTRODUO:Profundidade da perspectivaA operao de remoo de linhas ou superfcies escondidas requer umatransformaoperspectivacompropriedadesespeciais.necessrioavaliarapro-fundidade de cada ponto na vista perspectiva para tomar decises sobre que pontos /superfcies da imagem devem ser omitidas na representao.Programa Especial de Treinamento / PET/AGRO Pgina 77 - Apostila de Computao Grfica (Incompleta)-Sistema 3D-xs, ys, zs { xs e ys => localizao da vista perspectiva doponto {zs => retm a informao de profundidadeSe para apresentar em 2D, despreza-se zs e utilizam-se as outras 2 coor-denadas sem modificao. Esta representao corresponde uma projeo ortogonaldo sistema de coordenadas da tela.Iluses de profundidadeA iluso do cubo-Necker:Programa Especial de Treinamento / PET/AGRO Pgina 78 - Apostila de Computao Grfica (Incompleta)-8.2.Classificao de AlgoritmosOs algoritmos para remoo de linhas / superfcies escondidas so clas-sificados de acordo com o tratamento utilizado:object-space: diretamente com as definies do objeto;imagem-space: com suas imagens projetadas.Mtodo object-space: compara objetos e partes dos objetos entre si, para defi-nir as partes que deveriam ser rotulados como invisveis. Clculos geomtricos commaior preciso mais usados no tratamento de linhas escondidas.Mtodo image-space: a visibilidade decidida ponto a ponto em cada posiodo pixel sobre o plano de projeo mais usados no tratamento de superfcies escon-didas.3. Introduo:Dadoumobjeto3Deumaespecificaodevisualizaodefinindootipo de projeo, ns podemos definir que limites e superfcies do objeto so visveisparaocentrodeprojeo(p/proj.perspectiva)ouaolongodadireodeprojeo(p/ proj. paralela).Vamos observar que a idia fundamental simples, se a implementaomaissimples,entorequerumagrandedemandadetempocomputacional,outrosalgoritmos mais complexos podem ser estruturados.2 propostas so elaboradas para tal soluo.Programa Especial de Treinamento / PET/AGRO Pgina 79 - Apostila de Computao Grfica (Incompleta)-IMPORTANTE: os algoritmos devem fazer cada passo o mais eficiente poss-vel.8.3.ALGORITMO DEPTH-BUFFER:8.3.1. INTRODUO:Trata-sedeumalgoritmodosmaissimples,sendoomaissimplesdaclassedosmtodosimage-space.Estealgoritmoalgumasvezeschamadodez-buffer. Para cada ponto da tela grfica, ns guardamos umregistrodaprofundidadedoobjeto.Adicionalmente,armazenadaaintensidadequedeverserusadaparaapresentaroobjeto.Oalgoritmorequer2arrays,umaparaintensidadeeumaparaprofundidade, cada uma das quais indexada pelas coordenadas do pixel (x,y).8.3.2.ALGORITMO:1. Para todo pixel da tela, faa depth [x,y]=1.0 e intensidade [x,y]= valor de fundo datela (background);2. Paracadapolgono,encontreospixel(x,y)queestoassociadosaoslimitesdopolgono quando projetados na tela.Para cada um destes pixel:a.Calcularovalordaprofundidadezdopolgonoparaposio(x,y);b.Sezcoloquez(x,y)noz-bufferoumelhor,faadepth [x,y] = z e faa intensidade (x,y) igual intensidade do po-lgono,caso contrrio:Programa Especial de Treinamento / PET/AGRO Pgina 80 - Apostila de Computao Grfica (Incompleta)-se z > depth [x,y] => no tome nenhuma aoDepois de processados todos os polgonos, a array intensidade contera soluoObserve a figura abaixo:Caso z < depth (x,y) o polgono est mais prximo para o observador que ou-tros j gravados para este pixel.Se z>depth[x,y], o polgono j gravado para (x,y) est situado mais pertodo observador que o novo polgono e nenhuma ao e requerida.c) comentrios:O algoritmo tem a desvantagem de requerer um grande espao para o z-buffer [ou depth-buffer], mas, muito simples de ser implementado. A performancedo algoritmo tende a ser constante, o nmero de pixel coberto por cada polgono de-cresce na medida em que o nmero de polgonos inserido no volume aumenta.Umoutroimportantedetalhedoalgoritmoqueeleusaosistemadecoordenadas da tela. Antes do passo 1, todos os polgonos da cena so transformadosno sistema de coordenadas da tela, j descritos anteriormente.Programa Especial de Treinamento / PET/AGRO Pgina 81 - Apostila de Computao Grfica (Incompleta)-d) Clculo de z[x,y]Pelo fato de haver um registro da equao do plano para cada polgononosistemadecoordenadasdatela,paracalcularz[x,y]bastaresolveraequaodoplano:Ax + By + Cz + D = 0E o valor da varivel z dado por : Z =- D-Ax-By(equ. do plano-1)Ce)Limitaes do mtodo:O mtodo no muito utilizado na prtica por causa do enorme tamanhodas reas profundidade e intensidade (2 arrays ). Num equipamento de 500 x 500pixels teramos 250 000 locaes para cada array.Parareduodareaacima,aimagempodeserdivididaemimagensmenores,porexemplo,nocasoacima,dividiramosem100trechos,cadaumacom50x50pixels.Camosparaarrayscom2500elementos,masotempodeexecuocresce por que cada polgono processado vrias vezes.8.4.ALGORITMOS DE CONEXO DE LINHAS DE VARREDURA8.4.1. IntroduoTais algoritmos resolvem o problema de linhas escondidas por meiodeumalinhadevarreduraporvez,processandolinhasdevarreduradapartesuperiorpara inferior da tela. O algoritmo examina uma srie de janelas na tela, cada janela umalinhadevarreduraaltaetolargaquantoa(janela)tela.Novamente,serore-querida duas arrays: intensidade e profundidade.Programa Especial de Treinamento / PET/AGRO Pgina 82 - Apostila de Computao Grfica (Incompleta)-8.4.2.Algoritmo:Para cada linha de varredura, faa :1-Paratodopixeldalinhadevarredura,faadepth[x,y]=1,0eintensida-de[x,y]= valor de fundo da tela - background;2 - Para cada polgono na cena, encontre todos os pixels na atual linha de var-redura y que corta o polgono:a - Calcule a profundidade z do polgono no (x,y)b - se z valor do pixel = fundo de tela;2. Somente1polgonocontido/interceptado=>soluocompletarorestantedarea para a cor do fundo;3. H somente 1 polgono que transborda a rea => toda a rea colocada na cor dopolgono;4. H mais de um polgono contido, interceptado ou que transborde e pelo menos umdelestransborda.promovidoumtesteparadetectarseoquetransbordaestaafrente dos demais, analisando a coordenada z de cada um dos planos. obvio que os 3primeiros casos acima so de soluo muito simples.Nos casos da hiptese 4, onde mais de um polgono pertencem mesma rea, neces-sitamos olhar a coordenada do plano na qual est contido e ver qual delas est maisprximadoobservador.Se,noentanto,osplanosdos2polgonosseinterceptam,ser necessrio uma subdiviso para anlise posterior, conforme:8.6.Algoritmos do tipo object-space8.6.1. POLGONOSPrograma Especial de Treinamento / PET/AGRO Pgina 85 - Apostila de Computao Grfica (Incompleta)-i)Equaodoplano:baseadonaequaodoplanoquecontmasfacesdoobjetos ser exibido. ObserveEquao do plano: Ax + By + Cz + D = O, onde:A = y + y y z + zC = x + x retirado da equacao1 2 31 2 31 2 3( ) ( ) ( );( ) ( ) ( );( ) ( ) ( );z z z z z zB x x x x z x xy y y y x y yD2 3 3 1 1 22 3 3 1 1 22 3 3 1 1 2 + + + N= (A, B, C)Aplicando a equao do plano para coordenadas do observador, temos:A x By Czfora exibedentro escondefronteira.0 0 0000+ +< > 'Programa Especial de Treinamento / PET/AGRO Pgina 86 - Apostila de Computao Grfica (Incompleta)-8.6.2. Por produto escalar:descreverasarestasdecadafacenosentidoanti-horrioparaquemestforadoobjeto;obtm o vetor u fazendo o produto vetorial das arestas;u.v < 0 => sentidos opostos => exibeu.v > 0 => sentidos iguais => escondePrograma Especial de Treinamento / PET/AGRO Pgina 87 - Apostila de Computao Grfica (Incompleta)-9.SOMBREAMENTOEmseguidaaremoodesup/linhasescondidaimportante,noprocessodecriao de imagens, sombrear as superfcies visveis.9.1. Introduo:Reflexo difusa e luz ambienteTodas superfcies visveis promovem reflexo difusa da luz, espalhandoluzigualmenteemtodasasdirees.paratodasassuperfcies,leidoscosenosdeLambert relata a quantidade de luz refletida em funo da luz incidente e da superf-cie em questo.A iluminao difusa (Id) dada por:Id = Ip. Kd. cos ( )02 onde: Ip = intensidade do ponto de luz incidente;Programa Especial de Treinamento / PET/AGRO Pgina 88 - Apostila de Computao Grfica (Incompleta)-Kd = coeficiente de reflexo difusa; (varia de 0 a 1) = ngulo entre a direo L para o ponto de luz incidente e a normal superfcie.ou ainda, por produto vetorial:Id = Ip. Kd.(L.N)Considerando a luz ambiente, teramos uma nova equao:Id = Ia. Ka + Ip. Kd. (L.N)ondeIa => intensidade de luz ambienteKa => quanto da luz ambiente refletida pela superfcie.Obs.:Afontedeluzassumidaconvenientementecomosendocoincidentecom os olhos do observador, logo, no h sombras; logicamente, os raios de luz quecolidem com a superfcie sero todos paralelos.Problema:2superfciesdemesmacorparalelaseumamaisprximaaoexa-minados que a outra, como seus vetores normais so iguais, a iluminao nas super-fcies ser a mesma e as mesmas sero indistinguveis.Programa Especial de Treinamento / PET/AGRO Pgina 89 - Apostila de Computao Grfica (Incompleta)-Soluo: A energia luminosa diminui com o inversos do quadrado da distncia(d = distncia da luz (ida e volta)) chamado tal distncia de r, temos:Id = Ia.Ka + Ip. Kp (L.N)/ R2Mas se R => problemas de simulao => hipoteticamente, os objetos seri-am capazes de refletir apenas a luz ambiente. Para obteno de efeitos mais realsti-cos, a equao acima pode ser melhorada para:Id = Ia.Ka + I.p. Kd. (L.N)(r+K)ondeK => constante e r => distncia do ponto de vista superfcie em questo.Considerandosuperfciescoloridas,teramosequaesdiferentesparacores diferentes: Azul, vermelho e amarelo, com a tripla (Kdc, Kdm, Kdy) definindoas constantes de reflexo para cada cor.Para o amarelo, teramos Kdy = 1.0, Kdc = 0.0, Kdm = 0.0fazendo o amarelo ser refletido e as demais serem absolvidas.Para uma dada componente:Id = Iac.Kac + I.pc. Kdc. (L.N)para a componente Azul (CYAN) (r+K)Programa Especial de Treinamento / PET/AGRO Pgina 90 - Apostila de Computao Grfica (Incompleta)-9.2.REFLEXO ESPECULAREste tipo de reflexoocorre em algumas superfcies brilhantes.Ex:ilu-minaodasuperfciedeumama=>brilhointensocausadoporreflexoespe-cular,fazendo,inclusivenoperceberarealcordama,overmelho,orestodama visto por reflexo difusa.Para uma superfcie que reflete perfeitamente a luz o ngulo de reflexo igual para o ngulo de incidncia. Assim, somente o observador colocado nesta li-nhaverreflexoespecular.Ouseja,parareflexoespecular,ongulodeveserzero, assim, v e R coincidem. a intensidade da reflexo especular maior na direode R e diminui rapidamente na medida em que aumenta.Modelo de Phong:Intensidade da reflexo especularcosn, onde n identifica o tipo dasuperfcie (funo da luz refletida)Is = Il. w(i,) cosn.w(i,) = curva de reflectnciai => ngulo de incidncia => comprimento de ondan grande => distribuio de luz da forma de metaisn pequeno => superfcies no metlicasPrograma Especial de Treinamento / PET/AGRO Pgina 91 - Apostila de Computao Grfica (Incompleta)-* Funo de distribuio espacial para luz refletida. especularmente.Reflexo especular direcional, depende do ngulo de incidncia da luz.Incidncia perpendicular de luz pode causar apenas reflexo especular. Ex: para ma-teriais no-metlicos a refletncia pode ser apenas 4%, para materiais metlicos podeser 80%.Combinando resultados com o modelo anterior, temos o modelo de ilu-minao dado por:I = Ia.Ka + Ip. [Kd.cos + w(i. ,) cosn] r+KI = Ia.Ka + Ip. [Kd.cos + Ks. cosn] r+Kou ainda:Ia.Ka + Ip. [Kd.(L.N) + Ks.(R.V)n ]r+KO clculo de L.N pode ser dado por:Programa Especial de Treinamento / PET/AGRO Pgina 92 - Apostila de Computao Grfica (Incompleta)-L.N = n.L|n|.|l|9.3.CONSIDERAESSe a fonte de luz est no infinito, L.N constante para um dado polgo-no, enquanto o produto R.V varia ao longo do polgono. Para superfcies bicbicas,ou para fonte de luz que no est no infinito, tanto L.N como R.V variam ao longo dasuperfcie.Assim,taisprodutosvetoriaisdeverosercalculadosparacadapontonuma linha de varredura.OmtodoTorrance-Sparrow(adotatalmodelo)ummodelobaseadona superfcie de reflexo, em contraste com o modelo emprico proposto por Phong(cosn).A superfcie assumida como uma coleo de faces microscpicas, cadaumacomoumperfeitorefletor.AorientaodecadafacetadadaporfunodedistribuiodeprobabilidadeGausiana.Ageometriadecadafacetaeadireodaluz determinam a intensidade e a direo da reflexo especular.Programa Especial de Treinamento / PET/AGRO Pgina 93 - Apostila de Computao Grfica (Incompleta)-a => totalmente exposta a luz;b => escura;c => parcialmente escura;e => totalmente exposta a luz, mas alguns raios sofrem desvio na superfcie fBlimadaptouomodeloTorrance-Sparrowparacomputaogrfica,dando detalhes matemticos e comparando com o modelo de Phong. Os dois mode-losdiferemconsideravelmentenocasodengulosdeincidnciaemtornode70,quando o modelo de Sparrow apresenta mais reflexo especular da luz.Ref.: livro Foley - pag 5809.4.SOMBREAMENTO DE MALHAS POLIGONAIS* 3 mtodos para sombrear objetos definido por malhas poligonais:i) sombreamento constante;ii) sombreamento com interpolao da intensidade;iii) sombreamento com interpolao do vetor normal. (aumento da dificuldade)Emcadaumdeles,deve-sefazeraopoporumdosdoismodelosdeiluminao proposto anteriormente.9.4.1.Sombreamento constante:uma superfcie curva seria representada por um conjunto de superfcies plana-res que pode ser sombreada com intensidades constantes de iluminao em cada su-perfcie, desde que os planos que subdividem a superfcie sejam suficientemente pe-Programa Especial de Treinamento / PET/AGRO Pgina 94 - Apostila de Computao Grfica (Incompleta)-quenos. Esta aproximao pode gerar como efeito, exibies razoavelmente boas emmuitoscasos,especialmenteseacurvaturamudagradualmenteeafontedeluzeoobservadorestolongedasuperfcie,decorredistoquealgumasconsideraessonecessrias:1. A fonte de luz est no infinito;2. O observador tambm est no infinito;3. O polgono que representa a atual superfcies que est sendo modelada, no umaaproximao para uma superfcie curva.Se qualquer uma das 2 consideraes iniciais verdadeira, ento a m-dia L e V pode ser usada, talvez calculada no centro do polgono.A considerao final de efeito mais substancial que as outras duas naobteno da imagem resultante. O efeito que cada faceta do polgono visvel da su-perfcie aproximada distinguvel.Com este mtodo, a intensidade calculada num ponto interior de cadapolgono e a superfcie (e a face planar) sombreada com a intensidade calculada.Se a orientaoentreplanosadjacentesmudaabruptamenteadiferenaentre as intensidades das superfcies podem produzir um efeito spero e irreal, sendoum efeito evidentemente visvel => EFFECT MACH BAND9.4.2. Interpolao da intensidade:deformaaeliminaradescontinuidadedaintensidade,prope-seosombrea-mento com interpolao da intensidade, ou, sombreamento de Gouraud.Tal processo constitudo de 4 passos:Programa Especial de Treinamento / PET/AGRO Pgina 95 - Apostila de Computao Grfica (Incompleta)-a) calcula-se os vetores normais s superfcies;b)asnormaisdosvrticessocalculadas,usando-seamdiadasnormaisdetodas as superfcies que compartilham o mesmo vrtice:c) as intensidades dos vrtices so encontradas, usando o vetor normal do vr-tice com um modelo de iluminao desejada;d)cadapolgonosombreadopelainterpolaolineardasintensidadesdosvrtices ao longo da linha de varredura, como mostra a figura abaixo. Para cada face,serarmazenadoaintensidadeinicialeamudanadovalordeyocasionaramu-dana de intensidade.Ia Iy yy yIy yy yIb Iy yy yIy yy yIp Ix xx xIx xx xv vv vab pb abp ab a+++121 2211 2131 3311 3InterpolaoObs.:O resultado da aplicao do mtodo de Gouraud uma melhora sensvelnasensaoirrealpassadapelomtodoanterior,mas,aindacausasensaodemach band.livro ROGER pg. 323/324Programa Especial de Treinamento / PET/AGRO Pgina 96 - Apostila de Computao Grfica (Incompleta)-9.4.3.Interpolao do vetor normal / Phong:OprocedimentopropostoporPhongsolucionamuitosproblemasdosombreamentodeGouraud.EnquantoGouraudinterpolavaloresdeintensidadeaolongo de uma linha de varredura, o processo de Phong interpola o vetor normal su-perfcie ao longo da linha de varredura e ao longo das arestas. O modelo de ilumina-o ento aplicado cada pixel, usando a normal interpolada para determinar a in-tensidade.Comestatcnica,reflexesespecularesparecemmaisreais,diminuindoos problemas Mach Band e aumentado grandemente o custo computacional.9.5. Tcnica do traado de raios (Ray Tracing)Propostaqueresolveosproblemasdasduastcnicasanteriores,mas,exigegrandequantidadedeclculoslevandoainviabilidadenocasodemquinaslentas.Seuresultadonoentantovisvelnaformadeimagensbelssimasquesoobtidas com seus clculos.vantagem: pode ser aplicado curvas e poliedrosTcnica:Projeta-seumraiovirtualdeluzque,partindodopontodoobservadorpassa por um pixel na tela e pelo conjunto de objetos que esto sendo visualizados.Programa Especial de Treinamento / PET/AGRO Pgina 97 - Apostila de Computao Grfica (Incompleta)--Devemsercomputadasasinterseesdoraiocomcadaobjetoqueomesmo atravessa;- Se o raio no intercepta nenhum, a cor do pixel ser a cor de fundo;- Se mais de um objeto for interceptado, seleciona-se o mais prximo doobservador, este ser o ponto visvel e os demais sero invisveis ( resolve o proble-ma de linhas escondidas ) neste ponto, calcula-se a intensidade refletida da superfciemaisprximadoobservador,empregandoasfrmulasjpropostas,desteclculoresultar o valor da tonalidade do pixel correspondente.(repete-se o passo para cada pixel na tela)Destaque: processo com bons resultados.10.SOMBRASTcnicas semelhantes remoo de linhas escondidas, s que algoritmosderemoodelinhasescondidasdeterminamquesuperfciesdevemservistasparaumdadopontodevista,aqui,determinamosquesuperfciespodemservistasporuma dada fonte de luz e para um ponto de vista, a mesma no sombreada. A mesmalgica aplica-se diversas fontes de luz.Osombreamentocontribuisensivelmenteparadarrealismocenaporaumentar a sensao de profundidade, sendo tambm importante nas simulaes.Sombras : - sombra - (CG s usa esta)- penumbraPrograma Especial de Treinamento / PET/AGRO Pgina 98 - Apostila de Computao Grfica (Incompleta)-Fonte de luz no infinito: projeo ortogrfica usada para determinar as som-bras;Fonte de luz a uma distncia finita, mas fora do campo visual do observador:usa-se a projeo perspectiva;Fonte de luz a uma distncia finita, mas no campo visual do observador:o es-pao deve ser dividido em setores e as sombras obtidas por setor, separadamente.Programa Especial de Treinamento / PET/AGRO Pgina 99 - Apostila de Computao Grfica (Incompleta)-11.FORMAS E MODELOS GEOMTRICOS11.1.Introduo:Modelao: descrio de objetos e de imagem de maneira permitir sua visu-alizao. MuitasaplicaesdeCGenvolvemarepresentaodeobjetosem3D.Em alguns casos, uma grande quantidade de triplas (x,y,z) so necessrias para des-creverassuperfciesdoobjetoemquesto.Emalgunscasos,noentanto,oobjetopodeserdefinidoporcombinaodesuperfciesmatemticasque,sosuficiente-mente simples, a ponto de poderem ser implementadas computacionalmente.Formas simples para primitivas: pontos,segmentosdereta,linhaspoli-gonais, polgonos, poliedros.Em alguns casos, uma coleo de linhas insuficiente para descrever osobjetos, j que linhas no definem superfcies e superfcies so necessrias para cl-culos de superfcies escondidas, volumes etc...Assim,formasgeomtricasmaiscomplexassousadasnamodelagemde objetos, tais como: arcos de curvas, superfcies curvas, superfcies qudricas.11.2.Formas Geomtricas SimplesPrograma Especial de Treinamento / PET/AGRO Pgina 100 - Apostila de Computao Grfica (Incompleta)-Pontos e segmentos de retas:especificao dada por P1(x1,y1,z1) e P2(x2,y2,z2)Linhas poligonaiscadeia de segmentos deretaadjacentes.especificadaporumaseqnciadens-vrtices (P0 ,P1 , ... , Pn) que definem os segmentos de reta.Polgonos : linha poligonal fechada.arestas :chama-sepolgonoplanoaopolgonocujosvrticespertencemaummesmoplano.11.3.Malhas PoligonaisUmamalhapoligonalumacoleodevrtices,arestasepolgonos,vrticessounidosporarestasepolgonosconstituemumaseqnciadevrticesearestas. Uma malha pode ser representada por diferentes maneiras, com vantagens edesvantagens particulares.So elas:11.3.1. Lista explcita de vrticesPrograma Especial de Treinamento / PET/AGRO Pgina 101 - Apostila de Computao Grfica (Incompleta)-{ V= P,P ,P ...,Pe os pontos P (x, y ,z )0 1 2 n i i i iso os vrtices da malhas poligonal, armazenada na ordem em que seriam en-contrados por uma travessia do modelo.Obs.: representaotilparapolgonosisolados,masineficienteparaumamalha poligonal completa, j que diversos vrtices so partilhados mais de uma vez:11.3.2. Lista de polgonos : Cada vrtice armazenado uma nica vez na listadevrtices v = (P0 , ... ,Pn) e cada polgono definido por ponteiros ou ndices para uma lista de vrtices.Obs.:de novo, quando da representao do objeto, arestas partilhadas so de-senhadas diversas vezes.Programa Especial de Treinamento / PET/AGRO Pgina 102 - Apostila de Computao Grfica (Incompleta)-11.3.3. Lista explcita de arestas: h uma lista de vrtices e cada vrtice armazenado uma nica vez e uma listade arestas, com cada aresta armazenada tambm uma nica vez. Um elemento da listad arestas aponta dois elementos da lista de vrtices.Uma polgonoentodefinidoporumalistadeponteirosparalistadearestas.formamaisconsistente,sendomaisfcildeserchecada,porcontermaisin-formaes.Obs. finais:Asmalhaspoligonaissousadasemaplicaesdeengenharia,porse-remfceisdeconstruir,mas,paraconstruodemodelosmaisrealistasexigemumnmero muito elevado de polgonos para produzir iluso de curvatura.11.4.SUPERFCIES CURVASPermitem nvel de modelagem mais elevado;formas de modelagemsegmentos de superficies curvasmodelagem solida'maneiras de modelaoaditiva(uniao) subtrativa (escultura)'11.4.1. Modelao de Curvasdados n+1 pontos: P0 (x0,y0) , ... , Pn (xn,yn) pretende-se determinar a curva quecorresponde a formato definida por estes pontos.Programa Especial de Treinamento / PET/AGRO Pgina 103 - Apostila de Computao Grfica (Incompleta)-podemos querer que:A curva passe pelos pontos (interpolao)A curva se aproxime dos pontos: (aproximao)A soluo destes problemas passa por definir mtodos de construo decurvasapartirdesegmentosdecurvas,geralmentemodeladoscomolinhaspoligo-nais.Na modelagem de uma curva f(x) usando segmentos de curvas, procura-serepresentaracurvacomoumasomdesegmentos*i(x),designadosfunesdebase.Assim:Obs.: escolhe-se convenientemente estas funes de base, geralmente associa-das a funes polinomiais.Polinmio de grau n:Polinmios segmentados contnuos:Q(x) um polinmio segmentado contnuo de grau n. definido comoum conjunto de K polinmios qi(x), cada um de grau n e (K+1) ns t0 , t1 , ... , tk demodo que:paratx tQ(x)=qei=0 ;...;k - 1i i+1 i ( ) xforando os polinmios a coincidirem por ns.ex.:Obs.:Polinmiosdegrauelevadonosomuitoteisparamodelaodecurvas. (Preferncia: grau 3)Programa Especial de Treinamento / PET/AGRO Pgina 104 - Apostila de Computao Grfica (Incompleta)-11.4.2. Funes polinomiais de baseDescreve-se a seguir algumas funes polinomiais de base dados:P0 (x0 , y0) ,... , Pn (xn , yn)n + 1 pontos dadost0 , t1 , ... , tn nsnmeros reaisPolinmios de LagrangePolinmios cbicos de HermiteA forma de polinmios cbicos de Hermite determinada pelos pontos finais epelas tangentes aos pontos finais.Figuras:B-Splines:Para uma sequncia de ns t0 , t1 , ... , tn os polinmios Bi,n so dados por:Emparticular,opolinmiocbicoB-splineBi,3nonulonointervalo[ti,ti+4]Para ns no repetidos, temos:ti ti + 1 n, o polinmio B-spline zero nos extremos, ou seja, ti e ti + n + 1.Polinmios de BernsteinPrograma Especial de Treinamento / PET/AGRO Pgina 105 - Apostila de Computao Grfica (Incompleta)-Os polinmios de Bernstein de grau n no intervalo [0,1] so definidos como:Os polinmios cbicos de Berstein sero: