Arthur Elihimas
Bruno Morato
Everson Veríssimo
Felype Santiago
Leonardo André
Marcos Camelo
Pedro Vaz
Yane Wanderley





O que é OGRE?
Aplicação
Arquitetura
Instruções de instalação
Exercí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.
Root
SceneManager
SceneNode
Entity
SceneNode
Entity
SceneManager
SceneNode
Entity
Entity

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.mesh
ninja.mesh









column.mesh
cube.mesh
facial.mesh
fish.mesh
geosphere4500.mesh
geosphere8000.mesh
jaiqua.mesh
knot.mesh
Barrel.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_NAME,
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 luz
Light *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-oseu-proprio-jogo-parte-6/

http://www.mundodosdragoes.com/wiki/inde
x.php?title=OGRE:Tutoriais

http://www.deitel.com/Books/C/CHowtoProg
ram6e/OGREInstallationInstructions/tabid/31
52/Default.aspx