Publicité
+ Répondre à la discussion
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 30
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut [Papier] Generation procédurale de planetes

    Bonjour a tous!

    Voilà, je m'apprete dans les jours à venir à faire ma premiere contribution sur developpez.com...

    Je suis entrain d'ecrire un papier d'une trentaine de page lié à la generation d'une planete procéduralement de A à Z:

    La premiere partie traitera de la generation fractale du terrain (divers algorithme en fonction du relief souhaité: Perlin noise, diagramme de Voronoi, cratérisation et mouvement brownien)

    La seconde partie traitera de la coloration du terrain:
    Distribution selon la loi normale (modifié certe) pour mixer les divers type de terrain au bon endroit (herbe, foret, glace etc etc...)

    La troisieme partie traitera de l'aspect 3d, principalement des shaders en GLSL:
    Génération de l'atmosphere, utilisation de technique de normal mapping + specular + cloud + cycle jour/nuit

    Enfin, la quatrieme et derniere partie proposera une implementation en Java avec JMonkeyEngine pour le rendu 3D!

    Voilà pour le résumé, mais quelques questions me taraude l'esprit:
    * Est-ce bien en algorithmie que je doit poster cela? Ou partie 2D/3D serait plus approprié...
    * Je me connais, et je sais que parfois je ne sais pas dutout m'expliquer
    J'ai donc peur de passer certains point sensible demandant un peu plus d'eclaircissement! De plus, je n'ai pas eu une formation tres efficace en mathématiques, ce que j'ai appris, je l'ai appris en autodidacte! J'ai donc peur d'avoir mal ecrit certaines formules etc...

    Bon, dans tout les cas, je posterai demain soir le debut de papier (la premiere partie est déjà pas mal avancée), merci de repondre a mes angoisses!

  2. #2
    Rédacteur/Modérateur

    Avatar de millie
    Profil pro
    Inscrit en
    juin 2006
    Messages
    6 939
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : juin 2006
    Messages : 6 939
    Points : 8 758
    Points
    8 758

    Par défaut

    Il n'y a pas de soucis, tu pourras poster ta contribution déjà ici

    On jettera un oeil et on contactera éventuellement la rubrique 2D/3D car ça pourra effectivement concerner les deux rubriques.


    J'ai donc peur de passer certains point sensible demandant un peu plus d'eclaircissement! De plus, je n'ai pas eu une formation tres efficace en mathématiques, ce que j'ai appris, je l'ai appris en autodidacte! J'ai donc peur d'avoir mal ecrit certaines formules etc...
    On verra ça

    Je ne répondrai à aucune question technique en privé

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Chose promise, chose dû!

    Voici une toute premiere ébauche du papier précités! Il fait tres... ébauche!

    Bon, désolé pour les fautes, c'est encore le cadet de mes soucis

    Pour etre franc, je trouve certaines parties vachements foireuses, des explications sombre et illisibles, donc n'hesitez pas pour vous acharner sur quelques parties!

    En passant, vous pouvez toujours commenter mes methodes (un rendu final est disponible dans les dernieres pages)

    Merci pour les commentaires!
    Fichiers attachés Fichiers attachés

  4. #4
    alex_pi
    Invité(e)

    Par défaut

    Citation Envoyé par anykeyh
    Chose promise, chose dû!

    Voici une toute premiere ébauche du papier précités! Il fait tres... ébauche!
    Hello !

    Tout d'abord, merci beaucoup d'avoir passé tout ce temps pour faire un tel tutoriel. Je lirai ça avec plaisir un de ces 4

    En revanche, je vais tout de suite faire une critique, désolé. Si un jour tu as le temps de jeter un coup d'oeil du coté de LaTeX, ce serait super chouette ! Les formules dans le PDF sont mortellement pixelisées, ça pique les yeux..

    Mais encore une fois, l'effort est impressionnant.

  5. #5
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 961
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 961
    Points : 15 082
    Points
    15 082

    Par défaut

    Très joli tutoriel, tres accessible meme pour les non initiés.

    Mes petites remarques sur le papier actuel:

    - Le plan: je changerai "Partie 2 : Génération des couleurs" par "Partie 2 : Génération des types de terrains", ou quelque chose du style. Cela pour séparer les parties 1 & 2 qui sont plutot "mathematiques" et les parties suivantes qui sont plutot "graphiques".

    - Partie 1: La fonction de bruit de Perlin n'est pas vraiment '"uniformément distribuée", meme si je comprend ce que tu veux dire par la. D'ailleur, tu pourrais augmenter la "non-uniformité" en choisissant des fonctions "Fi()" discontinues (~ signal carré) pour certaines octaves. Mais c'est un autre débat.

    - Partie 2: Rien a ajouter: c'est clair et précis. Le résultat obtenu est vraiment beau. Ma seule remarque () c'est que ton approche globale (bruit 3D + filtrage voronoi + proba terrain) va te generer toujours le meme genre de chose pres des cotes: un effet "atole" (bleu clair) dû a une pente "continue" entre la terre et la mer. Il faudrait p-e ajouter qqc dans la partie 1 pour avoir des cassures (falaises ou des fausses marines).

    - Partie 3: J'attend la partie sur les nuages qui m'interesse beaucoup (perlin noise, le retour ?) . Sinon, un petit paragraphe léger sur le rendu de gouraud/phong serait sympa (du meme style que le paragraphe sur perlin).


    PS: Je me permet d'ajouter que j'ai déja pratiqué ce genre de developpement durant mes années d'etudes... Modelisation fractale / L-system, generation textures 2D/3D (perlin), simulation d'evolution (erosion, morph, croissance), rendu gouraud/phong, raytracing, radiosité, ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 173
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 173
    Points : 12 816
    Points
    12 816

    Par défaut

    Citation Envoyé par pseudocode
    (falaises ou des fausses marines).
    il y a des vraies fosses marines ...


    Désolé j'ai pas pu m'empêcher
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Merci pour vos remarques!

    alex_pi > comme tu dis, je vais me lancer dans Latex! Bon là j'apprend encore >.< mais c'est sympa je trouve

    pseudocode> Merci beaucoup.
    Pour les falaises, c'est vrai qu'actuellement c'est pas encore ça! J'ai pas encore trouvé la solution, donc si jamais t'a une petite idée n'hesite pas!

    Pour les nuages, je pense que cela va etre relativement difficile, etant donné
    la presence de diverses sous structures et la repartition de front nuageux... (http://www.kuffner.org/james/gallery...rth_clouds.jpg)

    Je tenterai bien une marche au hasard avec gestion de fronts (en fait des courbes) , accompagné d'un algorithme de "swirl" au niveau de l'équateur pour la generation de cyclones!

    Je vais aussi ajouter une petite explication sur la projection de Mercator, et dés que j'ai le temps effectuerai une modification de ma carte en fonction (exemple: http://local.wasp.uwa.edu.au/~pbourk...perlin/sun.gif )

    Sinon je m'occupe transformer ce debut en latex puis taper la partie 3 sur l'illumination et les shaders

  8. #8
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Bon, le portage sous latex est moins compliqué que prevu
    Tres sympatique systeme, la syntaxe est pas trop complexe (quoique...)

    Sinon, j'ai enfin reçu ma commande d'Amazon.com:
    http://www.texturingandmodeling.com/

    Pour les nuages, je risque d'avoir vite fait une solution, y'a un chapitre complet dessus!

    Sinon, existe-t-il un ftp ou tout autre moyen ou je puisse placer les mises à jour de mon document?

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Hop petit up! J'ai mis le fichier latex, mais c'est dvi + postscript, le format PDF n'arrive pas a sauvegarder les images...
    Apparament il faudrait passer par ghostscript, et imprimer le dvi vers un fichier pdf (quel bordel!)
    Je ferai ça un peu plus tard

    Enfin bon déjà j'ai bien avancé, il manque pas mal d'image, je dois convertir en fichier .eps... c'est long

    J'ai ajouté toute la partie sur les shaders!
    J'ajoute les images, la cratérisation, et je me lance dans la derniere partie: l'implementation en Java avec JMonkey

    Merci d'avance pour les remarques (bonne et mauvaise)

    Edit: bon les images ne sont pas presente, alors je refilerai au format PDF demain soir...
    Fichiers attachés Fichiers attachés
    • Type de fichier : rar dvi.rar (231,2 Ko, 69 affichages)

  10. #10
    Rédacteur/Modérateur

    Avatar de millie
    Profil pro
    Inscrit en
    juin 2006
    Messages
    6 939
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : juin 2006
    Messages : 6 939
    Points : 8 758
    Points
    8 758

    Par défaut

    Citation Envoyé par anykeyh
    Sinon, existe-t-il un ftp ou tout autre moyen ou je puisse placer les mises à jour de mon document?

    Il faut que je jette un oeil à ton document ce soir (je n'ai rien pour lire les .rar sur place). On pourra éventuellement t'ouvrir un domaine sur developpez si tu le souhaites (donc tu auras un ftp) et la possibilité de créer une entrée vers ton article du style : http://humbert-florent.developpez.com/ ?
    Je ne répondrai à aucune question technique en privé

  11. #11
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Ce serait avec plaisir (ouah la classe !)

    Plus serieusement, en meme temps ça ne presse pas!

    Pseudo code: Pour les falaises j'ai trouvé une bonne technique, il suffit de... baisser l'ecart-type sur la pente sur le terrain de type "atoll"!
    De ce fait, si la difference entre le planché océanique et le continent est trop forte, cet effet disparait

    Voilà le resultat (avant = a gauche, apres = a droite)



    (on voit mal, sauvegarde en jpg avec paint -_-')

  12. #12
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 961
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 961
    Points : 15 082
    Points
    15 082

    Par défaut

    Citation Envoyé par anykeyh
    Pseudo code: Pour les falaises j'ai trouvé une bonne technique, il suffit de... baisser l'ecart-type sur la pente sur le terrain de type "atoll"!
    De ce fait, si la difference entre le planché océanique et le continent est trop forte, cet effet disparait
    Yes. Ca rend pas mal... attention a ne pas trop en abuser, j'ai l'impression qu'il n'y a plus aucun atolls .

    Tu peux aussi faire l'effet inverse: créer des plages de sable le long des cotes. Il faut juste creer une probabilité pour cette nouvelle texture (pente faible, proche de l'eau, orientation, ...)

    felicitations pour cette contribution

    (Ca me donne presque envie de recoder en Java mes vieux algos de rendu C/Asm)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 961
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 961
    Points : 15 082
    Points
    15 082

    Par défaut

    Ca y est. j'ai retrouvé mon vieil algo en C du temps de mon atari ST () et je l'ai porté en java

    Bon, bien sur ca vaut pas celui de anykeyh, surtout au niveau texture .

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #14
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Bon pour les nuages je pense utiliser une approximaiton des équations de Navier Stokes!
    Parcontre, je sais pas si j'ai le niveau

    L'objectif serait de calculer après N iterations la densité de matiere (en l'occurence de nuage) à chaque point sur une surface 64x64, à resampler cette surface et à moduler par un Perlin Noise!

    ça peut le faire non?

    Si jamais vous avez de bon exemples de l'utilisation dans le cadre d'une simulation 2D, je suis partant (la je suis entrain de regarder un bout de code qui semble pas mal, mais au plus sa avance au plus je me dit que ça va etre complexe )

  15. #15
    Rédacteur/Modérateur

    Avatar de millie
    Profil pro
    Inscrit en
    juin 2006
    Messages
    6 939
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : juin 2006
    Messages : 6 939
    Points : 8 758
    Points
    8 758

    Par défaut

    Citation Envoyé par anykeyh
    Bon pour les nuages je pense utiliser une approximaiton des équations de Navier Stokes!
    Parcontre, je sais pas si j'ai le niveau
    C'est pas simple et c'est souvent bourrin en temps.
    Tu peux jetter un oeil à mon cours :
    http://humbert-florent.developpez.co...hmique/fluide/ (non non, je fais pas de pub )
    Je ne répondrai à aucune question technique en privé

  16. #16
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 961
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 961
    Points : 15 082
    Points
    15 082

    Par défaut

    Citation Envoyé par anykeyh
    L'objectif serait de calculer après N iterations la densité de matiere (en l'occurence de nuage) à chaque point sur une surface 64x64, à resampler cette surface et à moduler par un Perlin Noise!
    Si tu veux faire des nuages realistes "physiquement", il y a ce papier qui se rapproche plus ou moins de ton idée:

    http://xray.club.fr/t2399735/PG2001_ryomiya.pdf

    Sinon, pour un realisme purement "visuel", tu peux utiliser directement Perlin en prenant comme fonctions "noise 2D" des images avec des nuages.



    Ou encore utiliser un generateur de texture en prenant comme motif une image avec des nuages.

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  17. #17
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Bonsoir, et désolé pour le temps de reponse, j'ai eu quelques peripethies avec ma machine (ce qui me fait passer de gres ou de force à Linux xD)

    Pseudo code:
    Pour la génération des nuages, il est vrai que ta methode de perlin noise avec des fonctions textures rend plutot pas mal!

    Sinon je compte tout de meme implementer Navier-Stokes, juste "pour voir"

    Dans le bouquin que j'ai achété (Texturing and Modeling: a procedural approach) il y a toute une partie sur la génération de planete de façon procédural, que je vais commencer à lire

    Mais bon, pour tout de suite ça va etre mise à jour de la machine, installation de tout les logicielles nécéssaire (pour TeX, Java etc...)

    Je vous tiens au courant

  18. #18
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    Bon j'ai fini par comprendre les equations navier-stokes, et maintenant sa tourne impeccablement!
    J'ai utilisé pour cela la methode de l'advection de vitesse, l'advection de densité, calcul des coefficients de divergence, calcul des pressions puis calcul du gradient de pression et modification du champ vectoriel des vitesses (ouf!)

    Et le tout tourne à 20fps/sec en 128x64 (optimisations surements possible!)

    Parcontre, j'ai remarqué que je n'ai pas pris en compte un parametre important pour la génération de mes nuages: la force de Coriolis
    Ce qui fait que je n'ai pas (encore) de cyclone, depression tout ça !

    D'ailleurs j'ai peut-etre une petite questions à propos de cela:

    Je me base sur Wikipedia (http://fr.wikipedia.org/wiki/Force_de_Coriolis), et la je vois: "Omega: la vitesse angulaire de rotation"... Cette vitesse change-t-elle en fonction de la latitude? (Mes notions de physiques remonte à loin )

    Le fait de pouvoir generer le mouvement a 20fps m'a donné une idée de shaders et gestion multithread (que j'explorerai plus tard sinon j'aurai jamais le temps de finir le papier ) pour le deplacement en temps reel des masses nuageuses

    Je placerai quelques screens demain!

  19. #19
    Rédacteur/Modérateur

    Avatar de millie
    Profil pro
    Inscrit en
    juin 2006
    Messages
    6 939
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : juin 2006
    Messages : 6 939
    Points : 8 758
    Points
    8 758

    Par défaut

    Pour information, tu as utilisé quoi pour navier et stokes ?
    Je ne répondrai à aucune question technique en privé

  20. #20
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2005
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : octobre 2005
    Messages : 196
    Points : 254
    Points
    254

    Par défaut

    J'ai pas les sources sous la main (au boulot), mais je me suis inspiré de ton doc (mais j'ai pas tout à fait le niveau malheureusement ) plus la sources d'un shaders de RenderMonkey (l'outils d'ATI pour faire des shaders)
    Je ne connais pas le nom de la methode (quoique, je crois que c'est methode de Jacobi?)

    Mais en gros:

    Advection de la vitesse
    Advection de la densité par le nouveau champs de vitesses
    Calcul d'un champ scalaire caracterisant la divergence de la vitesse (x21-x01)+(y12-y10)
    Calcul de chaque point de pression depuis la densité (moyenne au voisinage de Von neuman moins la divergence au point courant) << à faire N fois pour plus de precision
    Calcul du gradient de pression (gx = (p21-p01)/2, gy = (p12 - p10)/2)
    Modification du champs de vecteur vitesse (soustraction du gradient de pression)

    Note: je note le voisinage de von neumann ainsi:

    J'ai ajouté une etape preliminaire de modification de la densité selon les précipitations (pas encore au point ), et une etape de "convection", qui revient à legerement modifier au hasard le champ de vecteur en fonction de la temperature...

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •