Donc on part sur une animation lente, va falloir garder les algo qui te font du lissage un peu intensif pour avoir un bon resultat. Je suis pret a te prendre le parie que tu distinguera difficilement la difference de resultat sur une aussi petite resolution.
Pour ce qui est la consommation CPU, la source est peu complexe, donc effectivement en vectoriel, tu dois pouvoir avoir des performances correct. En bitmap, l'effort de calcul est assez limite aussi, c'est juste 300 spans horizontaux, rien de bien sorcie. Compter une trentaine d'instructions par pixels, deux acces memoire en lecture et un en ecriture pour la complexite complete de l'operation, quelque soit le contenu de ton image.
Apres tu as un premier niveau d'optimisation, si le coeur de ton rectangle n'a pas d'alpha, on passe sur un algo de copy de pixels et non de blend. Resultat, un acces memoire en moins et quelques instructions de gagne. Enfin si ton rectangle est de couleur pleine, je ne fairais que les bordures avec une image, definissant le milieu comme vide et utiliserait un rectangle plein a la place. La, niveau perf, on sera au mieux dans la meme cour, voir si tu perds trop de temps dans la generation des bordures avec une tete d'avance pour le rendu bitmap (l'algo pour generer un rectangle plein sans alpha est trivial, juste un memset). Mais bon dans ton exemple avec un simple rectangle et un bon moteur vectoriel, je pense que tu dois reussir a pouvoir tenir la comparaison, mais si maintenant tu le remplis avec un gradient, ca ne sera plus le cas.
L'interet du rendu bitmap, c'est aussi que tu as moins de primitive a optimiser et donc que tu peux potentiellement faire plus d'effort de ce cote la.
Pour ce qui est du GPU, les spans, c'est un peu la premiere chose qu'un GPU sait faire, alors niveau optimisation, ta seule limite va etre la bande passante memoire a laquelle tu as acces. Pour ce qui est du vectoriel, tes performances vont vite avoir du mal, si les shader deviennent trop complique ou que en as trop, mais c'est sur, sur un rectangle, ca passera tres bien.
Sinon si le vectoriel etait si performant et si bien pourquoi veux-tu pouvoir generer un cache Bitmap et perdre de la memoire pour ca ? ;-)
Enfin pour les questions de souplesse faut-il encore que les bibliotheques qui gerent le vectoriel soit vraiment complete et fonctionne bien. Ce qui n'est pas le cas aujourd'hui. Donc ton artiste, il se limitera un peu par rapport a une image bitmap aux petits oignons... En plus, il y a une chose qui va etre embettant en vectoriel, si tu veux des images avec plus ou moins d'information en fonction de la resolution, tu fais comment ?
[^] # Re: Dommage que la dépêche soit un peu courte
Posté par cedric . En réponse à la dépêche EFL 1.1 alpha. Évalué à 3.
Donc on part sur une animation lente, va falloir garder les algo qui te font du lissage un peu intensif pour avoir un bon resultat. Je suis pret a te prendre le parie que tu distinguera difficilement la difference de resultat sur une aussi petite resolution.
Pour ce qui est la consommation CPU, la source est peu complexe, donc effectivement en vectoriel, tu dois pouvoir avoir des performances correct. En bitmap, l'effort de calcul est assez limite aussi, c'est juste 300 spans horizontaux, rien de bien sorcie. Compter une trentaine d'instructions par pixels, deux acces memoire en lecture et un en ecriture pour la complexite complete de l'operation, quelque soit le contenu de ton image.
Apres tu as un premier niveau d'optimisation, si le coeur de ton rectangle n'a pas d'alpha, on passe sur un algo de copy de pixels et non de blend. Resultat, un acces memoire en moins et quelques instructions de gagne. Enfin si ton rectangle est de couleur pleine, je ne fairais que les bordures avec une image, definissant le milieu comme vide et utiliserait un rectangle plein a la place. La, niveau perf, on sera au mieux dans la meme cour, voir si tu perds trop de temps dans la generation des bordures avec une tete d'avance pour le rendu bitmap (l'algo pour generer un rectangle plein sans alpha est trivial, juste un memset). Mais bon dans ton exemple avec un simple rectangle et un bon moteur vectoriel, je pense que tu dois reussir a pouvoir tenir la comparaison, mais si maintenant tu le remplis avec un gradient, ca ne sera plus le cas.
L'interet du rendu bitmap, c'est aussi que tu as moins de primitive a optimiser et donc que tu peux potentiellement faire plus d'effort de ce cote la.
Pour ce qui est du GPU, les spans, c'est un peu la premiere chose qu'un GPU sait faire, alors niveau optimisation, ta seule limite va etre la bande passante memoire a laquelle tu as acces. Pour ce qui est du vectoriel, tes performances vont vite avoir du mal, si les shader deviennent trop complique ou que en as trop, mais c'est sur, sur un rectangle, ca passera tres bien.
Sinon si le vectoriel etait si performant et si bien pourquoi veux-tu pouvoir generer un cache Bitmap et perdre de la memoire pour ca ? ;-)
Enfin pour les questions de souplesse faut-il encore que les bibliotheques qui gerent le vectoriel soit vraiment complete et fonctionne bien. Ce qui n'est pas le cas aujourd'hui. Donc ton artiste, il se limitera un peu par rapport a une image bitmap aux petits oignons... En plus, il y a une chose qui va etre embettant en vectoriel, si tu veux des images avec plus ou moins d'information en fonction de la resolution, tu fais comment ?