Page 1 sur 2

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : lun. 07/mai/2012 17:33
par blendman
V. Exportation d'un modèle 3D depuis Blender (2.6x)

Informations sur Blender

Blender est un Logiciel de modélisation, animation et rendu 3D. Il est gratuit et Open-source.

La dernière Version est la 2.63 (main 2012).

Il permet de créer des modèles 3D de qualité, pour le pré-calculé ou le temps réel.

Il dispose d'un moteur de jeu Interne( le BGE), qui est plutôt performant pour concevoir des petits jeux amateurs.
D'un point de vue graphique, en temps réel, on dispose d'une preview des shaders avec la plupart des paramètres disponibles (spculaire, normal map..).
On a le même rendu ou presque dans le moteur de jeu.

Mais ce qui nous intéresse, c'est la possibilité d'exporter un modèle 3D que l'on a créé nous-même pour du temps en .mesh pour l'ouvrir dans ogre ( et purebasic bien entendu).

Je ne parlerai pas de la création d'un modèle 3D sous blender. Pour cela, vous trouverez énormément de tutoriaux sur internet. J'ai même participé à l'écriture d'un livre là-dessus ;).

Installation du script d'export de blender (2.63) vers ogre

Il existe des scripts d'export de blender vers ogre, pour la plupart des versions (2.49b, 2.5x, 2.6x).
Nous utiliserons le dernier pour al 2.63.

Installation (blender et script d'export blender -> ogre
- si ce n'est pas encore fait, téléchargez blender 2.63 et installez-le (http://www.blender.org/)
- téléchargez le script d'export blender vers ogre (version 2.63) : http://www.ogre3d.org/forums/viewtopic.php?f=8&t=61485
- installez-le /copiez-le dans le répertoire script\addons de votre blender 2.63, logiquement, ça doit être : 2.63\scripts\addons
- ensuite, dans blender, activez cet addon depuis le panneau de préférence (ctrl+alt+U), panneau Addons / sous menu à gauche Import-Export
- cochez la case Import-Export:Ogre Exporter (.scene, .mesh,.skeleton)
- cliquez sur "save as default" (bouton en bas)
- et voilà, normalement, votre addons est installé.

Remarque :
- blender 2.5x script d'export (au cas où) : http://www.ogre3d.org/tikiwiki/Blender+2.5+Exporter


Créer les shaders (material) depuis blender 2.63

Dans blender, vous pouvez créer vos propres materiaux (ou shaders), et les appliquer à vos objets.
Vous avez normalement installé l'addons d'export blender->ogre. Si ce n'est pas encore le cas, voir un peu plus haut.

S'il est activé, vous avez normalement un tout petit panneau en haut, à droite (àcoté du bouton pour mettre blender en fullscreen) , indiquant "Ogre toggle UI".
Si vous l'activez,(je le conseille), des nouveaux panneaux et menus apparaitront et notamment pour les matériaux.
Cela vous permettra de mieux voir ce que vous pouvez exporter comme paramètres de vos matériaux et textures.

La création d'un shader utilisable par Ogre n'est pas encore complet avec cet Addons :
- on a accès surtout aux textures diffuse, mais pas encore aux canaux de type normal map, spec, etc..

Concevez cependant vos matériaux comme d'habitude, car ce script sera sans doute mis à jour régulièrement ;).
De toute manière, vous pouvez retravaillez vos .material exporté (je vous le conseille)

Il existe de nombreux tutoriaux sur la création de matériaux avec blender, je vous laisse le soin de trouver ces tutoriaux sur le net ;).

Une fois que vous avez créé un matérial dans blender, l'exportation de celui-ci s'effectue en même temps que l'export du modèle 3D.


exporter un mesh depuis blender 2.63

Vous avez normalement installé l'addons d'export vers ogre. Si ce n'est pas fait, voir plus haut.

Utilisation
- sélectionnez votre objet 3D
- allez dans le menu file\export et choisissez Ogre 3D
- ensuite, définissez les paramètres que vous souhaitez prendre en compte (à gauche) : comme l'export du modèle sélectionné uniquement, des animations, de la scène, des materials, etc..

Résultat de l'exportation
Une fois que vous avez exportez, vous devez avoir obtenu :
- un .mesh.xml que vous devrez convertir ensuite avec l'utilitaire d'ogre.
- un .skeleton si vous avez créée des animations
- un .material (ou plusieurs) : ce sont vos material
- un .scene si vous l'avez activé, c'est votre scène.


Note :
Quelques informations sur le script : http://code.google.com/p/blender2ogre/w/list



Conversion du mesh avec l'utilitaire de Ogre

Téléchargement de l'utilitaire de conversion

- Télécharger sur le site d'ogre l'utilitaire : OgreXMLConverter.exe
- pour cela : rendez-vous sur la page : http://www.ogre3d.org/download/tools
- tout en bas, dans "Miscellaneous", téléchargez la version qui vous convient (mac, windows, pour linux, je ne sais pas oùcela se trouve) : Ogre Command-line Tools (1.7.2)
Remarque : sur cette page, vous trouverez divers liens, notamment vers des exporters. Il y en a pour Blender, mais je ne sais pas ce qu'ils donnent,.


Conversion

- lorsque vous avez converti un de modèle depuis blender, vous avez obtenu un *.mesh.xml
- copier ce fichier dans le répertoire où vous avez mis OgreXMLConverter.exe
- ensuite glissez-déposez ce fichier (*.mesh.xml) sur OgreXMLConverter.exe
- si tout s'est bien passé, vous obtenez un fichier *.mesh, un peu plus léger.
- sinon, c'est que votre modèle a des problèmes, il faudra le retravailler dans blender et retenter une exportation.

- si cela s'est passé correctement, vous pouvez utiliser votre mesh dans purebasic/ogre :).


Astuce : Conversion multiple

si vous avez beaucoup de fichiers *.mesh.xml à convertir, voici une technique plutôt pratique :
- créez un dossier à la racine de votre disque dur et mettez-y votre ogreXmlConverter.exe (par exemple : c:/Ogre/ et vous y placez tout ce qui est nécessaire (ogrexmlconverter.exe + les dll associées)
- créez un autre dossier à la racine de votre disque dur et mettez-y vos fichiers à convertir (par exemple c:/convert).
- ouvrez une invite de command (cmd.exe)
- allez dans votre dossier c:/ convert, normalement, vous devez faire : cd .. , puis cd .. , puis cd convert
- tapez la ligne suivante : for %1 in ( *.xml.mesh) DO c:\Ogre\OgreXmlConverter %1 (si vous avez mis votre converter dans c:/ogre)
- ensuite patientez le temps que cela soit converti et voilà tous vos meshs sont convertis en 1 seule fois, c'est pratique :D


Remarques et Astuces importantes

Optimisation
- veillez à concevoir des modèles ayant le moins de faces possibles pour du temps réel.
- si possible n'utilisez qu'un seul material par modèle, ce sera plus simple ensuite. Vous pouvez si besoin en utiliser plusieurs, mais ce sera plus délicat à gérer si vous souhaitez les modifier dans Purebasic/Ogre
- veillez à créer des textures les plus petites possibles et si possible en puissance de 2 : 64*64, 128*128, 256*256, etc..
- de plus, évitez de mettre des normal map, spec map ou autre sur tous vos modèles. Cela risque d'alourdir le temps de calcul du rendu dans Ogre et de baisser vos FPS.
- il faut savoir que le calcul des ombres dans rajoute énormément de faces : veillez à n'utiliser des ombres projetés que si c'est nécessaire, et faites le uniquement sur les modèles souhaités.

Règle de lighting
- En général, on choisit d'utiliser 3 sources de lumière principale : une qui donne la teinte et projette des ombres. Une deuxième en contre -lumière dans les tons complémentaire. Une troisième beaucoup moins intense en opposition (de l'autre cote), pour faire un très léger back light). Vous pouvez ensuite ajouter des lumières ponctuelles là où vous avez mis des sources lumineuses (feu, objets magique, lampe..)
- il faut si possible qu'il y ait le moins de light possible qui projettent des ombres (une seule peut suffire).

