
Olá a todos! Ontem conheci um blogueiro, Max Teslenko, ele possui em seu blog, muitas dicas semelhantes às que eu gosto de publicar. Uma delas é esta que irei expor aqui.
Para os que usam Ogre3D e acham chato sempre ter que definir os parâmetros de projeto, ou mesmo para aqueles que não sabem como fazê-lo, aqui vai uma dica bem legal: Max Tyslenko fez um template bem simples para Ogre3D.
O arquivo pode ser baixado aqui: OgreTemplate.rar.
Para reduzir o tamanho do arquivo, os arquivos de mídia foram removidos do projeto, para tornar o projeto funcional, faz-se necessário copiar essa pasta do diretorio do Ogre para OgreTemplate/OgreTemplate.
Essa informação deve estar no site oficial, contudo não consegui encontrar versoes funcionais. Por isso estou a escrever esse artigo e divulgar esse arquivo.
Para que esta solução funcione, a variabel de ambiende “OGRE_HOME” tem de estar corretamente configurada, caso tenha alguma dúvida sobre este assunto, tente aqui: http://tinyurl.com/ylxcfzz
Vou expilcar o processo utilizado para gerar o template acima:
Para começar, crie um novo projeto, clicamos no Solution Explorer, botão direito do mouse e escolha Propriedades:
Na imagem que aparecer:
Na aba à esquerda, clique em Linker/Input e coloque campo Additional Dependencies OgreMain_d.lib OIS_d.lib assim como o mostrado na figura abaixo.
Na aba à esquerda, clique em Linker, e no campo Additional Library Directories, escreva $(OGRE_HOME)\lib , o mesmo que o que a imagem abaixo mostra.
Na aba à esquerda, clique em C/C++ e no campo Additional Include Directories, digite “$(OGRE_HOME)\include”;..\include;”$(OGRE_HOME)\samples\include” , o mesmo conteudo mostrado na imagem abaixo:

O código de exemplo que posso dar é o abaixo, pode colocá-lo como o main.cpp do seu projeto.
#include "ExampleApplication.h"
// Declare a subclass of the ExampleFrameListener class
class MyListener : public ExampleFrameListener
{
public:
MyListener(RenderWindow* win, Camera* cam) : ExampleFrameListener(win, cam)
{
}
bool frameStarted(const FrameEvent& evt)
{
return ExampleFrameListener::frameStarted(evt);
}
bool frameEnded(const FrameEvent& evt)
{
return ExampleFrameListener::frameEnded(evt);
}
};
// Declare a subclass of the ExampleApplication class
class SampleApp : public ExampleApplication
{
public:
SampleApp()
{
}
protected:
// Define what is in the scene
void createScene(void)
{
// put your scene creation in here
}
// Create new frame listener
void createFrameListener(void)
{
mFrameListener = new MyListener(mWindow, mCamera);
mRoot->addFrameListener(mFrameListener);
}
};
#ifdef __cplusplus
extern "C" {
#endif
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include "windows.h"
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif
{
// Instantiate our subclass
SampleApp myApp;
try {
// ExampleApplication provides a go method, which starts the rendering.
myApp.go();
}
catch (Ogre::Exception& e) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBoxA(NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "Exception:\n";
std::cerr << e.getFullDescription().c_str() << "\n";
#endif
return 1;
}
return 0;
}
#ifdef __cplusplus
}
#endif
O último passo é copiar as bibliotecas necessárias e os arquivos de mídia na pasta do projeto. No nosso caso, tudo isso deve ser copiado para uma subpasta do projeto com o mesmo nome.
Qualquér dúvida, basta perguntar aqui, que terei prazer em responder.
Для начала, создаем новый проект, в Solution Explorer кликаем правой кнопкой и выбираем пункт Properties : Para começar, crie um novo projeto, clicamos no Solution Explorer, botão direito do mouse e escolha Propriedades:





