Jogos e Simulação

Objetivos

Saber

  • Modelação Básica 3D e constituição de um “pipeline de visualização 3D”
  • Técnicas e modelos de iluminação, locais e globais
  • Arquitetura hardware dos GPUs modernos e modelo de programação recorrendo a shaders.
  • Exploração da arquitetura dos GPUs para a produção de efeitos especiais avançados em tempo real
  • Técnicas específicas para o desenvolvimento de jogos e simulação.
  • Técnicas de animação por computador.
  • Arquitetura de motores de jogos e sua programação.
  • Produção e reprodução de áudio 3D

Fazer

  • Programar grande parte das diversas técnicas lecionadas.
  • Construir aplicações gráficas 3D interativas.
  • Programar e utilizar componentes de software no domínio (game engines)
  • Escolher e aplicar a técnica mais adequada à resolução de um problema.

Soft-Skills

  • Capacidade de analisar hardware gráfico e  sistemas gráficos atuais
  • Capacidade de analisar e programar motores de jogos
  • Melhor compreensão de áreas relacionadas, como a fotografia, o cinema e a física.

Caracterização geral

Código

11557

Créditos

6.0

Professor responsável

Fernando Pedro Reino da Silva Birra, Nuno Manuel Robalo Correia

Horas

Semanais - 4

Totais - 56

Idioma de ensino

Inglês

Pré-requisitos

- Conhecimentos prévios de programação (C, C++ ou Java)

- Conhecimentos básicos de Algebra Linear (vetores e matrizes)

- Noções básicas de geometria

- Curso Introdutório de Computação Gráfica

Bibliografia

  • Jason Gregory, “Game Engine Arquitecture”, 2nd edition, A K Peters/CRC Press, 2014, ISBN-13: 978-1466560017
  • David H. Eberly, “3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics”, 2nd edition, CRC Press, 2006, ISBN-13: 978-0122290633
  • J.F. Hughes, A. van Dam, M. McGuire, D. Sklar, J.D. Foley, S.K. Feiner, K. Akeley, "Computer Graphics: Principles and Practice", 3rd Edition, Addison-Wesley Professional (2013), ISBN-13: 978-0321399526
  • T. Akenine-Moller, E. Haines, N. Hoffman, "Real-Time Rendering", Third Edition, AK Peters (2008), ISBN-13: 978-1568814247
  • R.J. Rost, B.M. Licea-Kane, D. Ginsburg, J. Kessenich, B. Lichtenbelt, H. Malan, M. Weiblen, "OpenGL Shading Language", 3rd Edition, Addison-Wesley Professional (2009), ISBN-13: 978-0321637635

Additional readings will be provided during classes and through the course website.

Método de ensino

Nas aulas teóricas, as matérias são, sempre que aplicável, apresentadas dum ponto de vista mais formal e com grande ênfase na motivação para o seu estudo, sendo a exposição acompanhada de demonstrações práticas com recurso a imagens, demos ou aplicações. Os tópicos abordados serão, na sua maior parte, objeto de aplicação prática materializada no desenvolvimento incremental dum jogo 3D, a desenvolver no decorrer do semestre, usando um motor de jogos que implementa as técnicas estudadas. Este trabalho encontra-se faseado em duas entregas ao longo do semestre. Os alunos terão ainda que implementar um conjunto de técnicas para iluminação global partindo dum esqueleto dum ray-tracer.

Método de avaliação

A cada aluno será atribuída uma nota individual resultante da avaliação dos projetos de programação e de 2 testes intermédios, sendo nestes últimos necessária a obtenção de nota mínima. O exame final, para efeitos de aprovação ou melhoria, substituirá a média dos 2 testes.

Conteúdo

  1. Hardware gráfico 3D e o pipeline gráfico 3D.
  2. Modelação 3D e representações de geometria.
  3. Interação da luz com os objetos, Modelos de iluminação e técnicas de sombreamento.
  4. Tópicos avançados de síntese de imagem: aplicações do uso de texturas e geração de sombras.
  5. Grafos de cena, gestão dos dados e otimizações para tempo real.
  6. Arquitetura de motores de jogos.
  7. Técnicas de animação: interpolação de quadros, morphing e modelos articulados.
  8. Deteção e resposta a colisões.
  9. Princípios físicos dos jogos 3D e métodos numéricos.
  10. Física da propagação do som, localização do som e síntese de som 3D.
  11. Programação com um motor de jogos e desenvolvimento de jogos.

Cursos

Cursos onde a unidade curricular é leccionada: