Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2019-01-07T17:09:14+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Comment créer un projet à partir du SDK de Ogre ?, message #1966892019-01-07T17:09:14+01:00Aquila Templum/@Aquila%20Templumhttps://zestedesavoir.com/forums/sujet/11884/comment-creer-un-projet-a-partir-du-sdk-de-ogre/?page=1#p196689<p>Bonjour tout le monde ! Voilà je sais d’où viennent toutes ces erreurs, cela vient du fait que le code n’est pas codé en macro c++, le problème je sais pas exactement ce que c’est et où apprendre cette partie du c++ ! Si quelqu’un pouvait m’indiquer un tuto. Autre chose : lorsque je suis dans la configuration évoqué plus haut je sais pas comment je fais pour refaire un autre projet sans tout copier. Je veux juste indiquer le chemin comme proposé par le tuto de ogre : <a href="https://ogrecave.github.io/ogre/api/latest/setup.html">ici</a>, je n’arrive pas à appliquer ce qui y est écrit !<br>
Merci.</p>Comment créer un projet à partir du SDK de Ogre ?, message #1964282019-01-04T13:51:20+01:00Aquila Templum/@Aquila%20Templumhttps://zestedesavoir.com/forums/sujet/11884/comment-creer-un-projet-a-partir-du-sdk-de-ogre/?page=1#p196428<p>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.</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-cpp">find_package(OGRE <span class="hljs-number">1.11</span> REQUIRED COMPONENTS Bites RTShaderSystem)
file(COPY ${ OGRE_CONFIG_DIR } / resources.cfg DESTINATION ${ CMAKE_BINARY_DIR })
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"Ogre.h"</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"OgreApplicationContext.h"</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"OgreInput.h"</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"OgreRTShaderSystem.h"</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">"OgreApplicationContext.h"</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><iostream></span></span>
<span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> Ogre;
<span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> OgreBites;
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">BasicTutorial1</span>
:</span> <span class="hljs-keyword">public</span> ApplicationContext
, <span class="hljs-keyword">public</span> InputListener
{
<span class="hljs-keyword">public</span>:
BasicTutorial1();
<span class="hljs-keyword">virtual</span> ~BasicTutorial1() {}
<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">setup</span><span class="hljs-params">()</span></span>;
<span class="hljs-function"><span class="hljs-keyword">bool</span> <span class="hljs-title">keyPressed</span><span class="hljs-params">(<span class="hljs-keyword">const</span> KeyboardEvent& evt)</span></span>;
};
BasicTutorial1::BasicTutorial1()
: ApplicationContext(<span class="hljs-string">"OgreTutorialApp"</span>)
{
}
<span class="hljs-keyword">void</span> BasicTutorial1::setup()
{
<span class="hljs-comment">// do not forget to call the base first</span>
ApplicationContext::setup();
addInputListener(<span class="hljs-keyword">this</span>);
<span class="hljs-comment">// get a pointer to the already created root</span>
Root* root = getRoot();
SceneManager* scnMgr = root->createSceneManager();
<span class="hljs-comment">// register our scene with the RTSS</span>
RTShader::ShaderGenerator* shadergen = RTShader::ShaderGenerator::getSingletonPtr();
shadergen->addSceneManager(scnMgr);
<span class="hljs-comment">// -- tutorial section start --</span>
<span class="hljs-comment">//! [turnlights]</span>
scnMgr->setAmbientLight(ColourValue(<span class="hljs-number">0.5</span>, <span class="hljs-number">0.5</span>, <span class="hljs-number">0.5</span>));
<span class="hljs-comment">//! [turnlights]</span>
<span class="hljs-comment">//! [newlight]</span>
Light* light = scnMgr->createLight(<span class="hljs-string">"MainLight"</span>);
SceneNode* lightNode = scnMgr->getRootSceneNode()->createChildSceneNode();
lightNode->attachObject(light);
<span class="hljs-comment">//! [newlight]</span>
<span class="hljs-comment">//! [lightpos]</span>
lightNode->setPosition(<span class="hljs-number">20</span>, <span class="hljs-number">80</span>, <span class="hljs-number">50</span>);
<span class="hljs-comment">//! [lightpos]</span>
<span class="hljs-comment">//! [camera]</span>
SceneNode* camNode = scnMgr->getRootSceneNode()->createChildSceneNode();
<span class="hljs-comment">// create the camera</span>
Camera* cam = scnMgr->createCamera(<span class="hljs-string">"myCam"</span>);
cam->setNearClipDistance(<span class="hljs-number">5</span>); <span class="hljs-comment">// specific to this sample</span>
cam->setAutoAspectRatio(<span class="hljs-literal">true</span>);
camNode->attachObject(cam);
camNode->setPosition(<span class="hljs-number">0</span>, <span class="hljs-number">0</span>, <span class="hljs-number">140</span>);
<span class="hljs-comment">// and tell it to render into the main window</span>
getRenderWindow()->addViewport(cam);
<span class="hljs-comment">//! [camera]</span>
<span class="hljs-comment">//! [entity1]</span>
Entity* ogreEntity = scnMgr->createEntity(<span class="hljs-string">"ogrehead.mesh"</span>);
<span class="hljs-comment">//! [entity1]</span>
<span class="hljs-comment">//! [entity1node]</span>
SceneNode* ogreNode = scnMgr->getRootSceneNode()->createChildSceneNode();
<span class="hljs-comment">//! [entity1node]</span>
<span class="hljs-comment">//! [entity1nodeattach]</span>
ogreNode->attachObject(ogreEntity);
<span class="hljs-comment">//! [entity1nodeattach]</span>
<span class="hljs-comment">//! [cameramove]</span>
camNode->setPosition(<span class="hljs-number">0</span>, <span class="hljs-number">47</span>, <span class="hljs-number">222</span>);
<span class="hljs-comment">//! [cameramove]</span>
<span class="hljs-comment">//! [entity2]</span>
Entity* ogreEntity2 = scnMgr->createEntity(<span class="hljs-string">"ogrehead.mesh"</span>);
SceneNode* ogreNode2 = scnMgr->getRootSceneNode()->createChildSceneNode(Vector3(<span class="hljs-number">84</span>, <span class="hljs-number">48</span>, <span class="hljs-number">0</span>));
ogreNode2->attachObject(ogreEntity2);
<span class="hljs-comment">//! [entity2]</span>
<span class="hljs-comment">//! [entity3]</span>
Entity* ogreEntity3 = scnMgr->createEntity(<span class="hljs-string">"ogrehead.mesh"</span>);
SceneNode* ogreNode3 = scnMgr->getRootSceneNode()->createChildSceneNode();
ogreNode3->setPosition(<span class="hljs-number">0</span>, <span class="hljs-number">104</span>, <span class="hljs-number">0</span>);
ogreNode3->setScale(<span class="hljs-number">2</span>, <span class="hljs-number">1.2</span>, <span class="hljs-number">1</span>);
ogreNode3->attachObject(ogreEntity3);
<span class="hljs-comment">//! [entity3]</span>
<span class="hljs-comment">//! [entity4]</span>
Entity* ogreEntity4 = scnMgr->createEntity(<span class="hljs-string">"ogrehead.mesh"</span>);
SceneNode* ogreNode4 = scnMgr->getRootSceneNode()->createChildSceneNode();
ogreNode4->setPosition(<span class="hljs-number">-84</span>, <span class="hljs-number">48</span>, <span class="hljs-number">0</span>);
ogreNode4->roll(Degree(<span class="hljs-number">-90</span>));
ogreNode4->attachObject(ogreEntity4);
<span class="hljs-comment">//! [entity4]</span>
<span class="hljs-comment">// -- tutorial section end --</span>
}
<span class="hljs-keyword">bool</span> BasicTutorial1::keyPressed(<span class="hljs-keyword">const</span> KeyboardEvent& evt)
{
<span class="hljs-keyword">if</span> (evt.keysym.sym == SDLK_ESCAPE)
{
getRoot()->queueEndRendering();
}
<span class="hljs-keyword">return</span> <span class="hljs-literal">true</span>;
}
<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">(<span class="hljs-keyword">int</span> argc, <span class="hljs-keyword">char</span> **argv)</span>
</span>{
<span class="hljs-keyword">try</span>
{
BasicTutorial1 app;
app.initApp();
app.getRoot()->startRendering();
app.closeApp();
}
<span class="hljs-keyword">catch</span> (<span class="hljs-keyword">const</span> <span class="hljs-built_in">std</span>::exception& e)
{
<span class="hljs-built_in">std</span>::<span class="hljs-built_in">cerr</span> << <span class="hljs-string">"Error occurred during execution: "</span> << e.what() << <span class="hljs-string">'\n'</span>;
<span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
}
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}
<span class="hljs-comment">//! [fullsource]</span>
</code></pre></div>
<p>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 : </p>
<p>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 <strong>cdecl </strong>scrt_common_main_seh(void)" (?__scrt_common_main_seh@<a href="/membres/voir/YAHXZ/" rel="nofollow" class="ping ping-link">@<span class="ping-username">YAHXZ</span></a>) SampleBrowser C:\ogreSdk\ogre\build\Samples\Browser\MSVCRT.lib(exe_winmain.obj) 1 </p>Comment créer un projet à partir du SDK de Ogre ?, message #1964242019-01-04T12:02:42+01:00Moté/@Mot%C3%A9https://zestedesavoir.com/forums/sujet/11884/comment-creer-un-projet-a-partir-du-sdk-de-ogre/?page=1#p196424<p>Alors, je ne code plus depuis longtemps et jamais en C++, mais personnellement je ne crois pas voir d’erreur. Tout ce que tu vois dans l’explorateur de solutions me semble être une floppée de composants intégrés dans le SDK justement pour te permettre de coder.</p>
<p>Pareillement, je ne vois pas de problème avec la structure de dossier, je ne suis même pas sûr que tu doives les utiliser.</p>
<p>Tu devrais continuer le tuto pour essayer de coder, et si tu n’y arrives pas c’est peut-être que tu n’as tout simplement pas le niveau pour utiliser Ogre tout de suite (de mémoire, il me semble que Ogre est loin d’être la solution la plus simple à utiliser).</p>
<p>Quel est ton projet en fait ? Il y a peut-être d’autres technos plus adaptées.</p>Comment créer un projet à partir du SDK de Ogre ?, message #1964142019-01-04T11:09:15+01:00Aquila Templum/@Aquila%20Templumhttps://zestedesavoir.com/forums/sujet/11884/comment-creer-un-projet-a-partir-du-sdk-de-ogre/?page=1#p196414<p>Bonjour,</p>
<p>Comme indiqué par le titre j’aimerais savoir comment on fait un projet avec le SDK de Ogre, j’ai suivi le tutoriel proposé par Ogre, <a href="https://ogrecave.github.io/ogre/api/latest/setup.html#cmake">ici</a>, si je fais ça, cela me met plein d’erreur !
Par exemple visual studio 2017 m’affiche ceci : <img src="https://user.oc-static.com/upload/2019/01/03/15465369648522_aff.png" alt="Image utilisateur">
Après je clique sur install comme indiqué, et j’obtiens ça : <img src="https://user.oc-static.com/upload/2019/01/03/15465371218435_dos.png" alt="Image utilisateur">
Au final ma question serait je fais quoi avec ça ?</p>
<p>Merci pour vos aides futures!</p>