Maison > développement back-end > C++ > Comment restituer des lignes pixélisées dans OpenGL tout en s'adaptant à différentes résolutions ?

Comment restituer des lignes pixélisées dans OpenGL tout en s'adaptant à différentes résolutions ?

DDD
Libérer: 2024-11-04 01:17:30
original
837 Les gens l'ont consulté

How to Render Pixelated Lines in OpenGL While Scaling to Different Resolutions?

OpenGL Scale Single Pixel Line

Dans votre requête, vous exprimez le désir de créer un jeu qui maintient une résolution interne de 320 x 240 tout en mettant à l'échelle son sortie à des multiples de cette résolution à l’écran. Cependant, votre approche actuelle entraîne le rendu de lignes de 1 px dans un monde de 3 px lors d'une mise à l'échelle jusqu'à 960 x 720.

Le problème vient de l'hypothèse que vous pouvez effectuer le rendu sur un « canevas glOrtho de 320 x 240 ». En réalité, il n’existe qu’une seule résolution de fenêtre active : 960x720. Votre code met à l'échelle les coordonnées des primitives que vous restituez.

Pour résoudre ce problème, vous devez abandonner la notion de "canevas glOrtho 320x240" séparé et vous concentrer plutôt sur la résolution réelle de la fenêtre. Cela implique le rendu d'une image réellement de 320 x 240 avant de la dessiner à la résolution réelle de la fenêtre.

Les étapes spécifiques de ce processus impliquent de créer une texture de 320 x 240, de l'attacher à un objet framebuffer et de lier le FBO pour rendu. La fenêtre d'affichage doit être définie sur la taille de l'image. Après avoir dissocié le FBO, vous pouvez dessiner la texture sur la fenêtre avec la fenêtre définie sur la résolution de la fenêtre.

Cette méthode vous permet de conserver le rendu des lignes pixélisées et de s'adapter à différentes résolutions de sortie tout en préservant la résolution interne de 320 x 240 du jeu.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal