48
Arthur Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo Pedro Vaz Yane Wanderley

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

  • Upload
    carrie

  • View
    38

  • Download
    0

Embed Size (px)

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

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

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

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

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

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

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

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

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

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

Scythe Physics Editor Software para abstração de tratamento

de física, criado especialmente para designers

link

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

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

Buka Entertainment, chegou a ser lançado no Brasil

link

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

Billiards Complete Jogo de bilhar, feito independentemente

pela Focus Games, procurando distribuidor

link

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

Baseada em árvore

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

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

Ponto de entrada do sistema OGRE;

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

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

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.

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

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”

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

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;

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

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.

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

RootRoot

SceneManager

SceneManager

SceneManager

SceneManager

EntityEntity

SceneNode

SceneNode

SceneNode

SceneNode

SceneNode

SceneNode

EntityEntity EntityEntityEntityEntity

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

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

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

Criar um novo projeto

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

Criar um novo projeto (2)

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

Criar um novo projeto (3)

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

Criar um novo projeto (4)

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

Criar um novo projeto (5)

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

Criar um novo projeto (6)

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

Criar um novo projeto (7)

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

Criar um novo projeto (8)

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

Criar um novo projeto (9)

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

Criar um novo projeto (10)

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

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 =)

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

Criar um novo projeto (12)

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

Criar uma cena simples utilizando a arquitetura apresentada.

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

void createScene(void){mSceneMgr-

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

Page 30: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 31: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

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 ) );

Page 32: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 33: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

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

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

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

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

node->attachObject( ent );

Page 35: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 36: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

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");

Page 37: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 38: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

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

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

Page 39: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 40: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

//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)

Page 41: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 42: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

Adicione mais fontes de luz e obtenha resultados tais como:

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

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

100, 5000);

Page 44: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 45: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE);

Page 46: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo
Page 47: Arthur   Elihimas Bruno Morato Everson Veríssimo Felype Santiago Leonardo André Marcos Camelo

Artur Elihimas Bruno Morato Everson

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

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

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