Texturkoordinaten per Vertex



  • Hi,
    Das Problem beschäftigt mich schon die ganze Zeit und ich habe auch keine Lösung gefunden:
    Wenn für jedes Dreieck 3 Texturkoordinaten definiert werden, wie kann ich jetzt für jeden Vertex ein Texturkoordinatenpaar finden?
    z.B soll dann, wenn der Vertex schon andere Texturekoordinaten hat, ein neuer erstellt werden.

    Mein bisheriger Algorithmus:

    VertexIndexInfo : OldIndex, NewIndex
    
    Alle Dreiecke durchlaufen
       die drei Indizes durchgehen
          wenn der vertex die selben uv koord. hat wie das des Indizes
             continue
    
         alle VertexInfos durchgehen bis VertexInfo.OldIndex == akt. Index
         Wenn kein VertexIndexInfo gefunden wurde
            vertex mit neuer tex-coord. und VertexInfo erzeugen
         else
            setze akt. Index auf VertexIndexInfo.NewIndex
    


  • möchtest du die Texturkoordinaten in der Textur berechnen, oder wissen welche Texturkoordinaten ein Vertex hat?



  • schon gut...
    Der Algorithmus klappt, ich hatte nur einen speziellen Fall nicht beachtet, der jedoch eigentlich nicht extra behandelt werden musste 😕



  • Alle Dreiecke durchlaufen
    - alle VertexInfos durchgehen bis VertexInfo.OldIndex == akt. Index

    quadratischer aufwand wird mit modellen jenseits 100.000 polygonen nicht zu gebrauchen sein.



  • Ja, aber nur wenn denn auch viele unterschiedliche Texturkoordinaten vorhanden sind.
    Asnonsten ist der Algorithmus ziemlich schnell und man muss nicht viel Speicher durch einen 3 * NumFaces großen Vertexbuffer verschwenden.


Anmelden zum Antworten