[C++] Vitesse pour la copie des Vertex Buffers
Salut !
Je voudrais parler de la méthode la plus rapide pour afficher quelque chose à l'écran en se servant des Vertes Buffers.
En regardant plusieurs exemples sur comment les utiliser, j'ai remarqué que généralement, on copie les données que l'on va vouloir afficher dans un tableau, puis ensuite, on les recopie dans le Vertex Buffer avec par exemple memcpy.
Le problème est que l'on copie 2 fois la même chose, la première lorsque l'on fait les calculs de tout ce que l'on veut afficher, la deuxième quand on recopie dans le Vertex Buffer.
Je me demandais donc si on pouvait pas faire :
- Lock
- calculs dans le vertex buffer
- Unlock puis Affichage
au lieu de :
- calculs dans un tableau
- Lock
- recopier dans le Vertex Buffer
- Unlock puis Affichage
A priori ça semble plus rapide, le problème est que, peut-être que quand on fait Lock, l'ordinateur termine l'affichage qu'il est en train de faire avant de toucher au Vertex Buffer, donc on peut utiliser ce temps pour faire les calculs dans un tableau. Il faut alors comparer le temps qu'il y a entre "faire l'affichage" et "recopier le Vertex Buffer" pour voir quelle méthode est la plus rapide car je ne pense pas que ça dépende du temps qu'on met pour faire les calculs.
Moi, je pense qu'il n'y a pas trop de différences de vitesse entre les 2 méthodes, donc autant utiliser la première car quand on a beaucoup de données ça fait gagner beaucoup de mémoire vive.
Pourquoi alors on utilise toujours memcpy dans tous les exemples ?