IRC Logs for #zfx


2021-04-16

05:40:23 Schrompf joined the channel
05:43:52 Schrompf: Mahoiney!
05:52:23 Hannes joined the channel
06:11:31 Hannes: Guten Morgen
06:12:23 Schrompf: Ich freue mich, wenn Dein Morgen gut ist
06:13:03 Hannes: letzter vormittag für mich
06:15:15 Schrompf: Wie machst Du das? Schläfst Du immer bis Mittag? Oder willst Du auf einen Planeten reissen,auf dem immer Nachmittag ist?
06:18:42 Schrompf: Ananas-Kokos-Lassi
06:18:44 Schrompf: lecker
06:19:07 Hannes: meinst du was ich mit der zeit anstelle?
06:19:25 Schrompf: und komplettes Operator Overloading für insgesamt 5 teilnehmende Typen und einen Sechsten, der ein variant der fünf anderen darstellt
06:20:06 Schrompf: nein, Hannes, ich hab mich nur darüber lustig gemacht, dass Du keinen Kontext angabst, also konnte ich deinen Spruch als "letzter Vormittag überhaupt" deuten
06:21:48 Hannes: ab montag sind wir alle den ganzen tag zuhause, coronabedingt
06:22:22 Hannes: als familie
06:22:41 Hannes: hoescooling
06:22:49 Hannes: homescooling
06:23:07 Hannes: meine frau macht eine umschulung und ist auch zuhause
06:23:34 Schrompf: das wird anstrengend. und es wird dauern. viel glück
06:23:58 Hannes: mal sehen was ich an meinem geburtstag mache
06:24:11 Hannes: 4.6
06:24:54 Hannes: warscheinlich nicht viel
06:27:20 Hannes: mein Sohn macht soweit er klarkommt die aufgaben alleine, da bin ich zuversichtlich.
06:27:38 Schrompf: Ja, wenn sie etwas älter sind, geht das etwas besser
06:28:38 Hannes: dass ist menschenbedingt. jedes kind ist anders
06:30:24 Schrompf: meins ist vor allem 4. es hat noch gar keine aufgaben, ist aber außerdem erst 4 und beschäftigt sich mal ne halbe stunde lang selbst
06:30:28 Hannes: ich hoffe man kann die aufgaben ausdrucken und muss nicht die ganze zeit am computer hocken
06:31:02 Hannes: also sohnemann nuss nicht vorm computer hocken
06:32:08 Hannes: ja, ein vierjähriges kind braucht viel mehr aufmerksamkeit
06:39:27 Hannes: bereitest du dich gedanklich schon auf den lockdown vor?
06:40:18 Schrompf: weiß nicht, wie ich das machen soll
06:40:37 Schrompf: ich hab gestern die erste impfung gekriegt, irgendwie erleichtert mich das enorm, obwohls genau genommen gar nix ändert
06:40:39 joeydee joined the channel
06:40:42 joeydee: moin
06:40:53 Hannes: moin joeydee
06:41:07 Schrompf: und darauf, dann wieder vollzeit das kind zu betreuen und gleichzeitig auf arbeit zu liefern, kann ich mich kaum vorbereiten
06:41:10 Schrompf: moin joeydee
06:41:38 Hannes: diese verfickte coronascheiße
06:41:47 Schrompf: und dabei isses hier gerade recht muckelig: "template <...> concept Blubb = requires(T t) { ... }"
06:42:18 Schrompf: (Übersetzung: ich mach C++20, und es baut, und es tut wie's soll, und das Team nickt nur "ahja, cool, ist ja doch einfacher als gedacht"
06:43:57 Hannes: morgen lese ich ein buch: "Frag Iwata" erscheint, darauf freue ich mich
06:44:37 Schrompf: ich freu mich mit. worum geht's darin?
06:45:42 Hannes: weise worte von satoru iwata dem nintendo typen
06:45:55 Hannes: keine ahnung was genau
06:46:02 Hannes: bin einfach neugierig
06:47:44 Schrompf: joa, vielleicht isses ne coole anekdotensammlung zum abnerden. viel spaß
06:56:50 joeydee: Schrompf: als Nachtrag zum Mesh-SDF als Volumen wollte ich noch sagen:
06:56:51 joeydee: 1. ja, man hat erstmal nur dünne Wände mit beidseitigem positivem Abstand. Das passt aber auch für konvex-konkave Meshes.
06:57:40 joeydee: 2. von einem beliebigen Raumpunkt aus ein Strahl schießen und die Hits zählen bestimmt, ob innerhalb oder außerhalb eines geschlossenen Meshes. Auch das gilt für konvex-konkav.
06:57:52 joeydee: Beides kombiniert müsste doch ein stabiles SDF geben?
06:58:05 joeydee: Habs nie probiert, war aber mein Gedanken
06:58:45 Hannes: achja
06:58:55 Schrompf: ich hab da bisher nur ein bissl gegrübelt, hab gestern erstmal adaptives detail eingebaut. aber noch ohne seam stitching, sondern nur das reine "rechnet in neuer detailstufe, wenn der abstand sich nennenswert geändert hat"
06:59:14 Hannes: die familienseite meines schwiegervaters hat corona und meine frau macht sich sorgen
07:00:00 Hannes: es geht ihnen aber gut außer fieber und husten und schlappheit
07:00:19 joeydee: dann drück ich mal die Daumen, Hannes
07:00:25 Schrompf: jo, alles gute!
07:00:38 Hannes: ja ich drücke auch schon
07:00:53 Schrompf: irgendwie stinkt mir der SDF-gedanke. ich müsste bei jedem punkt mit fett raycasts erstmal "innen/außen" feststellen
07:01:43 Schrompf: das braucht dann sicher irgendwelche raycast-beschleunigungsstrukturen wie nen BVH, aber gut, den bräuchte man wohl auch, wenn man direkt CSG betreibt
07:02:13 Schrompf: und dann würdest du von jedem punkt aus die SDF entlang einer kante auswerten
07:02:21 Schrompf: und iterativ den punkt suchen, wo sie 0 wird
07:03:36 Schrompf: und du hast bei kleinen formen ne gute chance, dass du die SDF nur vorne und hinten auswertest und merkst, dass beide positiv sind, und dann lässt du es komplett sein, obwohl deine form einfach nur klein ist und die kante hinten schon wieder raus
07:03:48 Schrompf: und man kann das sicher alles abfangen mit mehr abschätzungen
07:03:55 Schrompf: und heuristiken
07:04:14 Schrompf: aber am ende kriegst du immer kanten-clippen. ich mach mal kurz ne zeichnung
07:04:38 joeydee: He, es war DEINE Idee "Wenn man ein SDF eines Meshes hätte, dann wäre CSG kein Problem" ;)
07:04:53 Schrompf: ja, ich weiß. ich grübel halt immer noch. das hört ja nich auf :-)
07:05:15 joeydee: Ich hatte nur gesagt: Mesh-SDF dürfte kein Problem sein. Der Rest ist deine Sache ...
07:06:23 joeydee: Ich hatte mich nur grob mit dem CSG-Gedanken befasst in der Form "Ok, jetzt nehme ich mal ein Mesh, und ein simples SDF wie eine Sphere ..." ... und wieder verworfen.
07:07:56 joeydee: Wollte daher nur noch das mit dem Volumen-SDF hier parken, kann man sicher auch mal so gebrauchen.
07:08:55 Schrompf: könnte so funktionieren, wenn man mit den nebenwirkungen leben kann
07:09:02 Schrompf: - durchdringende flächen
07:09:08 Schrompf: - nicht geschlossen
07:10:23 joeydee: Mit den Sache hast du bei jeder CSG-Lösung Nebenwirkungen.
07:11:55 Schrompf: https://aggie.io/y6_mfsb591
07:12:56 Schrompf: grau ist das mesh, dick-grün der zu csg-ende mesh. Wenn man nur die SDF entlang der kanten bestimmt, dann kürzt das ergebnis-mesh die ecken
07:13:40 Schrompf: und man müsste es, um einen mesh zu kriegen, dann auch andersrum machen: den SDF-Mesh als echten mesh nehmen und den anderen als SDF dagegenhalten. quasi beide meshes um den jeweilig anderen einkürzen
07:14:52 Schrompf: irgendwie nagt es die ganze zeit an mir, dass ich den quatsch sein lassen sollte und einfach echtes CSG bauen.
07:15:07 Schrompf: aber viele große leute haben sich daran schon fies die zähne ausgebissen
07:28:49 joeydee: Du löst damit halt nur einen Teil des Problems. Was machst du mit den gekürzten Kanten? Wie entsteht neue Geometrie? Und was, wenn gar keine Kanten berührt werden, sondern nur Flächen?
07:31:59 Schrompf: jupp, hat auch einen strauß sonderfälle. wenn man beide meshes jeweils einkürzt um die sdf-darstellung des anderen, kriegt man ne sinnvolle vereinigung hin, aber die gekürzten flächen beider meshes werden ineinander ragen
07:32:45 Schrompf: das "nur flächen" problem hast du zum glück erst, wenn einer der meshes deutlich kleiner als der andere ist.
07:32:54 Schrompf: was, wenn ich recht überlege, in den meisten fällen so ist. mist
07:33:12 Schrompf: ist aber auch nur ne frage der tesselation :-) kann man mit rechenzeit erschlagen
07:35:23 joeydee: Man kann das ja mal grob durchtesten, nicht mit 2 beliebigen Meshes, sondern mit einem Axis-Aligned Würfel-Mesh und einem Sphere-SDF und der Operation "Differenz." Es soll also ein Würfel-Mesh rauskommen, wo eine Ecke fehlt, entsprechend der Kugel.
07:36:06 Schrompf: ja, für so einfache fälle sollte es gehen. aber du hast dann halt den kugelteil nicht als mesh. der fehlt dann einfach
07:36:53 joeydee: Nein, ich meine doch nur als Evaluation des Gedankens. Wenn es hier schon Probleme macht, muss man das mit Meshes gar nicht erst probieren.
07:37:46 Schrompf: hm ja vielleicht ist das gar nich übel. kann man auch mal interaktiv den radius stark reduzieren und gucken, wie das aussieht
07:38:40 joeydee: Das Hauptproblem ist ja nicht die Ecke: Was wenn die Kugel nur die Fläche berührt? Ja, Subdiv. Aber wieviel? Das hängt auch nicht von den Objektgrößen ab. Riesige Kugel kann immer noch nur einen Teller von gleich-riesigem Würfel in Flächenmitte ausschneiden wollen.
07:40:30 joeydee: Es muss halt erstmal der Algo (wenigstens zur Hälfte) sauber in so einem einfachen Setting funktionieren, finde ich.
07:50:37 joeydee: Ich habe mich schon mit Hit-Tests beliebiger Meshes herumgeschlagen, *eigentlich* muss man nur ein Intersection-SDF beider Objekte erstellen und Testen, ob ein Volumen entstanden ist. Also im neuen SDF eine Oberfläche finden.
07:51:56 joeydee: Im normalen SDF ("exact") nimmt folgt man dem Abstandswert eines Raumpunkts entlang dem Gradienten, und landet direkt auf der Oberfläche.
07:52:49 joeydee: Intersection ist aber in der Qualität nicht "exact", sondern "bound" und verspricht lediglich, wenn du dem Gradienten folgst, landest du nicht *in* dem Volumen. aber eben auch nicht darauf.
07:53:34 joeydee: Und das kann zu winzigen Zickzack-Iterationen führen, wie der Radarstrahl in einer Stealth-Oberfläche zu Tode reflektiert, man gewinnt leider nichts.
07:57:02 joeydee: Und noch nachtragend zu Subziv als Voraussetzung für stabiles CSG: du läufst vermutlich in ähnliche Probleme wie Marching Cubes, also kannst du auch gleich Volumenbasiert remeshen.
07:57:17 joeydee: (Ich hab Hannes vertrieben :( )
07:57:45 joeydee: *Subdiv
08:29:06 xq joined the channel
08:57:00 Schrompf: und dafür xq angelockt. geht schon. sorry, hatte ewiges meeting
08:58:11 xq: moin moin
09:00:07 Schrompf: joeydee: evtl. hab ich den ursprung dieser idee in nem anderen thread erklärt. es ging mir nur um Mesh vs SDF-CSG bei meinen meshes, die nach bezier eh ordentlich unterteilt sind
09:00:45 Schrompf: das ist kein allgemeiner ansatz. das *kann* nicht funktionieren für nen würfel, wenn dessen seiten nicht ordentlich subdivided sind
09:00:53 Schrompf: das brauchste gar nicht erst ausprobieren
09:01:58 joeydee: ah ok, den Zusammenhang hatte ich nicht. Hatte nur "SDF-Mesh könnte CSG lösen" beim Stammtisch mitbekommen.
09:02:10 Schrompf: aber ich denke, ich werde es eh knicken, denke ich. weil mir inzwischen die folgen klargeworden sind. dann kann ich auch gleich echtes csg angehen
09:02:57 Schrompf: das ergebnis, selbst wenn es solide funktioniert, sind ja zwei meshes, die nur entlang der dreieckskanten um den jeweils anderen mesh eingekürzt werden.
09:03:34 Schrompf: an den grenzkanten kriegst du immer ein lose abgeschnittenes flächengewitter, was nur locker der oberfläche des gegenüber-meshs folgt
09:03:50 Schrompf: inklusive eindringen (wenn das gegenüber konvex ist) oder sichtbaren lücken (wenn das gegenüber konkav ist)
09:04:37 Schrompf: und spätestens mit lücken kann ich nicht mehr leben, weil irgendwann mal volle PBR-Pipeline mit HDR, Bloom und so, die schon kleinste fehlpixel in ansonsten dunklen dungeons zu grellen bildschirmfüllenden farbschlieren aufbläst
09:05:07 Schrompf: ergo: echte CSG it is. saurer apfel, here i come
09:09:25 Schrompf: aber zum glück erstmal noch kleine probleme lösen, nämlich die lücken zu flicken, die durch mein neues adaptives detail entstehen
09:09:52 Schrompf: ansonsten funktioniert das ganz gut und ich kann sogar die texturauflösung auf 2048 erhöhen und komme nur bei ~8GB raus
09:15:48 joeydee: prima :)
09:23:24 Schrompf: bei 2048 merkt man leider schon, dass das eigentlich ein Job für die GPU ist. 1024er schafft meine sinnlos fette CPU, da kann ich durch's Level sprinten und er hält mit. 2048er... ne, da renn ich meinem detail vornweg
09:23:40 Schrompf: und viel rauszuholen ist da nicht mehr
09:24:33 Schrompf: und ich hab präzisionsprobleme. ich hab bei 2048ern fleckige einheitsnormalen, also flecke mit gleichem wert, egal wieviele oktaven ich benutze
09:24:54 Schrompf: nuja, wenn's einfach wäre, hätte es ja schon jemand gemacht
09:25:10 xq: https://github.com/MasterQ32/tvg/blob/master/examples/feature-showcase.png
09:25:14 xq: gradiente! \ø/
09:25:32 Schrompf: yeah, cool!
09:25:48 Schrompf: ich mach mir auch gradiente warm, die von meiner letzten asia-bestellung noch über ist
09:25:50 Schrompf: scnr
09:33:09 xq: AUA
09:37:51 Schrompf: so. VPN zu, FREIZEIT
10:04:11 joeydee: Glücklicher. Ich muss noch eine Weile.
10:12:08 joeydee: gz @ gradients
10:35:39 xq: linear gradient war aufregender als radial :D
10:35:59 xq: morgen im zug dann endlich mal line drawing implementieren
10:36:14 xq: und dann dürfte ich auch schon das meiste haben
10:36:18 xq: nur die kreismathe fehlt noch
10:36:29 xq: (kreissegmente, bogensegmente, ellipsensegmente)
10:44:33 Schrompf: den bogenkram stell ich mir anstrengend vor
11:12:44 joeydee: Ich würde das wahrscheinlich ebenfalls nur aus Bezierkurven annähern, dann bleibt das alles ein Abwasch.
11:58:41 joeydee: Linear Gradient: ist doch eigentlich nur Skalarprodukt, oder?
15:08:45 Schrompf joined the channel
19:36:00 Biolunar: Mein erster Beitrag für Zig wurde gemerged! Literally nur ein einziges Zeichen geändert :D
19:36:11 Schrompf: yeah
19:36:20 Schrompf: es war whitespace!
19:36:57 Biolunar: So schäbig bin ich nicht! Hat immerhin einen Compilefehler behoben
19:37:18 Biolunar: Dass nicht verwendete Funktionen nicht kompiliert werden ist Fluch und Segen
19:38:24 Schrompf: feinfein