Editeur terrain 3D en construction

Généralités sur la programmation 3D
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Editeur terrain 3D en construction

Message par comtois »

Voila tout est dans le titre , je suis en train de faire des essais , les fonctions 3D sont faites , il y aura encore des améliorations possibles , et des optimisations à faire, mais ce qui existe permet déjà d'envisager l'éditeur .

Pour ceux qui ont testé le code dans le post "Calcul d'une inclinaison 3D" , ils ont pu remarqué que j'utilisais une matrice pour construire un "terrain".

L'objectif de cet éditeur serait de simplifier la mise en forme du "terrain" . Maintenant que j'ai tout modifié , il est possible de mettre une texture différente par facette, ce qui n'était pas le cas dans le code précédent, je n'ai pas encore diffusé cette version , elle viendra avec la première mouture de l'éditeur.

Donc finalement , c'est un truc assez simple, le modelage du terrain se fait en élevant soit un point de la matrice , soit une facette soit un ensemble de facettes( les fonctions existent) . Ensuite on texture chaque facette , pour faire ça , le principe est exactement le même que pour un éditeur de map 2D .
Sélection d'une texture et on clique dans les cases à texturer .

La question c'est , est-ce que ça intéresse quelqu'un de bosser sur ce projet ?

Ou alors je diffuse les sources au fur et à mesure , et chacun pourra participer comme bon lui semble ?

Bon je vais déjà commencer pour moi , mais si d'autres sont intéressés , toutes les idées seront les bienvenues.

Le gros du boulot c'est de l'applicatif window, les fonctions 3D sont faites .
Je vais commencer par un truc simple , sommaire , mais par la suite , ça pourrait être bien d'utiliser les possibilités qu'offre MDI .
Et puis la base du code pourrait servir à faire un éditeur 2D , d'ailleurs pour texturer les facettes je pense présenter la chose sous la forme d'une map 2D , ça sera plus simple . avec possibilité de basculer en 3D.
Bon j'ai les idées , manque le temps pour le faire , et l'expérience des applis windows , donc voila , le projet est ouvert aux âmes de bonnes volontés :)

Dites moi ce que vous en pensez .
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Ca a l'air vraiment sympa :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Pour se faire une petite idée de ce que ça pourrait donner ,j'ai repris la matrice du code inclinaison 3D , et j'ai changé les textures , ça donne un truc comme ça (178ko , exe + texture ):
http://perso.wanadoo.fr/comtois/sources ... trice2.zip
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

le même exemple , enfin presque , cette fois ci , c'est presque une course de voiture , si si , avec beaucoup d'imagination :)
le fichier fait moins de 20ko , et il utilise la même texture que le code précédent.

http://perso.wanadoo.fr/comtois/sources ... rice2a.zip
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

pas mal !! :)

dit moi ! pour le problem RotateEntity(#Entity, x, y, z) non absolu

vu que tu affiche les "roues" a des hauteur differentes
serai t'il stupide de penser que tu puis faire un mesh cube
qui representerai le corp de la voiture dont les coordonnées serai

exterieur roueavgauche, jusqu'a exterieur roueavdroite
exterieur roueargauche, jusqu'a exterieur roueardroite

(je ne sait pas si on peut redassiner un mesh apres creation ? !!)
cela ne ferai pas une rotation, mais une deformation un peut comme les "ailes" d'une raie manta sur le fond de l'eau de l'ensemble du vehicule
qui pourrai faire illusion ?!

le mieux serai un RotateEntity(#Entity, x, y, z) absolu aux coordonées de l'univer!!

Fred ? :?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

j'y ai pensé à cette solution ,c'est tout à fait possible de modifier le mesh après création .Mais je préfère la solution des rotate , j'aimerais bien y arriver par cette voie .Pour l'instant je mets ça de côté ,Fred a annoncé une mise à jour d'OGRE assez rapidement , donc je vais attendre de voir ce qu'il y aura de nouveau .En attendant je bosse sur l'éditeur , et il sera toujours temps ensuite de bidouiller pour l'inclinaison ,si rien de nouveau pointe à l'horizon :)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Voila la première mouture de l'éditeur , c'est très incomplet ,et sûrement buggé :)
C'est juste pour donner une meilleure idée de ce que l'éditeur devrait permettre d'obtenir.

http://perso.wanadoo.fr/comtois/sources ... DBETA3.zip

Voir l'aide pour l'utilisation .

Il y a encore énormément de boulot , toutefois s'il y a déjà des commentaires , des suggestions , des améliorations souhaitables , des rapports de bugs ,n'hésitez pas :)

Vous pouvez déjà vous amuser à modifier ou créer une matrice.
Remarque : Je n'ai pas encore incorporée l'image dans le fichier , donc après avoir chargé un fichier , il faut charger la texture (celle fournie avec la démo ci dessous ).
Les paramètres sont encore en durs dans le prog ; ça sera configurable plus tard :)

Et donc voici un code qui permet de visualiser les matrices .
Attention à bien conserver le nom des fichiers "MatriceESSAI1.PMD" ,et "T16_64x64.png" pour la texture.

http://perso.wanadoo.fr/comtois/sources ... rice2b.zip
Dernière modification par comtois le dim. 13/juin/2004 18:35, modifié 2 fois.
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

ça a l'air super, sauf que chez moi, l'exe ce plante avec une erreur windows

je vois la fenetre de l'éditeur et puis schprout message d'erreur :cry:

patrick
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

comme ça , sans rien faire ?? ou en chargeant une texture ?
parce que si c'est ça , c'est "presque normal" j'ai encore un bug de ce côté :)

si c'est juste comme ça ,sans toucher à rien , là c'est inquiétant .
et ça te le fait aussi avec la Démo ? ou seulement avec l'éditeur ??
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

naaaa, ça y est j'ai trouvé... faut mettre la dll engine3d dans le m^me dossier que l'exe et ça marche...

:oops:

bon, ça plante à l'ouverture d'un fichier, dans le menu fichier...

patrick
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

oui là c'est normal :)

Enfin ,ça dépend ,si tu reprends le fichier fourni avec la démo ,c'est normal que ça plante .
Par contre , si tu refais une nouvelle map et que tu la sauvegardes, ça ne devrait pas planter quand tu l'ouvres .( les textures déconnent , je vais m'en occuper rapidement ,parce que c'est chiant )

Enfin comme je le disais , c'est une ébauche pour me faire une idée .

Toutes les remarques sont les bienvenues .
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Ca plante chez moi... plus de précisions sur le forum DB...
Sinon j'ia une remarque... Pas tres cool... J'ai beaucoup de mal
a m'en sortir avec l'interface... Je m'y retrouve pas vraiment...

Dri
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

ben voila c'est justement ce genre de commentaires que j'attendais :)
qu'est-ce qui te gêne dans l'interface ? et comment tu vois le truc ?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Bah en fait à la base j'ai un espece de carré... J'ai compris qu'il devait indiquer une direction à l'aide des boutons de rotation (mais aussi aux touches de direction qui pour moi sont tres bien pensées, ce serait classe que shift+direction fasse une translation au lieu d'une rotation...)...
J'ai réussi à charger un textureset mais la texture sélectionnée, bah c pas moi qui la choisie... En tois tentative j'ai eu herbe, je sais plus, et truc métallique...
Je n'arrive qu'à applique ma texture à TOUT le terrain... Les histoires de hauteur ne changent pas grand chose (en fait j'ai pas observé de changement...) et en bas à droite il y a deux trucs dont je ne connais pas le nom qui n'ont pas de légende...
Le controle de la caméra est bien foutu sinon... plutot intuitif, j'ai bien aimé...

C'est à peu pres tout...

Dri
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Dr. Dri a écrit :Bah en fait à la base j'ai un espece de carré... J'ai compris qu'il devait indiquer une direction à l'aide des boutons de rotation (mais aussi aux touches de direction qui pour moi sont tres bien pensées, ce serait classe que shift+direction fasse une translation au lieu d'une rotation...)...
Alors le carré , ça représente le curseur , la flèche sur le curseur indique le sens du déplacement . tu fais tout avec le curseur , il t'indique la hauteur de la facette sur laquelle il se trouve, tu peux texturer les facettes en te déplaçant avec le curseur , pour cela il faut valider le mode "change texture" ; et c'est la texture courante qui sera utilisée pour remplir les facettes . Pour choisir une autre texture ,il suffit de cliquer dans le Scrollarea sur l'image .Lorsque tu appuies sur CTRL et les Flèches Haut et Bas ,tu agis sur la hauteur de la facette en cours ,tu as un indicateur > Nouvelle Hauteur .Ensuite , si tu appuies sur la touche ALT et que tu déplaces le curseur , toutes les facettes sous le curseur seront à la hauteur définie précédemment.

Les boutons de rotations , permettent de faire tourner la camera , et uniquement ça .

la translation , tu l'as avec les flèches , tu déplaces ton curseur en x et en z sur la map ( observe les indications Position X et Position Z du curseur ).
L'affichage n'est pas terrible ( et je ne sais pas pourquoi ) , car si tu maintiens les flèches appuyées ,la position n'est pas mise à jour .

Mais je comprends ta remarque ,on a du mal à se repérer , on ne sait où on se trouve .et je cherche comment je pourrais représenter la map dans sa globalité ,une sorte de radar, pour repérer la position du curseur sur la map .
J'avais pensé aussi à mettre 4 vues , Vue de face ,de dessus , de côté , et une vue générale .Le problème c'est la taille de l'écran . ou alors il faudrait que je fasse plusieurs fenêtres , une fenêtre par afficher uniquement l'écran , et les autres fenêtre par fonction > texture ,camera , curseur .
Ou alors ,une seule vue à la fois , avec possibilité de basculer de l'une à l'autre ,mais à mon avis, ça va être déroutant , difficile de se repérer avec une seule vue .

Il y a un autre truc qui ne me convient pas c'est la façon de changer la texture , Je vais changer ça . Il faudra maintenir une touche enfoncée ( par exemple espace) et se déplacer avec le curseur , tant que la touche sera enfoncée les facettes sous le curseur seront texturées avec la texture en cours .Comme ça tu peux te promener sur la map et texturer quand tu veux , il suffit d'appuyer sur espace =>> je vais faire la modif demain :)
J'ai réussi à charger un textureset mais la texture sélectionnée, bah c pas moi qui la choisie... En tois tentative j'ai eu herbe, je sais plus, et truc métallique...
Je n'arrive qu'à applique ma texture à TOUT le terrain...
ça c'est étrange.
Pour l'instant ça ne fonctionne qu'avec la texture jointe au fichier, ça ne marchera pas avec une autre .Tu as essayé avec quoi ?
et en bas à droite il y a deux trucs dont je ne connais pas le nom qui n'ont pas de légende...
Euh ? dans la frame Facette ? ScaleX et ScaleZ ? ce n'est pas encore géré , et je ne sais pas si je vais le conserver, il faut que je fasse des tests.


Merci Dri pour tes remarques, ça aide à avancer :)
Répondre