J'essaie d'implémenter un graphique de scène et dans tous les articles que j'ai rencontrés, il est question de tri d'objets. Vous trieriez donc vos objets par "matière" par exemple. Jusqu'à ce que je m'assoie et que je commence à le mettre en œuvre, je tenais cela pour acquis, car cela avait du sens. Mais maintenant je me demande ce que le tri change réellement?
Dans mon moteur, j'ai un gestionnaire pour les UBO, j'utilise ceux-ci pour stocker les données qui seront partagées entre les programmes, pour le moment qui ne concernent que le temps, la caméra et les matrices de projection et les lumières (je ne me soucie pas de gérer les lumières qui affectent quels objets ATM).
Maintenant, pour chaque modèle, je dois changer le modèle en uniforme de matrice mondiale, aucun tri ne va changer cela. Le changement de cette matrice est-il donc si difficile de définir un matériau pour chaque objet?
Je me souviens vaguement avoir lu quelque part que chaque fois que vous modifiez quelque chose dans le pipeline, il doit être vidé et cela peut entraîner des problèmes de performances. Mais pour chaque appel de dessin, je mets en place un modèle de matrice mondiale, alors quel sens cela fait-il de se préoccuper de cela?
BTW contient des informations sur le fait de savoir si changer un uniforme et appeler glBufferSubData est plus (ou moins) cher.