Page 1 sur 2

débutant en 3D

Publié : mer. 28/nov./2007 18:00
par djfeeler2
Salut a tous !

J'aimerais créer un jeu en 3D ! mais avant il faut commencer les bases :lol: c'est ce que j'ai fais mais je bloque sur certains points ! auriez vous des liens avec des tutoriels sur la 3D ?

J'ai commencé a étudier les tutoriaux de game creator et je bloque sur les datas du deuxieme tutoriel la création d'un cube, j'ai compris la partie 0 à 3 mais pas la suivante, quelqu'un pourrais m'expliquez comment cela fonctionne ?

merci d'avance :D

Publié : mer. 28/nov./2007 18:37
par bernard13
bonsoir

ici Il ya un gars super qui s'appelle Comtois et qui est specialiste de la 3D
en autre .

sinon regarde la section 3D du forum .

Publié : mer. 28/nov./2007 21:56
par comtois
bernard13 a écrit :ici Il ya un gars super qui s'appelle Comtois et qui est specialiste de la 3D en autre .
Je ne fais que des cubes ! C'est tout ce que je sais faire en 3D.

Re: débutant en 3D

Publié : mer. 28/nov./2007 22:04
par comtois
djfeeler2 a écrit :J'ai commencé à étudier les tutoriels de game creator et je bloque sur les datas du deuxième tutoriel la création d'un cube, j'ai compris la partie 0 à 3 mais pas la suivante, quelqu'un pourrait m'expliquer comment cela fonctionne ?
Mets le bout de code qui te pose problème. Ou le texte qui n'est pas assez clair pour toi, que je comprenne de quoi tu parles exactement.

Apparemment c'est les datas ton problème , mais quoi exactement ? le fonctionnement des datas ou autre chose ?

Publié : mer. 28/nov./2007 22:21
par djfeeler2
non pas le fonctionnement des datas. je ne comprend pas comment fais le programme pour chaque face du cube pour afficher chaque face avec les datas.

Publié : mer. 28/nov./2007 23:02
par comtois
Tout se tient ici

Code : Tout sélectionner

CreateMesh(#Mesh, 100)
Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
SetMeshData(#Mesh, Options      , ?Sommets, 24)
SetMeshData(#Mesh, #PB_Mesh_Face, ?Triangles, 12)
Cette ligne permet d'indiquer comment chaque vertex sera défini

Code : Tout sélectionner

Options = #PB_Mesh_Vertex | #PB_Mesh_Normal | #PB_Mesh_UVCoordinate | #PB_Mesh_Color
Pour chaque vertex , il faut :
3 données (float) pour la position du vertex
3 données (float) pour la normale au vertex
1 donnée (long) pour la couleur
2 données (float) pour les coordonnées uv de la texture.

Par exemple pour le premier vertex

Code : Tout sélectionner

;Dessus 0 à 3
Data.f -0.5,0.5,-0.5 ; x=-0.5 y=0.5 et z = -0.5
Data.f 0,1,0 ; La normale est orientée vers le haut
Data.l 0 ; Couleur noir
Data.f 0, 0  ; u=0 et v=0      
Comme je l'indique dans le tut , il y a 4 vertices par face, et 6 faces pour former un cube, soit 24 vertices. C'est la valeur que tu retrouves dans la fonction SetMeshData().

Tu as juste à mettre tes 24 vertices , les uns à la suite des autres, il n'y a pas d'ordre particulier. Pour m"y retrouver j'ai préféré les trier par face, mais c'est pas obligatoire. Ce qu'il faut retenir c'est que le premier vertex est à l'index = 0 et le dernier aura l'index=23 (l'index va de 0 à 23)

Ensuite c'est le numéro d'index que tu utilises pour former un triangle.

Par exemple pour la face du dessus , sachant que chaque face est constituée de deux triangles , tu as :

Code : Tout sélectionner

Triangles:
;Face en Haut
Data.w 2,1,0
Data.w 0,3,2
Chaque triangle a besoin de 3 index (word).
- Le premier triangle sera tracé entre les vertices 2,1 et 0.
- Le second triangle sera tracé entres les vertices 0,3 et 2.

Cette fonction permet d'indiquer au moteur 3D comment seront formés les triangles.

Code : Tout sélectionner

SetMeshData(#Mesh, #PB_Mesh_Face, ?Triangles, 12)
#PB_Mesh_Face = pour indiquer que ce qui suit concerne la formation des triangles

?Triangles = Pour indiquer à quelle adresse se trouve les données des triangles.

12 = Pour indiquer combien il y a de triangles dans le mesh.

Et ensuite le moteur 3D (Ogre) se débrouille avec tout ça pour construire le mesh.

Ceci dit, tu n'as pas besoin de maitriser tout ça pour faire de la 3D, tu peux utiliser un éditeur 3D ,ça sera quand même plus simple pour faire tes modèles 3D :)

Publié : mer. 28/nov./2007 23:28
par djfeeler2
merci pour cette réponse ! j'aimerais créer un terrain modulable !

Publié : mer. 28/nov./2007 23:35
par comtois
j'avais fait des trucs là dessus 'M3D_Matrix3D'
http://herved25.free.fr/pureindex

Le code source est disponible, c'est à l'abandon pour l'instant j'attends la mise à jour de la lib 3D pour éventuellement reprendre le code autrement.

[EDIT]
C'est pas vraiment une gestion de terrain.

Publié : mer. 28/nov./2007 23:42
par djfeeler2
moi aussi je suis bloqué ! je ne peux pas exporter mes mesh ! car l'exporteur d'ogre n'est pas compatible avec la dll de purebasic :?

Publié : mer. 28/nov./2007 23:48
par comtois
Moi je n'étais pas bloqué, je pouvais faire des petits jeux avec :)

Depuis j'ai appris d'autres choses, d'autres méthodes de calcul pour les normales (pondérées par les angles) ou la hauteur sur le terrain, et PureBasic a évolué, il y a certainement de grandes améliorations à apporter au code et pourquoi pas de nouvelles fonctionnalités.

En fait, ça a un usage assez restreint mon truc, mais c'est un bon exercice.

Publié : mer. 28/nov./2007 23:58
par djfeeler2
tu ne connaitrais pas un logiciel qui puisse exporte en format mesh ? avec les materials ?

Publié : jeu. 29/nov./2007 21:22
par comtois

Publié : jeu. 29/nov./2007 21:50
par djfeeler2
es ce que l'exporteur gratuit est suffisant ?

Publié : dim. 27/janv./2008 17:54
par Fortix
Salut Comtois

Je suis très interessé par un tut complet sur la création de mesh, car je croix que tu es la personne qui pourra enfin me faire comprendre ce chapitre de l'histoire PBV4

un tut zip Télechargeable serait parfait :D

si tu te decide à réaliser un tut, ne pert surtout pas de temps dans la déco :wink:

ta réponse Comtois :D ?

Publié : dim. 27/janv./2008 18:17
par comtois
Ma réponse ?
regarde ici http://purebasic.developpez.com/sources/
Dans le chapitre 3D