Modelo de Câmera do OpenGL

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

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

Transformações Projetivas

Cena em Computação Gráfica

Visualização. - Aula 4 -

Transformações Geométricas

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

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

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

Computação Gráfica - OpenGl 02

Cena em Computação Gráfica

Uma Taxonomia para Manipulação Interativa e Visualização de Objetos 3D

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

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

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

Projeções e Visualização

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

Visualização 3D. Soraia Raupp Musse

BANCO DE QUESTÕES MATEMÁTICA A 11. O ANO

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

Prova Fundamentos Computação Gráfica

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

7. Projeções Geométricas e Visualização 3D

Pipeline de Visualização Câmara Virtual

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

PROGRAMAÇÃO OPENGL LIVRO: TEORIA DA COMPUTAÇÃO GRÁFICA

Câmara Virtual Simples

Pipeline de Visualização 3D

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

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

modelos rquicos Aula 5 Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto Paulo Gandra de Sousa

CG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto

Transformações 3D. Soraia Raupp Musse

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

EQUAÇÃO DO PLANO. Profª Cristiane Guedes

Segunda Prova 20 de junho de DURAÇÃO DA PROVA: 90m

Uma API para geração de gráficos

NOTAÇÕES. Observação: Os sistemas de coordenadas considerados são os cartesianos retangulares.

Pipeline de Visualização Câmara Virtual

Computação Gráfica OpenGL 05 3D

Pipeline de Visualização Câmara Virtual

Cap. 4: Janelas, Visores & Recorte Gráfico

Matriz de transformação

Rendering 2D com OpenGL e interface gráfica em Qt

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler

Mecânica dos Sólidos II

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

OpenGL. 35T56 Sala 3E3 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227 DIM102

Algoritmos de Iluminação Global

Proposta de teste de avaliação

Computação Gráfica OpenGL 05 3D

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

Proposta de teste de avaliação

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 4

CG 2015/2016 Prova de Repescagem LEIC Alameda/Taguspark. 12 de Janeiro de 2016

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 3

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 1

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 2

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

Computação Gráfica e Processamento de Imagens. recorte ( clipping ) de : o segmentos de retas o polígonos o textos. Prof.

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

Viewing 3D. SCC Computação Gráfica. Prof. Fernando V. Paulovich

Animação e Visualização Tridimensional

Questão 02. é (são) verdadeira(s) A) apenas I. B) apenas II. C) apenas III. D) apenas I e II. E) Nenhuma. Questão 03 8 A) 9 B) C)

TESTE DE AVALIAÇÃO GLOBAL MATEMÁTICA A 11.º ANO PROPOSTA DE RESOLUÇÃO. (proposição verdadeira) (proposição verdadeira)

Exame Nacional de Matemática A 1 a Fase 2017

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

Lista 3 com respostas

Transformações 3D. Soraia Raupp Musse

2 OPERAÇÕES E REPRESENTAÇÃO BÁSICAS EM 2D

GRUPO I Duração: 50 minutos

Geometria Analítica. Estudo do Plano. Prof Marcelo Maraschin de Souza

OpenGL. Alberto B. Raposo

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

Geometria Analítica - Retas e Planos

2º Exame. Computação Gráfica

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL

António Costa. Paulo Roma Cavalcanti

Pipeline Gráfico Cluter & Durand, MIT

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 4

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 1

( ) ( ) Novo Espaço Matemática A 11.º ano Proposta de Resolução [janeiro ] + = é tangente a uma esfera de centro ( 1, 0, 1)

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 2

QUESTÕES APLICADAS A TODOS OS CANDIDATOS QUE REALIZARAM A PROVA ESPECÍFICA DE MATEMÁTICA. Prova 3 Matemática QUESTÕES OBJETIVAS GABARITO 3

INF2608 Fundamentos da Computação Gráfica Prova Final de

1º Exame. Computação Gráfica

Sistemas de coordenadas

Matemática. B) Determine a equação da reta que contém a diagonal BD. C) Encontre as coordenadas do ponto de interseção das diagonais AC e BD.

CRAb Grupo de Computação Gráfica Departamento de Computação UFC

26/11/2000 UNIVERSIDADE FEDERAL DO RIO DE JANEIRO VESTIBULAR PROVA 2 MATEMÁTICA. Prova resolvida pela Profª Maria Antônia Conceição Gouveia.

Visualização e Projeções

INSTITUTO DE MATEMÁTICA E ESTATÍSTICA UNIVERSIDADE DE SÃO PAULO

Um Algoritmo para a Visualização de um Terreno com Objetos

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

FUNDAMENTOS E APLICAÇÕES. Luis Valente

2. Na gura abaixo, representa-se um cubo. Desenhe a echa de origem H que representa ! DN =! DC

Geometria Anaĺıtica. Prof. Dr. Thadeu Alves Senne ICT - UNIFESP

Programação Gráfica Cap 2

GEOMETRIA BÁSICA GGM00161-TURMA M2. Dirce Uesu Pesco Geometria Espacial 18/11/2010

Transcrição:

Março - 28 Modelo de Câmera do OpeGL por Marcelo Gattass Departameto de Iformática PUC-Rio (adaptado por Luiz Ferado Martha para a disciplia CIV282 Sistemas Gráficos para Egeharia) Projeção Paralela (Ortho) top bottom A left ear right far ( left, bottom ear) A =, ( right, top far) B =, Obs.: ear e far são distâcias (> ) void glortho( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble ear_, GLdouble far_ ); Defie volume de visão para projeção ortográfica o sistema de coordeadas da câmera (olho). void gluortho2d( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top ); Modelo de Câmera do OpeGL

Março - 28 Matriz Ortho do OpeGL (r+l)/2 [ T ] = (t+b)/2 +(f+)/2 2/(r l) 2/(t b) [ S ] = 2/(f ) OpeGL Spec [ S ] [ T ] = Matriz Ortho do OpeGL: [T] traslada o paralelepípedo de visão para origem t b l r Obs.: ear e far são distâcias (> ) e o paralelepípedo está o lado egativo do eixo z. [ T ] = (r+l)/2 (t+b)/2 +(f+)/2 (t b)/2 (t b)/2 (r l)/2 (r l)/2 (f )/2 (f )/2 Modelo de Câmera do OpeGL 2

Março - 28 Matriz Ortho do OpeGL: [S] escala o paralelepípedo de visão o cubo [-,]x[-,]x[-,] (t b)/2 ear (t b)/2 far (r l)/2 (r l)/2 (f )/2 (f )/2 Iverte a direção de z, de tal forma que o plao ear tem o meor valor de z (meor profudidade). 2/(r l) 2/(t b) [ S ] = 2/(f ) far z d y d x d ear Projeção Côica (Frustum) void glfrustum( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble ear_, GLdouble far_ ); Defie volume de visão para projeção côica o sistema de coordeadas da câmera. view frustum camera (eye) Obs.: ear e far são distâcias (> ) Plao de projeção left right top bottom far ear ze Modelo de Câmera do OpeGL 3

Março - 28 Projeção Côica (Perspective) void glperspective( GLdouble fovy, GLdouble aspect, GLdouble ear_, GLdouble far_ ); Alterativa para defiir volume de visão para projeção côica. w aspect = w/h h ear far fovy Matriz Frustum do OpeGL [ P ] = +f x f [ T ] = (r+l)/2 (t+b)/2 +(f+)/2 [ S ] [ T ] [ P ] = 2 r + l r l r l 2 t + b t b t b ( f + ) 2 f f f 2/(r l) 2/(t b) [ S ] = 2/(f ) OpeGL Spec Modelo de Câmera do OpeGL 4

Março - 28 Matriz Frustum do OpeGL: [P] distorce o frustum de visão para um paralelepípedo = -f Matém a altura do frustum de visão a distorção. Isto faz o problema da projeção côica recair o problema padrão de projeção ortográfica. = - Plao de projeção é o plao ear: d = [ P ] = +f x f = - = -f Glu LookAt void glulookat(gldouble eyex, GLdouble eyey, GLdouble eyez, GLdouble refx, GLdouble refy, GLdouble refz, GLdouble vupx, GLdouble vupy, GLdouble vupz); Dados: eye, ref, vup (defiem o sistema de coordeadas do olho) Determia a matriz que leva do sistema de coordeadas do objeto (modelo) para o sistema de coordeadas do olho z o vup (direção vertical da câmera) eye ref (poto de referêcia) y o x o Sistema de coordeadas do objeto (modelo) Sistema de coordeadas do olho Modelo de Câmera do OpeGL 5

