Relatório do Trabalho Final INF01009 Computação Gráfica UFRGS. Ewerton Felipe Miglioranza

Documentos relacionados
Simulação de Dispositivos Dinamicos para Jogos

Tópicos Especiais em Engenharia de Software (Jogos II)

Minicurso: Android com Java - Jogos. Bem Vindos!

aula 21 Tecnicas de Iluminação Global IC/UFF 2017 Aura

Tecnologias de Jogos de Vídeo

Introdução Introdução

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

Professor: Laboratório de Programação com Games. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Apresentação da Disciplina

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

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza

Instituto Montessori - Ponte Nova

Objetivos. do Exame. Certified Expert Technical Artist: Shading & Effects. Especialista Certificado Unity Artista Técnico: Sombreamento & Efeitos

5 Realimentação do Ângulo de Yaw

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real

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

4 Sistema Computacional

O AUXÍLIO DE AMBIENTES VIRTUAIS INTERATIVOS PARA O ESTUDO ARQUITETÔNICO DO CENTRO UNIVERSITÁRIO ANTONIO EUFRÁSIO DE TOLEDO DE PRESIDENTE PRUDENTE

6 Arquitetura do Sistema

Survey de técnicas. detalhadas: Análise e Comparação

IMPLEMENTAÇÃO DE VISUALIZAÇÃO DE PERSONAGEM NÃO JOGADOR NA MOBILE 3D GAME ENGINE (M3GE)

Shading (sombreamento) & Smooth Shading

Figura 3.1 Diálogo principal do simulador 1D

Reconstrução e Síntese de Cenários Tridimensionais a partir de Imagens Estereoscópicas

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Imagem do Batman: Arkham Asylum capturada em uma GPU NVIDIA. Fornecida pela Eidos Interactive.

Lógica de Jogos. Conteúdo

Animação comportamental. Controlo de grupos de objectos. Sistemas de partículas Comportamento de grupos (Flocks, Herds, Schools) Agentes autónomos

Shading (sombreamento) & Smooth Shading

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

Experiência 5. Projeto e Simulação do Controle no Espaço de Estados de um Pêndulo Invertido sobre Carro

5. Técnicas de Iluminação

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Aula #1: Fundamentos, Origens e Objectivos da. Computação Gráfica.

SENSORIAMENTO REMOTO DOS OCEANOS

Iluminação e Sombreamento

CÁLCULO I. Lista Semanal 01 - Gabarito

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais

Programa. Tópicos Especiais I Jogos A game is a serie of interesting choices (Sid Meier) Tópicos que serão abordados Avaliação

Blender 3D jogos e animações interativas Allan Brito

4 Modelo Computacional

3 Sistema de Partículas na CPU

Cap. 7 - Momento Linear e Impulso

6 Resultados Análise de Desempenho

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais

Tópicos Especiais em Engenharia de Software (Jogos II)

6 Aplicações Detalhes da Implementação

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

Atividade Complementar para a DP de Física 1. Profs. Dulceval Andrade e Luiz Tomaz

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

Segunda Lista - Lei de Gauss

Iluminação e Sombreamento

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

Lista 3: Vetores e Sistemas de Coordenadas NOME:

Arquitetura de Jogos Gustavo Goedert. p

Vetores e Geometria Analítica

Teclado Virtual. MAC0420/MAC5744 Introdução Computação Gráfica. IME Instituto de Matemática e Estatística USP Universidade de São Paulo

4 Resultados. 4.1 Análise de desempenho


Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

4 Iluminação de dados sísmicos

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

Lista de Exercícios 1 Forças e Campos Elétricos

Where All Leaves Fall

Um Middleware de Inteligência Artificial para Jogos Digitais 105

UNITY 3D CONHECENDO, ADQUIRINDO, INSTALANDO E CONFIGURANDO

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

Iluminação e Sombreamento

Aula 3 TECNOLOGIA EM JOGOS DIGITAIS PROGRAMACAO E INTEGRACAO DE JOGOS I. Marcelo Henrique dos Santos

LISTA DE ATIVIDADES Semestre Letivo 2018/1

Disciplina: Computação Gráfica Prof. Dr. Paulo R. G. Luzzardi. Universidade Católica de Pelotas Centro Politécnico Ciência da Computação

Iluminação e Sombreamento

Visão Computacional e Aplicações

Física 1 - EMB5034. Prof. Diego Duarte Aplicações das Leis de Newton e tópicos especiais (lista 8) 13 de setembro de 2017

Competências / Habilidades Utilizar a Matemática na interpretação de fenômenos. Aplicar os conhecimentos matemáticos em situações reais.

Introdução ao Projeto de Aeronaves. Aula 19 Introdução ao estudo de Estabilidade Estática

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

Materiais e UVW Map Renderizar com Rhino parte #03

Trabalho n.º 1: FEUP Manic Miner - DJCO

Interatividade. Limitado Reativa Coativa. Alargado Coativa Proativa

Técnicas de Mapeamento

Parte 1 Cena Simples Interativa com Câmara Fixa

MATEMÁTICA. Geometria Plana. Relações Trigonométricas no Triângulo Retângulo, Leis dos Senos e Cossenos. Parte3. Prof.

Computação Gráfica II

Módulo. de captura, filtragem e redirecionamento de mensagens DirectX. Giovani Chaves Orientador: Mauro Marcelo Mattos

MOVIMENTO EM DUAS E TRÊS DIMENSÕES. O que um jogador de beisebol faz para saber onde deve estar para apanhar uma bola? CAPÍTULO 4

Computação e Imagens: PI, CG e Visualização. Computação Visual

Fundamentos Matemáticos de Computação Gráfica

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

POV-Ray. André Tavares da Silva.

Paradigma Simbólico. Sistemas de Informação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 2)

MODELAGEM E IMPLEMENTAÇÃO DE JOGOS APLICADOS A APRENDIZAGEM DE MÁQUINA 1

Introdução à Computação Gráfica

Acadêmico: Victor Arndt Mueller Orientador: Dalton Solano dos Reis

Microsoft Faculty Connection

IrrRPG Builder Uma Ferramenta Livre Para Desenvolvimento de Jogos Eletrônicos de RPG

Física II PROF. BENFICA

Bacharelado Engenharia Civil

Comparação entre as bibliotecas gráficas. OpenGL e Direct3D. Aluno:Alexandre Otto Strube Orientador: Paulo César Rodacki Gomes

Transcrição:

Relatório do Trabalho Final INF01009 Computação Gráfica UFRGS Ewerton Felipe Miglioranza 141969

INTRODUÇÃO Durante a realização da cadeira de computação gráfica, foi apresentado como projeto final um jogo chamado Lost Sea. Este jogo foi baseado no gênero de Sid Meier's Pirates, onde o jogador controla um navio pirata com o objetivo de afundar seus oponentes através de tiros de canhões. Imagem do jogo Sid Meier s Pirates 1 Embora Sid Meier s Pirates possua também uma história que se desenvolve ao longo do jogo, o Lost Sea foca apenas o combate marítimo. 1 Imagem retirada de www.gamespot.com.

FERRAMENTAS Para a produção do jogo, foram utilizadas as seguintes ferramentas: Ogre3D: A Ogre3D é uma engine gráfica de código aberto em C++. Ela oferece suporte ao rendering, tanto em OpenGL como em DirectX, bem como suporte a shaders e ao uso de modelos em forma de malha de triângulos (www.ogre3d.org). Visual Studio: O Visual Studio foi a IDE utilizada para programar o jogo em C++. Portanto, o jogo é voltado para a plataforma Windows. FMOD: A FMOD é uma biblioteca de som gratuita. Foi utilizada no jogo por oferecer suporte a sons 3D de uma maneira rápida e fácil de adaptar ao jogo (www.fmod.org). Blender: O Blender é uma ferramenta de modelagem 3D. Com ela foi possível, a partir de um modelo inicial retirado da internet, construir a malha dos barcos, bem como aplicar suas texturas e iluminação local (www.blender.org).

O JOGO O resultado final do jogo é apresentado nas próximas figuras. Detalhes sobre a implementação são descritas a seguir.

REALISMO Diversos detalhes foram implementados para aumentar o realismo do jogo. Sistemas de Partículas Os rastros dos navios foram implementados através de três sistemas de partículas, conforme mostrado nas figuras a seguir. Os rastros laterais são partículas pontuais, enquanto que o rastro principal é um billboard que está sempre apontando para cima. Com o tempo, o canal alpha das partículas diminui, tornando-as transparentes.

O rastro dos tiros de canhão e dos pedaços do navio que saltam quando ele é atingido foram feitos de forma semelhante.

