je poste ici mon premier essai opengl. Je me suis basé sur un FireWorks que l'on trouve dans les demos de NeHe, par Belarus Arrow, utilisant le framework opengl de NeHe.
Au depart c'etait pour mieux voir comment fonctionne l'OGl et faire des modifs au fur et à mesure (FullScreen/Windowed, Texture, musique...).
De plus je n'aimais pas les explosions d'origine : elles etaient "carrées". J'ai donc modifié et ajouté des effets.
J'ai ensuite ajouter une image de fond au debut en BitMap resource, puis en utilisant la lib Jpg TIJG (ou PNG), modifiée pour lire un fichier transformé en tableau de char (pour eviter les resources).
J'ai voulu voir comment fonctionnait un afficheur de texte avec une Font Bitmap en OGl, et j'ai trouvé un code de Brian Postma qui m'a permis de comprendre.
Pour finaliser, j'ai implementé le MiniFmod pour jouer un bon vieux module. C'est une version légèrement modifiée pour lire un tableau de char (et non le fichier mod en resource).
J'ai aussi mis le player uFmod et AHX au choix. Ahx utilise le mode Multithread. Dans VC6, il faut mettre projet/settings/c++/code generation/Multithread (static version, pas dll)
Pour uFmod, rajouter ufmod.obj au linker.
Bugs Report et toutes erreurs ou mauvais codes et autres ameliorations, trucs et astuces sont bienvenues.
pour les Matheux et les pros de l'OpenGl, j'aimerai me pencher un peu plus sur l'aspect feux d'artifices : comment ameliorer le rendu, faire de nouveaux effets, rajouter de la fumée... Ce serait Top, Merci d'avance
Tout est dans le Zip
Source / Exemple :
voir Zip.
Modif:
une petite modif à faire (oubli de decharger les textures créées)
ajouter à "rendering.cpp" la fonction :
void greUnloadLevelTextures(void)
{
glDeleteTextures(1, &texture[0]);
glDeleteTextures(1, &texture[1]);
glDeleteTextures(1, &texture[2]);
}
et dans le "main.cpp", dans la fonction wmDeInit() :
gcUnloadLevel();
Conclusion :
j'ai eu un bug avec AHX : le processus ne se fermait pas. Gênant et totalement bloquant en mode fullscreen. Tester de preference en Windowed, et voir si une fois fermé, le processus est bien terminé.
Edit: maintenant je n'ai plus ce bug
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.