[OpenGL] Textur auf einem Quad wiederholen



  • Mmhh, kann sein dass ich atm nur blind bin aber folgendes:
    Ich möchte gerne nur ein Quad (2D) zeichnen, aber eine Textur auf diesem wenn es geht öfters wiederholen. Mit den TexturCoordinaten geht das iwie nicht. Muss ich zwingend dafür mehrere Quads nehmen? Oder geht das iwie über die Texturparameter/Extensions?
    Danke für eure Hilfe, ich denke grade bestimmt wieder nur nicht ans richtige :D.
    rya.



  • Ist eigentlich garnicht so kompliziert:

    1. anklicken
    2. erstem Link folgen
    3. Lesen
    4. Verstehen


  • Gut, dann brauch ich ja hier nix mehr posten..



  • Nein du kannst für dein Texturobjekt die Parameterwerte für GL_TEXTURE_WRAP_S und GL_TEXTURE_WRAP_T auf GL_REPEAT setzen. Das hat zur Folge das die Textur wiederholt auf das Primitiv gemappt wird wenn die Koordinaten [0, 1] unter-/überschreiten.



  • David_pb schrieb:

    Nein du kannst für dein Texturobjekt die Parameterwerte für GL_TEXTURE_WRAP_S und GL_TEXTURE_WRAP_T auf GL_REPEAT setzen. Das hat zur Folge das die Textur wiederholt auf das Primitiv gemappt wird wenn die Koordinaten [0, 1] unter-/überschreiten.

    Danke auch von meiner Seite aus, wusste ich noch nüt 👍



  • David_pb schrieb:

    Nein du kannst für dein Texturobjekt die Parameterwerte für GL_TEXTURE_WRAP_S und GL_TEXTURE_WRAP_T auf GL_REPEAT setzen. Das hat zur Folge das die Textur wiederholt auf das Primitiv gemappt wird wenn die Koordinaten [0, 1] unter-/überschreiten.

    Das mit GL_REPEAT wusste ich, mir war nur nicht klar, dass man dafür die Coords auf 2.0 oder 3.0 etc setzen muss. Danke. Funnzt wie ich mir das vorgestellt habe. Jetzt kann ich mein 2D-Terrain auf ein Quad rendern statt auf viele kleine...
    rya.



  • Sorry, nochmal eine Frage:
    Ich hab jetzt das ganze eingebaut und auch in meine XML-Beschreibungen einbezogen.
    Nur ein Problem:

    if ( repeat == true )
        {
            glTexParameteri(mode, GL_TEXTURE_WRAP_S, GL_REPEAT);
            glTexParameteri(mode, GL_TEXTURE_WRAP_T, GL_REPEAT);
        }    
        else
        {
            glTexParameteri(mode, GL_TEXTURE_WRAP_S, GL_CLAMP);
            glTexParameteri(mode, GL_TEXTURE_WRAP_T, GL_CLAMP);
        }
    

    Jetzt habe ich mal spaßeshalber meine Testtextur nicht repeated, sondern eben mit GL_CLAMP erzeugt. Da habe ich dann komische Streifen. Ist das normal oder kann man das iwie verhindern?

    Mit Streifen (GL_CLAMP):
    http://img519.imageshack.us/img519/2718/screenshottw.png

    Wiederholt (GL_REPEAT):
    http://img3.imageshack.us/img3/4678/screenshotro.png

    Danke.
    rya.



  • Nein, die Streifen sind normal. GL füllt den Platz mit den Farbwerten an den Kanten der Textur auf.


Anmelden zum Antworten