Tecnologias de Jogos de Vídeo

Documentos relacionados
Tecnologias de Jogos de Vídeo

Tecnologias de Jogos de Vídeo

Tecnologias de Jogos de Vídeo

Tecnologias de Jogos de Vídeo

Tecnologias de Jogos de Vídeo

Abel J. P. Gomes. Março, 2012

Projeto de Programação Entrega Intermédia

LÓGICA DE PROGRAMAÇÃO (JAVA) CLASSES E OBJETOS. Professor Carlos Muniz

Acessibilidade visual em Windows Versão Windows XP V.1

Modulo 2 Gestão de Base

Aula 08 Relacionamento entre Objetos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Computação II Orientação a Objetos

MJ3I- PA - AMBIENTE VIRTUAL 3D PARA VISUALIZAÇÃO DE BRAÇOS ARTICULADOS NO IOS

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

1 - Ambiente de desenvolvimento

Elementos de Programação Projecto de Biocomputação

Sistema de Gestão de Videoteca

Pasta de Dados, Companhias e Trabalhos

UNIVERSIDADE DA BEIRA INTERIOR

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Fazer explodir a espaçonave inimiga quando um tiro acertá-la.

CONTRUCT 2. Tainá Medeiros

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

DCC / ICEx / UFMG. O Jogo SimulES. Eduardo Figueiredo.

Tecnologias de Jogos de Vídeo

SCC0504 Programação Orientada a Objetos Projeto

Agenda. Requisitos para desenvolvimento do sistema de informação DW-e IS. Comparação de plataformas de integração. Requisitos de sistema

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

Parte 1 Cena Simples Interativa com Câmara Fixa

Computação II Orientação a Objetos

SIOE V6.80 SR3 ADMINISTRAÇÃO PÚBLICA (LEI Nº 57/2011) Versão 1.0

Simulação do controle de tráfego de automóveis em uma malha rodoviária urbana: Versão 3.0

Daniel Wildt

Programação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Instituto Superior Técnico

Manual de Formação. Elaborado por: Carina Castro

Ferramentas Web, Web 2.0 e Software Livre em EVT

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

Fundamentos da Programação. Ano lectivo , 2 o Semestre Projecto Primeira Parte 1. Nim

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

Protótipo tipo de um ambiente virtual distribuído

Relatório da Análise de Riscos

Gere Com Saber. Universidade do Minho Licenciatura em Engenharia Informa tica

Plano Anual Curricular TIC - Pré-Escolar -

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

Programação. Folha Prática 6. Lab. 6. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Biblioteca Escolar António Bento Franco MANUAL DE UTILIZADOR WINDOWS LIVE MOVIE MAKER

INF Fundamentos de Computação Gráfica /1

Conceitos avançados de programação. Módulo 8 Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos

Unidade de Processamento Baseado em Pilha Fundamentos de sistemas digitais

Oriente Parque das Nações

PRODUÇÃO DE UMA INTERFACE GRÁFICA (SOFTWARE ACADÊMICO) PARA SIMULAÇÃO DE UMA COLUNA DE DESTILAÇÃO

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

Case Study. José de Mello Saúde Humanizar e personalizar o contacto com os clientes

Orientação a Objetos AULA 09

TimeNET. REPORTU Digital-Time. Manual de Utilizador do Software. Gestão de Assiduidade e Controlo de Acessos Página 1 de 35

Diferenciação Funcional Taxonomias PRIMAVERA ERP 9.15

earte Portal de Arte e Cultura

Conheça o Drive. Encontre arquivos facilmente com o Drive e mantenha todos os seus documentos protegidos.

Departamento de Ciência de Computadores Estruturas de Dados (CC114)

Slides de apoio à aula prá/ca 6. Integrar Jogo do Galo na framework de interação com o u/lizador (po- uilib)

Programação Orientada pelos Objectos. Code Invaders

Ferramentas Web, Web 2.0 e Software Livre em EVT

SISTEMAS DIGITAIS 4º Trabalho de Laboratório Contadores e Registos

Dados dinâmicos em um relatório de Tabela Dinâmica ou de Gráfico

MyMLE MOODLE Ferramenta para desenvolvimento de Objetos de Aprendizagem para Celulares

3- Visualização de Informação em Formato de Imagem (Mapas de Distribuição de Espécies)

Sistemas de Partículas. Soraia Raupp Musse

Lab - Utilitário de Linha de Comando no Windows XP

Associações de Ficheiros. Mike McBride Tradução: José Pires

