Merci pour cette réponse, je n’ai pas de projet particulier pour l’instant, je souhaite juste commencer à coder en 3d. J’ai fait quelque petit jeu en 2d avec la sfml et j’aimerais passer à la 3d par conséquent. Si vous avez d’autre moteur 3d graphique à me proposer je suis preneur mais d’après ce que j’ai lu ce serait le meilleur pour le c++. Si j’ai bien compris je dois avoir en permanence tous ces composants, c-a-d que je doit à chaque fois générer ma solution OGRE.sln(mais ça veux dire qu’il faut que je copie à chaque fois tout mon dossier build ou juste le sdk ?). Parce que je n’avais pas compris ça. Quand au erreur c’est parce que j’ai créé un projet vide en mettant le code du tuto pour savoir si ça marchait : + en entête les 2 lignes fournies dans le tuto.
find_package(OGRE 1.11 REQUIRED COMPONENTS Bites RTShaderSystem)
file(COPY ${ OGRE_CONFIG_DIR } / resources.cfg DESTINATION ${ CMAKE_BINARY_DIR })
#include "Ogre.h"
#include "OgreApplicationContext.h"
#include "OgreInput.h"
#include "OgreRTShaderSystem.h"
#include "OgreApplicationContext.h"
#include <iostream>
using namespace Ogre;
using namespace OgreBites;
class BasicTutorial1
: public ApplicationContext
, public InputListener
{
public:
BasicTutorial1();
virtual ~BasicTutorial1() {}
void setup();
bool keyPressed(const KeyboardEvent& evt);
};
BasicTutorial1::BasicTutorial1()
: ApplicationContext("OgreTutorialApp")
{
}
void BasicTutorial1::setup()
{
ApplicationContext::setup();
addInputListener(this);
Root* root = getRoot();
SceneManager* scnMgr = root->createSceneManager();
RTShader::ShaderGenerator* shadergen = RTShader::ShaderGenerator::getSingletonPtr();
shadergen->addSceneManager(scnMgr);
scnMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5));
Light* light = scnMgr->createLight("MainLight");
SceneNode* lightNode = scnMgr->getRootSceneNode()->createChildSceneNode();
lightNode->attachObject(light);
lightNode->setPosition(20, 80, 50);
SceneNode* camNode = scnMgr->getRootSceneNode()->createChildSceneNode();
Camera* cam = scnMgr->createCamera("myCam");
cam->setNearClipDistance(5);
cam->setAutoAspectRatio(true);
camNode->attachObject(cam);
camNode->setPosition(0, 0, 140);
getRenderWindow()->addViewport(cam);
Entity* ogreEntity = scnMgr->createEntity("ogrehead.mesh");
SceneNode* ogreNode = scnMgr->getRootSceneNode()->createChildSceneNode();
ogreNode->attachObject(ogreEntity);
camNode->setPosition(0, 47, 222);
Entity* ogreEntity2 = scnMgr->createEntity("ogrehead.mesh");
SceneNode* ogreNode2 = scnMgr->getRootSceneNode()->createChildSceneNode(Vector3(84, 48, 0));
ogreNode2->attachObject(ogreEntity2);
Entity* ogreEntity3 = scnMgr->createEntity("ogrehead.mesh");
SceneNode* ogreNode3 = scnMgr->getRootSceneNode()->createChildSceneNode();
ogreNode3->setPosition(0, 104, 0);
ogreNode3->setScale(2, 1.2, 1);
ogreNode3->attachObject(ogreEntity3);
Entity* ogreEntity4 = scnMgr->createEntity("ogrehead.mesh");
SceneNode* ogreNode4 = scnMgr->getRootSceneNode()->createChildSceneNode();
ogreNode4->setPosition(-84, 48, 0);
ogreNode4->roll(Degree(-90));
ogreNode4->attachObject(ogreEntity4);
}
bool BasicTutorial1::keyPressed(const KeyboardEvent& evt)
{
if (evt.keysym.sym == SDLK_ESCAPE)
{
getRoot()->queueEndRendering();
}
return true;
}
int main(int argc, char **argv)
{
try
{
BasicTutorial1 app;
app.initApp();
app.getRoot()->startRendering();
app.closeApp();
}
catch (const std::exception& e)
{
std::cerr << "Error occurred during execution: " << e.what() << '\n';
return 1;
}
return 0;
}
En fait je crois pas avoir bien compris comment marchaient les deux lignes ! Si vous pouviez m’expliquer !:D
Voilà j’espère avoir été clair, merci.
Re : du coup j’ai crée un projet dans dans la solution OGRE.sln où j’ai mis ce code, du coup j’obtiens ces erreurs :
Gravité Code Description Projet Fichier Ligne État de la suppression
Erreur LNK1120 1 externes non résolus SampleBrowser C:\ogreSdk\ogre\build\bin\Release\SampleBrowser.exe 1
Erreur (active) E0135 class "Ogre::Vector<3, Ogre::Real>" n’a pas de membre "UNIT_Y" SampleBrowser c:\ogreSdk\ogre\OgreMain\include\OgreCamera.h 340
Erreur (active) E0135 class "Ogre::Vector<3, Ogre::Real>" n’a pas de membre "ZERO" SampleBrowser c:\ogreSdk\ogre\OgreMain\include\OgreCamera.h 438
Erreur (active) E0135 class "Ogre::Vector<3, Ogre::Real>" n’a pas de membre "ZERO" SampleBrowser c:\ogreSdk\ogre\OgreMain\include\OgreEntity.h 584
Erreur (active) E0135 class "Ogre::Vector<3, Ogre::Real>" n’a pas de membre "UNIT_SCALE" SampleBrowser c:\ogreSdk\ogre\OgreMain\include\OgreMatrix4.h 319
Erreur (active) E0135 class "Ogre::Vector<3, Ogre::Real>" n’a pas de membre "UNIT_SCALE" SampleBrowser c:\ogreSdk\ogre\OgreMain\include\OgreStaticGeometry.h 619
Erreur LNK2019 symbole externe non résolu _WinMain@16 référencé dans la fonction "int cdecl scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ) SampleBrowser C:\ogreSdk\ogre\build\Samples\Browser\MSVCRT.lib(exe_winmain.obj) 1