Maison  >  Article  >  développement back-end  >  Comment dessiner des lignes à un seul pixel avec OpenGL ?

Comment dessiner des lignes à un seul pixel avec OpenGL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-04 05:25:30758parcourir

How to Draw Scaled Single-Pixel Lines with OpenGL?

Dessiner des lignes à un seul pixel mises à l'échelle avec OpenGL

Problème :

Lors du rendu d'une scène OpenGL 320 x 240 mise à l'échelle à un niveau supérieur résolution (par exemple, 960 x 720), les lignes semblent plus fines que prévu car elles sont dessinées sur le canevas de sortie mis à l'échelle au lieu du canevas interne de 320 x 240.

Réponse :

Le malentendu réside dans l'hypothèse qu'il existe un canevas OpenGL 320x240 distinct. La fenêtre entière correspond à la résolution physique de la fenêtre (960x720 dans ce cas).

Solution :

Pour dessiner des lignes pixellisées à la bonne épaisseur, le rendu doit être effectué pour un tampon d'image 320 x 240 séparé, puis l'image doit être dessinée à l'écran sous la forme d'une texture mise à l'échelle.

Étapes :

  1. Créez une texture 320 x 240.
  2. Créez un objet framebuffer (FBO) et attachez-y la texture.
  3. Liez le FBO pour le rendu.
  4. Réglez la fenêtre d'affichage à la taille de l'image (320x240).
  5. Rendu la scène au FBO.
  6. Dissocier le FBO.
  7. Réglez la fenêtre d'affichage à la taille de la fenêtre (960 x 720).
  8. Dessinez la texture dans la fenêtre comme une image à l'échelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn