Disons que j'ai des centaines de rectangles sur ma scène. Chacun d'eux est en train de changer chaque image:Mettre à jour VBO ou utiliser des uniformes?
- ils se déplacent sur scène, ils tournent, à l'échelle vers le haut/bas
- change de couleur de sommets et doit être combiné avec la couleur de la texture
- textures coordonne les changements, car ce sont des animations 2D
Comment dois-je faire pour obtenir les meilleures performances? Il y a mes idées. S'il vous plaît aidez-moi à choisir ce qui est le meilleur d'entre eux ou suggère quelque chose d'autre:
- mise à jour VBO chaque image
- font plus de sommets que le besoin (par exemple: stocker toutes les images d'animation en VBO) et choisissez qui est rendu (appel glDrawElements plusieurs fois)
- envoi modifier des données via des uniformes et recalculées dans vertex shader au lieu de CPU
La question principale est en fait: quelles fonctions puis-je appeler autant de fois que je veux et que je devrais éviter d'appeler plus que peu de temps par boucle principale?
VBO? tu veux dire VAO? Dans votre cas, jetez un coup d'œil à [instanced rendering] (http://ogldev.atspace.co.uk/www/tutorial33/tutorial33.html). – Gnimuc