J'utilise l'API glGetIntegerv
pour obtenir la taille maximale de la fenêtre et de la texture. Les deux retournent 16K x 16K pixels.Comment faire pour rendre la texture de super taille dans OpenGL
Voici les codes:
GLint maxTexture,maxViewport;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTexture);
glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &maxViewport);
Cependant, je besoin d'une plus grande taille de texture pour montrer une série d'images de haute résolution. J'ai essayé de définir la taille de la fenêtre à 32K x 32K et le programme s'exécute avec succès. Il semble que le maximum de taille de fenêtre que j'ai obtenu de l'API glGetIntegerv n'est pas tout à fait correct.
Mais je ne peux pas définir la taille de la texture à une valeur supérieure à 16K x 16K. Peut-être que je devrais essayer de créer plus d'une unité de texture et chacun d'entre eux a la taille de 16K x 16K. Quelqu'un présente une application appelée Manual Full Slide Imaging. est ici le lien:
http://www.microvisioneer.com/
Il semble que la texture super taille a réalisé dans cette application. OpenGL est-il le bon outil pour résoudre mon problème ou existe-t-il d'autres solutions? MISE À JOUR: Tout à l'heure j'ai trouvé que quand j'ai placé la fenêtre à 32K x 32K et aucune erreur s'est produite, mais sa vraie taille est toujours 16K x 16K.
Qu'entendez-vous par "taille 1024 * 16 * 1024 * 16"? Les requêtes que vous utilisez donnent une valeur pour * width * (et * height * pour viewport) Vous pouvez rechercher les valeurs renvoyées par des cartes [ici] (http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE) les valeurs sont suffisantes pour la taille d'affichage maximale du matériel installé. – Ripi2
Comme @ Ripi2 mentionné. Ce que vous parlez est à propos de viewport et il n'a rien à faire des textures. Les textures auront une taille maximale basée sur le matériel et vous pouvez rendre n'importe quelle taille à n'importe quelle taille de fenêtre. – Ketan
glViewport se serre silencieusement sur la plage prise en charge conformément aux spécifications. Ce n'est pas une erreur. – Andreas