Il faut vraiment que les pipelines determinent la preparation du rendu.
Qu'elles exigent les inputs (ex pour la pass de shadow : spotlight, mesh occluders)
Qu'elles gerent la logique du culling et de la preparation (jobbed or not, etc)
Qu'elles gerent la memory en interne dans laquelle le resultat est ecrit.
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.
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.