Je m´explique plus clairement, enfin je vais essayer.
On considere une render zone fullscreen de 640x480.
Voici mon triangle : v1(100, 100); v2(-100, 100); v3(100, 50).
Je précise que les coordonnées de vertex sont en 2d car ce sont vertex transformés ( X, Y, Z, RHW ).
Donc, il y a 2 vertex dans la render zone (v1 et v2) et 1 vertex en dehors (v3).
Si je fais un DrawPrimitive ou equivalent sous OpenGL le triangle ne s´affiche pas car au moins 1 vertex est en dehors de la render zone et qu´il se situe a gauche ou en haut de l´ecran, c´est a dire qu´au moins 1 coordonnée ( X ou Y ) est négative.
Si un triangle en coordonnée 3D ( non transformé X, Y, Z ) contient au moins 1 vertex en dehors de l´écran, la carte vidéo va clipper le triangle, c´est a dire qu´elle va le découper en plusieurs triangles qui seront en limite du viewport si et seulement si les vertex sont dans la bande dite de "GUARD" qui est une bande offscreen qui varie en taille selon les cartes vidéos et les drivers.
Pour résumer, Si j´envoie a l´API un triangle non transformé, il sera clippé par la carte vidéo et j´envoie un triangle transformé il ne s´affiche pas car il n´est pas clippé.
Donc je repose ma question, comment puis-je faire clipper mon triangle transformé.