IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Projets Discussion :

Présentation de rendu de terrain par Clipmaps


Sujet :

Projets

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut Présentation de rendu de terrain par Clipmaps
    Un petit topic pour présenté mon algo maison de rendu de terrain inspiré de la technique des geometry clipmaps.
    Tout les calculs sont réalisé par le GPU , le CPU ne faisant que donner les ordres d'affichage.

    Dans la démo téléchargeable ci-dessous le terrain faisant 4096x4096 avec juste une texture de couleur dessus s'affiche à 150-180 fps en moyenne. C'est quand même pas trop mal. J'ai une NVidia 8700gt 512mo sur un portable.

    Ce n'est pas parfait, notamment sur les bord du terrain, c'est pour ça que je vous demande votre avis.

    voici quelques images pour donner envie de tester



    la caméra est un peu pourri, les commandes sont les suivante:
    les flèches pour tourner de haut en bas et de droite à gauche et la molette de la souris pour le zoom. On peut aussi bouger le point de vu de la camera suivant les axes X et Z avec les touche Z,Q,S,D

    La démo daté du 2009/12/30 : http://dl.free.fr/fS6n2U1C2
    Voir les derniers messages pour plus de détailles

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    août 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 68
    Points : 76
    Points
    76
    Par défaut
    Désolé, je voulais essayer pour te donner un avis mais ma carte graphique ne supporte pas la version des shaders que tu utilises.

    extension "GL_EXT_geometry_shader4" non supportée.

    En tout cas tes captures d'écrans sont sympa.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par georgeduke Voir le message
    Désolé, je voulais essayer pour te donner un avis mais ma carte graphique ne supporte pas la version des shaders que tu utilises.

    extension "GL_EXT_geometry_shader4" non supportée.

    En tout cas tes captures d'écrans sont sympa.
    J'utilise mon moteur maison qui charge tout un tas d'extension. GL_EXT_geometry_shader4 n'est pas utilisé pour la démo et le message n'est pas bloquant. normalement tu dois pouvoir continuer et démarrer la démo après le message.

  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    mai 2002
    Messages
    2 618
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2002
    Messages : 2 618
    Points : 6 273
    Points
    6 273
    Par défaut
    Après plein de messages d'erreur, j'obtiens un écran bleu.
    extension "GL_EXT_geometry_shader4" non supporté par votre carte graphique
    dans: .\API_OpenGL\GestionnaireExtensionOGL.cpp (ligne: 222)


    L'affichage sera dégradé: les shaders geometry ne sont pas supportés

    L'affichage sera dégradé: extension glActiveStencilFaceEXT non prise en charge par votre carte graphique!
    dans: .\API_OpenGL\GestionnaireExtensionOGL.cpp (ligne: 44)

    L'affichage sera dégradé: extension "GL_EXT_blend_equation_separate" non supporté par votre carte graphique
    dans: .\API_OpenGL\GestionnaireExtensionOGL.cpp (ligne: 293)

    ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Interbase (7 - XE) - PostgreSQL 11.6

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par Lung Voir le message
    Après plein de messages d'erreur, j'obtiens un écran bleu.


    Tu as quoi comme carte graphique?? Les extension qui font des erreur ne sont pas utilisées, donc bizarre

    J'utilise le displacement vertex dans le shader qui n'est pas supporté par les cartes trop anciennes.

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    mai 2002
    Messages
    2 618
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2002
    Messages : 2 618
    Points : 6 273
    Points
    6 273
    Par défaut
    Citation Envoyé par Syl_20 Voir le message
    Tu as quoi comme carte graphique?? Les extension qui font des erreur ne sont pas utilisées, donc bizarre
    J'ai obtenu ça avec :
    ATI Radeon Xpress 1100

    Sinon, j'ai testé sur une NVidia GeForce 8800 GT, et là, ça plante direct, et plus rien.
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Interbase (7 - XE) - PostgreSQL 11.6

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par Lung Voir le message
    J'ai obtenu ça avec :
    ATI Radeon Xpress 1100

    Sinon, j'ai testé sur une NVidia GeForce 8800 GT, et là, ça plante direct, et plus rien.
    Merci pour l'info, j'essayerais de tester sur une autre machine que la mienne.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Je n'ai pas eu l'occasion de tester sur une autre machine.

    Sinon j'ai continué à amélioré le rendu. J'ai implémenté le calcul des normales dans le shader et dompté le texture array pour le texturage:

    voici une image:


  9. #9
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 628
    Points
    2 628
    Par défaut
    Tu progresses vraiment bien . Bravo !

  10. #10
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    mai 2002
    Messages
    2 618
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2002
    Messages : 2 618
    Points : 6 273
    Points
    6 273
    Par défaut


    Ca donne envie de tester !

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Interbase (7 - XE) - PostgreSQL 11.6

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Voici de nouvelles images.
    Pour les curieux, les données topologiques sont réelles puisqu'il s'agit de la chaine de volcans des cascades dans l'état de Washington avec les monts Rainier, Adams et bien sur St Helens

    J'ai implémenté l'éclairage par pixel avec bump mapping et gloss map.

    Zoom sur le cratère du mont St Helens pour montrer les reflets spéculaires sur la neige


    - Maintenant le gros du boulot va consisté à optimisé tout ça.
    - Deuxième boulot, l'amélioration du texturage: Je fais le mélange des textures du terrain avec des masques codés sur 8 bits pour les dégradé. Je trouve cette méthode couteuse et pas hyper performante: actuellement je ne mets que 4 textures. Je vais faire des recherches sur le sujet.

  12. #12
    Expert éminent sénior

    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    7 575
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 7 575
    Points : 17 814
    Points
    17 814
    Par défaut
    Super boulot
    très belle progression

    comment procèdes-tu techniquement ? Tu lis des fichiers .dem et tu fais des triangulations ?
    En tout cas bravo

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    comment procèdes-tu techniquement ? Tu lis des fichiers .dem et tu fais des triangulations ?
    En tout cas bravo
    J'utilise un fichier .raw codé en 8 bits (c'est un peu léger, 16bits seraient mieux) que j'ai trouvé ici: http://www.cc.gatech.edu/projects/large_models/ps.html
    Pour la suite ça pourrai être rigolo d'utiliser des fichier type .dem. Je verrais.

    Ensuite je crée 2 maillages que je déforme en utilisant le vertex displacement mapping expliqué ici: http://www.ozone3d.net/tutorials/ver...nt_mapping.php

    Afin d'utilité le moins de mémoire possible j'utilise mes 2 maillages plusieurs fois avec des positions et des échelles différentes, je m'inspire de cette article http://http.developer.nvidia.com/GPU...chapter02.html

    Pour rendre le terrain mes 2 maillages totalisent seulement 32768 triangles, et je me débrouille pour que le rendu n'affiche le terrain qu'avec 200000 triangles environs.

    Pour le texturage je fais quelque chose qui ressemble à ce qui est fais dans le jeu Supreme Commander en utilisant des masques pour mes textures http://supcom.wikia.com/wiki/Height-..._editing_tools

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Un message pour dire que j'avance toujours sur ce projet.
    J'ai mis en place l'utilisation de texture triangle pour simplifier l'utilisation de la texture de heighmap.

    Actuellement je bosse sur l'implémentation de decal map afin d'ajouter des détails au terrain.
    Ces decals seront gérés grâce à un quadtree pour partitionner l'espace efficacement

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Mon projet suis son cours je vous mets une image de mes premiers essais de decal map

  16. #16
    Membre averti Avatar de yodaime
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2006
    Messages : 282
    Points : 339
    Points
    339
    Par défaut
    Je sais pas si tu l'as dit mais avec quel langage et quel API graphique tu fait ça ?

    Tu compte laissé les sources libres ?

    En tout cas c'est du très bon et beau boulot ! Bonne continuation !

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par yodaime Voir le message
    Je sais pas si tu l'as dit mais avec quel langage et quel API graphique tu fait ça ?

    Tu compte laissé les sources libres ?

    En tout cas c'est du très bon et beau boulot ! Bonne continuation !
    Effectivement j'ai oublier de dire que je fais tout ça avec openGL et GLSL coté API graphique et que je code le programme en C++ avec Visual Studio 2005 Pro

    Le code est intégré dans mon projet de moteur 3D que je reprendrais après. Ce projet m'a donné plein d'idée sur l'architecture et donc plein de choses à transformer.

    Par contre je pensais écrire un article pour developpez.com si des gens sont intéressés pour expliquer les algorithmes utilisés.
    Sans me vanter les algorithmes sont bien plus faciles à mettre a œuvre que des algo comme ROAM et surtout utilisent aucune ressource CPU puisque fonctionnant sur GPU et aussi utilisent peut de ressources mémoire. (seul la carte de hauteur et quelques dizaines de millier de triangles sont en mémoire GPU).
    Bref ça mérite d'être connu.

  18. #18
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    février 2006
    Messages
    798
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : février 2006
    Messages : 798
    Points : 1 084
    Points
    1 084
    Par défaut
    Beau travail en effet.
    Par contre je ne pense pas que l'algo est comparable avec ROAM qui n'a pas le même but (et qui pour moi et l'algo de terrain parfait ).
    Dis moi le decal tu l'aurais pas piquer dans les ressources du jeu Supreme Commander, car il ressemble fort au cratère que fait une bombe thermo-nucléaire dans ce jeu

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2007
    Messages : 318
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par oxyde356 Voir le message
    Beau travail en effet.
    Par contre je ne pense pas que l'algo est comparable avec ROAM qui n'a pas le même but (et qui pour moi et l'algo de terrain parfait ).
    J'ai donné comme exemple ROAM car l'ayant tester. Je n'ai pas été enchanté par le résultat. Pourrai tu me donner tes arguments en ça faveur? ça m'intéresse.

    Citation Envoyé par oxyde356 Voir le message
    Dis moi le decal tu l'aurais pas piquer dans les ressources du jeu Supreme Commander, car il ressemble fort au cratère que fait une bombe thermo-nucléaire dans ce jeu
    Oui j'avoue, j'ai piqué plein de ressources de cette excellent jeu qu'est Supreme Commander.

  20. #20
    Membre averti Avatar de yodaime
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2006
    Messages
    282
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2006
    Messages : 282
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par Syl_20 Voir le message
    Par contre je pensais écrire un article pour developpez.com si des gens sont intéressés pour expliquer les algorithmes utilisés.
    Sans me vanter les algorithmes sont bien plus faciles à mettre a œuvre que des algo comme ROAM et surtout utilisent aucune ressource CPU puisque fonctionnant sur GPU et aussi utilisent peut de ressources mémoire. (seul la carte de hauteur et quelques dizaines de millier de triangles sont en mémoire GPU).
    Bref ça mérite d'être connu.
    C'est une très bonne idée ! Je suis très intéressé par un tel article.

Discussions similaires

  1. generation de terrain par fractales
    Par cliquet dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 17/01/2008, 08h24
  2. Réponses: 2
    Dernier message: 02/10/2007, 10h53
  3. Modélisation de terrain par triangulation
    Par Tyver dans le forum API graphiques
    Réponses: 6
    Dernier message: 05/06/2007, 20h41
  4. Réponses: 8
    Dernier message: 02/06/2007, 21h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo