[OpenGL] Création de Map pour un jeu en 3D

Création de Map pour un jeu en 3D [OpenGL] - Divers - Programmation

Marsh Posté le 24-11-2002 à 19:58:55    

Bonjour à tous,
 
Pour mon projet de 2eme année de DUT, je dois développer un jeu en 3d (un MMORPG) même. Mon rôle dans ce projet est de m'occuper de la partie graphique, et plus précisement tout se qui se rapporte à l'environnement. Donc bien sûr, pour commencer je veux créer la map. Par contre, dans la majorité des docs que j'ai lues sur l'opengl ou le développement de jeu, ne m'aide pas. Bref, quelqu'un peut m'aider à la création de la map de mon jeu (me dire comment faire juste :))
 
Thx


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 24-11-2002 à 19:58:55   

Reply

Marsh Posté le 24-11-2002 à 20:24:33    

Ben tu cree un modele ( 3dsmax, tout ce que tu veux) qui soit une map.
 
Tu le sauve et tu le charge dans le programme...
 
Spadur.
 
Bon courage pour la creer cependant. Je serai toi je m'aiderai d'algos mathematiques pour placer les arbres par exemples, etc, sinon, tu va en chier.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 24-11-2002 à 20:27:37    

ah ouais qd mm
cad que 3ds je maitrise trop pas...
 
 
Enfin dc c'est ce que je voulais savoir: les concepteurs de jeux créent leur map avce des softs de modelisation 3D, ca va être marrant
 
Mais après comme je fais pr l'exploiter? l'intégrer ok, mais tu me parlais d'algo pr les arbres, ok, mais je les utilise comment? dans mon prog?


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 24-11-2002 à 20:40:48    

Ta map cela sera quoi a la base ? Une structure non ?
 
EH ben, je suis pas un dieu de la creation 3d, mais ce que je te conseillerai de faire, c'est de faire une map en partant d'un giganstesque carre que tu deformes ( plaines, collines, rivieres, ravins, etc, pas trop trop dur a faire).
 
Ensuite, tu sauvegarde et tu charges la map dans ton programme : A y ai tu as ton "terrain".
 
Ensuite il faut peupler un peu le terrain. Tu cree donc ton objet "arbre", et tu va faire une structure contenant toutes les positions ou se trouveront les arbres (X,Y,Z).
 
Pour creer cette liste je te conseille d'automatiser le processus.Style faire une fonction qui prends un "centre" de ta foret, avec un longueur que tu specifie. Et qui va creer des arbres, en checkant bien leur hauteur X dans la map, autour de ce centre, avec des contours legerement "random" histoire de pas avoir une foret ronde, et un espacement mini entre chaque arbre de la foret.
 
Puis une fonction qui va dessiner les arbres das un rayon X autour de ta camera.
 
C'est comme ca que je verrai le boulot personellement.


Message édité par Tetedeiench le 24-11-2002 à 20:43:14

---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 24-11-2002 à 20:51:14    

ah oui merci
en fait je voyais pas ça comme un objet 3ds (enfin c un exemple)
j'ai vu dans des tutos qu'ils utilisaent des fichiers .raw, souvent générés, mais d'un autre coté, j'ai pas envie de générer ma map, seulement je risque de galérer du coup alors ;)
 
Je vais me choper blender et tenter ça alors


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 24-11-2002 à 21:48:49    

Tu sais que le projet dans lequel tu t'es lance est un projet de fou qui va te consumer pas mal de temps et que vousn'arriverez certainement pas a finir, tu t'en rends compte j'espere :??:


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 24-11-2002 à 21:49:55    

c clair ca l'air chaud ...

Reply

Marsh Posté le 24-11-2002 à 21:55:00    

Tetedeiench a écrit a écrit :

Tu sais que le projet dans lequel tu t'es lance est un projet de fou qui va te consumer pas mal de temps et que vousn'arriverez certainement pas a finir, tu t'en rends compte j'espere :??:




 
 
