WrapProblem? - Teil einer Textur wiederholt zeichnen



  • Gruß

    Hab ne 128x128 Textur, die aus mehreren Bildern der Größe 16x16 besteht.
    Wie kann ich ein einzelnes (Teil-)Bild nun mehrmals wiederholen lassen?

    Wenn die Textur ein Bild ist, habe ich damit kein Problem.
    Geb dann einfach bei Tu bzw Tv nen Wert >1.0 ein, aber für Teilbilder funzt das nicht mehr...

    Derzeit schaut das (gekürzt) so. Klappt prima, aber ich hab keine Idee mehr wie ich die Textur mehrfach malen lassen kann...

    //nPic indentifiziert die verschiedenen Bilder in der Textur
                      int Tu = nPic%8; 
    			int Tv = nPic/8;
    
    			CustomVertex.TransformedColoredTextured[] verts = 
                              new CustomVertex.TransformedColoredTextured[4];
    
                      verts[0].Tu = 16*(Tu-1)/128f;
    			verts[0].Tv = 16*Tv/128f;
    
    			verts[1].Tu = 16*Tu/128f;
    			verts[1].Tv = 16*Tv/128f;
    
    			verts[2].Tu = 16*(Tu-1)/128f;
    			verts[2].Tv = 16*(Tv+1)/128f;
    
    			verts[3].Tu = 16*Tu/128f;
    			verts[3].Tv = 16*(Tv+1)/128f;
    

    Gruß und Dank
    c#



  • Hm... hab ich das Problem schlecht beschrieben?

    Also mal nen Beispiel:

    Textur 32x32 Pixel.
    Das obere,linke viertel 16x16 soll nun in einen 16x32 Bereich dargestellt werden.
    Die Textur soll dabei aber nicht gestreckt werden, sondern sich in y-Richtung wiederholen.

    Wenn man nicht einen Teil einer Textur, sondern die Ganze zeichnet, ist das kein Problem. (Tv = 2.0)

    Probiert habe ich es nun mit (Tv = 0.5 / Tv 2.5), das führt aber leider dazu, das er 2,5x den linken (16Pixel breiten) Streifen zeichnet und nicht 2 mal das gewünschte viertel...

    Ist eine Umsetzung über TexturKoordinaten überhaupt möglich?
    Gruß



  • Nein, das geht nicht.
    Eventuell mit einem Pixel-Shader...



  • Mist, aber danke.


Anmelden zum Antworten