Multimodale-Visualisierung
3D Texture Besonderheiten
Die Grafikhardware unterstützt nicht beliebig grosse 2D bzw. 3D Texturen. Die maximale Größe erfährt man mit:
GLint maxtexsize2D,maxtexsize3D;
glGetIntegerv(GL_MAX_TEXTURE_SIZE,&maxtexsize2D);
glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE,&maxtexsize3D);
printf("max2D=%d\n",maxtexsize2D);
printf("max3D=%d\n",maxtexsize3D);
glGetIntegerv(GL_MAX_TEXTURE_SIZE,&maxtexsize2D);
glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE,&maxtexsize3D);
printf("max2D=%d\n",maxtexsize2D);
printf("max3D=%d\n",maxtexsize3D);
Die maximale Größe einer NVIDIA GeForce 9600M GT (MacBook Pro) ist z.B.:
maxtexsize2D=2048 maxtexsize3D=8192
3D Texturen werden unter Windows noch als OpenGL Extension angesehen, deren Funktionspointer man sich erst besorgen muss:
extern "C"
{
#include <GL/glext.h>
}
#include <windows.h>
PFNGLTEXIMAGE3DEXTPROC glTexImage3DEXT;
glTexImage3DEXT=
(PFNGLTEXIMAGE3DEXTPROC)wglGetProcAddress("glTexImage3DEXT");
#define glTexImage3D glTexImage3DEXT
{
#include <GL/glext.h>
}
#include <windows.h>
PFNGLTEXIMAGE3DEXTPROC glTexImage3DEXT;
glTexImage3DEXT=
(PFNGLTEXIMAGE3DEXTPROC)wglGetProcAddress("glTexImage3DEXT");
#define glTexImage3D glTexImage3DEXT
Dazu ist der glext.h Header notwendig, der auf den Seiten der OpenGL Registry zur Verfügung gestellt wird.