Je travaille avec les outils de traçage Qt et QWt3D, et les étend pour fournir des fonctionnalités de traçage 3-D et 2D dont j'ai besoin, donc je suis apprendre un peu d'OpenGL dans le processus.Dessiner des formes "point-like" dans OpenGL, indifférent au zoom
Je suis actuellement capable de tracer des points en utilisant OpenGL, mais seulement en tant que cercles (ou "carrés" en désactivant l'anti-aliasing). Ces points agissent comme je veux - c'est-à-dire qu'ils ne changent pas de taille quand je zoome, bien que leurs positions x/y/z bougent de façon appropriée lorsque j'effectue un zoom, un panoramique, etc
Ce que j'aimerais pouvoir faire est des points de l'intrigue en utilisant une myriade de formes (^, <,>, *,., etc.). D'après ce que je comprends d'OpenGL (ce qui n'est pas beaucoup), ce n'est pas trivial à accomplir car OpenGL traite tout comme un "vrai" objet 3D, donc zoomer sur n'importe quelle forme openGL mais un "point" change la projection de l'objet Taille.
Après avoir fait un peu de lecture, je pense qu'il ya (au moins) 2 solutions possibles à ce problème:
utiliser des textures OpenGL. Cela ne semble pas difficile, mais je crois que les images de texture deviendront de plus en plus petites en zoomant - est-ce exact? Utilisez les polygones OpenGL, les lignes, etc., et dessinez des *, des triangles, ou quoi que ce soit d'autre. Mais là encore, je rencontre le même problème: comment empêcher OpenGL de redimensionner les "points" en zoomant?
est la solution de mordre simplement la balle et redessiner l'ensemble des données établies chaque fois que l'utilisateur effectue un zoom avant ou des casseroles pour faire en sorte que les points restent la même taille? Existe-t-il un moyen de dire à OpenGL de ne pas recalculer la taille d'un objet? Je suis désolé si cela se trouve quelque part dans le document OpenGL - je ne l'ai pas trouvé.