Bonjour,
je viens vous faire part d'un problème sur lequel je bute depuis des heures, sans trouver d'explication.
1- Je dessine ma scène
2- Je veux donner un effet de scanlines
Pour l'effet de scanlines, je me contente de dessiner, tous les deux pixels en X, une ligne qui va de bas en haut de l'écran.
Et a ma grande surprise mon fps se retrouve divisé par quatre quand j'active le dessin de ces lignes (que je sois caler sur la synchro verticale ou non).
A ma plus grande surprise encore, le phénomène n'a pas lieu quand je dessine des lignes horizontales. Aucun impact sur le fps.
Je me dis alors que c'est un bug dans les drivers de mon ridicule nVidia 6150 (chipset intégré à la carte mère), et je décide d'implémenter ça sous forme d'une texture faite d'une alternance de ligne/pas ligne.
Et la je tombe carrément sur le cul. Parce que quand je dessine ma texture dans le sens qu'il faut pour faire des lignes horizontales, pas de problème. Mais si je la dessine dans l'autre sens, pour avoir des lignes verticales, le phénomène se reproduit. La chute de fps est moins importante, mais tout de même énorme.
Comme si mon 6150 avait un souci avec les motif du genre ligne verticale.
J'ai mesurer le temps d'exécution a différents endroits dans mon code, et ce qui est étonnant, c'est que la tracé des lignes prend peu de temps en lui même, mais par contre le temps d'exécution du swap (je suis en double buffer) explose des que je dessine ces foutues lignes...
évidemment j'ai essayer différents toolkit, GLFW et freeGlut, mais ça ne change rien.
j'ai essayer d'activer ou de désactiver le blending lors du dessin de mes lignes, et la chute de performance est un peu moins importante quand pas de blending, mais toujours très importante.
J'ai essayer aussi de dessiner des quads épais d'un pixel au lieu de vraies lignes (ahah la ruse !) mais rien a faire.
Autre petite indication, plus je dessine ces lignes verticales sur une surface importante de l'écran, plus le ralentissement est grand. moins j'en dessine plus le ralentissement est faible. Ce qui bien évidement exclu les histoires d'attente de prochaine synchro avant swap pour cause de temps de rendu trop long.
Bon bref je suis au bord de la crise nerveuse, j'ai des tremblements et je commence a ne plus sentir mon corps. Quelqu'un a t il une idée de ce qui se passe.
voilà un example :
http://kanjiscope.free.fr/mystere.cpp
est ce que le phénomène existe chez vous, en commentant et en decommentant la fonction scanlinize() ?
Merci d'avance à ceux qui pourront m'aider !
Robeeeert
Partager