Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
24.02.2002, 16:42
Prefect



Tja, auch ich renne manchmal gegen irgendwelche unsichtbaren Wände an.

Ich wollte nun Mip-Mapping in OpenGL implementieren. Der Code unten soll die Textur hochladen. Die Größe der ursprünglichen (auf 2er-Potenzen gescaleten Textur) liegen in upload_width, upload_height; format ist 3 oder 4, je nachdem ob die Textur transparente Stellen enthält. scaled enthält die Bilddaten, miplvls die Anzahl der gewünschten Mipmappinglevels.

BuildMipMap viertelt das Bitmap in der Größe (Kantenlänge wird halbiert).

Quellcode:
glTexImage2D(GL_TEXTURE_2D, 0, format, upload_width, upload_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, scaled);

if (miplvls > 0) {
int lvl;

lvl = 0;
while(lvl < miplvls) {
if (upload_width <= 1 || upload_height <= 1)
break;

BuildMipMap(scaled, upload_width, upload_height);
upload_width >>= 1;
upload_height >>= 1;

lvl++;
glTexImage2D(GL_TEXTURE_2D, lvl, format, upload_width, upload_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, scaled);
}

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
} else {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
}

Sobald miplvls > 0 ist, erscheinen alle Texturen immer weiß auf dem Bildschirm, so als ob die Texturdaten fehlen. Wenn ich GL_TEXTURE_MIN_FILTER auf GL_LINEAR statt einen der Mipmapping-Filter stelle funktioniert alles wie gewohnt (aber natürlich ohne Mipmapping).
Hat jemand eine Idee, was den Fehler verursachen könnte? Vermutlich habe ich ja nur eine Kleinigkeit übersehen, aber ich habe keine Ahnung, was das sein könnte :/

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
001
24.02.2002, 17:58
Prefect



Doh...

Das Problem ist, daß man mit OpenGL anscheinend entweder komplette Mipmaps erstellen muß, oder eben gar keine. Das letzte Mipmaplevel _muß_ Größe 1x1 haben, ansonsten funktioniert Mipmapping nicht.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
002
24.02.2002, 18:36
Diablo_bth



äh mal ne dumme Frage: warum lässt du nicht einfach dir die mipmaps mit glu machen? *gluBuild2DMipmaps*

--

zum Seitenanfang zum Seitenende Profil || Suche
003
24.02.2002, 19:33
Prefect



Weil ich so wenige Dependencies haben will wie nur irgendwie möglich. Immerhin soll das ganze dann auch noch Crossplattform laufen und so, und je mehr externe Abhängigkeiten ein Programm hat, desto mehr Streß gibt's generell dabei, es zum Laufen zu bringen.

Außerdem lernt man auf diese Weise mehr ;P

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
004
24.02.2002, 19:43
Diablo_bth



*respekt*

--

zum Seitenanfang zum Seitenende Profil || Suche
005
26.02.2002, 17:47
CabaL



Zitat:
Prefect postete
Tja, auch ich renne manchmal gegen irgendwelche unsichtbaren Wände an.

das hört sich aber sehr hochnäsig an

--

..::I've carved my soul to shreds in service of the Cabal. What little humanity I retain is corrupted by the Beast, which has grown stronger with every life I've taken::.

zum Seitenanfang zum Seitenende Profil || Suche
006
26.02.2002, 19:09
The_real_KANE



Wenn du Prefect kennen würdest, dann wüsstest du, dass dies echt selten ist :D

--

Die Welt geht unter, gehen sie mit!

zum Seitenanfang zum Seitenende Profil || Suche
007
26.02.2002, 19:34
CabaL



kenne ihn aber nur vom hörensagen...
und du bist wohl sein engster freund? :P

--

..::I've carved my soul to shreds in service of the Cabal. What little humanity I retain is corrupted by the Beast, which has grown stronger with every life I've taken::.

zum Seitenanfang zum Seitenende Profil || Suche
008
26.02.2002, 21:45
Prefect



... war aber keinesfalls hochnäsig gedacht, es reflektiert halt wahrscheinlich mein Frage : Antwort - Verhältnis auf dem Forum.
Übrigens ist es ja nicht so, daß ich nie auf irgendwelche Probleme stoße, und es ist auch nicht so, daß ich von Anfang an alles weiß. Es ist nur recht selten, daß ich wirklich über zwei Stunden lang Dokumentationen, FAQs, Google, und was einem sonst noch so zur Verfügung steht durchwälze und immer noch keine Lösung, geschweige denn einen möglichen Lösungsansatz finde.

Ich bitte auf jeden Fall um Vergebung, falls dieser Satz für Entrüstung, Verletzung der persönlichen Ehre oder sonst irgendetwas geführt haben sollte.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
009
27.02.2002, 16:43
[RMen]OneStone



echo("ICH WILL WIEDER CODE EINRÜCKUNGEN !");

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
010
27.02.2002, 22:39
blair



Jetzt reichts aber Meister OneStone...
ich finde das ganz schön, dass du Code Einrückungen möchtest, aber du musst das NICHT überall posten.
Schreib dp ne mail, schreib Morpheus ne mail, schreib jedem außer mir ne Mail aber Spamm nich überall hier rum.

--

because our freedom sits at the end of a gun
we're all here getting beat up and held back
we're all here digging knives from our backs

zum Seitenanfang zum Seitenende Profil || Suche