ouais, mais on était trop motivé (on l'est tjs) slmt il ne sera pas aussi complet que ça peut en avoir l'air, et bon, on a le potentiel pr réussir. Le pb c tjs de démarrer, pke il faut apprendre, c chaud :/


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 24-11-2002 à 22:04:50    

Pour faire un planetarium, en apprenant l'OpenGL, il m'a fallu 1 mois.
 
Et j'etais pas un programmeur debutant...
 
Donc bon, tse, spasisimple.
 
Vous allez voir quand vous allez lire le blending and co.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 24-11-2002 à 22:09:22    

ouais, t'inquietes je te crois, ça fait un petit moment que je suis dessus, pourtant j'ai encore pondu aucune ligne :/
 
on va dire que je suis en phase d'apprentissage ...


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 24-11-2002 à 22:09:22   

Reply

Marsh Posté le 25-11-2002 à 10:33:26    

tout est possible si les personne de ton projet sont motivé, moi j'ai fait un jeu en 2d avec directx7 comme projet de fin d'annee, on en a chier comme pas 2 pour apprendre la 2d avec directx, ca a fait un truc banal au final.  
ensuite je me suis mis a opengl et j'ai fait une demo, j'ai trouver ca bien plus simple, je me dit que leur projet est realisable, pour peu qu'il veulent pas faire trop compliqué, genre un espece de chat en 3d ou on peut se balader

Reply

Marsh Posté le 25-11-2002 à 11:18:43    

ouais, on va faire ca comme ça en gros, et puis en fonction du temps on améliorera. Slmt ben 1ere étape: création de la map = galere galere  [:tux04]

Reply

Marsh Posté le 25-11-2002 à 11:24:45    

et pourquoi un truc plat ca vous plait pas pour l'insntant?

Reply

Marsh Posté le 25-11-2002 à 12:18:17    

Reply

Marsh Posté le 25-11-2002 à 12:47:19    

bein au lieu que ce soit un terrain avec des montagne, tu fait un terrain plat pour commencer, il y a surement beaucoup de chose graphique a integrer, alors autant faire simple au debut non?
 
au fait tu es a quel iut?

Reply

Marsh Posté le 25-11-2002 à 12:56:16    

IUT Charlemagne, Nancy
 
Oui tu as raison, seulement je n'ai pas non polus envie de me bloquer plus tard, tu vois, si le terrain, c'est un objet graphique à importer, je pense que les modifications futures seront difficiles...
 
En fait, j'aimerais créer un éditeur, comme ça je pense que ça faciliterait les choses, mais avant d'en arriver là, il faut que je trouve le moyen de créer une map simple avant de chercher à en générer ;)


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 13:28:08    

le plus simple c'est d'importer un objet 3D venant d'un modeleur car on a juste besoin de savoir la coordonnée des triangle et eventuellement les coordonnée des texture(et encore pas besoin). Tu aura aussi les normal mais je doute aussi que tu en ai besoin, donc en fait il te faut seimplement des coordonées de sommet ainsi que la correspondance de chaque sommet avec un bout du triangle.
 
une fois que tu as ca tu l'affiche et ca te fait un terrain.

Reply

Marsh Posté le 25-11-2002 à 13:37:02    

ben à la limite, j'ai pas besoin d'importe de fichier pour ça: si ce n'est qu'un tableau de sommets, donc de coordonnées je peux le faire moi même et ds mon prog opengl le faire les afficher non? reste à savoir comment faire le lien entre mon editeur/générateur et mon programme opengl
 
J'espère ne pas dire trop de conneries :)
 
Mais d'un autre coté un éditeur ça devient ptete chaud, à moins d'avoir une vue 2d, et ça ne rend pas trop.
 
pteet utiliser le moteur graphique du jeu? ça peut le faire, mais niveau GUI ca doit être chaud à faire qch de pratique
 
 
Enfin si ce ne sont que des sommets qui forment des triangles, ça simplifie la chose, non?


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 13:41:55    

bein oui tu veux que ce soit koi?
en fait le plus simple serai de faire un tableau de sommet a la main main ca risque de vite te prendre la tete, je vais essayer de te faire un chtit exemple car je bosse sur un truc presque similaire.
 
je pense que dans une heure je pourrait te fournir un ptit truc.

Reply

Marsh Posté le 25-11-2002 à 13:43:31    

merci c cool, ds une heure je serais en cours, mais fin d'aprm je suis de nv là
 
mais bon oui je vias commencer par en faire un à la main, avant de penser à un éditeur :D


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 14:21:47    

voila c fait et c'est dans ta boite mail

Reply

Marsh Posté le 25-11-2002 à 17:04:47    

ah oui je vois, oui c'est bien ce que j'avais compris de ton explication, merci bcp, ca m'aide


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 19:37:57    

bein de rien si ca peut te servir

Reply

Marsh Posté le 25-11-2002 à 19:52:13    

ouaip
et pis g encore récup d'autres docs intéressantes, vais ptete pv faire qqch de bien  [:yaisse2]


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 19:54:07    

Citation :

ah ouais qd mm
cad que 3ds je maitrise trop pas...


 
enfin 3Ds autant que la prog c'est un vrai metier
tout de meme :)
c'est pas comme euh.. chanteur par exemple :D
(ben oui il suffit de passer a l'academie..)
 
Donc tu peux commencer a faire des choses simples sous 3DS mais si tu veux etre efficace et creer des modeles comme dans les jeux commerciaux, il faut serieusement bosser, suivre des formations acheter des bouquins etc...
 

Citation :

Enfin dc c'est ce que je voulais savoir: les concepteurs de jeux créent leur map avce des softs de modelisation 3D, ca va être marrant


 
Non les concepteurs de jeux utilisent les outils qu'il faut
suivant le besoin.
Tu peux utiliser un editeur tout fait comme l'unreal engine ou qradiant pour creer des niveaux de jeux. A toi par contre d'ecrire le code qui transformera le format de sortie de ces editeurs dans une version utilisable par ton moteur de jeu (conversion de la geometrie, des objets, prise en compte des textures etc).
 
Pour un simple terrain, tu peux te contenter d'un logiciel de dessin pour faire une carte d'elevation. Plus c'est blanc plus c'est haut. tu peux regrouper plusieurs cartes d'elevation pour faire un terrain plus grand.
 

Citation :

Mais après comme je fais pr l'exploiter? l'intégrer ok, mais tu me parlais d'algo pr les arbres, ok, mais je les utilise comment? dans mon prog?


 
Il faut que les notions utilisees dans ton editeur, logiciel 3D ou quoi que ce soit que tu as utilise, se retrouvent dans ton moteur 3D. C'est a dire que tu aies un moyen de lire une texture et de l'appliquer a l'objet courant. Que tu aies une gestion d'une camera, des lumieres. Que tu aies des objets en volume et des collisions. Que tu aies la possibilite de determiner si un objet est visible ou non de maniere rapide.
 
LeGreg

Reply

Marsh Posté le 25-11-2002 à 20:00:44    

ouaip merci, c'est d'ailleurs pour ça que je veux faire un éditeur. L'histore des couleurs, j'y avais déjà pensé, le pb c'est que qd je fais qqch, j'ai tendance à vouloir que ce soit le must ;D donc on va voir.
 
Là la méthode de kick est bien utile, le principal problème est que ça reste aléatoire, mais ça peut m'aider à créer un éditeur, qui au début sera bien simple, puis plus complexe, après la difficulté relèvre presque plus de l'éditeur que du jeux.
 
Je vais oublier les joies du sommeil (ce que j'ai déjà fait de toute façon :D) mais en fait ce qu'il y a, c'est que j'avais vraiment pas l'impression d'avancer (maintenant ça va mieux, même si je n'ai encore rien pondu).
 
Des fois qu'il y ait des concepteurs de jeux ici, peuvent-ils me dire quel chemin ils prennent en général pr développer un jeu? (par quoi ils commencent quoi =) parce que je me sens encore un peu perdu (et ça se remarque ptete ds mon post =)
 
thx a lot


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 22:10:01    

Methodlol a écrit a écrit :

 
Des fois qu'il y ait des concepteurs de jeux ici, peuvent-ils me dire quel chemin ils prennent en général pr développer un jeu? (par quoi ils commencent quoi =) parce que je me sens encore un peu perdu (et ça se remarque ptete ds mon post =)
 
thx a lot




 
(je suis pas concepteur de jeu)
A mon avis, le truc pas trop mal c'st d'y aller un peu comme on le sent. A la fin on a un truc boiteux, qui marche pas trop bien, avec des bouts qui font un peu bricolage. Alors on recommence, en affinant. Mais c tjs moche. Alors on continue...etc etc :D ca doit s'appeler l'experience :D
 
Sinon, a mon avis le plus important est de dire exactement (niveau fonctionnalité) ce que tu veux et (surtout) t'y tenir. Sinon ca va partir dans tous les sens. pis un pitit diagramme pour modeliser tout ca fait pas de mal
 
 

Reply

Marsh Posté le 25-11-2002 à 22:12:28    

Methodlol a écrit a écrit :

ben à la limite, j'ai pas besoin d'importe de fichier pour ça: si ce n'est qu'un tableau de sommets, donc de coordonnées je peux le faire moi même et ds mon prog opengl le faire les afficher non? reste à savoir comment faire le lien entre mon editeur/générateur et mon programme opengl
 
J'espère ne pas dire trop de conneries :)
 
Mais d'un autre coté un éditeur ça devient ptete chaud, à moins d'avoir une vue 2d, et ça ne rend pas trop.
 
pteet utiliser le moteur graphique du jeu? ça peut le faire, mais niveau GUI ca doit être chaud à faire qch de pratique
 
 
Enfin si ce ne sont que des sommets qui forment des triangles, ça simplifie la chose, non?




 
pour les paysages, tu peux partir des .DEM (trouvable sur le net); C'est les topo de l'europe/asie etc etc. C de grande taille (4800x6000) donc fodra retailler dedans (sauf si tu veux pouvoir gerer de pareilles taills). Autre possibilité, la heightmap (image n&b, tu utilise la couleur pour la hauteur). Pas trop mal mais effet d'escalier previsible si tu n'affines pas (lissage courbe quelconque). Et pour finir tu peux tres bien generer ton paysage a coup de perlin noise & autre (fractale ?)
 
 
 

Reply

Marsh Posté le 25-11-2002 à 22:29:05    

merci
 
en fait la je pars sur la conception d'un éditeur, je considère ma map au départ comme un rectangle ou carré, je la divise et je joue sur la hauteur pour le relief (un peu comme une grille)
 
on m'a conseillé ça, ca me parait pas mal non?


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 25-11-2002 à 22:36:01    

Methodlol a écrit a écrit :

merci
 
en fait la je pars sur la conception d'un éditeur, je considère ma map au départ comme un rectangle ou carré, je la divise et je joue sur la hauteur pour le relief (un peu comme une grille)
 
on m'a conseillé ça, ca me parait pas mal non?




 
 
yep, mais perso je ferais bien un pitit perlin pour pas partir de 0

Reply

Marsh Posté le 25-11-2002 à 22:50:51    

Reply

Marsh Posté le 25-11-2002 à 23:09:56    

franchement, vu que tu débute, commence par du simple.
 
Tu fais une grille 2D et tu attribues une altitude à chaque vertex. Le plus simple est de faire une image noir et blanc dans un soft de dessin (meme paint fera l'affaire !) et de lire cette image dans ton programme. tu attribues alors à chaque vertex une altitude correspondant à la valeur de couleur du pixel associé dans l'image.
 
Tu peux bien sur générer une map d'altitude (une heightmap) directement dans ton programme, grace à différente méthode (fonctions mathématiques, bruit de perlin...).  
 
Cependant, je te couseille de commencer par quelque chose de simple, il sera toujours possible par la suite de ne plus utiliser de heightmap. Plus tard, tu pourra meme envisager, si tu as le temps, de mettre en place un algo de niveau de détail pour ton terrain. Là, tu vas commencer à t'amuser un peu ;)

Reply

Marsh Posté le 25-11-2002 à 23:41:56    

Citation :

Pas trop mal mais effet d'escalier previsible si tu n'affines pas (lissage courbe quelconque


 
enfin effet d'escalier seulement si la resolution du terrain est superieure a celle de la heightmap..
 
LeGreg


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 26-11-2002 à 00:16:04    

ouaip merci de vos conseils
 
Mais ptete que je me rends pas compte, mais ça ne me parait pas trop difficile de créer un éditeur: je crées un tableau à 2 dimensions de points 3d, une dimension pr l'abscisse, une pr l'ordonnée, et la valeur c'est la hauteur. Au départ j'initialise tout à 0, j'ai donc une plaine dirons-nous, après je sélectionne un point et je modifie son altitude (ainsi que l'altitude des points voisins, histoire de ne pas avoir un pic :))
Niveau rendu, je considère chq poitn comme le sommet d'un triangle et je les relie. Bon ok c'est plus chiant à créer la map, mais j'ai ce que je veux au final et je pourrais me reservir de l'éditeur tout au long de la conception du jeu, non?


---------------
CGP Kingmax PC3700/PC4000 - DFI Lanparty UT nF3 250Gb
Reply

Marsh Posté le 26-11-2002 à 05:42:04    

Si tu veux t'amuser a faire ta map en filant les coorconnees de chaque polygone dans un tableau tu va te marrer.
 
Je te disais d'importer un objet 3dsmax pour te simplifier la vie ( on trouve des routines de chargement un peu aprtut via google).
 
Donc bon.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le 26-11-2002 à 09:36:24    

legreg a écrit a écrit :

Citation :

Pas trop mal mais effet d'escalier previsible si tu n'affines pas (lissage courbe quelconque


 
enfin effet d'escalier seulement si la resolution du terrain est superieure a celle de la heightmap..
 
LeGreg
 




 
en fait, je pensais a la vieille feinte, genre quand tu scale ta heightmap pour avoir un relief plus marquee, genre:
 
vtx.y = heightmap[..] * scale;
 
ca ca donne de sale effet de marche tout pas beau
 
 
 

Reply

Marsh Posté le 26-11-2002 à 09:40:04    

Tetedeiench a écrit a écrit :

Si tu veux t'amuser a faire ta map en filant les coorconnees de chaque polygone dans un tableau tu va te marrer.
 
Je te disais d'importer un objet 3dsmax pour te simplifier la vie ( on trouve des routines de chargement un peu aprtut via google).
 
Donc bon.




 
pour le coup, pas besoin de se prendre la tete a faire exporteur/importeur. Vu que le terrain sera tres probablement une grille de vertex dispose regulierement, alors calculer les coord X/Z est un jeu d'enfant, et le Y vient de la heightmap, donc bon, peinard
 
genre :
 
[cpp]
for (int i=0;i<taille;i++)
{
for (int j=0;j<taille;j++)
{
vtx[i][j].x = i * scaleX;
vtx[i][j].z = j * scaleX;
vtx[i][j].y = heightmap[i][j] * scaleY;
}
}
[cpp]
 
pour relier ensuite les points un a un, le mieux est de faire un pitit dessin sur feuille et de voir ainsi comment generer les tris formant le paysage
 
 
 

Reply

Marsh Posté le 26-11-2002 à 09:41:57    

un tres bon site pour apprendre a créer des jeux:
www.gamedev.net, plein d'articles tres interessant et un forum tres actif!

Reply

Marsh Posté le 26-11-2002 à 12:56:39    

chrisbk a écrit a écrit :

 
 
pour le coup, pas besoin de se prendre la tete a faire exporteur/importeur. Vu que le terrain sera tres probablement une grille de vertex dispose regulierement, alors calculer les coord X/Z est un jeu d'enfant, et le Y vient de la heightmap, donc bon, peinard
 
genre :
 
[cpp]
for (int i=0;i<taille;i++)
{
for (int j=0;j<taille;j++)
{
vtx[i][j].x = i * scaleX;
vtx[i][j].z = j * scaleX;
vtx[i][j].y = heightmap[i][j] * scaleY;
}
}
[cpp]
 
pour relier ensuite les points un a un, le mieux est de faire un pitit dessin sur feuille et de voir ainsi comment generer les tris formant le paysage
 
 
 
 




 
ouaip, je veux faire ça, mais sans heightmap en fait, contrairement à ce que dit tetedeiench, je vais pas donner les coord de chq polygone, les absc et ord st gérées automatiquement, pr les hauteurs, je regle la hauteur d'un point, et les points voisins sont affectés par la transformation. Le nb de points voisins affectés est géré par une autre propriété: la raideur
 
Ca permet d'avoir mon niveau comme je veux, de savoir ce que je fais, et d'avoir au final un éditeur complet de jeu

Reply

Marsh Posté le 26-11-2002 à 17:56:21    

chrisbk a écrit a écrit :

 
 
en fait, je pensais a la vieille feinte, genre quand tu scale ta heightmap pour avoir un relief plus marquee, genre:
 
vtx.y = heightmap[..] * scale;
 
ca ca donne de sale effet de marche tout pas beau
 
 
 
 




 
Pas con. Mais ca risque d'etre un peu geometrique.


---------------
L'ingénieur chipset nortiaux : Une iFricandelle svp ! "Spa du pâté, hin!" ©®Janfynette | "La plus grosse collec vivante de bans abusifs sur pattes" | OCCT v12 OUT !
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed