Ce tutoriel sera composé de nombreuses parties, qui seront écrites au fur et à mesure de ma propre découverte et expérience... le but n'est surtout pas de créer une librairie, ou API ou je ne sais, mais simplement de s'amuser avec PHP avant tout ! Le but simple que l'on va se fixer sera quand même de générer à terme un paysage 3D avec des surface colorées et illuminées et une petite interface autour permettant de modifier tous les paramètres du script afin de se rendre compte facilement de tous les résultats possibles... Et tant qu'à faire, le moment venu, nous ajouterons des petites touches d'Ajax ;) histoire de vraiment s'amuser! Mais Ajax n'est pas le premier objectif, alors ne vous attendez pas à quoi que ce soit d'extraordinaire de ce côté, juste (f)utile ;)

Autre chose encore, le but étant juste de générer un paysage 3D, je compte me concentrer plus sur la génération d'image en PHP et la génération de la matrice des points représentant ce paysage que sur un code structuré, réfléchit, reposant sur des patterns ou autre.... bref l'intérêt de la chose n'est pas d'avoir une application évolutive, réutilisable ou je ne sais mais quelque chose qui fait ce qu'on lui demande et c'est tout ! J'essayerai d'organiser un minimum les choses, mais vous l'aurez compris ce n'est pas le but de l'exercice, et rien ne vous empêche d'aller plus loin après et d'en faire ce que vous voulez...

Ha oui une dernière chose avant d'entrer dans le vif du sujet, ne vous attendez surtout pas au final à un résultat comparable à ce que vous obtiendriez avec Terragen par exemple, hein ? Je suis tout seul et je n'ai certainement pas 10 ans de ma vie à passer la dessus[1] :)

En fait tout a commencé il y a 3 ans, alors que je travaillais déjà sur la réalisation de Linéo dans mon coin et que je voulais le faire en 3D en Flash en créant moi même un petit moteur 3D simple... et j'avais fait des tests en PHP afin de générer des formes et surtout des lignes de code en ActionScript pour Flash... Et donc j'avais à l'époque réalisé une petit appli[2] qui affichait une grille représentant un pseudo terrain 3Diso en mode filaire. Une partie de l'algo de base vient d'un code en QBasic que j'avais trouvé dans un article sur le net et que j'ai pu facilement adapter en PHP ;) Après j'ai ajouté pleins de petites trucs autour afin de pouvoir déjà paramétrer certaines choses, et je me suis penché aussi sur un dégradé de couleurs selon la hauteur du point[3].

Alors aujourd'hui désolé mais je ne vais pas vous proposer encore de code, malgré cette longue introduction, mais c'est première partie ne sera donc qu'une intro ;)

En revanche je vais quand même vous donner quelques images générées à partir de mon ancien script, que je nous re-coderons ensemble dans la partie 2 à venir...

J'espère que cette introduction et les quelques images vous donnent envi de lire la partie 2, et que vous vous dites : "vivement quelle soit écrite et en ligne !!!" :)

A suivre...

Notes

[1] Quoi que si un généreux mécène me lit et cherche où investir de l'argent sans aucune garantie.... je promet d'écouter toute proposition sérieuse ;) Et du coup je voudrais bien faire Terragen en PHP :)

[2] 150 lignes de code avec commentaires

[3] ce qui n'était pas dans l'article original