equipe: ◦ adones cunha ◦ adriano damascena ◦ almir gomes ◦ fábio melo ◦ gileno alves ◦...

Post on 07-Apr-2016

214 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Equipe:◦Adones Cunha◦Adriano Damascena◦Almir Gomes◦Fábio Melo◦Gileno Alves◦Tiago Mendonça

HomenagensHomenagens "O Ogre é um brilhante sinal do desenvolvimento em código-

aberto.Ostentando uma engine de renderização rápida e versátil, uma API elegante e simples e uma comunidade encorajadora que não deixa questões sem resposta, Ogre oferece um produto que vai além das engines de renderização comerciais. Ogre provou por a si mesmo como um habilitador de rápido desenvolvimento de aplicativos em 3D."Time de Desenvolvimento da 3DNA

"Para o desenvolvedor temperado o OGRE parece diferente. É como a faca de aço de carbono que meu amigo usa para cortar sushi no restaurante dele. Enganosamente simples, e ainda sim uma ferramenta muito potente na mão de um artesão. Uma única lâmina, um único propósito. O Zen das engines em 3D. "Kai-Peter BackmanShortHike.com

ResponsáveisSteve 'sinbad' Streeting

Brian 'praetor' Johnstone

Assaf Raman

O que é OGRE?O que é OGRE?•OGRE (Object-oriented Graphics Rendering Engine)

•Engine Gráfica 3D Open-Source orientada à cena

•Não é um Game Engine, mas sim um Rendering Engine

•Versões teste em Python, Java e .NET

LicençaLicençaOGRE foi concebida sob uma

licença open source

O OGRE tem como licença default a GNU Lesser Public License (LGPL)

Pode ser utilizado sob a OGRE Unrestricted License (OUL)

Características BásicasCaracterísticas Básicas• Orientada a objetos• Provê Ferramentas, Plug-ins e Add-ons• É compatível com inúmeras

configurações de Hardware 3D• Interface de programação oferecida

nativamente é escrita em C++• Multiplataforma• Encapsula o uso de bibliotecas como

OpenGL e Direct3D• Comunidade muito ativa

ProdutividadeInterface simples e fácil de usar

Framework de exemplo extensiva

Requisitos comuns

Design limpo e organizado

Suporte a plataformas e APIs 3DSuporte a Direct3D e OpenGL.

Suporte a Windows (todas as principais versões), Linux e Mac OSX.

Compila no Visual C++ e Code::Blocks no Windows.

Compila no GCC 3+ no Linux / Mac OSX (usando XCode).

Suporte a Material / Shader Poderosa linguagem de declaração

de materiais Suporta Vertex e Fragment programs

(shaders), suporta tanto assembler quanto Cg, DirectX9 HLSL, ou GLSL

Suporte a Material LOD Carregar texturas de arquivos PNG,

JPEG, TGA, BMP ou DDS Texturas podem ser providas em

tempo real por plugins

Meshes (Malhas)Formatos de malhas flexíveis são

aceitos, separação dos conceitos de vertex buffers, index buffers, vertex declarations e buffer mappings.

Malhas progressivas (LOD), geradas manualmente ou automaticamente.

Biquadric Bezier patches para superfícies curvadas

Agrupamento de Geometria Estática

AnimaçãoSuporte sofisticado de animação por

esqueletos. Suporte de animação de formas

flexíveis. Animação de SceneNodes para

caminho de câmeras e técnicas similares, usando interpolação de spline quando necessário.

Trilhas de animação genéricas podem aceitar objetos plugáveis

Características de CenaAdministração flexível de cenas Vários plugins-exemplo (ex: BSP,

Octree).Gráfico de cena hierárquicoVárias técnicas de renderização

de sombras

Efeitos EspeciaisSistema de “Compositor”Sistema de Partículas, affectors e

renderizadores Fácil suporte á Skyboxes,

Skyplanes e Skydomes Ribbon trails (rastro)

Outras CaracterísticasArquitetura de plugins flexível

permite a engine ser estendida sem precisar recompilar

ReferenceAppLayer provê um exemplo de como combinar o OGRE com outras libraries (ex: ODE, para colisões)

Infraestrutura comum de resources para administração de memória e carregar de arquivos comprimidos

Exemplos de UsoAnkh – Jogo de aventura no Egito

◦1° produto comercial usando OGRE – nov/2005

RootRenderSyste

mSceneManager Enumerator

Material Entity SceneNode Camera

TexturaLayer Mesh

Arquitetura

Objeto RenderSystemObjeto RenderSystemInteface entre a API gráfica e o

OGRE

Executa a renderização Configura opções da API gráfica

Não deve ser acessada diretamente

Objeto EntityObjeto EntityÉ uma instância de um objeto móvel

Possui um malha associada (mesh)

Para ser renderizada, é associada um SceneNode

SceneManager::createEntity()

Objeto SceneNodeObjeto SceneNodeUtilizado para agrupar entidades,

luzes, câmeras e objetos móveis

Armazena posição,escala e orientação

SceneManager::getRootSceneNode()

SceneNode::createChildSceneNode()

Objeto CâmeraObjeto CâmeraUm ponto de vista da cena,

representado por um nó de propriedades Frustum

Objeto CâmeraObjeto CâmeraCriada no SceneManager

Camera* camera = sceneMgr->createCamera("Camera");

Deve ser associada a um RenderTarget (que pode ser uma janela ou textura)

Normalmente,se associa uma câmera a um RenderWindow ao qual se associa um ViewPort

OverlaysOverlaysEstruturas para renderização de

elementos na frente da cena

Pode ser criado através de um script ou do OverlayManager

OverlayManager::createOverlayElement()

Overlay::show()

ViewportsViewportsO Viewports tem informações de

altura, largura,cor de fundo e posição do alvo

Recurso usado para obter visualizações diferentes

Através de Câmeras e Viewports pode-se criar efeitos de reflexão no ambiente pelo RenderTexture

Facilidades do EngineFacilidades do EngineDesenvolver aplicação mais

agradável ao usuário◦Visual◦Realismo◦Interação

Geração de SombrasMouse PickingRender-to-Texture

Geração de SombrasRealismo

◦Distâncias◦Iluminação◦Formas

Mais Realismo = Mais Custo

Geração de SombrasA engine possui três tipos de

cálculo de sombras:

◦Texture Modulative◦Stencil Modulative◦Stencil Additive

Geração de SombrasTexture Modulative

◦Menos custosa das três◦Render-to-Texture

Stencil Additive◦Mais custosa

Stencil Modulative◦Menos precisa que a anterior, porém

mais rápida

Geração de Sombras1. SceneManager::setShadowTechnique(

)2. Uma ou mais luzes devem ser criadas

Sem luz = Sem sombra3. Desabilita-se a projeção de sombra

nos objetos que não devem projetá-las Entity::setCastShadows()

4. Define-se quais objetos receberão sombra ou não Material Script ou Código

Geração de Sombras

Mouse PickingO que é?

◦Aplicativos 3D◦Seleção de Objetos

Suportada nativamente pelo OGRE, de modo que aplicações (principalmente editores 3D) que necessitem desse tipo de requisito possam ser desenvolvidas.

Mouse PickingÉ realizado através do objeto raySceneQuery, criado

pelo método sceneManager->createRayQuery(), que recebe um raio como parâmetro. Após a definição do raio, o objeto será executado.

Mouse PickingO picking padrão do OGRE detecta

objetos com base em seus AxisAlignedBox◦Resultados imprecisos e rápidos

A implementação padrão do Picking no OGRE, por ser mais rápida, pode ser utilizada como um filtro inicial!

AxisAlignedBox é um tipo de BoundingBox que está sempre alinhado com o eixo de coordenadas do mundo

Mouse Picking

ComunidadeOGRE Wiki

◦Características◦Utilização◦API◦Instalação

FórumTestimoniaisIRC

top related