Procedural position tracks: Fehler in Greater Than?

Es gibt 2 Antworten in diesem Thema, welches 1.770 mal aufgerufen wurde. Der letzte Beitrag () ist von TroY.

  • Habe ein kleines Problem hier. Ich weise einem Objekt einen procedural position track zu, um es besser kontrollieren zu können. Dabei bin ich (imo) auf einen Fehler in AoI gestoßen, einfach gesagt sieht die Sache wie folgt aus.


    Wenn ich das Value "Time" mittels "Greater Than" mit einem festen Wert, bspw. 0.5 vergleiche (also: "Ist Time größer als 0.5?") und den Output meinetwegen in die Y-Koordinate stecke (X und Z bleiben 0), erwarte ich, dass das Folgende passiert: Ist die Zeit noch nicht 0.5, dann ist das Ergebnis vom Vergleich 0 und das Objekt sitzt bei 0/0/0. In allen anderen Fällen müsste das Ergebnis ja 1 sein, da "Time" dann größer als 0.5 ist.
    Das funktioniert auch wunderbar, bis auf die eine kleine Stelle, an der die Zeit genau 0.5 ist. Dann liefert das Modul ein unbrauchbares Ergebnis und die Y-Koordinate des Objektes ist undefiniert - somit verschwindet es.


    Das Beispiel habe ich zum besseren Verständnis mal hierhin hochgeladen:
    http://www.uninformativ.de/gal/3d/misc/GreaterThanError.aoi


    Zieht man die Zeitleiste langsam nach 0.5, passiert erstmal gar nichts. Genau bei 0.5 ist das Objekt dann verschwunden und, da die Y-Koordinate irgendwie hops geht, auch in der Zeit nach 0.5. Schiebt man nun auf bspw. 0.6, setzt die Y-Koordinate manuell wieder auf 0 und schiebt dann die Zeit weiter nach 0.7, springt der Würfel auf 0/1/0. Daraus schließe ich, dass vor und nach 0.5 alles korrekt ist, aber genau bei 0.5 irgendwas nicht stimmt.


    Mache ich da etwas falsch oder ist das wirklich ein Fehler? Wenn ja, werde ich mal einen Post im SF-Forum machen.



    -edit: Ok, ich habe nun ein Workaround gefunden. :) Normal kommt mir das trotzdem nicht vor, Meinungen? :nachdenklich:
    http://www.uninformativ.de/gal…/GreaterThanError_Fix.aoi

  • Oh ja bitte eine Post im SF Forum.


    Ich glaube zwar wenn man gedanklich die "Rasierklinge" ansetzt das es bei "genau" 0,5 natürlich schwierig wird größer oder kleiner zu bestimmen.


    Vielleicht muß man den Kasten auf größer + gleich erweitern?


    Wäre zumindest ein Vorschlag.


    Vid

  • Naja, bei 0.5 und 0.5 ist natürlich keins größer als das andere, das stimmt schon. So gesehen macht es auch in gewisser Weise Sinn, dass bei einem derartigen Vergleich "nichts" herauskommt.


    Ein größer-gleich wäre sicherlich sinnvoll. Oder eben eine einfache Korrektur, damit es mit dem Manual übereinstimmt: "Greater Than returns 1 if the top input is greater than the bottom and 0 otherwise." Wie gesagt, im "otherwise" steckt imo auch der Fall, dass beide gleich sind.


    Von der Programmierersicht ist es aber schon seltsam. :D Normalerweise hätte ich naiverweise etwas wie "if (a > b) { ... } else { ... }" erwartet, was dann halt darin resultiert, dass bei Gleichheit auch der "else"-Teil ausgeführt wird. Ein Blick in den Quellcode zeigt aber, dass dieser simple Vergleich lange nicht so "trivial" ist und dass (soweit ich das sehen kann) wirklich auch ein spezieller Fall dafür vorhanden ist, wenn beide Werte gleich sind. Was genau dann der Wert ist, kann ich aber nicht sagen, dazu weiß ich vom AoI-Code zu wenig ...


    Wie auch immer, ich poste das mal im SF. :)



    -edit: Peter meinte, dass es wohl einfach zu fixen sei und er es in der finalen 2.5.1 aufnehmen will. :)

    • Gäste Informationen

    Hallo Gast,

    gefällt dir der Thread, willst du was dazu schreiben, oder möchtest du noch mehr in diesem Forum sehen und kostenlose Downloads?

    Dann melde dich bitte an.
    Hast du noch kein Benutzerkonto, dann bitte registriere dich, nach der Freischaltung kannst du das Forum uneingeschränkt nutzen.

    Hello Guest,

    Do you like the thread, do you want to write something about it, or do you want to see more in this forum and free downloads?

    Then please sign in.
    If you don't have an account yet, please register, after activation you can use the forum without any restrictions.