Question

Mon équipe est actuellement limitée à dessiner des images sur une plate-forme opengl 1.4, ce qui signifie que nous ne pouvons utiliser aucun mappage de texture astucieux pour dessiner une image (oui, nous sommes limités à l'utilisation de la plate-forme graphique intégrée Intel, c'est très ennuyeux). Jusqu'à présent, nous sommes en mesure de dessiner, de redimensionner et d'inverser une image, mais le responsable des graphismes affirme que la rotation via glRotate ne peut pas être effectuée avec glDrawPixels, qu'il nous faudrait alors utiliser des textures, etc. qui ne fonctionnent pas sur la plate-forme Intel.

Je lui parie qu'il existe une fonction de rotation, comme glRotate, qui fonctionnera pour les images bitmap droites. Une telle fonction existe-t-elle? GlRotate fonctionnerait-il? Je suis un peu novice dans ce domaine graphique, mais il semble ridicule que la bibliothèque ne permette pas la rotation de bitmap, sauf via la rotation de texture.

Merci.

Était-ce utile?

La solution

Vous ne pouvez pas utiliser glRotate avec glDrawPixels.

glDrawPixels est le moyen le moins performant d’afficher des pixels sur l’écran. Vous obtiendrez même de meilleures performances en plaçant les pixels sur l'écran à l'aide d'un logiciel de tramage logiciel mal écrit.

En bref, glDRawPixels copiera les données de pixels de la mémoire de processus dans la mémoire graphique et effectuera des transformations très triviales telles que le retournement et la mise à l'échelle. Tout ce qui est plus avancé (comme la rotation) nécessite que vous utilisiez réellement les fonctionnalités du chipset graphique. Par exemple. Vous devez utiliser des textures.

Et les textures fonctionnent. Ils fonctionnent également bien avec GL 1.4 et les chipsets graphiques Intel. J'ai moi-même travaillé sur un tel chipset pendant un bon bout de temps. Vous n'obtiendrez pas les performances des chipsets ATI ou NVIDIA modernes, mais ils ne sont pas aussi mauvais .

Mon meilleur pari est que quelqu'un a essayé de créer des textures d'une taille différente de celle de la puissance, sans succès, et a décidé que les textures en général ne fonctionnaient pas sur le chipset.

Ce n'est pas vrai. Ils travaillent. Vous devez juste savoir qu'OpenGL vous oblige à créer des textures d'une puissance de deux dimensions et que vous devez utiliser un sous-angle de la texture la plus grande ou placer plusieurs images dans une très grande texture (cette dernière est appelée un atlas de texture). / p>

Vous pouvez compenser la plus petite image dans une texture plus grande en ajustant les coordonnées de la texture.

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