PLANIFICAÇÃO ANUAL DE CONTEÚDOS (12º Ano)

Trabalho B Campo Minado

Filas de Prioridade. Uma fila de prioridade pode ser vista como uma generalização das filas com as seguintes duas operações:

Professora Diana Silva

Lab - Utilitário de Linha de Comando no Windows Vista

Controlador de Motor de Passo baseado num 8051

Projeto de Introdução à Arquitetura de Computadores. Corridas de Bicicleta 2013 / 2014 LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES

Problema do Caminho Hamiltoniano

Abstract Factory. Edeyson Andrade Gomes

Módulo 5: Trabalho de Aplicação Pedagógica (TAP) Guia de Exploração Pedagógica do Módulo - Formando

Linguagem de Programação I. Aula 10 Funções

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO SISTEMAS DE GESTÃO DE BASE DE DADOS FORMULÁRIOS

Projecto de Programação e Computação para Arquitectura. António Menezes Leitão

20 Escola Digital Manual do Utilizador Aluno

Um sistema de difusão de informação a nível da aplicação

CRIAÇÃO DE ANIMAÇÕES. 5.1 Tipos de animação. Frame-by-frame

ANÁLISE E PROJETO DE SISTEMAS

Guia do Professor. Módulo: Origem dos Movimentos: Conservação Atividade: Conservação da Quantidade de Movimento I

XNA. Introdução ao XNA

Projecto de Programação e Computação para Arquitectura Adega Ysios. António Menezes Leitão

Palavras chave: Tecnologia de Informação; computador; simuladores.

OPENCoastS Serviço de Previsão em Tempo Real a Pedido para a Costa Portuguesa

Guião de Preenchimento do Módulo Reporte de Execução Física Versão 1.0

O aprendiz de investigador

4 Resultados. 4.1 Análise de desempenho

Metodologia de Planeamento de Projectos por Objectivos. Manual do Curso

Ferramentas Web, Web 2.0 e Software Livre em EVT

Transcrição:

Tecnologias de Jogos de Vídeo Abel J. P. Gomes & Gonçalo Amador LAB. 9 Departamento de Informática Universidade da Beira Interior Portugal 2012 Copyright 2009-2012 All rights reserved.

1. Objectivos 2. Conceitos 3. Exercícios de programação LAB. 9 SISTEMAS DE PARTÍCULAS

Lab. 9 SISTEMAS DE PARTÍCULAS Nesta lição prático-laboratorial aprender-se-á como funciona um motor simples de partículas. Irão também ser abordados alguns dos casos em que os motores de partículas são empregues, para simular determinado efeito. 1. Objectivos específicos de aprendizagem Terminada esta ficha de trabalho, o aluno deve saber e ser capaz de: 1. Saber implementar um motor de partículas simples. 2. Identificar quais os possíveis casos de uso e limitações de um sistema de partículas. 3. Identificar de que forma o motor de partículas a implementar poderá ser adicionado ao módulo da física do motor de jogos GameProject, e para que possíveis usos. 2. Sistemas de Partículas Os sistemas de partículas foram primeiramente concebidos para serem usados em filmes e só mais tarde foram também utilizados em jogos, a título de exemplo o jogo Quake II, como ilustrado na Fig. 1. O conceito inerente por detrás de um motor de partículas é que toda a matéria é constituída por milhões de átomos. No entanto, devido há quantidade enorme de átomos necessários, o que implicaria uma enorme capacidade de processamento, para simular algo complexo como um água dentro de um copo, utiliza-se número muito menores de elementos (i.e., partículas), na casa das dezenas até aos milhares. Uma vez que podem existir múltiplos sistemas de partículas em simultâneo, o número de partículas varia dependendo da quantidade de sistemas a simular e do número de partículas em cada sistema. Existem dois tipos de sistemas de partículas: os simples e os complexos. O que os distingue é que nos sistemas simples as partículas podem ou não mover-se e é incomum existirem testes de colisões entre estas. Nos sistemas complexos as partículas obedecem a regras físicas, que como é o caso das simulações

realistas de líquidos, como ilustrado na Fig. 2. As partículas podem ainda conter informação sobre a geometria da partícula em função da sua proximidade com partículas vizinhas. Figure 1: Efeito de squish de sangue no jogo Quake II suportado por um sistema de partículas simples. Os sistemas de partículas servem em particular para simular fenómenos naturais, e.g., nuvens, bolhas de ar dentro de água, cascatas, explosões, etc. Em jogos utilizam-se motores de partículas simples ou com números reduzidos de partículas de forma a assegurar o desempenho em tempo real dos jogos. No entanto em industrias como a de filmes de animação por computador sistemas de partículas de elevada complexidade com números de partículas, na casa das dezenas de milhar, são empregues. Um sistema de partículas possui por norma duas entidades distintas: partícula, e um gestor de partículas. A partícula tem como propriedades mínimas a sua posição, e tempo de vida. Uma partícula pode durar para sempre mas

dependendo do uso pretendido morre ao fim de algum tempo. Um efeito de partículas acaba quando todas as partículas morrem. O gestor de partículas cria e atualiza cada uma das partículas a seu cargo ao longo do tempo. É comum um gestor ter implementados diferentes efeitos de partículas. Figure 2: Simulação de líquidos recorrendo a um sistema de partículas complexo.

Para esta ficha é disponibilizado um projecto de apoio em JOGL que depois de concluído será um sistema de partículas simples. O projecto referido tem 4 classes, das quais apenas nos interessam as classes: Particle.java, ParticleSystem.java e Main.java. A classe Particle.java implementa uma partícula simples. A classe ParticleSystem.java implementa o gestor de partículas. A classe Main.java, é a classe principal onde é configurada uma aplicação gráfica em JOGL, e quando uma tecla do rato é premida um efeito de partículas é gerado (após a realização dos exercícios que se seguem. 3. Exercícios de programação Exercício 1: Após fazer o download do projecto de apoio em JOGL, vamos primeiramente acabar de implementar a classe Particle.java. Uma partícula tem uma posição, uma velocidade, uma aceleração, um tamanho, uma cor, uma idade, e um tempo máximo de vida. Nesta classe falta implementar dois métodos: 1. public void update(); 2. public boolean isdead(); O método update() consiste em atualizar para uma determinada partícula a sua a posição, velocidade, aceleração, tamanho, cor, e idade. O método isdead() serve apenas para verificar para uma determinada partícula se esta atingiu o seu tempo de vida máximo permitido. Cada partícula é desenhada como um ponto colorido numa determinada na posição espacial que esta ocupa. Dica: Em todas as classes a completar existem instruções em forma de comentário nos métodos a completar. Após concluída a implementação da classe Particle.java. É necessário concluir a implementação da classe ParticleSystem.java. Nesta classe apenas é necessário completar o método: 3. public void update(); Este método consiste em atualizar as partículas existentes no sistema de partículas, e remover todas as partículas que tenham falecido. Se feito corretamente neste momento ao correr a aplicação terão a cada clique de rato um sistema de partículas criado no centro da janela da aplicação, que simula um efeito que aparenta ser uma explosão. De notar que se forem feitos cliques de rato repetidos com alguma rapidez, vão ser criádos vários sistemas de partículas e não apenas um.

Exercício 2. O exercício 2 consiste em alterar os parâmetros passados ao construtor na criação de um novo sistema de partículas na classe Main.java no método: 4. @Override 5. public void mouseclicked(mouseevent e) { 6. particlesystems.add(new ParticleSystem(100, new Point3f(), 4, 100)); 7. } Exercício 3. Altere o construtor da classe Particle.java, e se necessário na mesma classe altere também o método: 8. public void update(); De forma a que o seja feito um efeito que não o de uma explosão, e.g., cascata tornado, etc. Idealmente seria preferível que houvessem dois construtores uma para cada efeito, i.e., explosão e outro(s). Exercício 4. O sistema de partículas implementado poderia ser melhorado em diversos aspectos: Associar cada partícula a um texel de uma textura. Estender para um sistema complexo, exemplo um simulador de líquidos que recorra a Smoothed Particle hydrodynamics (SPH). Implementar colisões inter-particulas. Permitir dentro do mesmo sistema tipos distintos (em alguma propriedade adicional) de partículas. As partículas podiam ter uma idade fixa, o sistema corresponder a um objecto na cena, e.g., uma parede de tijolos, e o sistema permitira um objecto fragmentável. Etc. Após integrar o sistema de partículas no módulo da física do motor de jogos GameProject (suponha que o fez) algumas questões a ponderar se levantam: Que efeitos de partículas poderia adicionar ao motor de jogos GameProject? Existiriam efeitos distintos dependendo do tipo de jogo, e.g., jogo de naves ou aviões, FPS, jogo de carros, etc? Justifique. Suponha que o sistema de partículas representava uma parede, e cada partícula, um tijolo ou porção da parede. Porque razão em alguns jogos o sistema é removido após a destruição da parede?