#0 

04-11-2010 00:09:55

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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


#1 

04-11-2010 12:19:36

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

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.


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#2 

04-11-2010 12:26:57

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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


#3 

04-11-2010 13:09:52

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

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.

Dernière modification par nabouill (04-11-2010 13:11:30)


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#4 

04-11-2010 18:01:48

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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


#5 

04-11-2010 21:57:30

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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


#6 

04-11-2010 23:57:23

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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


#7 

05-11-2010 00:43:35

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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


#8 

05-11-2010 15:32:28

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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


#9 

05-11-2010 22:48:18

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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


#10 

09-11-2010 11:20:36

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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


#11 

10-11-2010 13:59:56

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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

Dernière modification par narugohan (11-11-2010 05:41:06)

Hors ligne


#12 

11-11-2010 13:59:29

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

UP svp

Hors ligne


#13 

11-11-2010 18:27:11

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
Site web

Hors ligne


#14 

11-11-2010 18:57:03

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
33 invités en ligne
Aucun membre connecté
RSS Feed