Vertex Buffer Object - OpenGL

Vertex Buffer Object - OpenGL - C++ - Programmation

Marsh Posté le 28-09-2009 à 15:39:42    

Bonjour !
 
Alors voila, j`aurais quelques question concernant l`utilisation des VBO avec OpenGL :
Je dois loader et afficher plusieurs millions de points et effectuer des traitement sur ceux-ci (delaunay etc...)
Actuellement j`utilise deux VBO : Un pour les coordonnees et le second pour les couleurs.
 
- Serait-ce plus efficace et preconise de n`utiliser qu`un seul et meme VBO pour les deux informations ?
 
- Quelle est la meilleure technique pour mettre a jour les informations.  
(Dans les tutoriaux, les informqtions sont toujours traites par le CPU et tout est recopier a chaque fois dans le VBO correspondant... Cette methode me semble tres mauvaise, tout d`abord parce que ca fait avoir une copie des millions de points dans la VRAM ET dans la RAM et ensuite parce que le tranfers a chaque fois des Millions de points est tres gourmant. Bref plus aucun interet d`utilise les VBOs.)
Dans ce cas, comment faire effectuer les traitement directement sur la VRAM ou par le GPU ?
 
Shaders Or Not ?
 
- Si j`utilise a chaque fois la totalite de mes points, y a t`il tout de meme un avantage a utiliser des VBI ?
 
Je vous remercie.


Message édité par kirua_sama le 28-09-2009 à 15:55:46

---------------
“L'éducation est l'arme la plus puissante que l'on puisse utiliser pour changer le monde”
Reply

Marsh Posté le 28-09-2009 à 15:39:42   

Reply

Marsh Posté le 28-09-2009 à 23:03:27    

J'aurai tendance à penser qu'il vaut mieux un vertex packé position+couleur.
Après il faut voir l'alignement si le GPU aime ou pas.
Il faut voir aussi comment tu y accède: Si tu fais de multiples passes en utilisant juste la position, et une dernière passe en utilisant la couleur, enfin ça c'est le genre de compromis pour un renderer moderne (genre prépasse Z...).
Si tu fais juste que tracer des points...
 
Pour l'actualisation, si tout le VBO est modifié, oui il vaut mieux le recopier entièrement. Après si tu fais que des modifications partielles, y'a achtuche possibles.
 
Les VBI, IndexBuffer n'ont d'intérêt que si ils permettent d'utiliser efficacement le cache Post T&L (enfin le VertexShader).
Donc si tu as un VBO de points colorés, si c'est juste pour avoir un IndexBuffer qui fait du vent, ça ne sert à rien.


Message édité par bjone le 28-09-2009 à 23:04:09
Reply

Marsh Posté le 29-09-2009 à 09:50:00    

Il faut voir aussi comment tu y accède: Si tu fais de multiples passes en utilisant juste la position, et une dernière passe en utilisant la couleur, enfin ça c'est le genre de compromis pour un renderer moderne (genre prépasse Z...).  
 
Effectivement, je procede de cette maniere.
Dans ce cas, je fais faire le travail par mon CPU et garde une copie des donnees en RAM.  
Je ne sait pas a quel point il serait interessant d`utiliser des shaders pour travailler directement dans les VBOs pour faire du calcul pur que je fais (pas vraiment de rendering) ?
 
Oki donc comme je le pensais les VBI n`auront pas d`interet dans mon cas.♦♦♠♠
 
Je te remercie grandement.


---------------
“L'éducation est l'arme la plus puissante que l'on puisse utiliser pour changer le monde”
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed