Bonjour,
Après avoir lu le tutoriel suivant:
http://www.g-truc.net/article/vbo-fr.pdf
j'ai vu vers la fin, qu'il parlait de "vertex mapping".
Il donne deux exemples, tout deux montrant la démarche à suivre pour mettre à jour les données du VBO.
Ensuite, il dit que ce n'est pas bien de faire ce qu'il a fait et que ce n'est pas le but du vertex mapping![]()
Si j'ai bien compris, l'objectif est de pouvoir libérer les données côté client une fois envoyées au VBO, et d'effectuer les manipulations des données directement du côté serveur. (corrigez-moi si je dis n'importe quoi)
Donc si c'est le cas, une bonne utilisation du vertex mapping serait :
Où "modifier données" serait par exemple l'application d'une matrice aux sommets, ou n'importe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 // création - recuperer les données; - envoyer les données au vbo; - libérer les données; // modification - data = glMapBuffer GL_READ_WRITE; - modifier donnéees (data); - glUnmapBuffer;
Si jusque là je n'ai pas dis de bêtises, j'ai quelques questions sur une bonne utilisation du vertex mapping:
Supposons que j'ai un ensemble de modèles chargés chacun dans un VBO,
- Si mes modèles sont animés (mise à jour relativement fréquente), étant donné que, selon le tutoriel sur g-truc.net, le vertex mapping implique une synchronisation CPU/GPU, dois-je mettre à jour tous mes modèles d'un seul coup ? (glmap, glmap, glmap, modifs, glunmap, glunmap, glunmap)
- Comment intervient le flag GL_*_DRAW donné à glBufferData lors de la mise à jour des données ? Lequel vaut-il mieux utiliser ?
Merci pour vos réponses
Bonne journée.
Partager