PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenGL + maximale Texturgröße


traexx
2003-08-18, 13:52:56
ich suche eine Möglichkeit unter OpenGL herauszufinden, wie groß maximal eine Textur sein darf. Leider habe ich dazu im Red Book nix dazu gefunden :( Und wenn es nicht über OpenGL geht, wie groß sollte eine Textur denn am besten sein, so das sie auch auf älteren Rechnern zu keinen Problemen führt.

Ganon
2003-08-18, 14:19:39
Knall rein bis der Speicher brutzelt! *ggg*

OpenGL kann eigentlich eine Menge! Das höchste was ich bisher gesehen habe waren 8xxx mal 8xxx! Das war für so ein Weltraumsimulator!

Liegt also einzig und allein an der Grafikkarte und wie viel die ab kann.

Ich denke mal für den Anfang sollten 512x512 reichen!

Bei allem anderen sollte man imo S3TC verwenden!

Gnafoo
2003-08-18, 14:21:08
int iTexSize = 0;

// params returns one value, the maximum width or height of any texture image (without borders).
glGeti(GL_MAX_TEXTURE_SIZE, &iTexSize);

cout << "Maximale Texturgröße: " << iTexSize << "\n";


Habs nicht ausprobiert, aber müsste gehen.

cu DerTod

traexx
2003-08-18, 14:26:52
thnx ^^ beides hilft. Mein Fehler - der Grund warum ich hier reingepostet hab, war einfach, das ich nicht dran gedacht hab, das ne Grafikkarte width und height als 2^x erwartet -.-

Aber ich denke, da ich ne ältere Grafikkarte hab, werd ich die Formulas trotdem brauchen ^^

:krank:

zeckensack
2003-08-18, 17:06:17
Original geschrieben von traexx
thnx ^^ beides hilft. Mein Fehler - der Grund warum ich hier reingepostet hab, war einfach, das ich nicht dran gedacht hab, das ne Grafikkarte width und height als 2^x erwartet -.-

Aber ich denke, da ich ne ältere Grafikkarte hab, werd ich die Formulas trotdem brauchen ^^

:krank: Grundvoraussetzung sind übrigens 256x256er Texturen. Das ist das Minimum, was eine Karte unterstützen muß, damit sie unter OpenGL überhaupt Texturen schleudern darf.
Steht auch in der Spec. Naja, ist nicht jedermanns Sache, die zu lesen ;)

Gleichermaßen gibt's auch eine kleinste Textur: 64x64
Das ist aber eigentlich hinfällig, seit es Mipmapping gibt. Ich habe noch keine Karte gesehen, die nicht auch 1x1 Texturen gefressen hätte :)

liquid
2003-08-18, 19:07:12
OpenGL 1.5 unterstützt jetzt endlich auch Non-Power-of-2 Texturen. KA ob das der Performance schadet, aber schön ist es dennoch. Schließlich muss man die Texturen nicht mehr scalen oder TexCoords verändern, wenn man einmal ein Bitmap hat, welches nicht auf die Specs passt.

Link (http://www.sgi.com/newsroom/press_releases/2003/july/opengl15.html)

cya
liquid

Xmas
2003-08-19, 00:08:16
Original geschrieben von liquid
OpenGL 1.5 unterstützt jetzt endlich auch Non-Power-of-2 Texturen. KA ob das der Performance schadet, aber schön ist es dennoch. Schließlich muss man die Texturen nicht mehr scalen oder TexCoords verändern, wenn man einmal ein Bitmap hat, welches nicht auf die Specs passt.

Link (http://www.sgi.com/newsroom/press_releases/2003/july/opengl15.html)

cya
liquid
AFAIK gibts aber noch gar keine Hardware die NPOT-Texturen in Verbindung mit Mipmapping abkann.

traexx
2003-08-19, 14:34:01
Original geschrieben von Xmas
AFAIK gibts aber noch gar keine Hardware die NPOT-Texturen in Verbindung mit Mipmapping abkann.

über glu hab ich komischerweise eine 640x480 Textur mipmappen können *g*

zeckensack
2003-08-19, 14:41:16
Original geschrieben von traexx
über glu hab ich komischerweise eine 640x480 Textur mipmappen können *g* GLU skaliert alles auf konforme n^2-Größen. Doku lesen bildet :D

gluBuild1DMipmaps, gluBuild2DMipmaps, and
gluBuild3DMipmaps all take an input image and derive from it a
pyramid of scaled images suitable for use as mipmapped textures. The
resulting textures are then passed to glTexImage1D, glTexImage2D,
or glTexImage3D as appropriate. target, internalFormat, format, type,
width, height, depth, and data de ne the level 0 texture, and have the same
meaning as the corresponding arguments to glTexImage1D, glTexIm-
age2D, and glTexImage3D. Note that the image size does not need to be
a power of 2, because the image will be automatically scaled to the nearest
power of 2 size if necessary.

traexx
2003-08-19, 14:49:54
Original geschrieben von zeckensack
GLU skaliert alles auf konforme n^2-Größen. Doku lesen bildet :D

hey! das war vor einer Woche!

:chainsaw:

bin ja gerade dabei mir alle möglichen Dokus reinzuziehen :bäh: