MOTEUR À PARTICULES

MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 - 15 juin 2006 à 08:44
throws Messages postés 4 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 25 mai 2008 - 19 déc. 2006 à 05:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38121-moteur-a-particules

throws Messages postés 4 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 25 mai 2008
19 déc. 2006 à 05:45
beau boulot, je tenai a le dire comme mème, mème si ce genre de systeme existe deja ;)

http://www.particlesystems.org

mise a part cela, au niveau du code dommage de trouver cela :
#define FICHIER_TEXTURE_PARTICULE "F:/particule.tga"
sinon pour le reste du code ( qualité ):

rien a dire, si ce n'est quelques petits trucs ici ou la, mais cela est relatif a la personne qui programme.

dans l'ensemble je met 9/10 ( 10/10 étant la perfection, et la perfection n'existe pas, lol )

throws
CaptainChoc Messages postés 35 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 20 juin 2006
20 juin 2006 à 19:27
Sinon personne n'a regardé la programmation, ce que vous en pensez m'interesse ;)
CaptainChoc Messages postés 35 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 20 juin 2006
20 juin 2006 à 14:33
oui merci ca marche cependant j'essaye de rester un tout petit peu portable et utiliser SetCurrentDirectory ne marche pas sous linux....
KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 2
20 juin 2006 à 10:29
je te donne le code alors :
int main(int argc, char** argv)
{
// initialisation
int pos=strlen(argv[0])-1;
// on se déplace jusqu'au dernier \
while( argv[0][pos] != '\\') pos--;
// on coupe la chaine
argv[0][pos]='\0';
// positionnement du rep courant égal à celui ou est situé notre executable
SetCurrentDirectory(argv[0]);
// on retabli argv[0]
argv[0][pos]='\\';

// VOILOU !!!!!!!!!!

// *
// reste du code...
// *

}

Ensuite dans GestionnaireParticules.h il faut mettre le chemin relatif a ce répertoire courant.
Si tu mets directement :
#define FICHIER_TEXTURE_PARTICULE "particule.tga"
alors le fichier devra être a coté de l'executable.
Si tu mets :
#define FICHIER_TEXTURE_PARTICULE "Images\\particule.tga"
alors le fichier devra être dans un répertoire "Images" lui-même situé a coté de l'executable.

Dis moi si ca marche, mais bon ca fait X fois que je le fait donc....


KeniiyK
CaptainChoc Messages postés 35 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 20 juin 2006
19 juin 2006 à 22:06
non non non ce n'est pas un bug, enfin ca ne vient pas de ta carte graphique.

Il faut placer le fichier "particules.tga" sur le C: (oui faut etre sous windows...) car je n'ai pas reussi à le mettre dans le repertoire courant (j'ai essayé : ./particules.tga ou juste particule.tga mais ca ne marche pas) (cf fichier : GestionnaireParticules.h)
Kleidp Messages postés 124 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 10 février 2008
19 juin 2006 à 13:21
C'est toujours interessant de voir des moteur à particules, et on en aurat jamais assez sur ce site :)

Sinon voici ce que j'obtient quand je lance ton prog:
http://img95.imageshack.us/my.php?image=sanstitre17sy1.jpg

C'est tres certainement dû a ma carte graphique (ATI 9700) qui comporte ce genre de bug. D'habitude c'est avec les ombres (dans les jeux video, assez rare cependant) de model 3D que je vois ce genre de choses.

Une idée pour résoudre ce bug ?
CaptainChoc Messages postés 35 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 20 juin 2006
19 juin 2006 à 01:10
pas plus de commentaires que ca????
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
16 juin 2006 à 08:33
c'est bon j'ai essayé chez moi, ça roule nickel...
c'était la carte du poste où je bosse ki est 'très' ancienne

@ + et bonne continuation
CaptainChoc Messages postés 35 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 20 juin 2006
16 juin 2006 à 00:52
merci, je vais essayer pour le fichier.

Par contre, normalement lors d'une explosion au milieu c'est blanc et ca devient de + en plus en transparent... enfin peut etre qqun d'autre a t'il essayé?

merci de votre aide
KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 2
15 juin 2006 à 13:51
Je ne peux pas tester au boulot, mais par contre pour ton histoire de fichier image tu pourrais te servir de la fonction de Windows : SetCurrentDirectory qui sert a positionner le répertoire courant.
Quand un programme est lancé sous Win, dans ton argv[0] du main tu as le path complet jusqu'a ton exe + le nom de ton exe. Donc en gros si ton exe est d:\mesPrg\projetXX\projetXX.exe tu coupe cette chaine via '\0' à la place du \ après projetXX et tu la passe dans SetCurrentDirectory puis lorsque tu feras un fopen ou un iofstream() d'un fichier il ira voir dans ce répertoire...


Voilou, @+ et bonne continuation


KeniiyK
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
15 juin 2006 à 08:44
Salut, je m'éviterais d'exposer un avis négatif sur ton prog, parce que je suis plus penché D3D que opengl, cependant, pour ton premier coup c'est vraiment pas mal, seulement un reproche, je ne dirais pas que tes explosions et ton feu sont mal faits, mais il faudrait juste que tu insistes sur les dégradés de couleurs (genre l'explosion est blanc au centre, puis se dégrade vers l'orange en bordure exterieur), ou alors c'est juste que la cg du poste où je travaille qui n'est peut être pas assez récente...
En ce qui concerne la neige, le mécontentement, me dis merde, c'est plutôt bien foutu comme moteur à particule et ta neige ressemble à des étoiles que l'on trouvait sur les PC d'antant... Essaie juste de changer ceci...

par contre en ce qui concerne ta particule, tu met dans ton fichier GestionnaireParticules.cpp la ligne suivante :
#define FICHIER_TEXTURE_PARTICULE "C:/particule.tga"

si tu as fait ce genre d'arborescence
Particule-> Code Sources
-> Images -> particule.tga

essaie d'écrire ceci
#define FICHIER_TEXTURE_PARTICULE "..\\Images\\particule.tga"

tu remontes juste d'un répertoire, tu vas dans ton répertoire images et hop tu charges ta particule

Sinon, ben c'est tout, bonne continuation soit dit en passant