Archiv verlassen und diese Seite im Standarddesign anzeigen : FilterTester
Ich hab mal ein kleines Programm geschrieben, mit dem man die Texturfilter-Methoden unter OpenGL auf anomalien Testen kann. Es ist zwar einfach, damit herumzuspielen, allerdings ist es nicht immer leicht zu erklären, was man da genau sieht bzw. wodurch einige Muster zustandekommen. Ich werds wohl morgen noch etwas ausführlicher erklären, hier jetzt erstmal der Link:
www.samx.de.vu/AnisoTester.exe
Voraussetzung ist eine Grafikkarte, die die OpenGL-Extensions EXT_texture_filter_anisotropic und EXT_texture_lod_bias unterstützt (sollten eigentlich alle GeForce-, Radeon- und Kyro-Karten tun, bei anderen bin ich nicht sicher).
Der Kyro unterstützt kein EXT_texture_lod_bias, also läuft´s darauf nicht.
Extensions des Kyro:
OpenGL vendor string: Imagination Technologies
OpenGL renderer string: PowerVR KYRO
OpenGL version string: 1.2.1
OpenGL extensions (GL_):
GL_ARB_multisample,
GL_ARB_multitexture,
GL_ARB_texture_compression,
GL_ARB_texture_env_add,
GL_ARB_texture_env_combine,
GL_ARB_texture_env_dot3,
GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_compiled_vertex_array,
GL_EXT_draw_range_elements,
GL_EXT_packed_pixels, GL_EXT_secondary_color,
GL_EXT_separate_specular_color,
GL_EXT_stencil_wrap,
GL_EXT_texture3D,
GL_EXT_texture_compression_s3tc,
GL_EXT_texture_env_add,
GL_EXT_texture_env_combine, GL_EXT_texture_filter_anisotropic,
GL_EXT_vertex_array, GL_S3_s3tc,
WGL_ARB_extensions_string,
WGL_EXT_swap_control.
[edit]
http://www.delphi3d.net/hardware/extsupport.php?extension=GL_EXT_texture_lod_bias
Gefixt, läuft jetzt auch ohne Extensions (wenn auch dann nicht mehr so brauchbar).
Quasar
2002-08-24, 16:12:18
Kann es sein, dass der Link momentan nicht geht?
Bei mir funktioniert der einwandfrei.
Originally posted by Xmas
Gefixt, läuft jetzt auch ohne Extensions (wenn auch dann nicht mehr so brauchbar).
Zu spät, hab den PC gewechselt.;)
Läuft fehlerfrei auf meiner GF2MX.
Nettes Tool.:)
Originally posted by Xmas
Bei mir funktioniert der einwandfrei.
Bei mir aber jetzt nicht mehr ("diese Adresse ist nicht erreichbar").
[edit] lohnt es sich überhaupt, die neue Version zu downloaden und wie funzt das jetzt ohne Extensions?
Probiert mal
http://home.t-online.de/home/06821692972-0001/AnisoTester.exe
In der neuen Version sind die Aniso/LOD-Regler einfach funktionslos, wenn die Extensions nicht unterstützt werden. Außerdem kann man die Mipmap-Farben abschalten und eine Ebene anzeigen lassen, die man auch nach hinten verschieben kann.
Ob es sich lohnt? Na ja, sind eh nur 48 KiB...;)
Frank
2002-09-04, 23:27:03
eine kleine Frage...
wie sieht das Codemäßig aus, um meinetwegen Anisotropisch zu filtern...
also
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN/MAG_FILTER,...) ??? oder? :|
Originally posted by Frank
eine kleine Frage...
wie sieht das Codemäßig aus, um meinetwegen Anisotropisch zu filtern...
also
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN/MAG_FILTER,...) ??? oder? :|
Nein, anisotropes Filtern ist Teil einer Extension, GL_EXT_texture_filter_anisotropic.
Folgende Funktion kannst du verwenden, um zu prüfen ob eine Extension unterstützt wird:
bool gIsExtensionSupported(const char *extension)
{
const GLubyte *extensions = NULL;
const GLubyte *start;
GLubyte *where, *terminator;
/* Extension names should not have spaces. */
where = (GLubyte *)strchr(extension, ' ');
if( where || *extension == '\0' )
return false;
extensions = glGetString(GL_EXTENSIONS);
/* It takes a bit of care to be fool-proof about parsing the
OpenGL extensions string. Don't be fooled by sub-strings,
etc. */
start = extensions;
for( ;; ) {
where = (GLubyte*)strstr((const char*)start, extension);
if( !where )
break;
terminator = where + strlen(extension);
if( where == start || *(where - 1) == ' ' )
if( *terminator == ' ' || *terminator == '\0' )
return true;
start = terminator;
}
return false;
}
Und für den anisotropen Filter dann:
double MaxAniso;
glGetDoublev( GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &MaxAniso );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, int(MaxAniso) );
Wenn GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT und GL_TEXTURE_MAX_ANISOTROPY_EXT nicht definiert sind, brauchst du möglicherweise aktuellere GL.h und GLExt.h, die du z.B. bei NVidia oder ATI downloaden kannst. Oder aber ich kann dir die #defines raussuchen.
Der anisotrope Filter ist zusätzlich zum normalen Nearest/Linear/Mipmap blabla, wobei bei Radeon 7x00/8x00/9000 GL_<x>_MIPMAP_LINEAR eben als GL_<x>_MIPMAP_NEAREST interpretiert wird
Frank
2002-09-05, 12:16:57
Danke
muss ich dann gleich mal probieren :)
Exxtreme
2002-09-08, 05:27:33
@ Xmas
Könnte man das Tool so erweitern, daß man FSAA durch das Tool zuschalten kann?
Gruß
Alex
Originally posted by Exxtreme
@ Xmas
Könnte man das Tool so erweitern, daß man FSAA durch das Tool zuschalten kann?
Gruß
Alex
Nein, FSAA kann man unter OpenGL idiotischerweise nicht durch die Anwendung forcen. Die entsprechende Extension GL_ARB_multisample gibt als maximale Sampleanzahl immer die Anzahl der im Treiber eingestellten Samples zurück, d.h. wenn man FSAA im Treiber deaktiviert kann man auch die Extension nicht gebrauchen. Quincunx kann man über eine weitere Extension aktivieren.
In Direct3D kann man FSAA forcen, allerdings nur über die Sampleanzahl. Weder die Quincunx-Modi noch 4xS sind möglich. Zumindest kann man hier über eine Bitmaske auf die einzelnen Samples zugreifen, wodurch mit etwas Aufwand ganz nette Effekte oder auch RGSS möglich ist.
Neue Version 1.2 gibts hier (http://www.beyond3d.com/misc/Anisotest/TextureFilteringTestAndSource.zip) zum Download.
Exxtreme
2002-10-02, 13:38:13
Ein kuhles Programm, die Version 1.2.
Gruß
Alex
zeckensack
2002-10-02, 14:34:47
Fantasticz!
Was ich noch nicht ganz verstanden habe:
Wenn man den Tunnel benutzt und an der Texturrotation spielt, dann dreht sich das ganze spiralförmig nach innen.
Ist das eine Rotation via Texturmatrix?
Es fällt mir etwas schwer, das Bild zu deuten :D
Originally posted by zeckensack
Fantasticz!
Was ich noch nicht ganz verstanden habe:
Wenn man den Tunnel benutzt und an der Texturrotation spielt, dann dreht sich das ganze spiralförmig nach innen.
Ist das eine Rotation via Texturmatrix?
Es fällt mir etwas schwer, das Bild zu deuten :D
Exakt das ist es.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.