Computação Gráfica Módulo III Geometria

Documentos relacionados
Transformações Geométricas

Transformações Geométricas para Visualização 3D

Modelo de Câmera e Projeção no OpenGL

Modelo de Câmera do OpenGL

Computação Gráfica Introdução

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

Transformações Projetivas

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG

Sist. Coordenadas Câmera (SCC)

Projeções e Transformações em 3D

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann

Cena em Computação Gráfica

Translação. Sistemas de Coordenadas. Translação. Transformações Geométricas 3D

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 6. Projeções

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Visualização. - Aula 4 -

Laboratório de Programação com Games. Conteúdo: Professor: - Transformações no plano. Instituto de Computação - UFF

Computação Gráfica Transformações Projetivas

Computação Gráfica - OpenGl 02

Transformações Geométricas

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10)

3D no OpenGL. Visualização e Transformações Perspectiva. Transformações do Modelview. Processo

Computação Gráfica e Áreas Correlatas

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Transformações Geométricas Grafos de Cena

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Visualização 3D

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

-INF Aula 17 Visualização 3D: Projeções

Transformações Geométricas

Transformações Geométricas

Modelos Geométricos Transformações

aula 10 Projeções Planas IC/UFF tela de um museu de Montreal

Introdução ao Processamento e Síntese de imagens - Projeções

Transformações Geométricas

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

Visualização 3D. Soraia Raupp Musse

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

Computação Gráfica. Apresentação Inverno 2012/2013. Carlos 2012 ISEL/ADEETC Computação Gráfica

CG 2015/2016 Primeiro Teste LEIC Alameda/Taguspark. Primeiro Teste

Sumário. Computação Gráfica. Transformações Geométricas. Transformações Geométricas. Translação: Transformações Geométricas

10 Visualização em 3D - Projeções

aula6 Projeções Planas 2017/2 IC / UFF

Determinação da Visibilidade

Modelação de Formas Geométricas

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010

Visualização em 3-D - Projeções Planares

Computação Gráfica I. Conteúdo: Professor: - Transformações geométricas no plano. Instituto de Computação - UFF

Projeções. Cap 2 (do livro texto) Aula 6 UFF

Computação Gráfica Abel J. P. Gomes. Engenharia Informática (5385) - 2º ano, 2º semestre Matemática (5828) - 2º ano, 2º semestre

- Aula 6 - Visualização 3D: Projeções

Câmara Virtual Simples

Pipeline de Visualização Câmara Virtual

Computação Gráfica Viewing

Visualização e Projeções

Fundamentos da Computação Gráfica Lista de Exercícios Marcelo Gattass TeCGraf/Departamento de Informática/PUC-Rio 19jun2003

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

Pipeline de Visualização Câmara Virtual

Transformações Geométricas em C.G.

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

Processamento de Imagens CPS755

Aula9 e 10. Projeções Planas. Como representar objetos 3D em dispositivos 2D? 2019/1 IC / UFF. Paginas 91 a 101 livro texto de computacao grafica

Projeções. Prof. Márcio Bueno

Prova Fundamentos Computação Gráfica

Transformações 2D. Prof. Márcio Bueno Fonte: Material do Prof. Robson Pequeno de Sousa e do Prof.

CG 2015/2016 Segundo Teste LEIC Alameda/Taguspark. Segundo Teste. 18 de Novembro de 2015

Pipeline de Visualização 3D

Transformações 3D. Soraia Raupp Musse

Perspectivas Cap 2 (do livro texto) Aula 7 UFF

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D

aula9 Coordenadas homogêneas e projeções 2016/2 IC / UFF

Modelos Globais de Iluminação

Computação Gráfica Rasterização de Curvas

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D

Computação Gráfica. 5385: Licenciatura em Engenharia Informática. Cap. 3 Janelas e Visores. Janelas e Visores

USP Universidade de São Paulo

Introdução à Computação Gráfica

Computação Gráfica II

Transformações Geométricas

Projeção 3D. André Tavares da Silva. Capítulo 5 de Foley Capítulo 2 de Azevedo e Conci

Transformações Geométricas

Processamento de Imagens CPS755

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

Recorte e seleção de linhas e polígonos

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Pipeline de Visualização Câmara Virtual

Vectores e Geometria Analítica

Iluminação e Sombreamento

-INF Aula 17 Visualização 3D: Projeções

Reconstrução Geométrica a Partir de Imagens TIC /TCC

Coordenadas Homogêneas no Plano e no Espaço

Transformações Geométricas

1º Teste de Computação Gráfica 3º Ano

Reconstrução Geométrica a Partir de Imagens TIC

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. ramal 5981

Fundamentos de Processamento Gráfico

Transcrição:

Computação Gráfica Módulo III Geometria UniverCidade - Prof. Ismael H F Santos April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br Considerações Gerais Objetivo: Discutir os principais conceitos eos princípios básicos dos Sistemas Gráficos e a Programação em OpenGL. A quem se destina :Alunos e Profissionais que desejem aprofundar seus conhecimentos sobre Computação Grafica e suas aplicações. April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Bibliografia Computação Gráfica Volume. Jonas Gomes e Luiz Velho. Instituto de Matemática Pura e Aplicada IMPA. Introdução a Computação Gráfica - Paulo Roma http://www.lcg.ufrj.br/compgraf/downloads/apostila.pdf http://www.lcg.ufrj.br/compgraf/downloads/apostila.ps.gz Notas do Curso ministrado na Universidade de Marland pelo Prof. David Mount ftp://ftp.cs.umd.edu/pub/facult/mount/47/47lects.ps.gz http://www.lcg.ufrj.br/~esperanc/cg/47lects.ps.gz Apostila Fundamentos da Imagem Digital Antonio Scuri Computer Graphics: Principles and Practice, Second Edition. James Fole, Andries van Dam, Steven Feiner, John Hughes. Addison- Wesle. OpenGL Programming Guide, nd Edition. Mason Woo, Jackie Neider, Tom Davis. Addison Wesle. April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 Bibliografia OpenGL OpenGL Programming Guide, nd Edition. Mason Woo, Jackie Neider, Tom Davis. Addison Wesle. http://www.lcg.ufrj.br/redbook Manual de referência online http://www.lcg.ufrj.br/opengl Sítio oficial do OpenGL www.opengl.org April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4

Ementa Introdução ao OpenGL Geometria Eemplos de Transformações D Fórmulas e cálculos das transformações D Usando matriz de transformação (por que?) Coordenadas Homogêneas Concatenação de transformações Transformações 3D Projeções Histórico April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 CG CO3 Paradigma dos 4 universos April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6 3

Transformações Geométricas April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 CG CO3 Transformações Geométricas April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 4

Eemplos de Transformações D Translação Escala uniforme não uniforme Rebatimento por um eio (espelhamento) Troca de eios Rotação pela origem April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 9 Translação Translation of a point is simpl vector addition P P P + - P - 3 + - 3 - April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5

Escala Scaling about the origin is scalar multiplication P P * P P * April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br Rebatimento por um eio (espelhamento) - April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6

Troca de Eios April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 Rotação pela Origem P θ P.cos θ -.sen θ.sen θ +.cos θ April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4 7

Por que usar Matriz nas Transformações? Todas as transformações podem ser efetuadas através da multiplicação de matrizes (usando coordenadas homogêneas). As transformações podem ser aninhadas e resolvidas de modo a haver apenas uma matriz de multiplicação a ser aplicada. A característica descrita acima se torna muito importante quando a mesma seqüência de transformações deve ser aplicada para diversos pontos. April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 Multiplicação de Matrizes a c b d onde: a + b c + d April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6 8

9 April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 Uniform Scaling,, S s s P M S P s s s s,, I M I s P M s April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 Non-uniform Scaling Note orientation shift in line M S P s s s s S s s P

Non-uniform Scaling P P Redução (< s <), Aumento (s >) s s April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 9 Flip an Ais... - What does this do to appearance of objects? April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Swap Aes April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br Rotate b θ M R P, R cos( θ) sin( θ), sin( θ ) cos( θ) P cos( θ) sin( θ) sin( θ) + cos( θ) cos( θ) sin( θ) sin( θ ) cos( θ) θ April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Transformações Geométricas (Translação) P t P t P + t t t?? Não pode ser?? escrito na forma t + t Ruim para implementação April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 Vantagens das coordenadas homogêneas (Translação) w t h w h P t t [T] Matrizde Translação April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 4

Coordenadas homogêneas P P w D D w w h h w w h /w h /w w> h w h E.: April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 3 D 3 D 6 4 9 6 3 Vantagens das coordenadas homogêneas (pontos no infinito) w H w u 3 w C H C C 3 u H 3 h w 3 u h h u h H H H 3 H 4?? 3 3 3 3... 3 / /4 C C C 3 C 4 infinito 4 8 infinito na na.5 3 6 direção April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br direção 6 (,3) (,3) 3

Vantagens das coordenadas homogêneas (pontos no infinito, eemplo) 3 - A D A D - O B O infinito - B C C 3-3 - 4 3 - - - 3-4 - - - April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 Efeito de profundidade April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 4

Simplificação da projeção cônica Projeção cônica Projeção ortográfica ee plano de projeção direção de projeção April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br plano de projeção 9 Concatenação α cosα sin α sin α cos α α ' cos α sin α ' sin α cos α April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 5

Concatenação de Transformações T T R R E P P T R E R T P April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 Composição com sistema local/móvel Y P X Y T Y P X Y R Y P X Y X X X P T P e P R P P R T P Y P X Y R Y P 3 X 3 Y 3 T Y X P Y X X T R T R - X P 3 R P e P T P 3 P R T R - R P ou P R T P April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 3 6

Geometria Projetiva e Coordenadas Homogêneas em 3D P z P h h z h w m m m 3 m 4 m m m 3 m 4 m 3 m 3 m 33 m 34 m 4 m 4 m 43 m 44 z P z h /w h /w z h /w P z April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 33 Transformações em 3D (translações e escalas) t z z t t z z s z s s z z April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 34 7

Transformações em 3D (Rotações) θ z cos θ sen θ -sen θ cos θ z z θ z θ z cos θ sen θ -sen θ cos θ z z cos θ z sen θ -sen θ cos θ z April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 35 Transformações em 3D (rotação em torno de um eio qualquer) m m m 3 z z m m 3 m m 3 m 3 m 33 z v (v, v, v z ) m v + cosθ (- v ) m v v (-cosθ ) - v z sen θ m 3 v z v (-cosθ ) + v sen θ m v v (-cosθ ) + v z sen θ m v + cosθ (- v ) m 3 v v z (-cosθ ) - v sen θ m 3 v v z (-cosθ ) - v sen θ m 3 v v z (-cosθ )+ v sen θ m v z + cosθ (- v z ) April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 36 8

CG CO3 Projeções April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 37 Projeções Planas Cônicas A A p B B p realista não preserva escala não preserva ângulos April 5 9

Projeções Planas Paralelas A A p B B p pouco realista preserva paralelismo possui escala conhecida April 5 Classificação das projeções planas Paralelas ortográficas plantas elevações iso-métrica oblíquas cavaleiras cabinet Cônicas pto de fuga ptos de fuga 3 ptos de fuga dp // n dp não é paralela a n April 5

Projeções de um cubo Paralelas / a a planta ou elevação iso-métrica Cabinete (a45 ou 9) Cavaleira (a45 ou 9) Cônicas April 5 pto de fuga ptos de fuga Projeção plana é uma transformação linear? Ou seja: T(P+Q) T(P)+T(Q) e T(aP) at(p)? V O V V p (V) p (V p ) V V V p plano de projeção O V p April 5 cp Projeções Projeções cônicas cônicas não não são são TL, TL, paralelas paralelas podem podem ser. ser. cp

Projeção plana paralela é uma transformação linear? T(P+Q) T(P)+T(Q)? P+Q P retas paralelas projetam em paralelas P p Q P p P p + Q p O Q p Q p T( T( ) )?? April 5 Projeção Projeção paralela paralela em em plano plano que que passa passa pela pela origem origem é é uma uma transformação transformação linear linear Matrizes de projeções Cavaleiras e Cabinetes M (,,) k a z 3 T(,,) (,) T(,,) (,) T(,,) ( -k cosa, -k sin a ) M -k.cos(a) -k.sin(a) April 5

Matrizes de projeções pseudoisométricas j (,,) M j p z k i 3 k p i p T(,,) (cos 3,-sin 3) T(,,) (,) T(,,) (-cos 3, -sin 3) M cos3 -cos3 -sin3 -sin3 April 5 Projeção cônica simples e P e P e e P p p P p p d z p -d p e d - e e p e d - p d -ze e d p - p d n p d -ze e April 5 Prof. z Ismael e H. F. Santos - ismael@tecgraf.puc-rio.br e 46 e 3

Projeção cônica simples e P p P p p d -ze d -ze e e e z p -d p p z p d d e d e d e d d - - e (d/- ) e (d/- ) e -d w w April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 47 Simplificação da projeção cônica Projeção cônica Projeção ortográfica ee plano de projeção direção de projeção plano de projeção April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 48 4

Distorce o frustum de visão para o espaço da tela e -f e -n n d d n n [ P ] n α - β e e -n -f April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 49 Uma equação para profundidade α β z Ptos no near (z-n): Ptos no far (z-f): n f α + α + β n β f α β f f + n n [ P ] n n n+f - n f April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 5

Translada o paralelepípedo de visão para origem e t b e l r [ T ] -(r+l)/ -(t+b)/ +(f+n)/ (t-b)/ e -(t-b)/ -(r-l)/ e (r-l)/ (f-n)/ -(f-n)/ April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 Escala o paralelepípedo de visão no cubo [-,][-,][-,] (t-b)/ e -(t-b)/ -(r-l)/ (r-l)/ (f-n)/ near e -(f-n)/ far [S] /(r-l) /(t-b) -/(f-n) far April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 5 z d d d - - - near 6

Matriz Frustum do OpenGL [ P ] [ T ] n n n+f - n f -(r+l)/ -(t+b)/ +(f+n)/ [S T P ] OpenGL Spec n r + l r l r l n t + b t b t b ( f + n ) fn f n f n [S] /(r-l) /(t-b) -/(f-n) April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 53 Projeção Cônica (Frustum) void glfrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); e view frustum e Obs.: near e far são distâncias( > ) camera (ee) Plano de projeção left right top bottom far near April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br e e ze 54 7

Projeção Cônica (Perspective) void glperspective( GLdouble fov, GLdouble aspect, GLdouble near_, GLdouble far_ ); e w aspect w/h e h near far fov e ze April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 55 Matriz Ortho do OpenGL [ T ] -(r+l)/ -(t+b)/ +(f+n)/ OpenGL Spec [S] /(r-l) /(t-b) -/(f-n) April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 56 8

Projeção Paralela (Ortho) e e top bottom A left near right A far B ( right top far ) ( left bottom near ) void glortho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_, GLdouble far_ ); void gluorthod( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 57 Glu Look At void glulookat(gldouble ee, GLdouble ee, GLdouble eez, GLdouble center, GLdouble center, GLdouble centerz, GLdouble up, GLdouble up, GLdouble upz); Dados: ee, ref, up (definem o sistema de coordenadas do olho) Determine a matriz que leva do sistema de Coordenadas dos Objetos para o sistema de Coordenadas do Olho up ee center Coordenadas dos Objetos Coordenadas do Olho April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 58 9

Calcula o sistema - e e vup ee dados: dados: ee, ee, center, center, up up view center view view center center --ee ee z vup ee view center z April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 59 z e view view // view view Calcula o sistema - e e vup e view ee e e (vup (vup z ) e )// vup vup z e z center e vup e ee view vup e center e ee z e e z e e e view April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6 3

Translada o ee para origem e e center ee [ T ] -ee -ee -ee z e z e ee z center April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6 Roda e e para o o z o [ R ] e e ez e e ez z e e, o e ee, z o z e, o center April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 6 3

Matriz Look At do OpenGL [ T ] -ee -ee -ee z z e view view // view view e e (vup (vup z ) e )// vup vup z e [ R T ]? [ R ] e e z e e e e e ez e e ez z April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 63 Concatenação das transformações [ T ] e center e ee z [ R ] e e [ P ] e e e ee e [ S ] [ T ] center [ T ] [ P ] e e [ S ] z e near - - - e April 5 far Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 64 [ R ] [ T ] 3

CG CO3 Visualização OpenGL April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 65 Simplificação da projeção cônica Projeção cônica Projeção ortográfica ee plano de projeção direção de projeção April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br plano de projeção 66 33

Problema do clipping e P P e n n n+f - n f -n n n -n n -n n n n+f - n f n n n n +nf -n - - -n-f e w P P April 5 e Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 67 Clipping em coordenadas homogêneas z d d d - - - top bottom far near right left [left, right] [bottom, top] z [near, far] - - - z - h /w - h /w - z h /w April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 68 34

Clipping em coordenadas homogêneas [left, right] - - h /w h h w,, se se w> w> h /w OpenGL Spec h h w,, se se w< w< April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 69 Clipping em coordenadas homogêneas - [left, right] h -w - h /w - h -w h -w h w não serve! w < ( >) w h w April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 - - h -w - - h -w h -w 35

Equação de um plano N.P N.P A A + B B + Cz Cz N.P N.P N.(P N.(P + D P) P) N.P N.P d (N.DP ) d A A + B B + Cz Cz z O d P D P N(A,B,C) P(,,z) A A + B B + Cz Cz +D +D (A, (A, B, B, C) C) N e D -d -d N.(-P N.(-P ) ) April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 Distância de um ponto a um plano z P(,,z) D P N(A,B,C) N.P N.P A A + B B + Cz Cz N.P N.P N.(P p +D p +D P )) N.P N.P d + N.D N.D P P p N.D N.D P A A + B B + Cz+D O April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 7 36

Interseção de reta com plano P d A + B + Cz +D z d P d A + B + Cz +D d P P d P + d P d + d April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 73 Cálculo das distâncias /* Distance ** ** This function computes and returns the distance between a ** point and a plane. Normal points toward out. */ double Distance(double, double, double z, double w, int plane ) { switch( plane ) { case : return( -w - ); case : return( -w + ); case : return( -w - ); case 3: return( -w + ); case 4: return( -w - z ); case 5: return( -w + z ); } return(. ); } April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 74 37

Transformação para o Viewport void glviewport(glint, GLint, GLsizei width, GLsizei height ); w w + w*( w*( d -(-)) d -(-))/ / w w +h*( +h*( d -(-)) d -(-))/ / zz w w zz d / d / + / / z d d d - - - w h w w April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br z w [..] 75 Transformações de um vértice OpenGL Spec April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 76 38

Modelo do Pintor profundidade z April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 77 Problemas na ordenação de faces (b) (a) + + z a z b April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 78 39

BSP trees: Binar Space Partion Trees 5a 5b 3 4 frente 5a 3 atrás 4 5b 5a 5b 3 4 3 frente frente atrás 5a atrás 4 5b 5a 5b 3 4 5a 3 4 5b April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 79 Eibição de uma BSP void bspdispla(bsptree *tree) { if (arvore não é vazia ) { if (observador está a frente da raiz) { bspdispla(tree backchild); DisplaPolgon(tree root); bspdispla(tree frontchild); } else { bspdispla(tree frontchild); DisplaPolgon(tree root); bspdispla(tree backchild); } } } Mostra a árvore de trás, a rai a árvore da frente. Mostra a árvore da frente, a rai a árvore de atrás. April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 4

BSP trees: Dois eemplos de eibição 5a 5b 3 4 5a 3 4 5b 5a, 5a,,,,, 3, 3, 5b, 5b, 4 5a 5b 3 4 5a 3 4 5b 4, 4, 5b, 5b, 3, 3, 5a, 5a,,, April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 ZBuffer: idéia básica z MATRIZ DE PROFUNDIDADES April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 8 4

Rasterização de Polígonos e Linhas April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 83 ZBuffer - pseudo-código void ZBuffer( void) { int,; for (; <w; ++) { for (;<h; ++) { WritePiel(,, bck_color); WriteZ(,,); } } for (each primitive) { for (each piel in the projected primitive) { double pz z coordinate of the (,) piel; if (pz < ReadZ(,)) { WritePiel(,, color); WriteZ(,,pz); } } } void } /* Zbuffer */ void glenable( glenable( GL_DEPTH_TEST GL_DEPTH_TEST ); ); April 5 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 84 4