Another-Game-Engine / AGE

AGE - C++11 OpenGL4 Game Engine
MIT License
48 stars 11 forks source link

Render pipelines have to master the data preparation ... (more in description) #584

Open cesarl opened 9 years ago

cesarl commented 9 years ago

Il faut vraiment que les pipelines determinent la preparation du rendu.

En gros, l'idee est de purger le camera render system qui commence a etre immintenable, et d'en profiter pour virer tout les horribles shared ptr, vector de vector, spinlock everywhere, std::list from hell construite et detruite a chaque frame, etc etc En interne on double buffer, et on ecrit tout dans le meme buffer, que de la data brute, plus de pointeur. Si on arrive out of memory dans notre buffer, c'est la pipeline qui gere. Soit on realloc, soit on note qu'a la prochaine frame on realloura et que tant pis pour cette frame. Le seul risque avec cette solution c'est de faire plusieurs meme operation de culling par exemple si on veux faire 2 pass avec les memes objet et la meme camera. Du coup il faudrait peut etre que les pass partagent des preparation methodes ... Bref j'y pense. Je clarifierais ma pensee jeudi. Mais la, la solution actuelle fonctionne certes bien, mais on ne pourra pas la garder beaucoup plus longtemps.