2º Exame de Animação e Visualização Tridimensional

Documentos relacionados
2º Exame de Animação e Visualização Tridimensional

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

2º Exame de Animação e Visualização Tridimensional

1º Exame. Computação Gráfica

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 2º Exame 15 de Julho de 2010

1º Exame. Computação Gráfica

2º Exame. Computação Gráfica

1º Teste Computação Gráfica

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

Exame de Época Especial Computação Gráfica

Shading (sombreamento) & Smooth Shading

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

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark

Shading (sombreamento) & Smooth Shading

Nº Nome: Relação de aspecto é o quociente entre a altura e a largura de uma janela ou um viewport.

Câmara Virtual Simples

Exame de 1ª Época Computação Gráfica

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

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006

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

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

Mapeamento de Texturas

Pipeline de Visualização 3D

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

António Costa. Paulo Roma Cavalcanti

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

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

Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal...

Pipeline de Visualização Câmara Virtual

Modelos Geométricos Transformações

Exame de 2ª Época Computação Gráfica

Lista de exercícios. 4) Defina o conceito de função de eficiência luminosa. (Victor)

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

Exame de 2ª Época Computação Gráfica

1º Teste de Computação Gráfica

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Transformações 3D. Soraia Raupp Musse

Exame de 1ª Época Computação Gráfica

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

Pipeline de Visualização Câmara Virtual

FCTUNIVERSIDADE NOVA DE LISBOA!

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

COMPUTAÇÃO GRÁFICA E INTERFACES

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

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

QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos

Transformações 3D. Soraia Raupp Musse

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

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

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

Nº Nome: Antes de começar: Identifique todas as folhas com o seu número.

Computação Gráfica - 13

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

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

Computação Gráfica - OpenGl 02

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

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

FCTUNIVERSIDADE NOVA DE LISBOA!

1º Exame Computação Gráfica

Resumo. Computação Gráfica: Uma Proposta de Plano Pedagógico. Áreas Correlatas. Definição. Uma Visão Integrada da C.G.

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

Nº Nome: Antes de começar: Identifique todas as folhas com o seu número.

Computação Gráfica - 09

Técnicas de renderização com textura

Computação Gráfica. Exame de Época Especial de. Nº Nome:

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Determinação da Visibilidade

Pipeline de Visualização Câmara Virtual

2º Exame Computação Gráfica

Exame Tipo Computação Gráfica

1º Teste Computação Gráfica

Operações sobre Fragmentos

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Taguspark / Alameda. Primeiro Teste 17 de Março de 2012

Engenharia Informática Computação Gráfica

Computação Gráfica Conf. 6: Iluminação e materiais. ISUTIC Eng. Alexander Rodríguez Bonet

Ray-Tracing. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 13 Apontamentos CG

Sistemas de Referência

Nº Nome: Sala: Responda às questões seguintes justificando adequadamente todas as respostas. Se necessário utilize o verso da respectiva folha.

Representação de Objetos e Cenas. Soraia Musse

Escola Secundária/3 da Sé-Lamego Ficha de Trabalho de Matemática Ano Lectivo 2003/04 Funções racionais 2 - Revisões 11.º Ano

Enquadramento e Conceitos Fundamentais

Visualização. - Aula 4 -

Nº Nome: Antes de começar: Identifique todas as folhas com o seu número.

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

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

2º Exame de Computação Gráfica 2º Ano

1º Teste de Computação Gráfica

Professora: Rosa Canelas Ano Lectivo 2009/2010

Computação Gráfica - 09

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade

Sistemas Gráficos e Modelos

No enunciado existem duas páginas para rascunho devidamente identificadas. Estas não serão consideradas na avaliação.

Curso: Especializado Maya

4 Processamento Paralelo

Sistemas Gráficos e Modelos Cap 1

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

Fluxo de Trabalho Básico Modelar o ambiente Atribuir materiais aos objetos Adicionar luzes Posicionar câmeras Renderizar a cena Animar

Transcrição:

2º Exame de Animação e Visualização Tridimensional Licenciatura em Eng. Informática e de Computadores pólo Alameda Prof. responsável João Madeiras Pereira 3 de Fevereiro de 27 Nº Nome: Sala: Responda às questões seguintes justificando adequadamente todas as respostas. Se necessário utilize o verso da respectiva folha; O exame tem a duração de 1h3m com tolerância máxima de 3m 1. (1 valor) Os comandos OpenGL podem ser executados em modo imediato ou em modo retenção. Explique, no contexto do último modo, o conceito de lista de desenho (display-list) e as vantagens da sua utilização. Uma Lista de Desenho (Display List) é uma sequência não editável de comandos GL que têm que ser armazenados para posterior execução. Quando a lista é criada os comandos podem ser só armazenados ou também executados. Uma Lista de Desenho pode conter uma chamada a outra Lista de Desenho (hierarquia de listas). Comandos que não possam ser armazenados são executados imediatamente. Em termos de desempenho: Num ambiente distribuido, em que a aplicação se encontra numa máquina cliente e o processo OpenGL reside numa máquina-servidora, as display-lists são armazenadas no servidor, com consequente redução do tráfego da rede e aumento de desempenho. Em modo local, o mecanismo de display-list pode tornar-se mais eficiente dado que os comandos podem ser préprocessados e armazenados da forma mais compatível possível com as características do hardware gráfico de base (ex: cálculo dos coeficientes das matrizes de transformação a partir dos parâmetros de transformação). Em certas implementações de OpenGL mais sofisticadas, pode mesmo proceder-se à fusão de comandos adjacentes, como a concatenação de matrizes de transformação. 2. A API OpenGL disponibiliza funções para a criação de efeitos de nevoeiro. a) (1 valor) Explique como é realizado o efeito, identificando o mecanismo utilizado O efeito de fog é realizado em OpenGL misturando a cor do nevoeiro (formato RGBA) com a cor de cada pixel (ou fragmento) da imagem utilizando um função de mistura. Este mecanismo é de facto um blending similar ao processo utilizado para efectuar transparências. A única diferença é que a função de blend utiliza um factor que calculado em função da profundidade z de cada pixel. b) (1 valor) Indique como é possível configurar esse efeito em OpenGL e descreva os seus atributos. 1/6

Este efeito pode ser ligado ou desligado através da funções glenable e gldisable graças ao parâmetro GL_FOG. Existem várias configurações possíveis disponibilizadas através das funções glfog*(): O comportamento do factor de blend (linear, exponencial): glfogi(gl_fog_mode, GL_LINEAR GL_EXP GL_EXP2 ) A cor em formato RBGA: glfogfv(gl_fog_color, cor ) A densidade: glfogf(gl_fog_density, densidade ) A profundidade z de inicio: glfogf(gl_fog_start, z_inicio ) A profundidade z de fim: glfogf(gl_fog_end, z_fim ) c) (1 valor) O efeito de nevoeiro em OpenGl não possibilita realizar certas configurações. Identifique um tipo de nevoeiro que não consiga realizar usando as funções de OpenGL? Dado que a função de mistura utiliza exclusivamente a profundidade z (informação retida no z-buffer), não é possível criar um efeito de nevoeiro em que a densidade é variável na altura (ao longo do up da câmara). Este cenário é exequível utilizando um sistema de partículas para representar o nevoeiro em vez de recorrer a funções do OpenGL. 3. Na definição do processo de visualização de um programa em OpenGL, foram definidos os seguintes comandos: gluperspective(9.f, 1.33f, 25., 12.) para a definição da topologia do volume de visualização glulookat(2.,.,., 2.,., 1.,.77, -.77,.) para o posicionamento e orientação da Câmara Virtual Responda às seguintes questões: a) (1,5 valores) Calcule no referencial da Câmara Virtual, as coordenadas dos cantos da janela de visualização. Coordenadas dos 4 cantos são: (bottom,right,near); (bottom,left, near); (top,right,near); (top,left,near) gluperspective define um frustum simétrico, logo left=-right e bottom=-top O ângulo fornecido como primeiro argumento respeita a abertura vertical em graus. A relação existente entre a semi-altura e a distância à janela de visualização (definida pelo argumento near) é a tangente da semi-abertura vertical ou seja: top = tg (9/2) * 25 = 25 bottom= -top = -25; Dado que a relação de aspecto é 1,33 temos que right= 1,33*top = 33,25 e left = -right = -33,25 near = 25 b) (1 valor) No referencial do Mundo, calcule as coordenadas do canto superior esquerdo da janela de visualização Canto Superior Esquerdo (CSE) no referencial da câmara é: (-w/2, h/2, near) CSE no Mundo vale: VRP + near*n + (h/2)*v - (w/2)*u 2/6

Cálculo dos versores u, v e n no referencial do Mundo: VRP (1º argumento) é o (2 ) e o observador está olhar para (2 1) (2º argumento) logo VPN [ 1] => n [ 1] View-up [.77 -.77 ] (3º argumento) = v pois o vector já está normalizado referencial mão esquerda: u = n x v; então u=[.77.77 ] CSE = (2 ) + [ 1]*25 + [.77 -.77 ]*25 - [.77.77 ]*33,25 CSE = ( c) (1 valor) Indique matricialmente a transformação de translação realizada internamente pelo pipeline OpenGL de modo a posicionar os objectos da cena no referencial da câmara A matriz de translação é definida pelo vector de translacção [-VRPx VRPy VRPz]. Translacçã o 1 = 1 1 2 1 d) (1,5 valores) Calcule a matriz de rotação realizada internamente pelo pipeline OpenGL de modo a orientar os objectos da cena no referencial da câmara A matriz de rotação é dada em termos de linhas, respectivamente, pelas componentes dos versores u,v e -n. Logo:.77.77 Rotação =.77.77 1 1 4. (1,5 valores) Considere uma cena constituída por objectos tridimensionais opacos e transparentes, a qual será visualizada utilizando o mecanismo do Z-Buffer do OpenGL. Indique a ordem pela qual os objectos devem ser dados ao pipeline de visualização, quais os testes a serem aplicados sobre fragmentos, quais os buffers do OpenGL a serem utilizados bem como o seu modo de utilização. Justifique cuidadosamente a sua resposta. Dado existirem objectos não opacos, é necessário, a fim que o Z-buffer seja bem sucedido, que sejam desenhados em primeiro lugar os opacos e depois os translúcidos. Assim: Activa-se o teste da profundidade. Em seguida desenham-se os objectos opacos; para isso activa-se o teste alpha de modo a rejeitar os fragmentos com valor de alpha diferentes de 1. Depois desactiva-se a escrita no z-buffer (para evitar que em caso de um translúcido à frente de um objecto opaco altere o conteúdo do z-buffer removendo este último o que seria indesejável), activa-se o teste de blending (especificando a respectiva função de blending) e desenham-se os objectos transparentes (teste de alpha para rejeitar fragmentos com valores iguais a 1). Neste 3/6

desenho é fundamental que a ordem de rasterização se faça do objecto mais distante para o objecto mais próximo 5. (1 valor) Uma fonte de luz é posicionada na cena através do comando gllightfv(gl_light, light_position). Se alterar a posição do observador na cena através do comando glulookat(), qual a sequência de comandos na rotina de desenho de modo a que a fonte de luz acompanhe sempre esse movimento (efeito capacete do mineiro)? gllightfv(gl_light, light_position) glulookat(...); drawobjects(); Isto significa que a transformação de visualização afecta apenas a posição os objectos de desenho e não a fonte de luz. Assim, ao movimentar-se a câmara, a posição dos objectos é alterada mas a fonte de luz não: esta mantém sempre a mesma posição relativa à câmara. Assim observar-se-á, que à medida que a câmara se movimenta, a fonte de luz acompanha sempre do mesmo modo esse movimento 6. Considere a técnica de mapeamento de texturas conhecida como Bump Mapping a) (1 valor) Descreva essa técnica. Em modelos de iluminação local o sombreamento de uma quadrículo depende da normal à superfície nesse ponto. Se alterarmos essa normal obtemos sombreamento mais escuros ou mais claros que corresponderiam a termos uma superfície com relevos ou com concavidades. b) (,5 valor) O que acontece ao observar-se a superfície do objecto segundo um ângulo rasante? Uma vez que a geometria da superfície do objecto não é alterada mas tão só as normais a cada quadrícula os relevos e as concavidades deixam de ser visualizadas. Isto porque o ângulo formado entre a direcção de visualização e a normal à face é de 9º ou seja, o produto interno presente no cálculo do sombreamento é nulo. 7. (1,5 valores) Suponha que especificou uma técnica de filtragem que produza a melhor qualidade de visualização no código de mapeamento de uma textura do logo do IST, com uma resolução de 256x128, num rectângulo com uma dimensão de 32x4 quadrículas. Indique o nome dessa técnica, justifique-a e descreva-a detalhadamente no caso prático em questão. Em termos de mapeamento de texturas estamos perante um problema de minification. A técnica de melhor qualidade implica invocar o filtro de mipmampping. Este método caracteriza-se pela construção de níveis de mapas de textura cuja resolução é progressivamente ¼ (1/2 em cada direcção) da resolução anterior até se atingir a resolução 1x1. Neste caso ter-se-ia em termos de memória os seguintes mapas de textura: 256x128 (nível ), 128x64 (nível 1); 64x32 (nível 2); 32x16 (nível 3); 16x8 (nível 4); 8x4 (nível 5); 4x2 (nível 6), 2x1 (nível 7) e 1x1 (nível 8). O mecanismo do OpenGL que realiza o acesso ao mapa de textura correcto, baseia-se no cálculo do ρ que vale o máximo de (256/32; 128/4), ou seja 32. Significa deste modo que λ =log 2 ρ =4. Dado que se pretende a melhor visualização, usar-se-ia o GL_LINEAR_MIPMAP_LINEAR como opção de filtro o que implicava o acesso a dois mapas de memória (um deles seria o nível 4/6

5 calculado anteriormente); e o cálculo da cor final do texel implicaria uma interpolação linear dos valores de textura providenciados pelos mapas de textura mencionados 8. (1,5 valores) Considere uma curva B-Spline não-racional, cúbica e uniforme com sete pontos de controlo [p ;p 1 ;...;p 6 ]. Calcule o número de segmentos de curva que compõem o segmento, a dimensão do vector de nós de ligação bem como os valores extremos do parâmetro u entre os quais se encontra definida a referida curva. Represente a configuração do vector de nós. Justifique. K=4, 7 pts de controlo logo m=6. Assim: Numero de funções de base é 7 pois é igual ao número de pts de controlo; nº de segmentos de curva é m-k+2=4; K-1 u m+1, ou seja 3 u 7 vector com m+k+1=11 nós e configuração [ 1 2 3 4 5 6 7 8 9 1] visto ser uniforme 9. Considere ainda uma outra curva B-Spline não-racional, cúbica com sete pontos de controlo e cuja representação gráfica está ilustrada na figura abaixo. p 1 p 2 p 6 p 3 p p 4 p 5 a) (1,5 valores) Será esta uma curva uniforme? Justifique. Na sua justificação determine o vector de nós que caracteriza esta curva bem como o número de segmentos. Não. A curva é não-uniforme visto que a B-Spline interpola os pts de controlo extremos, P e P6, e interpola o ponto de controlo intermédio P3. Deste modo, a multiplicidade a ser aplicada aos nós é de 4 para os nós extremos e de 3 para o nó intermédio, resultando o seguinte vector de nós [ 1 1 1 2 2 2 2]. Como se pode constatar deste vector de nós só existem 2 segmentos, pois quando dois nós consecutivos são iguais, o segmento de curva definido por esses dois nós se anula. b) (1 valor) Esta curva B-Spline pode ser caracterizada como uma junção de duas curvas cúbicas de Bézier. Justifique esta afirmação. É verdadeira a afirmação. Cada curva de Bézier cúbica é definida por 4 pts de controlo e interpola os pts extremos, o que acontece neste caso. Cada uma das curvas evolui dentro do respectivo polígono de controlo, sendo a derivada em cada um dos pts extremos influenciada pelos pts de controlo intermédios Por outro lado, tem-se a junção de 2 curvas de Bézier, pois os pts de controlo P2, P3 e P4 são colineares. 5/6

1. (1,5 valores) Considere uma esfera que se encontra acima de um plano de chão espelhado em y=. Como implementaria a reflexão nesse plano? Não se esqueça de referir como evitar a visualização da geometria reflectida por detrás do espelho. Reflexão: escala [1-1 1] pois o chão está em y= Para impedir a visualização da geometria reflectida por detrás do espelho, ou seja na prática restringir o desenho da geometria reflectida à superficie do chão, era necessário usar o mecanismo de estêncil. Os alunos devem descrever com mais detalhe estes dois aspectos. ATENÇÃO: A resposta invocando um plano de recorte em y= está errada, pois isso significava que a geometria reflectida, que está para além do plano y=, nunca seria desenhada 6/6