Outro rastro implementado através de sistemas de partículas é o rastro do fogo, quando o navio está com menos de 30% de vida. Neste caso, um é aplicado um color fader em um billboard para que ele se torne escuro enquanto sobe, simulando o fogo e a fumaça. Por fim, há também o efeito de splash quando um tiro de canhão cai na água. Para esse efeito, é criado um billboard apontando para cima que aumenta de tamanho, simulando a expansão da água.

Física A física de Lost Sea foi toda implementada sem o auxílio de engines físicas. Como mencionado anteriormente, a Ogre3D é apenas uma engine gráfica, não oferecendo suporte para simulações físicas mais avançadas. Navegação A primeira parte implementada, foi a física da navegação dos navios. Curiosamente, um navio a vela pode navegar mais rápido que o próprio vento, ou seja, em determinados ângulos o navio pode andar mais rápido do que se estivesse totalmente a favor do vento. A figura a seguir ilustra as posições possíveis.

Na posição broad reach o navio está cerca de 45 o em relação à direção do vento. Isso faz com que a vela funcione como uma asa de avião, criando uma força de sustentação que ajuda a impulsionar o navio. Em Lost Sea porém, para fins de jogabilidade, a influência do vento não chega a parar o navio. Assim, há sempre uma velocidade constante que é adicionada à velocidade proporcionada pelo vento. Para calcular essa velocidade adicional, primeiro é calculado o ângulo entre o vetor de direção da frente do navio com o vetor de direção do vento através do dot product. V 1 V 2 = V 1 V 2 cos θ θ = cos -1 (V 1 V 2 / V 1 V 2 )

Em seguida, esse ângulo é utilizado para estimar uma porcentagem da velocidade do vento que auxilia na velocidade do navio de acordo com o seguinte esquema. Assim, para um ângulo de 180 (contra o vento), 0% da velocidade do vento influencia a velocidade constante do navio. Para um ângulo de 90, esse valor é de 35%. Para ângulos entre 180 e 90 a porcentagem é interpolada entre 0% e 35%. Esse esquema segue para os outros ângulos, com detalhe para o ângulo de 45, onde 100% da velocidade do vento é adicionada à velocidade do navio. Colisão As colisões em Lost Sea seguem um modelo simplificado, baseado em bounding boxes.

Essa abordagem é simples de implementar e menos custosa para um jogo em tempo real. Dado que não é necessário saber exatamente em que ponto ocorreu a colisão, este modelo é bastante satisfatório para o contexto do jogo. Para testar uma colisão entre um tiro de canhão e um navio, por exemplo, basta testar se a posição do tiro está dentro dos limites da bounding box do navio. Oceano O oceano em Lost Sea é divido em duas camadas. A primeira (superficial), é um plano semi-transparente que simula a água em si. Na segunda camada é aplicado um shader que utiliza bump mapping e geometric waves para simular as ondas e a variação da cor do oceano de acordo com o ângulo de visão. Na imagem a seguir é mostrado uma visão entre os dois planos.

Inteligência Artificial Outro requisito básico de um jogo é a implementação de uma inteligência artificial para interagir com o jogador. Em Lost Sea é aplicada uma inteligência artificial simples, porém funcional. A idéia básica consiste em procurar, a cada segundo, o oponente mais próximo. Para achá-lo, é utilizado a magnitude do vetor que liga um navio aos outros. Depois, é calculado o ângulo entre o navio e o seu alvo, assim é possível saber para qual lado o navio deve girar para encarar seu oponente. Outros Fatores Este relatório se restringiu em explicar as principais técnicas empregadas no jogo que mais se relacionam com a área de computação gráfica apresentadas no curso. Contudo, a título de conhecimento, em Lost Sea foram empregados alguns fatores como sons 3D, modelagens e texturas que contribuiram para o resultado final.

CONCLUSÕES A implementação desse jogo me fez perceber o quanto os conceitos de álgebra linear e computação gráfica são úteis para resolver problemas que em um primeiro momento podem parecer complicados. Fiquei satisfeito com o resultado obtido no jogo, pois consegui aplicar diversos conhecimentos adquiridos ao longo do semestre, bem como entender o porque eles funcionam. Também acabei descobrindo o quanto a computação gráfica pode ser motivante, principalmente quando os resultados começam a aparecer mais facilmente.