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 ? |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
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 |