#1 

03-11-2010 23:09:55

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 81.53.34.240
Courriel

Bonjour à tous,
J'ai un petit problème xD. J'aimerai faire un nuage de fumé blanche qui apparait à un endroit grâce à un billboard. L'image animé en question est donc un nuage, qui grossit et disparait progressivement, c'est une image GIF, le problème c'est que irrlicht ne lit pas les formats .gif, donc j'aimerais savoir si quelqu'un à une solution pour régler mon problème ?

Je vous remercie d'avance pour votre réponse


Cordialement


Hors ligne


#2 

04-11-2010 11:19:36

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 82.127.58.127
Courriel

Effectivement, Irrlicht ne peut pas lire les fichier gif
Mais je pense qu'il vraiment mieux d'utiliser un system de particule pour réaliser un nuage de fumé.
Le rendu sera 10000 fois meilleur.

Hors ligne


#3 

04-11-2010 11:26:57

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 81.53.34.240
Courriel

En faite, je suis entrain de crée un MMORPG, mais bon, on est pas la pour en débattre xD
Mais c'est juste que notre jeu tien sur un manga, et nous nous inspirons du jeu naruto ultimate : ninja storm pour la qualité d'image( enfin bien sûr entre une ps3 ou xbox360 et un pc, y'a pas photo, mais sa permet de s'inspiré comme même et de voir comment il économise de la mémoire ), et il utilise des fois des particules, mais pour des petits nuages, quand il s'agit d'une explosion( donc des nuages d'une plus grosse empleur, enfin il utilise des fois cette technique pour de plus petit chose aussi ), il affiche un billboard d'un nuage qui grossit et disparait tranquillement, et je pense que de faire sa devrait prendre moins de mémoires que des particules, à moins que je ne me trompe, et que les particules utilisent moins de mémoire ?


Hors ligne


#4 

04-11-2010 12:09:52

nabouill
Membres
Avatar de nabouill
Date d'inscription:
Messages: 242
IP: 82.127.58.127
Courriel

non tu as raison, un systeme de particule demande plus de ressource(pas seulement de memoire mais aussi de calcul cpu/gpu) qu'une billeboard.
mais avec irrlicht, on ne peut pas utiliser de gif (avec les autre 3d engine en general non plus d'ailleurs il me semble), donc a part un systeme de particule je ne vois pas d'autre solution, et un petit systeme de particule ne demande pas temps de ressource que ça, et si il est bien supprimé un fois terminé, les ressource demander augmente seulement le temps de l'effet.

Personnellement pour mon projet j'utilise SPARK qui est plus rapide qu'irrlicht, ses calcules cpu/gpu sont fait sur un autre thread ce qui évite de trop ralentir le rendu d'irrlicht.

A moin que quelqu'un a une autre solution.

Hors ligne


#5 

04-11-2010 17:01:48

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 81.53.34.240
Courriel

j'te remercie, j'avais commencer à regardé en gros ce moteur, mais j'avais pas compris grand chose pour l'intégrer à irrlicht, enfin bon, peut etre quan dm'y mettant sérieusement, j'y comprendrai quelque chose :p
Sinon, si tu peux m'aider au pire, si il y a un tuto, même en anglais sur internet pour comment l'utilisé avec irrlicht, j'en serai ravie et je t'en remercirai infiniment, sinon c'est pg, j'essayerai de me débrouillé xD

Bonne fin de journée à toi, encore merci, et si quelque 'un d'autre à une idée sinon comme à dit nabouill, je peux etre preneur x)


Hors ligne


#6 

04-11-2010 20:57:30

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

bon uhm ....techniquement tu peut lire un gif, tu peut utiliser <<libgif >> et apliquer un système de sprite, c'est pas compliquer ? chaque calque du gif définissant une frame de l'animation, c'est simple après.
en convertisant l'image de la lib en ITexture wink

enfin vous sembler pas connaitre les sprites, c'est n'y plus n'y moin qu'un enchainement d'image, comme une animation, bien que généralement tout l'animation est déplier sur une grand image ...
mais la question est comment est ton mmo ? sur un plan 3d, ou 2d mais utilisant des décor 3d, car si c'est le cas il vaut mieux un sprite, sinon spark est super même s'il a un default sur la perspective

il y d'autre systeme encore, autre que les particule, genre de sprite améliorer utilisant plusieur plan, plus souvent utiliser pour les skill dans les mmo, mais la dsl je ne sais plus le nom smile

Hors ligne


#7 

04-11-2010 22:57:23

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 81.53.34.240
Courriel

mon MMO est sur un plan 3D, donc tu me conseille ? Donc en gros j'utilise << libgif >>, que je convertie chaque sprite en ITexture, est-ce sa ?


Hors ligne


#8 

04-11-2010 23:43:35

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

et bien si ton mmo en sur un plan 3d, l'effect seras plus sympas avec spark mais prendra plus de ressource
sinon oui pour la libgif

Hors ligne


#9 

05-11-2010 14:32:28

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 81.53.34.240
Courriel

Ok, pourrai tu m'expliquer comment m'en servir stp, car je l'es installé, mais quand je recherche une doc sur internet il ne me met que de la merde xD, j'aimerais juste savoir récupéré un sprite et le convertir en ITexture, pour pouvoir joué l'animation de mon nuage de fumé, sinon je vais regarder aussi spark wink
Merci d'avance


Hors ligne


#10 

05-11-2010 21:48:18

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 188.93.45.30
Courriel  Site web

bon je suis aller chercher dans mais soure inachever, donc je ne suis pas sur que cela marche, donc si ce n'est le cas cherche sur google smile

Code c++ :


       irr::core::array<irr::video::IImage*>  load(const char*file)
       {
                irr::core::array<irr::video::IImage*> calque;
                int i, ExtCode;
                GifFileType *File;
                File = DGifOpenFileName(file);

                for(int i = 0; i < File->ImageCount; ++i);
                {
                    irr::video::IImage *tmp = driver->createImageFromData(irr::video::ECF_A8R8G8B8,irr::core::dimension2d<irr::u32>((irr::u32)File->SWidth,(irr::u32)File->SHeight),(void*)(File->SColorMap[i].Colors),false);
                    calque.push_back(tmp);
                }

                DGifCloseFile(File);
                return true;
       }

c'est de IImage comme tu le voie, pour les convertire en ITexture utilise la fonction IVideoDriver::addTexture(const io::path &name, IImage *image, void *mipmapData=0);

Hors ligne


#11 

09-11-2010 10:20:36

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.199.58.192
Courriel

dsl pour cette réponse tardive, je te remercie de ce code, je le testerai ce soir en rentrant des cours, et te redirais si sa fonctionne :p
Encore merci pour votre aide


Hors ligne


#12 

10-11-2010 12:59:56

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.199.58.192
Courriel

Bon bah c'est pas encore sa xD, déjà il ma détecte qu'un frame de l'image, et quand j'essaye de l'afficher...... c'est un gros carré noir ptdr, donc bah si tu as une idée, je suis preneur wink, sinon déjà je vais essayer de rechercher sur internet, merci comme même tu m'as déjà donné une bonne base

EDIT : Bon internet n'est pas vraiment mon amis pour cette librairie xD, j'ai essayé de regarde un peu dans les sources de la lib, le seul truc que j'ai trouvé qui peux me servir sont la gestion des erreurs, mais j'ai vraiment du mal a trouver comment faire pour récupérer les données de l'image-_-, donc si tu pouvais m'aider stp, je t'en remercie d'avance

Cordialement


Hors ligne


#13 

11-11-2010 12:59:29

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.199.58.192
Courriel

UP svp


Hors ligne



#15 

11-11-2010 17:57:03

narugohan
Membres
Avatar de narugohan
Date d'inscription:
Messages: 113
IP: 86.199.58.192
Courriel

je te remercie, je ne connaissais pas ce site, je vais étudier sa ce soir, je te tien au courant, merci de ton aide


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
117 invités en ligne
membre en ligne: -
RSS Feed