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

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

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

1º Exame. Computação Gráfica

2º Exame. Computação Gráfica

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

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

Câmara Virtual Simples

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

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

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

Shading (sombreamento) & Smooth Shading

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

1º Teste Computação Gráfica

Shading (sombreamento) & Smooth Shading

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

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

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

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

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

1º Teste de Computação Gráfica

Pipeline de Visualização Câmara Virtual

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

Visualização por Computador: Teoria, Prática e Aplicações

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

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

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

Computação Gráfica - 13

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

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

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

Modelos Geométricos Transformações

António Costa. Paulo Roma Cavalcanti

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

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

Computação Gráfica - OpenGl 02

Pipeline de Visualização 3D

Transformações 3D. Soraia Raupp Musse

COMPUTAÇÃO GRÁFICA E INTERFACES

Pipeline de Visualização Câmara Virtual

Mapeamento de Texturas

Transformações 3D. Soraia Raupp Musse

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

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

Estudando para a P2-2018

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

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

Iluminação e Sombreamento

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

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

Computação Gráfica - 09

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

2º Exame Computação Gráfica

1º Exame Computação Gráfica

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

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

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

Modelo gráfico do VTK: fundamentos e aplicações

Operações sobre Fragmentos

Pipeline de Visualização Câmara Virtual

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

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

1º Exame/2º Teste Computação Gráfica

Sistemas Gráficos e Modelos Cap 1

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

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

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark

FCTUNIVERSIDADE NOVA DE LISBOA!

Introdução ao Processamento e Síntese de imagens Rendering 2016

A terceira dimensão. Modelagem tridimensional Elaboração tridimensional Realidade virtual

Modelo gráfico do VTK: fundamentos e aplicações

Sist. Coordenadas Câmera (SCC)

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

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

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

Computação Gráfica - 09

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

Iluminação e Sombreamento

Visualização. - Aula 4 -

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

1º Teste Computação Gráfica

Mapeamento de Texturas

Exame Tipo 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

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

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

2º Exame de Computação Gráfica

Motivação. Iluminação. Modelo de Iluminação = aproximação da iluminação do mundo real. Sensação da 3-dimensionalidade, percepção da profundidade

CÁLCULOS DE ILUMINAÇÃO E SOMBREAMENTO

3º Trabalho de Laboratório Óptica geométrica

Matriz de transformação

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

Introdução. 1 Introdução

Aula Prática Laboratorial n.º 8, nº 9 e nº 10

Texturas. André Tavares da Silva. Baseado no material de Claudio Esperança e Paulo Roma Cavalcanti

A terceira dimensão. A terceira dimensão. Modelagem tridimensional. A terceira dimensão Wilson de Pádua Paula Filho

MODELO DIGITAL DE TERRENO II

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

Transcrição:

º Exame de Animação e Visualização Tridimensional Mestrado de Bolonha em Eng. Informática e de Computadores pólo Alameda Prof. responsável João Madeiras Pereira 3 de Janeiro de 8 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 h3m com tolerância máxima de 3m. ( valor) No OpenGL descreva o que se entende pelo conceito de avaliador. Dê um exemplo em que a sua utilização seja adequada. É um andar do pipeline OpenGL que com base em informação geométrica de alto nível de objectos da cena calcula a representação de baixo nível desses mesmos objectos (vértices de polígonos). Exemplo de utilização: desenho de curvas a partir de descrição paramétrica (pts de controlo, etc.). (valor) Explique o conceito de fragmento. Os fragmentos representam o resultado do andar de rasterização do OpenGl. Cada fragmento contém a informação espacial, cromática, textura, etc., e define um potencial pixel. Só após o fragmento ter sido submetido com sucesso a um conjunto de testes (dithering, profundidade, stencil, nevoeiro) é que ao ser armazenado no framebuffer passa `a categoria de pixel. 3. ( valor) Explique como utilizaria a função de blending do OpenGL (glblendfun()) para implementar o efeito de transparência/opacidade. Os alunos tinham de referir os argumentos GL_SRC_ALPHA e GL_ONE_MINUS_SRC_ALPHA para a realização da mistura de cores do fragmento com o correspondente pixel do color-buffer 4. Na definição do processo de visualização de um programa em OpenGL, foram definidos os seguintes comandos: gluperspective(6.f,.f, 5.,.) para a definição da topologia do volume de visualização glulookat(.,.,.,.,.,.,.,.,.) para o posicionamento e orientação da Câmara Virtual Responda às seguintes questões: /7

a) ( valor) 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 (6/) * 5 e como bottom= -top = -5*tg(3); near = 5 Dado que a relação de aspecto é. temos que right= top e left = -right= - 5*tg(3); b) ( valores) Assuma que a matriz MODELVIEW foi inicializada com a matriz identidade. Calcule qual será a posição de um objecto, representado pelo seu centro geométrico (3, -3, ), após a execução do comando glulookat() explicitado acima. A resposta a esta questão passa por calcular a MODELVIEW que será aplicada ao objecto. O conteúdo da matriz MODELVIEW será o resultado da multiplicação de rotação pela translação. VRP ( ) logo realiza-se uma translação de um vector de deslocamento de [-VRPx VRPy VRPz] Translação= Para a rotação basta por isso calcular os versores u, v e n. Look-at está em ( ) logo VPN vale [ ] => n [/sqrt() /sqrt() ] View-up [ ] => v [ ] e portanto u = [/sqrt() -/sqrt() ] pois referencial mão esquerda: u = n x v. A matriz de rotação é dada em termos de linhas, respectivamente, pelas componentes dos versores u,v e -n. / Rotação = / / / /7

MODELVIEW = RotaçãoxTranslação / / / / / P' = MODELVIEW multiplicap = / / / 3 3 = 3 5. (,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. 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 ). Neste desenho é fundamental que a ordem de rasterização se faça do objecto mais distante para o objecto mais próximo 6. (,5 valores) Em termos de reflexão, nomeie e descreva as características, em OpenGL, dos materiais a serem usados na modelação dos objectos. Descrever pormenorizadamente as componentes de reflexão difusa, especular e ambiente do modelo de reflexão de Phong utilizado pela API. A componente especular modela a reflexão da energia luminosa numa única direcção (ângulo de reflexão igual ao ângulo de incidência) e é responsável pelo brilho. A área da zona de brilho é propocional ao produto (R prod int V) exp n. n é o grau de brilho. A componente difusa modela reflexão da energia luminosa em todas as direcções e é responsável pela cor do objecto (parte da luz incidente é selectivamente absorvida pelo próprio objecto). O seu valor é descrito pela Lei de Lambert, (L prod interno N). Componente ambiente simula as reflexões provenientes de outros objectos e das paredes da cena e é um valor constante. 7. ( 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 3/7

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 8. (,5 valores) Uma das questões que se coloca na aplicação das texturas relaciona-se com o tipo de atributos dos objectos a serem modelados. Apresente os três tipos de atributos referidos nas aulas teóricas e descreva as correspondentes técnicas de texturização. Cor da superfície do objecto (coeficientes da reflexão difusa) caso mais comum. Neste caso, apenas a componente difusa do objecto vai ser modelada (substituída, multiplicada, etc) pelo mapa de textura. Reflexão difusa e especular global: mapeamento de ambiente ou environmental mapping. Mapeamento do ambiente é uma técnica que simula os resultados do ray-tracing. Usa-se para reflexões em superfícies curvas. Depende do ponto de vista do observador. Consiste em arranjar uma textura contendo toda a cena visível por determinado objecto. A textura a ser aplicada é indexada pelo vector de reflexão Geometria: bump mapping. Esta técnica consiste na aplicação de uma função que pertube as normais do objecto de modo a gerar o efeito de rugosidade. Note-se que com esta técnica, ao invés de se utilizar objectos com um elevado número de polígonos, os objectos a serem alvo de bump-mapping são de baixa resolução e produzem resultados muito bons e de um modo muito mais rápido. 9. ( valor) A função gltexenv permite especificar o modo como as texturas irão ser utilizadas para sombrear os objectos. Neste contexto, descreva a utilização dos parâmetros GL_REPLACE, GL_MODULATE e GL_BLEND As operações de textura são efectuadas após o sombreamento (ao nível do fragmento). A cor final do fragmento pode ser definida dos seguintes modos: GL_REPLACE: a cor do fragmento (obtida pela operação de sombreamneto) é substituída pelo cor da textura GL_MODULATE: A textura é utilizada para modular, ou escalar, a cor do fragmento GL_BLEND: uma cor constante pode ser misturada (blended) com a cor do fragmento com base no valor da textura.. ( valor) Considere uma cena com fontes de luz. No processo de mapeamento de texturas, pretende-se visualizar os objectos texturados com reflexos especulares. Utilizando a invocação do comando OpenGL de parametrização do modelo de iluminação, indicado abaixo, explique como implementaria esse efeito de iluminação de texturas gllightmodeli( GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR) 4/7

Com este comando a cor calculada para cada vértice, pelo modelo de reflexão do OpenGL, é separada em campos: um que guarda a componente ambiente mais a componente difusa; e um outro que armazena a componente especular. Ao utilizar-se a textura com a indicação de GL_REPLACE no comando gltexenv(), a API substitui o campo que contém a soma das componentes ambiente e difusa pelo valor da textura ao qual soma de seguida o valor do campo que contém a componente especular.. (,5 valores) Explique detalhadamente como se poderia implementar, recorrendo ao acumulador do OpenGL, o efeito de profundidade de campo. Refira-se, ainda, à possibilidade de utilização dos dois tipos Matriz de Projecção em OpenGL. Limpa-se o acumulador e activa-se um buffer de cor para leitura e escrita. O efeito de profundidade de campo pode-se obter transladando, em x e em y, a posição da câmara e fazer com que o volume perspectivo contenha sempre o mesmo plano focal. Cada uma dessas translacções é armazenada como uma imagem de peso /N no acumuladorglaccum(gl_accum, /n). No final das N translacções faz-se o desenho através da passagem do conteúdo do acumulador para o color-buffer -glaccum(gl_return, ). Naturalmente apenas a matriz de projecção perspectiva pode ser utilizada. A Matriz de Projecção ortográfica não pode ser utilizada devido à impossibilidade manter o mesmo plano focal após os sucessivos jitterings do observador.. ( valor) Demonstre que a formulação matricial da curva de Bézier: é equivalente a Basta fazer a multiplicação das matrizes 3. Considere curva B-Spline não-racional, cúbica com sete pontos de controlo e cuja representação gráfica está ilustrada na figura abaixo. 5/7

p p p 6 p 3 p p 4 p 5 a. (,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 [ ]. Como se pode constatar deste vector de nós só existem segmentos, pois quando dois nós consecutivos são iguais, o segmento de curva definido por esses dois nós se anula. b. ( 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 curvas de Bézier, pois os pts de controlo P, P3 e P4 são colineares. 4. (,5 valores) Considere uma cena apenas com um objecto. Inicialmente esse objecto encontra-se virado para a Câmara. Posteriormente, aplica-se a esta última, uma translação e uma rotação fazendo com que a matriz ModelView do objecto, passe a ter o seguinte conteúdo:.77.77.77.77.44.44 Sem efectuar operações de rotação, explique como procederia de modo a que o referido objecto tivesse um comportamento de billboard esférico, em que o alinhamento é feito com o plano de visualização? Neste tipo de alinhamento é preciso garantir que face à movimentação da câmara, as rotações provocadas por esta no billboard sejam anuladas. Assim é necessário que após obter a matriz ModelView (comando getfloatv()) cujo conteúdo está acima indicado: )Carregar a submatrix 3x3 da ModelView com a matriz identidade )Calcular a posição do billboard no sistema de coordenadas de câmara que significa manter os três primeiros elementos da última coluna da ModelView Aplica-se esta nova matriz ModelView, utilizando push, ao objecto billboard, e depois faz-se o pop 6/7

7/7