Historique des modifications - Message

Message #10527

Sujet: Génération procédurale de terrain : CPU vs GPU ?


Type Date Auteur Contenu
Dernière modification 14-06-2012 11:32:54 Akabane87
Bonjour tout le monde, c'est encore moi avec mes questions de perf ^^.

Après plusieurs jours de recherches sur la génération procédurale de terrain et après avoir lu plusieurs centaines d'articles la dessus, j'en suis arrivé à la question primordiale suivante :
Dans la mesure ou je souhaite générer des patches de terrain d'un lod donné (= un buffer de vertices), est-il plus rapide de générer une fois pour toute à la demande le buffer de vertices côté CPU avec leur position finale (hauteur générée par des fonctions de bruit) et juste l'envoyer au gpu à chaque frame (ou du coup la première fois seulement si j'utilise des hardware mapping hints), ou bien de générer à chaque frame directement depuis le gpu (avec un geometry shader) la position finale des mes vertices de chaque patch à partir d'un seul et même buffer (au final 16 buffers pour les franges de connections des patches de lod différents) et donc recalculer à chaque frame pour chaque vertex sa hauteur à partir de la fonction de bruit exécutée dans le shader ?

Je suis bien conscient que le gpu peut potentiellement calculer mon bruit 100x plus vite que le cpu, mais il faut également prendre en considération le fait que ce calcul sera fait à chaque frame sur le gpu alors qu'il peut n'être fait qu'une fois sur le cpu au chargement dynamique de ma patch au moment ou j'en ai besoin (vertex buffer mémorisé avec les hauteurs au moment de sa génération).

Qu'en pensez vous ?
Création du message 14-06-2012 11:29:57 Akabane87
Bonjour tout le monde, c'est encore moi avec mes questions de perf ^^.

Après plusieurs jours de recherches sur la génération procédurale de terrain et après avoir lu plusieurs centaines d'articles la dessus, j'en suis arrivé à la question primordiale suivante :
Dans la mesure ou je souhaite générer des patches de terrain d'un lod donné (= un buffer de vertices), est-il plus rapide de générer une fois pour toute à la demande le buffer de vertices côté CPU avec leur position finale (hauteur générée par des fonctions de bruit) et juste l'envoyer au gpu à chaque frame (ou du coup la première fois seulement si j'utilise des hardware mapping hints), ou bien de générer à chaque frame directement depuis le gpu (avec un geometry shader) la position finale des mes vertices de chaque patch à partir d'un seul et même buffer (au final 16 buffers pour les franges de connections des patches de lod différents) et donc recalculer à chaque frame pour chaque vertex sa hauteur à partir de la fonction de bruit exécutée dans le shader ?

Je suis bien conscient que le gpu peut potentiellement calculer mon bruit 100x plus vite que le cpu, mais il faut également prendre en considération le fait que ce calcul sera fait à chaque frame sur le gpu alors qu'il peut n'être fait qu'une fois sur le cpu au chargement dynamique de ma patch au moment ou j'en ai besoin (vertex buffer mémorisé avec les hauteurs au moment de sa génération).

Qu'en pensez vous ?

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
155 invités en ligne
membre en ligne: -
RSS Feed