Arthur Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

Preview:

DESCRIPTION

Arthur Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo Pedro Vaz Yane Wanderley. Agenda. O que é OGRE? Aplicação Arquitetura Instruções de instalação Exercícios. O que é Ogre?. - PowerPoint PPT Presentation

Citation preview

Arthur ElihimasBruno MoratoEverson VeríssimoFelype SantiagoLeonardo AndréMarcos CameloPedro VazYane Wanderley

O que é OGRE?AplicaçãoArquitetura Instruções de instalaçãoExercícios

O Object-Oriented Graphics Rendering Engine (OGRE) é uma engine escrita em C++ para facilitar o desenvolvimento de aplicações gráficas em 3D.

A engine não é somente para o desenvolvimento de jogos, mas sim para todo o tipo de desenvolvimento que utilize gráficos 3D

Scythe Physics Editor Software para abstração de tratamento

de física, criado especialmente para designers

link

Pacific Storm Simulador de vôo comercial lançado pela

Buka Entertainment, chegou a ser lançado no Brasil

link

Billiards Complete Jogo de bilhar, feito independentemente

pela Focus Games, procurando distribuidor

link

Baseada em árvore

Classes principais para a contrução de aplicações OGRE: Root SceneManager SceneNode Entity

Ponto de entrada do sistema OGRE;

Através dele pode-se configurar e acessar todo o sistema;

Controla tudo o que aparece na tela;

Mantém o controle sobre as localizações dos objetos;

Mantém controle sob a câmera, planes, lights...

É referenciado no Root.

Agrupa objetos e armazena informações relativas a posição, orientação e escala destes dentro da cena;

Todo objeto deve estar associado a um SceneNode para se tornar visível;

Um SceneNode pode conter outros SceneNodes Posição dos “filhos” será relativa à do “pai”

Qualquer coisa que possa ser representada por um mesh 3D (malha geométrica);

Pode ser renderizada em uma cena;

Devem ser uma entidade: Um robô, um peixe ou o terreno em que os personagens

andam;

Não devem ser entidades: Luzes, Partículas, Câmeras, entre outros;

Uma Entidade não pode ser colocada em uma Cena diretamente. Ela deve ser anexada (attach) para um objeto SceneNode;

Pode-se aplicar transformações espaciais às entidades associadas a cada SceneNode e seus filhos.

RootRoot

SceneManager

SceneManager

SceneManager

SceneManager

EntityEntity

SceneNode

SceneNode

SceneNode

SceneNode

SceneNode

SceneNode

EntityEntity EntityEntityEntityEntity

Baixe o OGRE 1.4.8 SDK em http://www.ogre3d.org/index.php?

option=com_content&task=view&id=411&Itemid=131

Descompactar preferencialmente no Temp (ou no pendrive). O caminho para identificar o SDK não pode conter

espaços, exemplo: C:\Temp\OgreSDK

Mapeie a conta \\ipojuca\bmcr\public_html\ogre\, copie as dll’s que estão nessa pasta (d3dx9_33.dll e d3dx9_35.dll) e cole em C:\Temp\OgreSDK\bin\debug

Criar um novo projeto

Criar um novo projeto (2)

Criar um novo projeto (3)

Criar um novo projeto (4)

Criar um novo projeto (5)

Criar um novo projeto (6)

Criar um novo projeto (7)

Criar um novo projeto (8)

Criar um novo projeto (9)

Criar um novo projeto (10)

Criar um novo projeto (11) Testando sua configuração do OGRE

compilando um exemplo trivial▪ http://www.cin.ufpe.br/~ywsr/Arquivos/AulaOGRE/

exemplo.txt▪ Não rode ainda!! Apenas compile.▪ Dando tudo certo na compilação, pegue o executável

na pasta do projeto em debug (\ProjetoOGRE\debug) e copie para a pasta do debug, dentro de bin, que está dentro de OgreSDK (OgreSDK\bin\debug) pego no início do tutorial de instalação.

▪ Agora é só clicar duas vezes no executável copiado =)

Criar um novo projeto (12)

Criar uma cena simples utilizando a arquitetura apresentada.

void createScene(void){mSceneMgr-

>setAmbientLight( ColourValue( 0, 0, 0 ) );}

Entity *ent = mSceneMgr->createEntity("Dragon", "dragon.mesh" );

SceneNode *node = mSceneMgr->getRootSceneNode()->

createChildSceneNode( " Dragon Node", Vector3( 100, 150, -200 ) );

node->attachObject( ent );node->yaw( Degree( -180 ) );

athene.mesh WoodPallet.mesh ogrehead.mesh razor.mesh robot.mesh RZR-002.mesh sphere.mesh tudorhouse.mes

h ninja.mesh

column.meshcube.mesh facial.meshfish.meshgeosphere4500.

meshgeosphere8000.

mesh jaiqua.meshknot.meshBarrel.mesh

ent = mSceneMgr->createEntity( “Ninja", "ninja.mesh" );

node = mSceneMgr->getRootSceneNode()-> createChildSceneNode( " NinjaNode", Vector3( 0, 0, 200 ) );

node->attachObject( ent );

Plane plane(Vector3::UNIT_Y, 0);MeshManager::getSingleton().createPlane("ground",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_N

AME, plane,3000, 3000, 20 ,20, true, 1, 5, 5, Vector3::UNIT_Z);Entity *chao = mSceneMgr-

>createEntity("GroundEntity", "ground");mSceneMgr->getRootSceneNode()-

>createChildSceneNode()->attachObject(chao);chao->setMaterialName("Examples/Rockwall");

plane.d = 1000;plane.normal = Vector3::NEGATIVE_UNIT_Y;mSceneMgr->setSkyPlane(true, plane,

"Examples/CloudySky", 1500, 40, true, 1.5f, 150, 150);

//Com uma fonte de luzLight *light;light = mSceneMgr->createLight("Light1");light->setType(Light::LT_POINT);light->setPosition(Vector3(50, 250, -100));light->setDiffuseColour(0.5, 0.5, 0.5);light->setSpecularColour(0.5, 0.5, 0.5);//Ponha a luz ambiente como (0,0,0)

Adicione mais fontes de luz e obtenha resultados tais como:

ColourValue fadeColour(0.9, 0.9, 0.9);mSceneMgr->setFog(FOG_LINEAR, fadeColour, 0.0,

100, 5000);

mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE);

Artur Elihimas Bruno Morato Everson

Veríssimo Felype Santiago Leonardo André Marcos Camelo Pedro Vaz Yane Wanderley

http://www.cubagames.com.br/quer-fazer-o-seu-proprio-jogo-parte-6/

http://www.mundodosdragoes.com/wiki/index.php?title=OGRE:Tutoriais

http://www.deitel.com/Books/C/CHowtoProgram6e/OGREInstallationInstructions/tabid/3152/Default.aspx

Recommended