texte initial | correction | date |
---|---|---|
ah ah sa parle architecture j'adort Code:device/device.*
device/device_sdl.* // dérivé du device
device/device_glut.* // dérivé du device
device/device_win.* // dérivé du device
device/device_w11.* // dérivé du device
node/scene.* // implemente un array<node*>
node/light.* // dériver de node
node/node.* // base pour les node dériver, ne contient que les donner superflux ( texture, mesh, ... )
node/real.* // node de rendue de mesh ( standar )
node/skybox.* // dériver de node
node/geometry.* // class qui va généré les mesh
node/mesh.h // juste une structe avec des float* ( vertices, indices, TCoord et ... et normales )
render/draw.* // rendue graphique des élément ( utiliser par les nodes )
render/raytracer.* // implenter dans draw, au final je pensse que c'est le mieux
redner/texture.* // chargement intégré pour pas se casser la tête ( tga c'est pas compliquer a charger )
math/vector2d.h
math/vector3d.h
math/line2d.h
math/line3d.h // utiliser par le raytracer
math/matrix4.h // utiliser dans le device pour modifier la matrice de perspective, enfin sauf si tu veut utiliser les fonctions standar, donc optionel je pensse
math/array.h // pas indispensable, mais dans la "scene" il te faudras utiliser des std::vector et pas des std::array, trop lent vite fait, je pensse que c'est tout, mais tu veras vite fait que tu voudras rajouter des fonctionnalite ... |
ah ah ça parle architecture j'adore
Code:device/device.* device/device_sdl.* // dérivé du device device/device_glut.* // dérivé du device device/device_win.* // dérivé du device device/device_w11.* // dérivé du device node/scene.* // implémente un array<node*> node/light.* // dérivé de node node/node.* // base pour les nodes dérivés, ne contient que les données superflues ( texture, mesh, ... ) node/real.* // node de rendu de mesh ( standard) node/skybox.* // dérivé de node node/geometry.* // classe qui va générer les meshs node/mesh.h // juste une structure avec des float* ( vertices, indices, TCoord et ... et normales ) render/draw.* // rendu graphique des éléments ( utilisé par les nodes ) render/raytracer.* // implémenté dans draw, au final je pense que c'est le mieux redner/texture.* // chargement intégré pour pas se casser la tête ( tga c'est pas compliqué à charger ) math/vector2d.h math/vector3d.h math/line2d.h math/line3d.h // utilisé par le raytracer math/matrix4.h // utilisé dans le device pour modifier la matrice de perspective, enfin sauf si tu veux utiliser les fonctions standard, donc optionnel je pense math/array.h // pas indispensable, mais dans la "scène" il te faudra utiliser des std::vector et pas des std::array, trop lent vite fait, je pense que c'est tout, mais tu verras vite fait que tu voudras rajouter des fonctionnalités ...
|
01-09-2010 20:54:31 |
ha bein oui qu'est ce que je raconte moi |
ha bein oui qu'est ce que je raconte moi
|
01-09-2010 20:50:01 |
non déclarer le raytracer dans la class de rendue, pas celui de l'ecran |
non déclarer le raytracer dans la classe de rendu, pas celui de l'écran |
01-09-2010 20:47:21 |
j'ai pas trop le temps la vite fait 2/3 truc... |
j'ai pas trop le temps la vite fait 2/3 truc...
|
01-09-2010 20:46:39 |
Salut Altaïr ! Code: scene::IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(model); alors qu'il suffirait d'un Code: node = smgr->addAnimatedMeshSceneNode(model); Voila Teste et dit moi, je te rerépondrait si tu as besoin |
Salut Altaïr !
Code:scene::IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(model); alors qu'il suffirait d'un Code:node = smgr->addAnimatedMeshSceneNode(model); Voila Teste et dit moi, je te rerépondrai si tu as besoin
|
28-08-2010 11:12:57 |
Bonjour, j'ai un perso qui se déplace dans la map BSP donnée avec Irrlicht. J'ai attaché un "ISceneNodeAnimatorCollisionResponse" a ce perso et les collisions marchent parfaitement. Je voudrais modifier un des paramètres de ce collision animator pendant l'exécution, mais lorsque je modifie un paramètre dans la boucle de rendu(que ce soit directement dans la boucle ou par une fonctions appelée dans la boucle), le collision animator ne marche plus du tout et je n'ai donc plus aucune collision. Code c++ ://Création d'un collision animator pour le personnage scene::ISceneNodeAnimatorCollisionResponse* anim; if (selector) { anim = smgr->createCollisionResponseAnimator(selector, playerNode, core::vector3df(19, 40.0f, 9.25f), core::vector3df(0, -10, 0), core::vector3df(0, 18, -1)); playerNode->addAnimator(anim); }
Code c++ ://Boucle de rendu while(device->run()) { if(device->isWindowActive()) { driver->beginScene(true, true, 0); smgr->drawAll(); gui->drawAll(); anim->setGravity(core::vector3df(0, -10, 0)); // Modification de la gravité time = (f32)device->getTimer()->getTime(); eventReceiver.updateNodePositons(time - lastTime); eventReceiver.replaceCamera(); if(time - lastTime < MIN_FRAME_TIME) { device->sleep((u32)(MIN_FRAME_TIME - (time - lastTime))); } else { lastTime = time; } driver->endScene(); } else { device->sleep(500); } }
|
Bonjour, j'ai un perso qui se déplace dans la map BSP donnée avec Irrlicht. J'ai attaché un "ISceneNodeAnimatorCollisionResponse" à ce perso et les collisions marchent parfaitement. Je voudrais modifier un des paramètres de ce collision animator pendant l'exécution, mais lorsque je modifie un paramètre dans la boucle de rendu(que ce soit directement dans la boucle ou par une fonction appelée dans la boucle), le collision animator ne marche plus du tout et je n'ai donc plus aucune collision.
Code c++ ://Création d'un collision animator pour le personnage scene::ISceneNodeAnimatorCollisionResponse* anim; if (selector) { anim = smgr->createCollisionResponseAnimator(selector, playerNode, core::vector3df(19, 40.0f, 9.25f), core::vector3df(0, -10, 0), core::vector3df(0, 18, -1)); playerNode->addAnimator(anim); }
Code c++ ://Boucle de rendu while(device->run()) { if(device->isWindowActive()) { driver->beginScene(true, true, 0); smgr->drawAll(); gui->drawAll(); anim->setGravity(core::vector3df(0, -10, 0)); // Modification de la gravité time = (f32)device->getTimer()->getTime(); eventReceiver.updateNodePositons(time - lastTime); eventReceiver.replaceCamera(); if(time - lastTime < MIN_FRAME_TIME) { device->sleep((u32)(MIN_FRAME_TIME - (time - lastTime))); } else { lastTime = time; } driver->endScene(); } else { device->sleep(500); } }
|
28-08-2010 11:09:53 |
j'en demandai même pas tant, c'est très gentil de ta part, je vais enfin pouvoir avancer (hmmm ou plutôt démarrer mais bon ^^= |
j'en demandais même pas tant, c'est très gentil de ta part, je vais enfin pouvoir avancer (hmmm ou plutôt démarrer mais bon ^^=
|
28-08-2010 11:07:10 |
merci mais j'aurai espéré un petit bout de code pour exemple |
merci mais j'avais espéré un petit bout de code pour exemple
|
28-08-2010 11:06:35 |
et bien oui il faut utiliser le flag EMT_TRANSPARENT_ALPHA_CHANNEL, mais l'ordre n'a pas d'importance, que se soit avans ou après quoi que se soit ( enfine après l'initialiasation mais sa je pensse que tu t'en doute ) |
et bien oui il faut utiliser le flag EMT_TRANSPARENT_ALPHA_CHANNEL, mais l'ordre n'a pas d'importance, que ce soit avant ou après quoi que ce soit ( enfin après l'initialisation mais ça je pense que tu t'en doutes )
|
28-08-2010 11:05:41 |
oui oui je sais que ce n'est pas utilisable t'en fais pas mis ça dans mon code en me disant "ça marche poooo...) Code c++ :scene::ITerrainSceneNode* terrain = sceneManager->addTerrainSceneNode( "da.bmp", 0, -1, core::vector3df(0.f, 0.f, 0.f), core::vector3df(0.f, 0.f, 0.f), core::vector3df(40.f, 40.f, 40.f), video::SColor ( 255, 255, 255, 255 ), 5, scene::ETPS_17, 5 ); terrain->setMaterialType(video::EMT_DETAIL_MAP); terrain->setMaterialTexture(0, driver->getTexture("da_tex.jpg")); terrain->setMaterialFlag(video::EMF_LIGHTING, false);
|
oui oui je sais que ce n'est pas utilisable t'en fais pas, j'ai mis ça dans mon code en me disant "ça marche poooo...)
Code c++ :scene::ITerrainSceneNode* terrain = sceneManager->addTerrainSceneNode( "da.bmp", 0, -1, core::vector3df(0.f, 0.f, 0.f), core::vector3df(0.f, 0.f, 0.f), core::vector3df(40.f, 40.f, 40.f), video::SColor ( 255, 255, 255, 255 ), 5, scene::ETPS_17, 5 ); terrain->setMaterialType(video::EMT_DETAIL_MAP); terrain->setMaterialTexture(0, driver->getTexture("da_tex.jpg")); terrain->setMaterialFlag(video::EMF_LIGHTING, false);
|
28-08-2010 11:03:45 |