Março - 28 Matriz LookAt do OpeGL [ T c ] = -eye x -eye y -eye z view = eye ref = view / view = (vup x ) / vup x = x [ R ] = x y z x y z x y z Matriz LookAt do OpeGL: [ C ] = [ R ] [ T c ] Cocateação das trasformações [ T c ] y eye x z ceter [ R ] [ P ] eye [ T ] y ceter [ S ] z x far z d y d x d ear - - - Modelo de Câmera do OpeGL 6

Março - 28 Problema do clippig (cerceameto cotra volume de visão) P 2 P +f x f = 2 = +f x f = 2 +2f = 2f w P P 2 Clippig em coordeadas homogêeas z d y d x d - - - top bottom far ear right left x [left, right] y [bottom, top] z [ear, far] x y z x h /w y h /w z h /w Modelo de Câmera do OpeGL 7

Março - 28 Clippig em coordeadas homogêeas y x [left, right] - x x h /w x h w, se w > x h /w x h w, se w < OpeGL Spec Clippig em coordeadas homogêeas y x [left, right] - x x h /w x x h w = - x h w x h w ão serve! w < ( > ) w x h w - - x h w = x h w Modelo de Câmera do OpeGL 8

Março - 28 Equação de um plao N.P = Ax + By + Cz N.P = N.(P + P) = N.P = d d = Ax + By + Cz z N=(A,B,C) Ax + By + Cz + D = O d P P P=(x,y,z) y (A, B, C) = N e D = d = N.( P ) x Distâcia de um poto a um plao P=(x,y,z) z N=(A,B,C) P N.P = Ax + By + Cz N.P =N.(P p + P ) N.P = d + N. P P p N. P = Ax + By + Cz + D O y x Modelo de Câmera do OpeGL 9

Março - 28 Iterseção de reta com plao P d = Ax + By + Cz +D z d P d 2 = Ax 2 + By 2 + Cz 2 +D d 2 P 2 y P = d P 2 + d 2 P d + d 2 x Cálculo das distâcias /* ===================== Distace ====================== ** ** This fuctio computes ad returs the distace betwee a ** poit ad a plae. Normal poits toward out. */ double Distace( double x, double y, double z, double w, it plae ) { switch( plae ) { case : retur( w x ); case : retur( w + x ); case 2: retur( w y ); case 3: retur( w + y ); case 4: retur( w z ); case 5: retur( w + z ); } retur(. ); } Modelo de Câmera do OpeGL

Março - 28 Trasformação para o Viewport void glviewport(glit x, GLit y, GLsizei width, GLsizei height ); x w = x + w.(x d ( )) / 2 y w = y + h.(y d ( )) / 2 z w = z d / 2 + / 2 z d y d x d - - - y w h w z w [..] x w Trasformações de um vértice OpeGL Spec Modelo de Câmera do OpeGL

Março - 28 Modelo do Pitor z Problemas a ordeação de faces (a) + + (b) z a z b Modelo de Câmera do OpeGL 2

Março - 28 ZBuffer: idéia básica z MATRIZ DE PROFUNDIDADES Rasterização de Polígoos e Lihas Modelo de Câmera do OpeGL 3

Março - 28 ZBuffer - pseudo-código void ZBuffer( void) { it x,y; for (x=; x<w; x++) { for (y=;y<h; y++) { WritePixel(x,y, bck_color); WriteZ(x,y,); } } for (each primitive) { for (each pixel i the projected primitive) { double pz = z coordiate of the (x,y) pixel; if (pz <= ReadZ(x,y)) { WritePixel(x,y, color); WriteZ(x,y,pz); } } } void gleable( GL_DEPTH_TEST ); } /* Zbuffer */ Suavização da toalização Gouraud c c 4 c 2 c c 43 c 2 c 3 Phog N N 4 N N 2 N 43 c N 2 N 3 Modelo de Câmera do OpeGL 4

Março - 28 Iterpolação de cores void glshademodel (GL_SMOOTH); void glshademodel (GL_FLAT); Modelo de Câmera do OpeGL 5