Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » Bitmaps

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
06.11.2006, 15:55 Uhr
banshee



hi,

ich habe eine Frage zum Laden von Bitmaps. Und zwar hab ich in meinem OpenGL-Programm eine Tutorial von nehe.gamedev genommen und alles, was das Programm tun soll, ist eine Bitmap immer auf die aktuelle Fenstergröße zu skalieren. Zu Testzwecken hab ich mir einfach eigene Bitmaps mit Photoshop erstellt (400x400) und ich glaube mit 32 Bit Farbtiefe doch wenn ich die dann laden will brauch er bei jedem Aufruf der Zeichenfunktion 3 Sekunden um die Bitmap zu laden. Und wenn ich 3 Texturen geladen hab zeigt er mir schon gar nichts mehr. Wenn ich allerdings eine Textur aus einem nehe-Beispielprogramm nehme, funktionierts perfekt.

Was mache ich denn jetzt falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.11.2006, 16:03 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, liegt an der größe, opengl mag am liebsten nur 2^n texturen, also z.b 512x512
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.11.2006, 19:12 Uhr
banshee



aha, dass openGL 2^n lieber mag hab ich schon oft gehört, aber dass es so krass ist, wusste ich natürlich nicht nicht

Wie wird das denn in modernen Spielen gelöst? Nehmen die da wirklich nur 2^n Texturen oder kann man das irgendwie umgehen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.11.2006, 19:44 Uhr
BoBtheREapER
kein job für nen BoB


die nehmen nur ^2 texturen aber man kann zb bei nem auto den reifen und dass dach in das selber bitmap zeichnen und dann einfach 2 verscheidene bereiche auswählen
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.11.2006, 17:19 Uhr
banshee




C++:
int DrawGLScene(GLvoid)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);                    // Screen- und Tiefenbuffer leeren
    glLoadIdentity();                                                    // Identitätsmatrix laden
    
    glBindTexture(GL_TEXTURE_2D, texture[0]);                            // Die Textur auswählen

    // Den Hintergrund zeichnen
    glBegin(GL_QUADS);
        glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);
        glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);
        glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);
        glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);
    glEnd();

    glEnable(GL_BLEND);                                                    // Blending aktivieren
    glDisable(GL_DEPTH_TEST);                                            // Tiefentests deaktivieren

    glBlendFunc(GL_DST_COLOR, GL_ZERO);                                    // Die Bildschirm farbe mit schwarz überschreiben

    glTranslatef(0.0f, 0.0f, -1.0f);
    glBindTexture(GL_TEXTURE_2D, texture[1]);

    // Textur 2 zeichnen
    glBegin(GL_QUADS);
        glTexCoord2f(0.0f, 0.0f); glVertex3f(-0.5f,-0.5f, 0.0f);
        glTexCoord2f(1.0f, 0.0f); glVertex3f( 0.5f,-0.5f, 0.0f);
        glTexCoord2f(1.0f, 1.0f); glVertex3f( 0.5f, 0.5f, 0.0f);
        glTexCoord2f(0.0f, 1.0f); glVertex3f(-0.5f, 0.5f, 0.0f);
    glEnd();

    glBlendFunc(GL_ONE, GL_ONE);
    glBindTexture(GL_TEXTURE_2D, texture[2]);

    // Textur 3 zeichnen
    glBegin(GL_QUADS);
        glTexCoord2f(0.0f, 0.0f); glVertex3f(-0.5f,-0.5f, 0.0f);
        glTexCoord2f(1.0f, 0.0f); glVertex3f( 0.5f,-0.5f, 0.0f);
        glTexCoord2f(1.0f, 1.0f); glVertex3f( 0.5f, 0.5f, 0.0f);
        glTexCoord2f(0.0f, 1.0f); glVertex3f(-0.5f, 0.5f, 0.0f);
    glEnd();
    
    glEnable(GL_DEPTH_TEST);
    glDisable(GL_BLEND);

    return TRUE;
}


ich hab hier mal ein Code-Beispiel, was leider etwas tut, was es nicht soll.
Gezeichnet wird ein Hintergrund auf die aktuelle Fenstergröße, das klappt.
Dann soll er mir eine andere Textur auf den Hintergrund zeichnen, was ich hier mit Masken gelöst hab. Textur 2 ist also die Maske für Textur 3.
Das Problem ist nur, dass er zusätzlich zur Textur 3 nochmal Textur 1 mitzeichnet.
Das heißt ich hab am Ende den Hintergrund, darauf nochmal den Hintergrund (der sich an die Größe der Textur 3 anpasst) und dann die Textur 3.
Wenn das zu kompliziert ist, kann ich auch die .exe hochladen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.11.2006, 18:27 Uhr
banshee



hey wo sind die nerds?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.11.2006, 20:02 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


sorry, übersehen,

screenshot wär gut, dann sieht man was du meinst. Aufm ersten blick erkenn ich den Fehler nicht, schätz aber es liegt am Blend-Mode.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.11.2006, 11:46 Uhr
banshee



http://img153.imageshack.us/img153/6029/testxt1.jpg

da

hab mir auch gedacht dass es am blend-mode liegt. aber das hab ich aus nem tutorial, also ganz rein theoretisch sollte es eigentlich stimmen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.11.2006, 13:18 Uhr
BoBtheREapER
kein job für nen BoB


of topic: sieht hübsch aus
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.11.2006, 16:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich seh jetzt nur den fehler am bild nicht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: