Universidade do MinhoEscola de Engenharia Departamento de Inform´tica
  Equipa Ensino Pós-Graduações Projectos Publicações   pt | en
   Multimédia
 
  [Geral] [Programa] Avaliação [Material de Apoio]  
 
 
 

Ano: 2002/2003 - Semestre: 1

Cursos: LESI e LMCC

Método de Avaliação

Esta disciplina será avaliada por uma componente prática. Os alunos devem formar grupos de 2 ou 3 elementos e escolher um dos enunciados apresentados. Na apresentação do trabalho devem comparecer todos os elementos do grupo para discutir o trabalho oralmente. Deve ser entregue uma diskette/cd com o trabalho e um relatório escrito.

A avaliação terá em conta os seguintes critérios:

  • a. Qualidade do trabalho
  • b. Qualidade do relatório escrito
  • c. Empenho dos alunos na discussão oral
  • A ordem dos factores apresentados acima não implica uma relação de importância entre os mesmos. Os alunos de um mesmo grupo poderão ter notas diferenciadas consonante o seu desempenho na discussão oral do trabalho.

    Template para relatório do trabalho prático (zip)

    Trabalhos Práticos

    Todos os trabalhos deverão apresentar uma interface gráfica que permita configurar os parâmetros relevantes para a aplicação. Para alem da componente de implementação, a realização do trabalho implica a escrita de um relatório técnico.

    1. Optimização - Culling:

    A interacção em tempo real em ambientes virtuais complexos é um dos grandes desafios da computação gráfica. Uma das formas de aumentar do desempenho destes sistemas reside na determinação dos elementos gráficos visíveis para uma dada câmara. Desta forma épossível reduzir a carga de trabalho da placa gráfica só enviando a esta os elementos gráficos visíveis. A esta técnica chama-se view frustum culling. Para optimizar esta operação recorre-se habitualmente a estruturas de dados que permitam uma partição espacial do ambiente virtual, acelerando desta forma a determinação de elementos gráficos visíveis. Uma das estruturas mais utilizadas para este fim são as arvores octais, ou octrees.

    Pretende-se implementar uma aplicação que carregue para memória um conjunto de modelos em formato OBJ (há loaders disponíveis na Internet), realize a partição espacial do conjunto de modelos recorrendo a uma octree, e realize view frustum culling para uma dada câmara tirando partido da octree. O grupo deverá realizar uma comparação entre o número de frames por segundo obtido com e sem view frustum culling.

    Pretende-se ainda que a aplicação possa funcionar com uma câmara virtual, ou seja, o view frustum culling é realizado em relação aos parâmetros de uma câmara virtual, enquanto que a câmara real é colocada numa posição elevada que permita visualizar o processo em acção.

    2. Optimização - Impostores:

    Por vezes a redução de polígonos a enviar à placa gráfica não é suficiente para obter um desempenho satisfatório para um sistema interactivo em tempo real. O número de elementos gráficos visíveis em ambientes gráficos complexos é por vezes demasiado elevado para existir interacção. Uma outra forma de optimizar o desempenho consiste na substituição de um grupo de elementos gráficos contidos num volume por uma imagem respectiva do mesmo. Desta forma reduz-se de forma significativa o número de elementos gráficos a enviar à placa gráfica por frame (note-se que as imagens podem ser armazenadas na própria placa gráfica). Esta imagem, ou impostor, mantém a ilusão 3D desde que a câmara não saia de uma determinada área e o grupo de elementos gráficos que o impostor representa esteja a uma determinada distância da câmara. Caso a câmara mude significativamente de posição uma nova imagem deverá ser calculada.

    Pretende-se implementar uma aplicação que considerando um ambiente virtual complexo determine potenciais grupos de elementos gráficos que sejam passíveis de serem substituídos por impostores, gere e actualize os respectivos impostores conforme as necessidades.

    O ambiente virtual deverá ser construído a partir de modelos armazenados em formato OBJ.

    3. Optimização - Níveis de Detalhe

    Uma alternativa ao uso de impostores consiste na utilização de níveis de detalhe para os modelos mais complexos do ambiente virtual, ou seja várias representações de um mesmo modelo utilizando diferentes números de polígonos. Uma das alternativas para implementar esta estratégia consiste em gerar os níveis de detalhe discretos à priori, por exemplo representações do modelo com 50%, 25% e 10% dos polígonos do modelo original. Uma outra alternativa consiste em gerar uma estrutura que permita obter níveis de detalhe contínuos. Em qualquer dos casos a selecção do nível de detalhe será realizada em tempo real durante a interacção com o ambiente virtual tendo em conta a proximidade da câmara, e a carga actual do sistema.

    Pretende-se implementar uma aplicação que gere níveis de detalhe para um modelo aramzenado em formato OBJ e armazene o resultado em ficheiro num formato a definir pelo grupo (tendo em conta naturalmente a sua posterior utilização). Os níveis de detalhe podem ser discretos ou contínuos (esta última opção será potencialmente mais valorizada na avaliação).

    4. Sombras

    A Iluminação fornecida pelas placas gráficas é claramente insuficiente para obter resultados satisfatórios de um ponto de vista de percepção do ambiente virtual. Uma das insuficiências da Iluminação normal é a ausência de sombras num vértice provocadas por outros polígonos.

    Pretende-se portanto determinar se um determinado vértice está ou não em sombra, e modificar as suas propriedades de cor respectivamente. A aplicação deverá aplicar este processo a todos os vértices do ambiente virtual e permitir a visualização com e sem a utilização de sombras. Para optimizar o processo aconselha-se a utilização de uma octree.

    O ambiente virtual deverá ser construído a partir de modelos armazenados em formato OBJ.