IRC Logs for #zfx


2021-08-31

05:38:51 Schrompf joined the channel
06:09:24 Schrompf: Kötze!
06:10:07 Schrompf: Ich deploye was auf Staging. Seitdem geht auf Production alles schief. Hat natürlich niemand connected, weil halt Staging. Und weil die Änderung ein Zweizeiler in ner komplett unrelated Gegend ist
06:10:58 Schrompf: Und weil die Prozesse halt ne Weile dauern. Da kommen gelegentlich alle paar Stunden Datenlieferungen, werden importiert (5min bis 2h) und das finale Verteilen auf den Engine-Servern ging dann schief
06:11:11 Schrompf: da brauchste ne Weile, um überhaupt die zeitlichen Zusammenhänge herzustellen
06:11:16 Schrompf: WARUM?
06:11:46 Schrompf: ich hab dann auf Staging die Vorversion wieder hingestellt, und plötzlich ging wieder alles. Beischlaffäkalie
06:52:28 xq: moin moin
06:53:05 xq: Schrompf: das klingt aber nich gut
06:53:18 xq: hat da jemand ne IP hart gekotet oder was?
06:54:48 IceMichael: moin
06:55:33 IceMichael: klingt wirklich seltsam
07:00:46 Schrompf: glaube nicht, diesen Fehler haben wir schon gemacht und Lehren daraus gezogen. Aber selbst wenn: alle IPs sind wie vorher. Wenn die sich vorher nicht in die Karten gegriffen haben, warum dann jetzt?
08:39:49 IceMichael: na ja, sinnvoll ist ja eh nicht, dass dein change production affektiert hat, aber es scheint ja irgendeine Verbindung zu geben :)
08:59:31 xq: korrelation != kausation
09:02:54 Schrompf: ich hatte es heute morgen nochmal auf Staging ausgerollt, weil morgens die Kundinnen nicht so betroffen sind und wir das untersuchen können. Und nun läuft alles genau so, wie man's erwarten würde: Staging hat keine Wirkung auf Production
09:03:20 Schrompf: Diese Frau Murphy sollte mir besser nicht in ner dunklen Gasse begegnen, die Pennerin
09:05:06 joeydee joined the channel
09:05:25 joeydee: moin
09:09:02 xq: huhu joeydee
09:13:37 Schrompf: yoho, joeydee
09:45:20 Magister joined the channel
09:56:20 xq: joeydee: gestern mit nem kumpel über nen space game gequatscht
09:56:24 xq: jetzt jucken die pfoten
09:57:07 joeydee: Weiß nicht ob ich es schon gezeigt hatte, meine Nebel leuchten jetzt auch Objekte an: https://www.phoximages.de/uploads/2021/08/i69152bik5ay.jpg
09:58:06 joeydee: haha, xq, leg los!
10:08:02 Schrompf: joeydee, geil! wie denn das? da du das bisher quick zusammengehackt hast, geh ich mal davon aus, dass da keine komplizierte GI waltet
10:14:22 joeydee: Nein, ist ein Lookup ähnlich Spherical Harmonics, aber ungenauer mit nur 6 Koeffizienten.
10:14:54 joeydee: Das ding wird einmal bei Szenenerstellung mit allen Lichtern "aufgeladen". Hauptlicht geht extra.
10:15:30 Schrompf: ahso. trotzdem nice. quasi ne mini-cubemap pro objekt
10:16:29 joeydee: ja. Aber die Szene wird nicht reingerendert. Sondern pro Objekt ein Licht mit seiner Richtung "addiert".
10:16:44 Schrompf: direct-to-coefficients
10:17:21 Schrompf: warum eigentlich 6 coeffs? skalar + xyz-gradient sind doch nur 4
10:17:49 joeydee: Hardgecodet ist das sogar mein Standardrenderer seit geraumer Zeit. In vielen meiner Renderings ist so eine weiche warm/kalt-Daylight-Beleuchtung zu sehen.
10:18:44 Schrompf: hm. da würde mich jetzt die konkrete formel interessieren. SHs hatten bei mir immer 9 params, und ich habe die nie vollständig verstanden, daher finde ich deine lösung gerade ziemlich interessant
10:18:45 joeydee: 6 coeffs nicht pro Licht, sondern für alle.
10:18:56 joeydee: Spherical Harmonics hat 9 coeffs.
10:19:10 Schrompf: in der dritten ausbaustufe
10:19:18 Schrompf: zeig mal code!
10:19:30 joeydee: Geheim ;)
10:21:54 joeydee: statt die komplexeren SH-Formeln werden die Lichter beim Schreiben einfach anteilig auf die 3 Achsen gemappt. +/- macht 6 Richtungen. Beim Lesen muss man NdotL etwas weicher gestalten, damit's keine Seams gibt.
10:22:16 joeydee: Also alles was da reingeaddet wird, wird automatisch zum riesigen Flächenlicht.
10:22:38 joeydee: Per Gamma kann man dann noch etwas den Mood (Tag/Nacht) anpassen.
10:23:08 Schrompf: Bei Deiner Mooder kann man Tag/Nacht anpassen!
10:23:31 Schrompf: aber ja, klingt schon sehr cool, und ist für weiches rundrum ne echt geile billige lösung
10:23:48 Schrompf: das weichrechnen musst du ja eh machen, um das cos()-integral irgendwie abzubilden
10:27:38 joeydee: Auf dem alten ZFX hatte ich sogar mal nen Thread dazu, fing an mit einem Problem bei 2 NdotL-Lichtern auf eine Kugel um 90 Grad versetzt. Da gabs einen Pobackeneffekt (dunkler Streifen am Übergang), den man in der Realität so nicht zu sehen bekommt.
10:31:54 joeydee: Tag/Nacht-Anpassung ist zuviel gesagt, es wird quasi einfach global festgelegt, wie weit die Lichter über die 90 Grad hinaus streuen, und das muss in helleren Situationen weiter eingestellt werden.
10:32:50 joeydee: Hier hatte ich den auch im Einsatz: https://zfx.info/download/file.php?id=4797&mode=view
10:49:42 Schrompf: jau, schon echt praktisch
10:50:14 xq: joeydee: sehr fein
10:59:12 Schrompf: ich will auch mal wieder was geiles erfinden
10:59:26 Schrompf: und mich im lob einer sehr sehr kleinen nischen-nerd-truppe sonnen
11:00:20 Schrompf: (nur spaß, die nerds sind wenige, aber coole leute)
11:05:45 xq: *grins*
11:06:00 xq: Schrompf: ich wünsche, dass wenn deine kleine mal größer ist, du alle Zeit der WElt zum "coole Dinge hacken" hast
11:09:13 Schrompf: ja, wünsch ich mir auch. und vielleicht hackt die kleine dann mit
11:24:19 xq: 😊
11:25:51 xq: joeydee: ich überleg grade noch, wie man so ne "Blockwelt" mit nem runden Planeten vereinbaren könnte
11:28:46 joeydee: https://lh3.googleusercontent.com/proxy/gT9_w0Dsm57o7d_hbR9mft2RXv5OjwGDPr2i49CR_MDweqiG4Lmw9GbXtXmJO0iMAZ1eyc80mVHc_71CA3HO5cIiRUIsYYB8sQoWmmU
11:30:35 xq: joeydee: sieht zwar hübsch aus, macht aber das "drumrumlaufen" irgendwie schwer
11:30:45 xq: ich fand ja interessant, was Astroneer gemacht hat
11:30:55 xq: die hatten quasi Marching Pyramidenstumpf
11:31:01 xq: also cubes, aber verformt
11:31:20 Schrompf: hmä? die haben doch banal marchgecubed, oder?
11:31:55 xq: wäre mir neu
11:32:10 xq: sieht zwar so aus, aber wie machst du das dann, dass das stabil bleibt, wenn du einmal um den planeten rumläufst
11:32:24 xq: marching cubes hat ja gar nicht so viele kippstufen, dass das gehen würde
11:33:14 Schrompf: hm.
11:33:28 Schrompf: nen runden planeten kriegst du ja stressfrei hin mit marching cubes
11:33:35 xq: how?
11:33:37 Schrompf: aber bei denen waltet noch irgendwas anderes, da hast du schon recht
11:33:46 xq: deren ding, dass die planeten hohl sind, hatte nen grund
11:33:56 xq: die zellen wurden zur planetenmitte immer kleiner
11:34:03 Schrompf: how? na einfach mit ner SDF.
11:34:55 xq: hm
11:34:58 Schrompf: also wenn du die gewichte pro rasterpunkt anteilig baust
11:35:05 Schrompf: aber wie gesagt: da waltet bei denen auch noch mehr, denke ich
11:36:47 xq: aber was mich auch noch hindert
11:36:50 xq: wie manage ich so nen planeten
11:36:56 xq: prozedural ad-hoc generieren ist ja pflicht
11:37:00 xq: wie bei deinem voxelkram auch
11:37:05 xq: und dann nur diffs speichern bzw. anwenden
11:38:21 Schrompf: soll der planet verändert werden können?
11:38:34 Schrompf: oder was meinst du?
11:39:42 xq: ja, genau
11:39:48 xq: also resourcenabbau o.ä.
11:40:44 xq: oder halt nur "theoretischer resourcenabbau"
11:40:52 xq: also: fabrik auf planet stellen baut eisen ab
11:41:03 joeydee: Du kannst Ressourcen regenerativ anlegen, damit die Änderungsliste vonZeit zu Zeit wieder kleiner wird. So mache ich das mit sammelbaren Ressourcen.
11:41:25 xq: hihi
11:41:29 xq: das ist ne lustige idee
11:41:42 xq: "ja, warum regenerieren die resource, welchen gameplay-technischen aspekt hat das?"
11:41:47 xq: "Naja, das Spiel hätte sonst gelaggt"
11:41:54 joeydee: Das ist keine lustige Idee, sondern Standard eigentlich.
11:42:25 joeydee: Wenn Veränderung/Gestaltung zum Gameplay gehört (Minecraft), dann nicht.
11:42:26 xq: kommt aufs spiel drauf an
11:42:28 Schrompf: so wollte ich es im voxelprojekt machen. das changeset nach ner weile abwesenheit langsam von unten nach oben löschen. bäume wachsen dann nach, und erdlöcher füllen sich
11:42:44 Schrompf: weiß nicht, wie cool das ist. oder ob irgendeine edge detection besser wäre.
11:44:17 joeydee: Ansonsten ist ja klar: jede Änderung einzeln speichern und ewig halten. Da gibts kein "weiß nicht wie", nur ein "ich weiß, dass".
11:44:55 Schrompf: hm? du meinst, einfach nie was zurücknehmenß
11:45:25 joeydee: auf die Frage von xq, er wisse nicht wie er so einen Planeten "verwalten" solle.
11:45:44 xq: ja, geht mir auch mehr ums gamedesign
11:45:51 xq: technisch ist das ja alles lösbar
11:46:40 joeydee: du hattes technische Fragen gestellt.
11:47:12 Schrompf: das klang schon sehr technisch
11:48:18 xq: ja, das auch
11:48:19 xq: :D
11:48:25 xq: ich denk auch immer technisch
11:48:47 Schrompf: game design: tja. wenn's darum geht, wie Du POIs generierst, dann empfehle ich ne zweiseitige herangehensweise: stützpunkte und konsorten sollten grundregeln haben, in welchen gebieten sie überhaupt auftreten können. und wenn sie dann irgendwo auftauchen sollen, müssen sie den weltgenerator rundrum unter kontrolle haben
11:49:33 xq: jo
11:49:38 xq: "einfach mal planieren und passt scho"
11:49:55 Schrompf: genau. kreisrundes PLATTWALZEN
11:49:57 xq: ich frag mich grade, wie gut man weltgeneratoren interpolieren kann
11:50:15 xq: aber so lange ich planar denke, geht das alles ganz gut
11:50:32 Schrompf: und in der mitte dann ein eingeborenes-holzhütten-dorf auf boden, der unterm mikroskop noch keine unebenheiten zeigt
11:51:08 Schrompf: interpolieren? meinst du biome interpolieren? oder meinst du stetiges noise über die oberfläche einer kugel?
11:51:34 xq: lerp(weltgenerator_biom, weltgenerator_basis, distanz(basis, punkt))
11:52:09 Schrompf: das ist ja nur die halbe story. das biom geht an der grenze ja in ein anderes biom über, nicht etwa in ein nicht-biome
11:52:19 xq: jop
11:53:23 Schrompf: wir haben das damals per-feature gemacht. vor langer langer zeit auf den splitterwelten. da gab's z.b. ne rauheit, oder ne gras-anwesenheit, oder ne baum-wahrscheinlichkeit, und diese werte haben wir in den grenzbereichen interpoliert
11:53:39 Schrompf: aber das sieht halt sehr mechanisch aus. die ansprüche sind seitdem weiter
11:58:26 xq: ich kann mir vorstellen, dass ein SDF-Ansatz da (für Geometrie) sehr gut funktioniert
11:59:08 Schrompf: was genau willst du da sdfen?
11:59:46 xq: die landschaftsgeometrie
12:10:02 xq: ach, das werd ich schon rausfinden ^^
13:32:09 xq: https://twitter.com/Foone/status/1432687847270600707
14:46:57 joeydee: der spinnt, der cube.
14:47:43 xq: hihi
14:49:40 xq: mal gucken, wie viel 3D-Gebastel ich hinbekomme...
14:51:50 joeydee: Kennst du den YT-Kanal von Sebastian Lague? ("Coding Adventure") - der zeigt u.a. wie man Planeten baut und terraformt.
14:52:13 xq: nope
14:52:17 joeydee: https://www.youtube.com/watch?v=lctXaT9pxA0
14:52:18 xq: aber cool, danke für den Hint
14:52:59 joeydee: https://www.youtube.com/watch?v=vTMEdHcKgM4
14:53:42 joeydee: Hat auch noch andere coole Sachen im Programm.
14:53:47 xq: joeydee: wie gut wäre marching tetras dafür?
14:53:51 xq: das sah mir ja relativ natürlich aus
14:55:02 joeydee: Marching Tetras und Marching Cubes sind nahezu dasselbe. Tetras hat weniger Fälle, aber 6 Durchgänge je Cube. Kann sein dass MC etwas weniger Polys insgesamt generiert.
14:55:10 joeydee: Der Typ nutzt ebenfalls MC.
14:56:28 joeydee: MC kannste auch ne Tabelle Copy/Pasten (Link hab ich auf ZFX in meinem Post), muss man ja nicht selbst konstruieren.
14:57:20 xq: joa
14:57:32 joeydee: MC erklärt er im 2. Link
14:58:01 xq: ja, aber bin mir immer noch nicht sicher, ob ich wirklich terraforming will
14:58:09 xq: oder nicht einfach ne normale geosphere mit LOD nehmen
14:59:25 joeydee: Spheres macht er im 1. Link.
14:59:47 xq: ich hab mal ne wunderschöne methode für richtig dummy terrain generation gefunden
15:00:02 joeydee: ehrlich gesagt, ich würds lassen mit terraforming.
15:00:07 xq: mhm
15:00:08 xq: 1. erstelle eine zufällige plane durch das zentrum des planeten
15:00:23 xq: 2. offsette alle vertices die auf der einen seite liegen, etwas nach außen, die anderen etwas nach innen
15:00:28 xq: 3. repeat often
15:00:35 joeydee: Ja, Schnitt-Algo, einer der ältesten
15:00:40 xq: sieht gut aus, aber die spiegelung ist richtig crap
15:01:29 joeydee: Leg die Plane nicht durchs Zentrum. Dann gehts.
15:01:34 xq: oh
15:01:36 xq: doch so einfach
15:01:43 xq: am besten normalverteilt, oder?
15:01:46 joeydee: Und dann weitergedacht:
15:01:48 xq: also, der offset zum zentrum
15:02:43 joeydee: Links der Plane offset hoch, rechts offset runter, das ist ja eine Step-Funktion.
15:02:55 joeydee: Kannst du durch nen Smoothstep ersetzen.
15:03:28 joeydee: Oder viele Steps mit versetzter paralleler Plane, dann hast du mehr Effekt. Ist dann ne Sinuswelle.
15:04:06 joeydee: Und viele soclher Sinuswellen in alle Richtungen überlagert, das ist quasi Perlin Noise. Nur wird Perlin günstiger berechnet.
15:04:13 joeydee: So hängen die Dinge zusammen :)
15:04:28 xq: und dann einfach immer mehr stuff machen
15:04:35 xq: und am ende siehts trotzdem prozedural generiert aus
15:05:24 xq: werde hoffentlich mal ein bisschen damit rumspielen
15:05:40 xq: das quad-tree-terrain lässt sich sicher auch für irgendwas verwenden
15:07:38 joeydee: Wenn du die Geosphere aus einem Würfel erstellst, hast du 6 quadratische Planes, nur gewölbt. Da dürfte Quadtree drauf laufen.
15:09:13 joeydee: Erster Link, bei 1:25 etwa.
15:10:49 xq: oh, guter punkt
15:14:18 joeydee: Was auch sehr adaptiv ist: Roaming-Algorithmus. Der hat Frame-Kohärenz.
15:14:36 xq: aha?
15:15:45 joeydee: Im Prinzip: man geht vom aktuellen Mesh aus und schaut, welche Dreiecke zusammengefasst oder gesplittet werden müssen. Das gibt das neue Mesh.
15:16:20 xq: oh
15:16:26 xq: klingt aufwändiger, aber gut
15:17:25 joeydee: Da gibts keine festen Grenzen wie beim Quadtree, sondern die werden diagonal verbunden/gesplittet. Da muss man nicht auf benachbarte LOD-Stufen achten, das regelt sich von selbst.
15:17:50 joeydee: Ja, die Nachbarschaftsbeziehungen immer auffrischen gehört dann dazu.
15:18:36 xq: diagonal? also "punkt in der mitte dazu?"
15:20:05 joeydee: Ne, so einfach nicht. Schau es dir am besten mal an.
15:29:12 joeydee: Ich müsste mal weitercoden, stattdessen besuche ich Sternsysteme und mach Postkartenfotos :D
23:02:34 Biolunar joined the channel