Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Génération Aléatoire de Terrains : Heightmap et 3D


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Rédacteur/Modérateur

    Génération Aléatoire de Terrains : Heightmap et 3D
    Bonjour à tous !

    Cet article est une introduction à la génération aléatoire de terrains en 3D à l'aide d'une heightmap. Il aborde un algorithme de génération, le Diamond Square, et un filtre de lissage, le Box Blur.

    N'hésitez pas à faire part de vos remarques, commentaires ou propositions d'améliorations !

    Génération aléatoire de terrains
    Tutoriels et FAQ TypeScript

  2. #2
    Modérateur

    Interessant article, mais tiens ca ressemble un peu à http://hiko-seijuro.developpez.com/a...iamond-square/ ? (bon y'a la partie 3D en plus certes).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur/Modérateur

    Je tiens à rappeler que je mentionne l'article cité :
    Pour ceux qui souhaitent rentrer dans le détail du fonctionnement de l'algorithme, il existe un très bon article en français rédigé par Hiko Seijuro.
    Aussi, à défaut d'être révolutionnaire, mais ce n'était pas mon but, je pense que mon article a sa propre originalité sur plusieurs points :
    1. Je propose un algorithme du Diamond Square in extenso intégré à l'article.
    2. L'algorithme du Diamond Square que je présente est itératif à contrario de celui que tu cites.
    3. Je propose une implémentation TypeScript/JavaScript de l'algorithme du Diamond Square pour une utilisation Web.
    4. Mon article présente la structure de codage d'une heightmap 8 bits.
    5. Je présente une implémentation pour un rendu en 3D, comme tu le soulignes.
    6. Je présente un algorithme de lissage, le Box Blur, indépendant du Diamond Square ce que ne fait pas l'article que tu cites.
    Tutoriels et FAQ TypeScript

  4. #4
    Modérateur

    Mon message ne se voulait pas critique et effectivement je n'avais pas pris certains point que tu cites en compte (donc la version itérative qui me semble un point important)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Rédacteur/Modérateur

    Aucune méprise de mon côté. Mais c'était juste pour préciser pour d'autres. Je n'ai pas fait de plagiat
    Tutoriels et FAQ TypeScript

  6. #6
    Responsable Arduino et Systèmes Embarqués

    Bonjour,

    Ton article m'a grandement inspiré au point de proposer un petit projet à des élèves de Terminale :


    Un générateur d'étapes de montagne pour course cycliste

    Bravo pour la qualité de tes articles

  7. #7
    Rédacteur/Modérateur

    Ça me fait plaisir que mon article a pu être utile à quelqu'un

    Je n'aurai pas pensé par contre qu'un tel sujet puisse être abordé en Terminale. C'est audacieux !
    Vu la vidéo, tu as l'air d'avoir réussi ton pari. Vraiment sympa comme résultat.

    Par curiosité, quelles consignes as-tu donnés aux élèves ? Avaient-ils déjà à disposition un programme ou devaient-ils programmer aussi ?
    Tutoriels et FAQ TypeScript

  8. #8
    Responsable Arduino et Systèmes Embarqués

    Ce sont des élèves de Terminale ISN, des ch'tis gars motivés.

    Mais je dois t'avouer que la vidéo de mon message précédent est un prototype que j'ai moi-même réalisé vite fait histoire d'étudier la faisabilité mais j'espère bien qu'ils arriveront à un résultat similaire à la fin de leur projet dans deux mois (voire même en poussant davantage vers la 2D, on verra).

    Au départ, beaucoup de discussions et de réflexion sur l'algorithme (midpoint displacement), le principe de la méthode n'étant pas très compliquée. Nous sommes partis sur une méthode récursive.

  9. #9
    Rédacteur/Modérateur

    Bon proof of concept dans ce cas.
    Les élèves n'ont plus qu'à ^^
    J'espère qu'on aura un débrief de ce projet de ta part
    Tutoriels et FAQ TypeScript

  10. #10