Réutilisation
- essayez de réutiliser, dans la mesure du possible, vos textures ou material

Echelle
- il est important de faire un premier d'exportation et d'importation de votre modèle dans purebasic/ogre. Les échelles peuvent être très différentes entre blender (ou d'autres modeleurs) et purebasic/ogre. Il vous faudra alors faire un scale de votre modèle dans purebasic, mais autant qu'il soit tout de suite à la bonne taille dans blender. Ainsi, il est intéressant de créer une scène vide avec une échelle de référence (un personnage low-poly par exemple). Cela vous permet d'éviter de créer des modèles avec nécessité de les agrandir si ce n'est pas nécessaire.

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : lun. 07/mai/2012 18:11
par blendman
VI. Les materials un peu en détail

Voici déjà quelques liens qui seront utiles :

- des exemples de materials :
http://www.ogre3d.org/tikiwiki/Materials

- Les passes de material :
http://www.ogre3d.org/docs/manual/manual_16.html

- pass et fragment /vertex shaders
http://www.ogre3d.org/docs/manual/manual_23.html#SEC121

- shaders (généralité) :
http://www.ogre3d.org/tikiwiki/Shaders& ... e=Cookbook

- HLSL : http://www.ogre3d.org/tikiwiki/HLSL&structure=Cookbook

Des codes GLSL :
http://code.google.com/p/glslang-library/

Shaders (GLSL) :
Reflect : http://code.google.com/p/glslang-librar ... g.glsl?r=8

VII.informations complémentaires

Fichiers et Exemples utiles

Exemples généraux ou complets - Jeux (2d et 3D)
- liste de fichiers d'exemples : http://www.purebasic.fr/french/viewtopi ... =2&t=12360

Shoot
- MadFire(Cool Dji) : http://www.purebasic.fr/french/viewtopi ... =2&t=11828

Jeux de course
- proto de jeux de course (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=12531
- générateur de circuit (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=12421

Ribbon Effect
- KeleBrindae (encore lui :)) : http://www.purebasic.fr/french/viewtopi ... 13&t=11748

Physique
- code de comtois au milieu de la page : http://www.purebasic.fr/french/viewtopi ... =2&t=12335
- aéroglisseur (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=12395
- pendule harmonique (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=11889

Utilitaires ou fonctions pratiques

- create terrain (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=12370
- create terrain (G-rom & Huitbit) : http://www.purebasic.fr/french/viewtopi ... 13&t=11797


Shaders
- quelques shaders et test (un peu tout le monde) : http://www.purebasic.fr/french/viewtopi ... 13&t=11740
- shader lave (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=11418
- shader soleil (Kelebrindae) : http://www.purebasic.fr/french/viewtopi ... 13&t=11400


Remerciements

Évidemment un grand Merci à Fred pour le purebasic, mais aussi à G-rom pour avoir participer très grandement à l'ajout de superbes fonctions 3D (static geometry, cube mapping/reflexion, paramètres de material, ribbon, , ajout de paramètres liés aux rotations, compositor, etc..).

Remerciements supplémentaires :
- G-rom pour les nombreux conseils en matière de 3D et les exemples qu'il a fourni (create terrain, static geometry, fps...).
- Comtois pour les exemples en 3D.
- Kelebrindae : pour les exemples sur les shaders, ou les scènes (physiques, create terrain)
- et tout ceux qui ont posté des exemples en 3D, permettant de comprendre d'avantage comment fonctionne Purebasic et la 3D.

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : ven. 11/mai/2012 9:34
par bombseb
Et un merci à toi pour ce super tuto !

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : ven. 11/mai/2012 21:42
par omega
Bonjour à tous

Que pourriez-vous conseiller à un vrai débutant pour apprendre à développer des jeux 3D?
Quel est l'outil le plus indiqué ? Est ce que je peux commencer directement en Pb ??

Merci

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : ven. 18/mai/2012 23:50
par Cool Dji
Hello,

Qui que c’est t’y qu’a un lien pour choper OgreXMLConverter.exe ?
Google ne donne rien...
Je vais en avoir besoin, je viens d'installer la 2.63

Merci

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 8:53
par blendman
Cool Dji a écrit :Qui que c’est t’y qu’a un lien pour choper OgreXMLConverter.exe ?
Google ne donne rien...
Je vais en avoir besoin, je viens d'installer la 2.63
salut

j'ai ajouté ça dans la partie sur la conversion blender> ogre :

- rendez-vous sur la page : http://www.ogre3d.org/download/tools
- tout en bas, dans "Miscellaneous", téléchargez la version qui vous convient (mac ou windows, pour linux, je ne sais pas où cela se trouve) : Ogre Command-line Tools (1.7.2)

Il y a aussi à cette page un lien d'exporter depuis blender, mais je ne sais pas ce que cela donne.

Voiloutch, en espérant que cela t'aide ;).

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 9:36
par Ar-S
il n'existe pas d’éditeur de particule (...)
Sur topic blendman, merci pour ce boulot.

Pour ce qui est de l'editeur de particule, il en existe. J'ai par exemple utilisé Particle illusion qui est vraiment bien. Petit test sur video que j'ai fait il y a qques années : https://rapidshare.com/files/3620612567 ... inasse.avi

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 11:45
par blendman
Ar-S a écrit :
il n'existe pas d’éditeur de particule (...)
Pour ce qui est de l'editeur de particule, il en existe. J'ai par exemple utilisé Particle illusion qui est vraiment bien.
je parlais d'un éditeur de particule permettant d'utiliser les particules/systèmes de particules créés dans un jeu Vidéo en 3D, donc compatible avec purebasic /ogre ;)
Le résultat de ParcileIllusion ce n'est que pour la 2D ou la vidéo, pas la 3D en temps réel.

De plus, il n'est mis nulle part que Particle Illusion a été codé en purebasic ;).

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 14:38
par Cool Dji
Oki, Merci Blendman pour le lien :D

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 14:44
par comtois
il y a Ogre particule lab fait par un français
Et Particle universe qui est payant

Fut un temps j'avais utilisé Ogre Particle editor qui était disponible sur le site d'ogre, mais je n'arrive plus à mettre la main dessus
malgré ce lien

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 14:57
par blendman
Merci Comtois.
Visiblement, ça utilise les particles scripts, mais on n'a pas encore ça dans purebasic ^^.

Particle Universe a l'air top, je l'avais repéré car il est utilisé dans Torchlight :D.

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : sam. 19/mai/2012 15:13
par case

Re: [Tutoriel-en cours] Introduction à la 3D avec Purebasic

Publié : dim. 20/mai/2012 9:57
par blendman
Merci pour les liens.

J'ai ajouté :
- les liens vers les éditeurs de particules
- le lien vers le material editor de kelebrindae
- le lien vers Ogre Meshy, utilitaire pour visualiser des meshs, animation...
- des commentaires en Anglais sur l'exemple ThirdPerson de Comtois (encore merci à lui ;))
- des informations sur la création d'un jeu (partie 1).

Re: [Tutoriel] Introduction à la 3D avec Purebasic

Publié : sam. 15/sept./2012 22:17
par comtois
un petit tuto sur la création d'un mesh ogre sous blender
http://geenux.wordpress.com/2010/03/25/ ... s-blender/

Re: [Tutoriel] Introduction à la 3D avec Purebasic

Publié : ven. 12/sept./2014 9:43
par microdevweb
Merci Blendman,

Tuto vraiment intéressant :lol: