Upload
jerry-medeiros
View
1.018
Download
0
Embed Size (px)
DESCRIPTION
Aula introdutória da disciplina Engines nos Jogos e na Computação Gráfica I, do curso de Tenologia em Jogos Digitais da Universidade FUMEC
Citation preview
Engines I
Graduação Tecnológica em Jogos DigitaisUniversidade FUMEC
Jerry Medeiros
• Conjunto de ferramentas que dão suporte à criação de jogos.
• É um software com diversos módulos que permitem o desenvolvimento de jogos de diversos gêneros e para muitas plataformas.
O que é?
• Renderização 2D e 3D;• Detecção de Colisões ;• Scripts ;• Audio e Video;• Animação; • Shaders e Iluminação; • Redes; • Física ;• Inteligência Artificial;• Edição de Nível.
Funções Principais das Games Engines
Define dentro da engine de renderização onde serão posicionados os objetos tanto fisicamente quanto logicamente.
Árvore: Hierárquico Grafo: Não Hierárquico
Grafo de Cena :
• Raiz; • Nós; • Relação de parentesco.
Organização de Um Grafo de cena:
• Três tipos básicos de nós :• Forma • Propriedade • Grupo
• Todos possuem atributos; • Alguns controlam outros nós.
Organização de Um Grafo de Cena:
Define uma entidade geométrica 3D :• Ponto • Vetor • Polígono • Primitiva • Esfera • Cone • Cilindro • Caixa • Curvas e superfícies (NURBS)
Grafo de Cena : Forma/Geometria
• Cor (material e fonte de luz); • Material (componentes de reflexão); • Brilho ;• Transparência; • Texturas; • Transformações; • Escala; • Rotação; • Translação.
Grafo de Cena : Propriedades
O pipeline gráfico é um conjunto de etapas realizadas pelo hardware para renderizar uma imagem, a partir dos parâmetros do grafo da cena.
Pipeline Gráfico
Malha de Polígonos
Transformação dos Dados
Eliminação dos objetos fora do
volume de visão
Rasterização Imagem Renderizada
Culling é o processo de eliminação de dados que não contribuem para a imagem final.
Culling
• No nível do polígono;• Implementado no hardware;• Diminui a complexidade do grafo pela
metade.
Backface Culling
• Elimina objetos inteiros; • Comparação entre dimensões do objeto e do
frustrum.
Frustrum Culling
• Objetos totalmente incluídos no frustrum entram no pipeline gráfico;
• Objetos parcialmente incluídos no frustrum podem sair do pipeline, entrar completamente ou entrar parcialmente;
• Objetos totalmente exluídos do frustrum são eliminados do pipeline.
Frustrum Culling
Objetos encobertos por outros são eliminados do pipeline.
Occlusion Culling
A técnica de LOD é utilizada como uma otimização para a renderização. Em projeções em perspectiva, quanto maior é a distância de um objeto em relação ao observador, menor é o seu Tamanho.
LOD - Level Of Detail
Cada filho do nó representa o mesmo objeto em resoluções diferentes.
LOD – Level Of Detail
Engine de Renderização:
A engine de renderização geralmente é construída sobre openGL ou DirectX e gera imagens em tempo real a partir dos assets controladas pelo grafo da cena, interagindo diretamente com a GPU.
Componentes
Colisões
• A Detecção de colisões é geralmente calculada com base na interseção de dois sólidos;
• Planos; • Esferas; • Tubos ;• Poligonos;
• São gerados eventos em resposta às colisões.
Componentes
Scripts
• As Engines de script geralmente usam linguagens interpretadas (Python, Javascript...);
• As linguagens interpretadas permitem que o código escrito pelo desenvolvedor do jogo não dependa do código fonte da engine.
Componentes
Animações
• Engines de Animação gerenciam as animações dos objetos no grafo da cena.
• Podem ser variações de rotação, posição e escala ou animações mais complexas tais quais as que utilizam esqueletos.
Componentes
Shading
•A Engine de Sombreamento e Iluminação calcula as sombras e os shaders, que são aplicados pela engine de renderização nos objetos do grafo da cena.
Componentes
Rede
• A Engine de Redes gerencia a comunicação entre computadores, seja ela Peer to Peer, Cliente-Servidor ou Distribuída.
Componentes
Física
• A Engine de física é responsável por tratar o comportamento de objetos com base em colisões.
• Simula e prever a dinâmica de modelos físicos, corpos rígidos, flexíves e flúidos.
Componentes
Os níveis de uma game engine influenciam diretamente no custo:
• Engines de MMO;• Engines Top de Linha;• Engines "Na média”;• Engines Casuais;• Engines OpenSource.
Como escolher uma engine
•Crie o Game Design Document;•Esboçe um Documento Técnico;•Crie o Projeto de Desenvolvimento do Jogo;
Aí sim, escolha a engine!!!!
Como escolher uma engine
• Custo ;• Relevância para a plataforma, gênero,
design;• Suporte ;• Funcionalidades;• Ferramentas;• Flexibilidade.
Questões a se considerar
• Plataformas - MMO, PC standalone, console, dispositivos
móveis, web
• Gênero- Procure por jogos similares e pesquise em
qual engines foram desenvolvidos
• Design- O que é mais importante? Gráficos,
interações, física ?
Como escolher uma engine
Suporte
• Documentação; • Suporte ao trabalho em equipe;• Exemplos e tutoriais.
Como escolher uma engine
Funcionalidades
• Systema Multithread;• Pipeline de renderização;• Sistema de Animação;• Detecção de Colisões;• Sistema de Streaming de áudio e vídeo;• Suporte a Rede.
Como escolher uma engine
• BigWorld Technology Suite;• Simutronics' HeroEngine;• Sun's Project Darkstar.
Engines MMO
• Epic's Unreal Engine 3;• Crytek's CryEngine 3;• Digital Extremes' Evolution Engine;• id's idTech 4/5/6;• Valve's Source.
Engines Top de Linha
• Unity Technologies Unity;• Garage Games's Torque;• PushButton Engine (Para Flash);• jMonkey Engine (Java).
Engines Casuais e Web
• Emergent's GameBryo• Terminal Reality's Infernal Engine• Blitz Games' BlitzTech• Trinigy's Vision Engine• Vicious Cycle's Vicious Engine
Engines “Na média”
• Irrlicht;• Ogre3D;• Panda3D.
Engines OpenSource
• Existem MUITAS engines
• Planeje o que fazer antes de decidir em que engine fazer
• Cada engine tem características únicas:• Analise o jogo;• fale com outros usuários;• baixe exemplos.
Como escolher uma engine
As engines são um meio, e não o fim.