bjone a écrit :
Le choix des primitives a un impact sur le parallélisme et l'étagement du pipeline. Rajouter des primitives, c'est réduire la qualité de l'étagement, démultiplier la complexité de la gestion des cas particuliers : clipping, interpolateurs (même si ils sont en shader sur ps4), tout ce qui est early-z & co.. ; et avoir des transistors froids in-fine (donc moins de perfs à budget transistor identique, donc moins de qualité d'image à framerate cible identique car moins de résolution).
|
Je connais et comprends le parallélisme du remplissage des pixels d'un triangle mais je ne savais pas que les cartes graphiques s'amusaient aussi à dessiner plusieurs triangles en même temps. C'est officiel et bien documenté cette chose ?
bjone a écrit :
Rajouter des formes "complexes" comme le cercle ou le disque en hardware posera toujours problème en termes de pérennité d'API (ça commence par le cercle, ça fini par le camembert office en hachuré 1/3 pointillé 2/3 lignes parallèles à 45° à la norme européenne des dessinateurs techniques de 1987): Ce qui a embourbé l'OpenGl d'extension propriétaires (oui l'OpenGl avait des extensions pour faire ça en hardware).
|
Là je ne vois même pas le rapport avec ce que je souhaite. tu pourrais tout autant critiquer les shaders avec ce que tu désignes. C'est comme si tu me disais que les vertex et pixels shaders rajoutaient de la complexité inutiles et qu'il était plus efficace d'avoir seulement le choix entre l'ombrage de Gouraud ou de Phong codé en dur ! Je ne souhaites absolument pas rajouter une primitive plus complexe mais avoir la possibilité de coder un remplissage quelconque.
Après étant donné qu'il y a déjà la primitive ligne, il y a surement déjà moyen de s'amuser à simuler le remplissage "parfait" d'une sphère avec du geometry shader. Ils rajouteraient la primitive ligne horizontale (ou verticale) cela ne complexifierait rien du tout et ouvrirait quelques optimisations
Message édité par SirAnneau le 03-03-2017 à 20:21:04