Enunciado

O projeto não têm uma especificação fixa e rígida à partida. Antes pelo contrário, cada grupo de alunos terá de propor uma especificação própria para o seu projeto. Esta especificação deverá ser entregue após a primeira fase das aulas de laboratório, numa altura em que os alunos já têm uma ideia clara da complexidade inerente à especificação com a qual se estão a comprometer, assim como uma noção mais clara do tempo que leverão a executá-la. Assim, e apesar de não existir avaliação em todos os laboratórios, é muito importante a frequência dos mesmos para ter o mais aprofundado conhecimento possível da tecnologia que irá suportar o projecto. 

Avaliação

Um projeto com todos estes elementos corretamente (em termos de arquitetura) e adequadamente (em termos dos resultados obtidos face à especificação proposta) implementados, e que defenda corretamente as opções tomadas na discussão terá a cotação máxima. É importante salientar que a cotação de um objetivo não se refere apenas à sua presença na aplicação final, mas à sua correta execução e articulação em termos de Engenharia. Assim não basta carregar uma textura num polígono num canto da cena, colocando o código hard-coded para o efeito num local inadequado da arquitetura, para ter a cotação respectiva a este item. Antes pelo contrário, a criação de um módulo da arquitetura que facilite adequadamente a criação de texturas e a sua integração com o modelo de iluminação será valorizado.

Conclusão: não se proponham nem se empenhem demasiado em termos de quantidade de elementos no projeto. Definam um conjunto mínimo de elementos que faça sentido como um todo e, o pouco que façam, façam-no bem. Não esqueçam que são os aspectos da Engenharia do processo que irão valorizar o projeto, mais do que o aspecto final da aplicação.

O uso de elementos adicionais como música ambiente ou samples para determinados efeitos especiais só será valorizado se o trabalho cumprir os objetivos enunciados acima e os elementos adicionais estiverem corretamente integrados na arquitectura. Assim sendo, estes elementos adicionais poderão compensar uma ou outra falha nas componentes obrigatórias mas o seu impacto será sempre limitado, quando comparado com o impacto das componentes essenciais descritas.

Especificação das Caraterísticas Obrigatórias

Apesar da especificação proposta por cada grupo de alunos ser flexível, existe um conjunto de critérios que deverão ser obrigatoriamente cumpridos por todas as aplicações, de forma a permitir uma uniformização da avaliação no contexto da matéria de Animação e Visualização 3D.

Assim, todos os projetos deverão: 

  1. Tratar eventos de entrada do rato e/ou teclas para controlar o comportamento de um ou mais elementos da cena.
  2. Permitir a visualização alternada entre primeira pessoa (livre) e terceira pessoa associada a um elemento móvel da cena.
  3. Conter elementos geométricos otimizados, compostos com animação hierárquica, com material e texturas adequadamente aplicados, e devidamente iluminados.
  4. Conter um cenário configurado por um superfície paramétrica ou grelha de alturas representando o condicionamento do movimento de alguns elementos da cena. O cenário deverá ser devidamente iluminado, possuir materiais e texturas devidamente aplicados, e recorrer a efeitos adicionais (e.g.  fog) de forma a transmitir um determinado ambiente "atmosférico" (e.g. noite, madrugada de novoeiro).
  5. Conter elementos geométricos com movimento próprio definido por scripts e/ou curvas paramétricas.
  6. Permitir visualizar informação relevante para o utilizador (e.g. head-up display) usando um "layer" com fontes e bitmaps.
  7. Utilizar detecção de colisões entre objectos usando volumes envolventes para restringir movimento de alguns elementos móveis da cena e registar o progresso na tarefa que o utilizador deverá realizar controlando um (ou mais) elementos da cena.
  8. Possuir um modo debug que permita claramente perceber o que está a acontecer e verificar que, de facto, tudo está a funcionar corretamente, de uma forma visual.
  9. Utilizar um conjunto de menus para controlo e configuração da aplicação.