IRC Logs for #zfx


2021-10-10

01:38:57 IceMichael joined the channel
03:18:44 IceMichael joined the channel
07:21:52 joeydee joined the channel
07:22:00 joeydee: moin
08:36:34 IceMichael joined the channel
08:55:05 joggel joined the channel
08:55:09 joggel: moin
08:55:38 joeydee: moin joggel
08:58:50 joggel: hey ho
08:59:09 joggel: bist am programmieren?
09:01:56 joggel: na ich bastel auch mal wieder etwas an meinem Edir jetzt. Letzter Versuch Rotationen übers GUI zu steuern
09:02:10 joggel: Für Halloween habe ich noch nichts :/
09:02:58 joeydee: Aktuell nichts, seit mein Spheresweep doch noch nicht so stabil scheint wie ich dachte.
09:03:54 joggel: Spheresweep ?
09:04:28 joggel: du meinst das Video was du mal im Forum gezeigt hattest? Flug durchs ein Raumschifffriedhof?
09:04:40 joggel: kollision und Sound
09:04:42 joeydee: Problem "Kugel bewegt sich bei hoher Geschwindigkeit durch Wand".
09:04:49 joggel: aaah, okay
09:04:53 joggel: mist!
09:04:56 joeydee: Ja, gehört dazu.
09:06:08 joeydee: Prinzipiell geht es, aber ich habe Grenzfälle wo die Kugel bereits aufsitzt (Abstand gegen 0), aber ich einen Step >0 benötige für den Raycast, damit dieser sich nicht totläuft.
09:06:46 joeydee: Ich glaube zumindest, das ist das Problem. Scheint lösbar, aber keine Ambitionen mich da wieder reinzufuchsen aktuell.
09:07:00 joeydee: Vorher gehts da aber leider nicht weiter :(
09:07:09 joggel: mh.. ärgerlich
09:07:27 joggel: kommt zeit, kommt Ambition^^
09:07:43 joeydee: Waren deine Gizmos (diese Ringe zum Drehen am Modell) selbstgemacht?
09:07:52 joggel: shame on me: :(
09:07:54 joggel: Nein
09:08:02 joggel: Ich habe etwas fertiges genommen
09:08:05 joggel: moment
09:08:21 joggel: https://github.com/ddiakopoulos/tinygizmo
09:08:30 joggel: ist aber leider etwas buggy
09:08:56 joeydee: an welcher Stelle buggy?
09:09:05 joggel: uff..wo war das noch gleich
09:09:20 joggel: ich glaube, wenn man snapValues angibt
09:09:30 joggel: also snapValue>0
09:09:39 joeydee: ok, erstmal unwichtig.
09:09:44 joggel: da springt das manchmal seltsamja
09:09:49 joggel: ja: unwichtig
09:09:58 joggel: und dann gibt es da noch einen zweiten bug
09:10:13 joggel: wenn man auf skalierung schaltet.
09:10:18 joeydee: Link werd ich mir mal abspeichern
09:11:10 joggel: Also man rotiert, dann schaltet man auf Skalierung um => die SkalierungsAchsen rotieren sich da mit.. ABER: Die MausBewegungen muss man dann auf die unrotierten Axen anwenden
09:11:26 joggel: fühlt sich mega falsch an
09:12:05 joggel: dann gibt es noch das: https://github.com/CedricGuillemet/ImGuizmo
09:12:16 joggel: aber du arbeitest ja mit C# soweit ich mich erinnere
09:12:22 joeydee: Mich interessiert vor allem gutes Mapping Mausbewegung -> Gizmo.
09:12:32 joggel: ja, verstehe
09:12:40 joggel: dann schaue die den TinyGizmo an
09:12:48 joeydee: Ja C#, aber lesen macht ja auch kluk. K.L.U.K!
09:12:53 joggel: Kluq?
09:12:57 joggel: :D
09:13:45 joggel: genau. Bei dem TinyGizmo stimmt was mit der Mausmapping im SkalierungsMode nicht
09:13:53 joggel: so ist es vlt besser ausgedrückt
09:13:53 joeydee: https://www.youtube.com/watch?v=gPMWOjkLCMw
09:14:14 joggel: LOL
09:14:17 joggel: KLUK
09:14:54 joeydee: Der Bug hört sich danach an, dass dort lokale vs. globale Achsen nicht beachtet wurden.
09:15:11 joggel: genau
09:15:14 joggel: also
09:15:17 joggel: moment
09:16:29 joggel: anfassen der Achsen funktioniert. Also picking auf die lokalen Achsen funktioniert. ABER: Die Mausbewegung eben nicht. Das fühlt sich eben so an, als wären die auf den globalen Achsen angewendet
09:18:06 joeydee: Ich hab mal versucht, einen eigenen Rotationsgizmo zu bauen. Dachte erst, einfach Mouse-Ray auf die Ringebene mappen und Winkel zwischen Start- und aktuellem Vektor berechnen. Aber geht natürlich nicht wenn man direkt auf die Ringkante schaut.
09:19:13 joggel: so hatte einfach ich mir das auch vorgestellt...
09:19:35 joeydee: Also schätze ich, erst Ray-Zylinder-Hit, dann Toleranzhöhe beachten. So irgendwas.
09:20:51 joggel: naja... was für eine Höhe ht denn deine RingEbene?
09:22:22 joeydee: Theoretisch ist die ja 0, aber wie beim Vertex-Selektieren nimmt man ja eine Pixeltoleranz hinzu.
09:22:35 joggel: oder meinst du von oben direkt drauf schaut?
09:22:57 joeydee: Ich meinte seitlich auf die Kante.
09:23:01 joggel: ok
09:23:54 joggel: dieser TinyGizmo sieht so aus: https://ibb.co/Jj8yPmB
09:23:55 joeydee: Also ich denke, man muss den Ring zu einem unendlichen Zylinder extrudieren, dort den Maus-Ray auftreffen lassen, und dann schauen wie hoch/tief der über der Ringebene ist. Das dann aber im Pixelspace.
09:24:54 joeydee: (bzw. halt irgendwie normiert gegenüber der Distanz)
09:25:12 joggel: mmhh
09:26:12 joeydee: dann müsste der Ring in jeder Lage intuitiv "anfassbar" sein. Zeichnung?
09:26:32 joggel: ich wäre jetzt ganz naiv vorgegangen: Jeden Ring als Mesh bauen mit einer bestimmt Höhe (also nicht nur 2-dimensional). Mesh-Ray-Intersection-Test => Bewegung ermitteln = WinkelDelta => fertig
09:27:14 joggel: Zeihnung? Soll ich jetzt etwas zeichenen oder war das laut gedacht von Dir?^^
09:27:20 joggel: *Zeichnung
09:27:38 joeydee: War eine Aufforderung an mich selbst, das mal aufzuzeichnen :D
09:27:47 joggel: ah. okay
09:27:48 joggel: ^^
09:28:34 Magister joined the channel
09:29:57 joeydee: Mesh hat halt prinzipbedingt Kanten, ist also nicht kontinuierlich. Und ich persönlich scheue vor so einem Umweg zurück, wenns auch mathematisch geht. Da Ray-Trianglesoup-Intersection (optimiert) komplizierter und aufwändiger ist als Ray-Zylinder-Intersection.
09:30:55 joggel: ok...
09:31:15 joggel: EInfach jedes Dreieck mit Ray testen...
09:31:24 joggel: aber okay
09:31:34 joggel: Aber was du mit Zylinder meinst verstehe ich nicht ganz
09:33:20 joeydee: Einfach einen einzigen Zylinder mit Ray testen ist ganz sicher günstiger.
09:33:35 joggel: aaah, ja. ich verstehe
09:33:46 joggel: ich verstehe jetzt wie du es meinst:
09:33:53 joggel: Also ich denke, man muss den Ring zu einem unendlichen Zylinder extrudieren, dort den Maus-Ray auftreffen lassen, und dann schauen wie hoch/tief der über der Ringebene ist. Das dann aber im Pixelspace.
09:34:03 joggel: ja, das wäre "einfacher"
09:35:15 joeydee: Mann kann natürlich auch seine Lib dafür ackern lassen, ist ja ein seltenes Ereignis (1 pro Frame)
09:35:39 joeydee: Aber Quali des Mappings ist dann vom Mesh abhängig.
09:36:05 joggel: vom Gizom-Mesh... ja
09:36:19 joeydee: ja das meinte ich
09:36:38 joggel: ja, ich denke das ist auch überhaupt nicht performance kritisch
09:36:50 joggel: also wenn man Mesh-Ray-Intersection macht
09:41:05 joeydee: ich mach gerade ne Skizze, brauch ich sowieso für mich
09:41:50 joggel: ich auch. Bin auch eher der visuelle Tpy
09:42:05 joggel: also verstehe vieles besser wenn ich mir das aufzeichne und so
09:44:09 joeydee: Dein Hauptproblem war ja Gizmo vs. numerische Eingabe, glaube ich?
09:44:16 joeydee: Euler-Winkel
09:45:16 joggel: Eher: Euler-Winkel im GUI anzeigen und darüber steuern
09:45:39 joggel: ja, genau: numerische Eingabe und ableiten der numerischen Werte aus Matrix
09:45:48 joggel: Aber: ich habe jetzt eine Lösung gefunden
09:46:14 joggel: Wie das nutzerfreundlich und sich korrekt anfühlt
09:49:07 IceMichael: hi
09:49:11 IceMichael: ist einer von euch nginx-Experte?
09:49:17 IceMichael: will gerade so nen reverse proxy einrichten
09:49:27 joeydee: nein
09:49:33 joggel: leider nein
09:49:38 joggel: weiß nicht mal was dasd ist xD
09:50:10 IceMichael: hehe :)
09:50:17 IceMichael: eigentlich sehr nice, man hat lokal services auf diversen ports
09:50:26 IceMichael: und dann nimmt man nginx, haut dem ein SSL cert rein
09:50:31 IceMichael: und alle services laufen einfach ueber den
09:50:42 IceMichael: dann hat man ganz viele https-services, die zentral ueber nginx EINMAL abgesichert sind
09:50:58 joggel: aha. sounds sweet
09:52:57 IceMichael: ja, laeuft nur nicht
09:53:18 IceMichael: hm aber wsl weil meine dotnet app kein https akzeptiert hm
10:01:01 IceMichael: hm noe, trotzdem nicht
10:04:32 joeydee: hm, die Zylinder-Lösung für den Gizmo macht natürlich umgekehrt Probleme, wenn man steil auf den Gizmo schaut. Logisch.
10:04:58 joggel: lol
10:05:19 joggel: ich habe noch nachgedacht was es für probleme geben könnte
10:05:34 joggel: aber wieso`?
10:05:43 joggel: Funktioniert da kein Ray-Zylinder Test?
10:05:51 joggel: sollte doch...
10:06:19 joeydee: Fall a) Kamera ist *im* Zylinder
10:06:31 joggel: stimmt
10:06:38 joggel: lässt sich aber leicht anfangen
10:06:48 joggel: *abfangen
10:07:06 joeydee: Fall b) Kamera ist außerhalb, aber der Ray-Hit ist weit über der Gizmo-Ebene bei steilem Winkel
10:08:03 joeydee: Abfangen schön und gut, aber dann mus eine zweite, davon komplett verschiedene Lösung programmiert werden.
10:08:25 joggel: ok
10:08:58 joeydee: wenig elegant, und außerdem befürchte ich, dass man den "switch" bemerken könnte, da plötzlich andere Toleranzen gelten könnten.
10:09:49 joeydee: Jetzt denke ich mal durch, was passiert, wenn man Kugel statt Zylinder nimmt.
10:10:56 joggel: Ich frage mich natürlich auch noch, wenn man einen Zylinder hat: wenn der Test positiv war, ich bekomme da ja nicht raus, auf welchem Segment des Ringes es den Hit gab... oder?
10:11:49 joggel: Ich meine, die Rotation verhält sich doch anders, wenn ich den hinteren (von der Kamera aus gesehen) Ring bewege, als wenn ich den vorderen bewege
10:12:05 joggel: weißt du wie ich meine`?
10:12:16 joeydee: ja, ein weiteres Problem.
10:12:35 joggel: mmhh...
10:12:45 joeydee: Also doch eher ein Ray-Torus-Hit?
10:13:53 joggel: wäre möglich
10:19:26 joeydee: hm, dann muss ich bei Gelegenheit mal Tori in meine Sammlung aufnehmen.
10:20:46 joggel: ich stelle gerade voller entsetzen fest, dass meine Rotations-Lösung doch nicht so funktioniert wie ich dachte
10:20:46 joeydee: Und außerdem explizite Ray-Funktionen für alles ergänzen, statt Distance-Raymarching. Löst evtl. auch das andere Problem besser. Fleißarbeit sucks.
10:20:49 joggel: Aaaaaargh!!!
10:21:08 joggel: Fleißarbeit sucks: oh jaaa
10:21:12 joggel: leider
10:21:33 joeydee: Eine Orientierungsmatrix kann nicht eindeutig in Euler-Winkel übersetzt werden.
10:21:49 joggel: irgendwie nicht so ganz
10:21:53 joeydee: Gibt immer mehrere Lösungen.
10:21:55 joggel: ja
10:22:02 joggel: soweit ich das verstande habe
10:22:11 joeydee: Und das sprengt dir die Kontinuität.
10:22:22 joggel: genau
10:22:29 joggel: weil
10:22:41 joggel: ich habe GUI für Translation und Skalierung
10:22:52 joggel: Wäre halt schön, wenn ich das auch für Rotation hätte
10:23:05 joggel: aber das musss ich mir wohl echt jetzt abschminken
10:23:38 joggel: ich verschwende da jetzt keine Arbeit mehr rein. Hänge da schon zu lange fest
10:24:47 joeydee: Du kannst aber relative Regler machen. Die beim Loslassen/Bestätigen wieder auf 0 springen.
10:24:50 joggel: hätte halt schön ausgesehen: https://ibb.co/n8V8MHW
10:25:08 joggel: "Du kannst aber relative Regler machen. Die beim Loslassen/Bestätigen wieder auf 0 springen." => genau das habe ich gerade versucht
10:25:49 joggel: also intern auf 0 setzen. ALso bspw: Anderung Pitch um 2 Grad => Rotation ausführen => intern Matrix wieder auf 0 setzen
10:25:58 joggel: Aaaaber: moment
10:26:04 joggel: vlt geht es ja doch
10:26:08 joeydee: Nicht die Matrix auf 0 setzen
10:26:14 joggel: nein
10:26:34 joggel: ich meine, dass ich nur die Änderungen anwende
10:27:12 joggel: Also ich habe eine Änderung des Sliders von 60° auf 62° => es wird sofort eine Rotation surchgeführt
10:27:14 joggel: oder wart
10:27:18 joggel: Du meinst das anders?
10:27:35 joeydee: der Slider startet immer bei 0
10:27:51 joeydee: Checkbox, ob lokale oder globale Achse.
10:28:05 joggel: achso
10:28:08 joggel: mmhhh
10:28:11 joeydee: Bei Anfassen des Sliders: Rotationsachse rendern.
10:28:39 joeydee: Drehung beim Bewegen des Sliders direkt anwenden, beim Loslassen ist der Slider wieder auf 0.
10:28:47 joggel: verstehe
10:29:03 joggel: werd mal drüber nachdenken
10:29:12 joggel: aber dann zum letzten Mal!!! :D
10:29:20 joggel: ansonsten lass ich das echt so
10:30:16 joeydee: (ich werd wahrscheinlich genau das vorerst implementieren, bis ich ne hübschere Gizmo-Lösung habe)
10:30:34 joggel: mach das
10:30:42 joggel: ich mach mir mal Mittag: also hintergrund
10:30:50 joeydee: Im Prinzip habe ich das schon, aber ohne Achsenanzeige ist das wenig intuitiv, was wann passiert.
10:31:14 joeydee: ond ohne global/lokal-Switch auch noch nicht so brauchbar.
10:33:01 joeydee: (und über mehrfach geschachtelt gruppierte Objekte und Einzelrotationen darin möchte ich mir noch gar nicht den Kopf zerbrechen)
10:34:23 joeydee: Also wie man das noch sinnvoll in der GUI auswählen und erkennen können soll, um welche Achse dann definitiv rotiert wird.
10:50:57 joggel: hausarbeit.... bis denne
11:36:52 IceMicha_ joined the channel
16:53:33 Magister joined the channel
18:04:32 Magister joined the channel
18:21:10 Hannes joined the channel
18:21:32 IceMichael joined the channel
18:22:06 Hannes: hiho
18:25:33 IceMichael: hi Hannes :) dankeschoen!
18:37:56 IceMichael: der Kleine ist knuffig aber braucht auch viel Aufmerksamkeit
18:38:09 IceMichael: ersteres wird etwas weniger, leteres wohl mehr, aber gut :D dafuer wird er mehr Skills lernen
18:43:26 IceMichael joined the channel