Immer gleiche Texturkoordinate für Punkt

  • Guten Abend,


    hat man große gewölbte Objekte, auf die man gleichförmig eine Textur legen möchte, muss man derzeit für jeden Punkt bis zu 4 mal (da in 4 angrenzenden Flächen enthalten), manchmal auch mehr, die Texturkoordinaten eingeben. Zur Vereinfachung schlage ich daher vor, einen Button "immer gleiche Texturkoordinate" (o.ä.) einzurichten, durch den der markierte Punkt in allen Flächen des Objekts die soeben eingegebenen Texturkoordinaten zugeordnet bekommt.


    Gruß, Klaus

  • Hallo,
    ich verstehe das Problem und eine Funktion die so etwas erledigen kann, wäre sicher in einigen Situationen eine Erleichterung. Ich bin allerdings am Überlegen, ob man hier nicht eine "allgemeinere" Lösung entwickeln könnte.


    Bei der "Button-Lösung" frage ich mich was passiert, wenn andere Flächen mehr/weniger Punkte haben? Gibt es dann eine Fehlermeldung, wird es gar nicht gemacht, oder nur für maximal genau so viele Punkte wie in der Fläche wo man den Button drückt? Besser ein Button, ein Menübefehl oder Kontextmenü im Tree links?


    Alternativ geistern bei mir gerade folgende Ideen im Kopf herum:
    - Möglichkeit mehrere Flächen gleichzeitig bearbeiten zu können: Links im Baum eine Mehrfachauswahl und dann wird rechts alles was "sinnvoll" bearbeitbar ist auch bearbeitbar. D.h. zB wenn alle gewählten Flächen zumindest 5 Punkte haben, werden rechts auch 5 Punkte angezeigt (zB mit a,c,d,e,f,g beschriftet) und die Texturkoordinaten bzw. die Normalenvektoren der Flächen können gemeinsam geändert werden
    - Oder reicht es / ist es besser, wenn der "Neu" Button bei den Flächen nicht nur neue Punkte anzeigt, sondern auch die bestehenden? Sodass man Punktnummern einfach erstetzen kann aber die Texturkoordinaten bleiben?


    Oder gibt es vielleicht noch einen anderen Ansatz der dann für mehr Anwendungsfälle gebraucht werden kann?


    lg
    Lukas

  • Hallo Lukas,


    ich glaube, Du hast da etwas falsch verstanden. Ich möchte nicht, dass immer der x-te Punkt innerhalb einer Fläche dieselben Koordinaten erhält (das bekomme ich recht einfach über einen Texteditor und Copy/Paste hin), sondern derselbe Punkt im 3D-Objekt, also bspw. immer Punkt 12 in allen Flächen, egal an welcher Stelle er steht.


    Gruß, Klaus

  • Hm, Klaus,


    meinst Du vielleicht so etwas:


    Code
    (1)---(2)---(3)
     |     |     | 
    (4)---(5)---(6)
     |     |     | 
    (7)---(8)---(9)


    Die Flächen werden dann wie folgt beschrieben:
    F1: 1,2,4,5
    F2: 2,3,5,6
    F3: 4,5,7,8
    F4: 5,6,8,9


    Gruss
    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo Uwe,


    genau jenes. Da liegt ja nahe, dass die Punkte 2, 4, 5, 6 und 8 in allen Flächen die gleiche Texturkoordinate haben.


    Gruß, Klaus

  • Alternativ geistern bei mir gerade folgende Ideen im Kopf herum:
    - Möglichkeit mehrere Flächen gleichzeitig bearbeiten zu können: Links im Baum eine Mehrfachauswahl und dann wird rechts alles was "sinnvoll" bearbeitbar ist auch bearbeitbar. D.h. zB wenn alle gewählten Flächen zumindest 5 Punkte haben, werden rechts auch 5 Punkte angezeigt (zB mit a,c,d,e,f,g beschriftet) und die Texturkoordinaten bzw. die Normalenvektoren der Flächen können gemeinsam geändert werden


    - Oder reicht es / ist es besser, wenn der "Neu" Button bei den Flächen nicht nur neue Punkte anzeigt, sondern auch die bestehenden? Sodass man Punktnummern einfach erstetzen kann aber die Texturkoordinaten bleiben?


    lg
    Lukas


    Ganz nebenbei finde ich die von Lukas eingebrachten Varianten trotzdem Überlegenswert.
    Klar geht das auch mit Texteditor, ein Workaround im Programm macht es aber Benutzerfreundlicher.


    Gruß André

  • Hi,
    da habe ich den ursprünglichen Vorschlag wirklich falsch verstanden. Aber jetzt hab ichs ;-)


    Allerdings fehlt mir da gerade etwas die Idee für die Umsetzung bzgl. Oberfläche. Ein Button in dem Bereich "Texturkoordinaten" welche die Texturkoordinaten des gerade gewählten Punkts für alle anderen Flächen übernimmt?
    Zusätzlich (oder alternativ) beim Hinzufügen von neuen Punkten schauen ob der Punkt schoneinmal wo Texturkoordinaten bekommen hat, diese dann auch gleich übernehmen anstatt 0/0?
    Gute Vorschläge willkommen :-)


    lg
    Lukas


    PS: Die von mir (unabsichtlich) gemachten anderen Vorschläge können wir ja gerne ein anderes Mal (oder an anderer Stelle) diskutieren. Ich will aber nicht zuviel vermischen :-)

  • Hm,


    vielleicht ist es ein Ansatz, über eine Auswahl eine gewisse Anzahl von 'Kacheln' auszuwählen und diese dann mit 10px (oder so) Abstand bei 0,0 zu plazieren. Die einzelnen Eckpunkte können dann wie bisher über die Textur gezogen werden. Für das 'alte' Verhalten wäre dann 'eine' Kachel zuständig. Man müsste 'nur' dafür sorgen, das ein Eckpunkt automatisch zu n-Kacheln gehört, analog zu den Eckpunkten eines Körpers. Und ehe ich es vergesse: Die Zuordnung von Texturkoordinate zur Kachel sollte editierbar sein, nur damit es nicht einfacher wird... ;)


    Gruss
    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo,


    .....Abstand bei 0,0 zu plazieren.


    ich weiß nicht, ob die Regel noch gilt: Man sollte (zumindest früher) die Texturflächen nicht total zum Rand legen (z.B 0,0). Dies gab zumindest seinerzeit unangenehme Effekte, deshalb lasse ich generell 1 Pixel Rand.
    Gruß
    Rainer
    edit: Die "Regel" mit einem Pixel Rand ist im Editor-Handbuch von Klaus auf Seite 65 auch zu erkennen.

  • Tach,


    ob oben links jetzt 0,0 oder 1,1 oder was weiß ich ist, ist letztlich ersteinmal egal, gell? Es sollte halt ein sinnvoller Wert sein.


    Gruss
    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo Uwe,


    ob oben links jetzt 0,0 oder 1,1 oder was weiß ich ist, ist letztlich ersteinmal egal, gell? Es sollte halt ein sinnvoller Wert sein.


    genau, es sollte ein sinnvoller Wert sein: Deshalb hast du offenbar meine Bemerkung ignoriert: Mich stört schon immer, dass beim Objekterstellen immer mit 0,0 begonnen wird.
    Gruß
    Rainer

  • Hallo Rainer,


    ich weiß, das zur Zeit 0,0 vorgegeben ist. Da aber die Graphik nunmal nicht wirklich mein Gebiet ist, habe ich micht auf einen 'sinnvollen' Wert zurückgezogen und ignoriert habe ich Deine Bermerkung nicht.


    Meine Ausführungen bezogen sich ersteinmal auf die prizipelle Vorgehensweise. Und da ist 0,0 genausogut wie 1,1 oder gar 100,100, denn es wird lediglich der Ursprung beschrieben. Wo diesen dann zu liegen kommt, ist eine andere Sachen.
    BTW: Mit 0 und 1 kann man sich beim Programmieren auch gelegendlich in's Knie schießen. :(


    Gruss
    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo Klaus,


    nach meinen Erfahrungen ja, manchmal sind sogar 2 Pixel besser.


    danke für die Bestätigung. Dann sollten wenigstens 1 Pixel ringsum freibleiben, also bei den Default-Werten sollten keine "0" mehr angeboten werden!
    Gruß
    Rainer

  • Hallo Rainer,


    es gibt Fälle, da ist aber auch die 0 nicht verkehrt. Habe ich eine Textur, die ich mehrfach gekachelt auf die Fläche bringen möchte (da es allgemein nicht mehr sooo notwendig ist, hier aber schon!), dabei muss sie aber eine 2er-Potenz als Kantenlänge erhalten. Dann kann ich z.B. Koordinaten von 0-32 angeben (also ohne den Rand freizulassen!), dann wird sie einmal dargestellt, gebe ich Werte größer als 32 ein, wird die Textur sauber wiederholt. Das hat aber nie so richtig jemand angewendet, da immer von einer neuen Grafik-Engine gesprochen wurde, bei der das zu Problemen führen soll. Allerdings wurde dieses Verfahren bisher von allen Engines unterstützt, mit denen ich gearbeitet habe, sehe darin also auch für Loksim zukünftig keine Probleme.


    Gruß, Klaus

  • Hallo!
    Pixelrand: Ja das gilt immer noch, solange Loksim DirectX7 verwendet wird das notwendig sein.
    Kachelung: Sollte nach den von Klaus beschriebenen Grundsätzen funktionieren. Ich wollte das schon einmal als "richtiges" Feature einführen, aber insbesondere die Abhängigkeit von der Texturgröße hat mich (fürs erste) davon abgehalten.


    Zum ursprünglichen Vorschlag: Die grundsätzliche Idee die Texturkoordinaten eines Punkts von einer Fläche für alle Flächen zu übernehmen lässt sich recht schnell umsetzen und kann ich mal zwischendurch erledigen. Bleibt nur die Frage wie genau dieser Befehl abgesetzt werden kann. Button/Menü?
    Komplexere Sachen zu implementieren - wie ein eigenes UI - habe ich im Moment eigentlich nicht vor.


    lg
    Lukas

  • Hi,
    Info: Ich warte hier noch auf das Feedback ob die simple "1 Button bzw. 1 Menübefehl" Lösung ausreichend / sinnvoll ist. Diese lässt sich in Kürze einbauen, wenn das jemandem weiterhilft. Würde inzwischen hier eher zu Button wie zu Menü tendieren


    Ist die einfache Lösung nicht ausreichend, empfehle ich auch hier den Vorschlag nochmals im loksimulatoren Forum zu posten. Ich möchte in Zukunft die Vorschläge wirklich nur mehr zentral dort sammeln


    lg
    Lukas

  • Hallo Lukas,


    warum auch immer habe ich die letzten Antworten bisher nicht angesehen bzw wurden nicht als neu angezeigt. Da ich gerade nochmal schauen wollte, ob und wie weit der Vorschlag schon war, hab ich es jetzt erst gesehen :-/


    Also ein Button neben der Anzeige der Punkte in der Fläche „Koordinate für alle übernehmen“ reicht meiner Meinung nach aus, um die Koordinaten für diesen Punkt in allen Flächen zu übernehmen. Vielleicht kann dann links bei der Übersicht der Punkte und Flächen eine Einfärbung der Punkte erfolgen, die über diese Funktion automatisch mit Werten belegt wurden, die kann nach dem Schließen der Datei verschwinden, muss also nicht gespeichert werden.


    Gruß, Klaus

  • PatrickR

    Hat das Label Umgesetzt hinzugefügt