Question

J'ai un réseau de polylignes et j'aimerais afficher toutes les parties des lignes qui se trouvent à l'intérieur d'une certaine boîte X-Y. Je suis en train de restituer les lignes dans OpenGL avec GL_LINE_STRIP et cela fonctionne bien. Toutefois, si la limite de la boîte X-Y traverse une des lignes (entre les sommets), existe-t-il un bon moyen d'afficher uniquement la partie de la ligne qui se trouve à l'intérieur de la boîte?

merci,

Jeff

Était-ce utile?

La solution

Si votre boîte n’est qu’un rectangle ordinaire à deux dimensions et à axes alignés, vous pouvez utiliser la fonction glScissor. En bref, il définit un rectangle 2D en coordonnées d'écran où tout le dessin a lieu.

Si votre cas est plus compliqué (par exemple, vous pouvez avoir un rectangle sur un plan dans une scène 3D ou à peu près ...), vous pouvez d’abord dessiner votre rectangle dans la mémoire tampon du gabarit et activer le test du pochoir pour le rendu de ligne. Cette approche vous donne une flexibilité illimitée quant à la forme qui limite le dessin, mais elle peut être légèrement plus lente pendant le rendu et demande plus de temps pour la configuration.

Autres conseils

Je pense que Nils Pipenbrinck vous a donné les deux meilleures options, mais je vais en lancer une autre pour plus de précision: les plans de découpe ( glClipPlane () ).

Cela dit, je pense que glScissor () est la solution la plus simple si la fenêtre est toujours alignée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top