leichtes Texturruckeln



  • Also mein Problem ist folgendes, ich hab nen Heightfield mit den Ausmaßen MAP_SIZE. Also Punkte, nicht Kacheln (MAP_SIZE=2n^2+1 mit integer). Nun möchte ich da ne Textur drüberziehen, das mache ich so:

    scalefaktor=(float)(1.0f/(float)MAP_SIZE);
    //[...]
    //Texturkoordinaten setzen
    glTexCoord2f ((float)hf->vertex.x * scalefaktor,  (float)hf->vertex.z * scalefaktor);
    

    Sind vieleicht nen paar zuviel (float) drinne, aber sicher ist sicher 😃
    So also mit diesem Code hier funktioniert es perfekt, also fast. Die Textur ist nur an der X- Achse gespiegelt, um das wieder gerade zu biegen, hab ich die Zeile so modifiziert:

    //Texturkoordinaten setzen
    glTexCoord2f ((float)hf->vertex.x * scalefaktor, (float)MAP_SIZE-(float)hf->vertex.z * scalefaktor);
    

    Jetzt ist die Textur zwar richtig rum, aber sie ruckelt bei näherer Betrachtung immer gaaanz leicht hin und her, das sieht natürlich nicht so schön aus.
    Was kann ich jetzt machen? Ich brauche unbedingt Hilfe... 😮



  • ups, ich meinte MAP_SIZE=2^n+1
    also zB 33 oder 65 oder 129 usw



  • ok... ich habs selbst gemerkt, da braucht es noch ne Klammer

    glTexCoord2f ((float)hf->vertex.x * scalefaktor, ((float)MAP_SIZE-hf->vertex.z) * scalefaktor);
    

    komisch, dass da sonst keienr drauf gekommen ist....



  • Du bist gut - sollen wir die Datentypen erraten?
    Die hättest du schon beischreiben müssen



  • stimmt, deswegen hat auch jeder gefragt was ich denn für Datentypen nehme...... :o

    und den Fehler bekommt man mit jedem Datentyp. Außerdem, ach was solls
    Jetzt ist eh egal



  • Original erstellt von <achsenspiegler>:
    stimmt, deswegen hat auch jeder gefragt was ich denn für Datentypen nehme...... :o

    Wolltest Du etwas von uns oder wir etwas von Dir?
    Es liegt am Fragesteller, ausreichend Informationen über das jeweilige Problem zu liefern nicht an den anderen Forumsbesuchern (=freiwillige nicht bezahlte Helfer) diesem die Infos aus der Nase zu ziehen.



  • Eins versteh ich immer noch nicht. Egal ob die Texturkoordinaten nun falsch oder richtig waren, wie konnten denn die Textur, hin- und herruckeln? Wenn ich falsche Koordinaten angeb, dann ist die Textur doch einfach nur versetzt und springt nicht umher.



  • Original erstellt von TGGC:
    Eins versteh ich immer noch nicht. Egal ob die Texturkoordinaten nun falsch oder richtig waren, wie konnten denn die Textur, hin- und herruckeln? Wenn ich falsche Koordinaten angeb, dann ist die Textur doch einfach nur versetzt und springt nicht umher.

    Da er irgendwas von scalefactor in seinem Prog stehen hat, bezog sich das wohl auf's Zoomen. Wenn er näher ranzoomt, springt "mit ein mal" die Textur auf dem Quad kleiner/größer runter/rauf. Wenn man statt floats für u und v ints nimmt kein Wunder...



  • das ist nen LOD Gelände, die Vertexe werden immer neu berechnet, vieleicht liegts daran. Nur dummerweise trat der Fehler auch dann auf, wenn ich mich nicht bewegt habe, die Positionen der Vertexe sich also nicht verändert haben...
    Naja, Fakt ist, dass ohne Klammer die texturen rumgeruckelt sind und es jetzt geht.
    Und das ist doch die hauptsache 🙂



  • ähm.. also sie haben sich ja doch bewegt, da der Fehler nur auftrat, wenn ich mich umgesehen habe, also die Ganze Szene rumrotiert wurde...



  • Beim rotieren werden keine Vertizen bewegt und auch beim LOD setzt man sie normalerweise in x und z Richtung stets die selben Werte. Erscheint mir total unlogisch, das da irgendwas rumruckelt. Und LOD würde ja auch erst in etwas grösserer Entfernung einsetzen, man würde das kaum merken.


Anmelden zum Antworten