Upload
nellis
View
29
Download
0
Embed Size (px)
DESCRIPTION
Equipe: Adones Cunha Adriano Damascena Almir Gomes Fábio Melo Gileno Alves Tiago Mendonça. Homenagens. - PowerPoint PPT Presentation
Citation preview
Equipe:Adones CunhaAdriano DamascenaAlmir GomesFbio MeloGileno AlvesTiago Mendona
Homenagens
"O Ogre um brilhante sinal do desenvolvimento em cdigo-aberto.Ostentando uma engine de renderizao rpida e verstil, uma API elegante e simples e uma comunidade encorajadora que no deixa questes sem resposta, Ogre oferece um produto que vai alm das engines de renderizao comerciais. Ogre provou por a si mesmo como um habilitador de rpido desenvolvimento de aplicativos em 3D." Time de Desenvolvimento da 3DNA
"Para o desenvolvedor temperado o OGRE parece diferente. como a faca de ao de carbono que meu amigo usa para cortar sushi no restaurante dele. Enganosamente simples, e ainda sim uma ferramenta muito potente na mo de um arteso. Uma nica lmina, um nico propsito. O Zen das engines em 3D. " Kai-Peter Backman ShortHike.com
ResponsveisSteve 'sinbad' Streeting
Brian 'praetor' Johnstone
Assaf Raman
O que OGRE?OGRE (Object-oriented Graphics Rendering Engine)
Engine Grfica 3D Open-Source orientada cena
No um Game Engine, mas sim um Rendering Engine
Verses teste em Python, Java e .NET
LicenaOGRE foi concebida sob uma licena open source
O OGRE tem como licena default a GNU Lesser Public License (LGPL)
Pode ser utilizado sob a OGRE Unrestricted License (OUL)
Caractersticas BsicasOrientada a objetosProv Ferramentas, Plug-ins e Add-ons compatvel com inmeras configuraes de Hardware 3DInterface de programao oferecida nativamente escrita em C++MultiplataformaEncapsula o uso de bibliotecas como OpenGL e Direct3DComunidade muito ativa
ProdutividadeInterface simples e fcil 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 verses), 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 declarao 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 flexveis so aceitos, separao dos conceitos de vertex buffers, index buffers, vertex declarations e buffer mappings. Malhas progressivas (LOD), geradas manualmente ou automaticamente. Biquadric Bezier patches para superfcies curvadas Agrupamento de Geometria Esttica
AnimaoSuporte sofisticado de animao por esqueletos. Suporte de animao de formas flexveis. Animao de SceneNodes para caminho de cmeras e tcnicas similares, usando interpolao de spline quando necessrio. Trilhas de animao genricas podem aceitar objetos plugveis
Caractersticas de CenaAdministrao flexvel de cenas Vrios plugins-exemplo (ex: BSP, Octree).Grfico de cena hierrquicoVrias tcnicas de renderizao de sombras
Efeitos EspeciaisSistema de CompositorSistema de Partculas, affectors e renderizadores Fcil suporte Skyboxes, Skyplanes e Skydomes Ribbon trails (rastro)
Outras CaractersticasArquitetura de plugins flexvel permite a engine ser estendida sem precisar recompilar ReferenceAppLayer prov um exemplo de como combinar o OGRE com outras libraries (ex: ODE, para colises)Infraestrutura comum de resources para administrao de memria e carregar de arquivos comprimidos
Exemplos de UsoAnkh Jogo de aventura no Egito1 produto comercial usando OGRE nov/2005
Exemplos de UsoFeatured Projects: http://www.ogre3d.org/index.php?set_albumName=album07&option=com_gallery&Itemid=55&include=view_album.php
Arquitetura
Objeto RenderSystemInteface entre a API grfica e o OGRE
Executa a renderizao Configura opes da API grfica
No deve ser acessada diretamente
Objeto Entity uma instncia de um objeto mvel
Possui um malha associada (mesh)
Para ser renderizada, associada um SceneNode
SceneManager::createEntity()
Objeto SceneNodeUtilizado para agrupar entidades, luzes, cmeras e objetos mveis
Armazena posio,escala e orientao
SceneManager::getRootSceneNode()
SceneNode::createChildSceneNode()
Objeto CmeraUm ponto de vista da cena, representado por um n de propriedades Frustum
Objeto CmeraCriada no SceneManagerCamera* camera = sceneMgr->createCamera("Camera");
Deve ser associada a um RenderTarget (que pode ser uma janela ou textura)
Normalmente,se associa uma cmera a um RenderWindow ao qual se associa um ViewPort
OverlaysEstruturas para renderizao de elementos na frente da cena
Pode ser criado atravs de um script ou do OverlayManager
OverlayManager::createOverlayElement()Overlay::show()
ViewportsO Viewports tem informaes de altura, largura,cor de fundo e posio do alvo
Recurso usado para obter visualizaes diferentes
Atravs de Cmeras e Viewports pode-se criar efeitos de reflexo no ambiente pelo RenderTexture
Facilidades do EngineDesenvolver aplicao mais agradvel ao usurioVisualRealismoInteraoGerao de SombrasMouse PickingRender-to-Texture
Gerao de SombrasRealismoDistnciasIluminaoFormas
Mais Realismo = Mais Custo
Gerao de SombrasA engine possui trs tipos de clculo de sombras:
Texture ModulativeStencil ModulativeStencil Additive
Gerao de SombrasTexture ModulativeMenos custosa das trsRender-to-Texture
Stencil AdditiveMais custosa
Stencil ModulativeMenos precisa que a anterior, porm mais rpida
Gerao de SombrasSceneManager::setShadowTechnique()Uma ou mais luzes devem ser criadasSem luz = Sem sombraDesabilita-se a projeo de sombra nos objetos que no devem projet-lasEntity::setCastShadows()Define-se quais objetos recebero sombra ou noMaterial Script ou Cdigo
Gerao de Sombras
Mouse PickingO que ?Aplicativos 3DSeleo de Objetos
Suportada nativamente pelo OGRE, de modo que aplicaes (principalmente editores 3D) que necessitem desse tipo de requisito possam ser desenvolvidas.
Mouse Picking realizado atravs do objeto raySceneQuery, criado pelo mtodo sceneManager->createRayQuery(), que recebe um raio como parmetro. Aps a definio do raio, o objeto ser executado.
Mouse PickingO picking padro do OGRE detecta objetos com base em seus AxisAlignedBoxResultados imprecisos e rpidosA implementao padro do Picking no OGRE, por ser mais rpida, 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 WikiCaractersticasUtilizaoAPIInstalao
FrumTestimoniaisIRC