IRC Logs for #zfx


2021-12-07

06:05:31 Magister joined the channel
06:21:22 Schrompf joined the channel
07:02:14 Hannes joined the channel
07:02:26 Hannes: Ahoin
07:39:37 IceMichael: mohoi
07:41:45 Schrompf: yoi loite
07:45:53 IceMichael: alles fresh im Boulder Dash?
07:46:18 xq: moin moin
07:46:35 IceMichael: kennt ihr boulder dash noch? https://www.soft-ware.net//media/86/b0/5047661de4b08e2a20bb86b0/images/resized/watermarked/thumb.jpg800x500.jpg
07:46:40 IceMichael: das waren noch Zeiten...
07:46:50 Schrompf: Alles Crickets in den Tickets?
07:47:01 xq: IceMichael: ich schalte meinen amiga an
07:47:09 Schrompf: jo, boulder dash war groß. aufm amiga gab's emerald mine, das war viel größer
07:47:17 xq: ah, stimmt
07:47:28 xq: ja, aber habs glaube ich immer aufm amiga gedaddelt
07:47:33 xq: aber gutes spiel
07:47:40 Schrompf: es gab davon ein remake als shareware namens diamond mine, wofür ich echt mal geld ausgegeben habe
07:47:47 IceMichael: ja, der gute Amiga
07:47:51 Schrompf: auf windows. vor 15 jahren oder so
07:49:41 Schrompf: oha, gibt's auf steam: https://store.steampowered.com/app/929850/Diamond_Caves/
07:52:34 Schrompf: och shit, ich fürchte, ich muss ins büro
07:53:24 Schrompf: mir ist gerade rechtzeitig aufgefallen, dass "sudo ifdown" ne dumme idee über SSH ist
07:53:49 xq: ja
07:53:50 xq: isses
07:53:54 xq: sehr sogar :D
07:55:34 IceMichael: aber wenns rechtzeitig war...?
07:55:58 Schrompf: ist es ja immer noch nötig :-)
07:56:17 Schrompf: vorher noch mitm hundi raus, damit sie sich dann nicht ganz so lange langweilt
07:56:29 IceMichael: hmmm, was willst denn nach ifdown machen?
07:56:36 IceMichael: musst ja nur alles mit && verkettet dahinter packen :D
07:56:37 Schrompf: ifup :-)
07:56:43 Schrompf: möglich.
07:57:11 IceMichael: hm, d.h. fuehrt er es noch aus, wenn die Session mit ifdown abbricht?
07:57:16 Schrompf: evtl. muss ich danna uch noch rebooten, und spätestens dann ist wegen Festplattenverschlüsselung der Ofen aus mit Remote
07:57:25 IceMichael: mist :/
07:57:31 IceMichael: und ausprobieren, ob reboot noetig ist, geht nicht?
07:58:38 IceMichael: puh, ich diskutier mittlerweile sogar mit Muellmaennern. Manche machen hier immer Klingelalarm, dann sag ich denen einmal klingeln, dann die, ich solle eben aufmachen, dann meine ich, ich muss erstmal zur Tuer
07:58:49 IceMichael: und dann faengt der Penner an und sagt "ich diskutier hier jetzt nicht"
07:59:12 IceMichael: wie ich bin hab ich dem dann natuerlich nicht aufgemacht, aber na ja, eigentlich schiesst man sich da ins eigene Knie
07:59:47 IceMichael: andersrum kann man unsere behinderte Klingel nicht leiser stellen und wenn Kind und "kranke" Frau wach werden, ist mein Verstaendnis eben nicht so gross
08:10:04 xq: https://zfx.info/viewtopic.php?p=67844#p67844
08:10:15 xq: ich frag mich ja echt, warum krishty den scheiß noch benutzt
08:10:46 xq: aber was anderes: wie zur hölle mach ich multisampling richtig? *thinking*
08:14:20 IceMichael: was kann man denn da überhaupt falsch machen? Ich hab das nur einmal für mein Terrain damals angefasst und war bestürzt, dass ich nur 4 Layer hatte und selbst das meine GPU kaum gepackt hat :(
08:14:36 IceMichael: hm, wobei ich multi-texturing meine, was wsl wieder was andres ist
08:19:53 xq: naja, ich bin nicht auf GPU
08:20:15 xq: und irgendwie ist faktor 4 auf jeder achse hochskalieren und 16 werte in einem pixel zusammenfassen weird
08:20:20 xq: das gibt komische ergebnisse
08:33:28 joeydee joined the channel
08:33:32 joeydee: moin
08:33:39 xq: huhu joeydee
08:33:49 xq: du kannst mir da sicher gleich helfen, irgendwie bin ich doof
08:46:11 Schrompf: 16 punkte pro pixel ausrechnen?
08:46:19 Schrompf: was genau scheitert denn?
08:47:51 xq: sieht kacke aus :D
08:48:12 xq: also
08:48:18 xq: ein resolve step erzeugt einfach die gleichen jaggies
08:52:40 Schrompf: klingt nach nem simplen verrechner?
08:53:51 joeydee: ja, klingt irgendwie nach nem Fehler, wenn das gleich aussieht.
09:00:30 xq: oh
09:00:39 xq: hab grade in GIMP mal nen Diff erzeugt
09:01:35 xq: nur die kanten sind kaputt
09:05:41 xq: a
09:05:42 xq: *ah
09:05:47 xq: hab glaube den fehler gefunden
09:05:54 xq: alpha blending ist ne bitsch
09:12:13 joeydee: machs doch einfach gleich richtig
09:12:19 Schrompf: jo, einfach fixen, dann geht's
09:14:27 joeydee: Aber mach dir kein Kopp, nichtmal Grakas können heutzutage MSAA richtig. Wie Schrompfs dunkle Linie in meinem letzten Game gezeigt haben.
09:19:53 xq: hrhr
09:20:02 xq: ja, ich hab grade gelernt, dass man alpha-blend nicht stumpf linear machen darf
09:24:41 joeydee: Darf man schon. Nur machst du wahrscheinlich wieder was ganz anderes, wovon ich nichts wissen kann, und du wartest nur darauf, meine Aussage in der Luft zu zerreißen.
09:30:56 xq: ich hatte bisher lerp(dst, src, src.alpha)
09:30:57 xq: https://de.wikipedia.org/wiki/Alpha_Blending
09:31:06 xq: aber: habe jetzt porter-duff implementiert
09:31:09 xq: und es sieht jetzt besser aus
09:35:20 Schrompf: hä?
09:35:40 Schrompf: erklär mal dem log, ich bin 20min offline. Was ist an den porter-duff-kombos jetzt besser als alphablending?
09:36:15 xq: naja, für "A over B" mit alpha in A und B muss man auch destination alpha beachten beim blenden
09:36:19 xq: und das hab ich nicht gemacht
09:36:25 xq: ergo waren alle kanten total scheiße
09:36:42 xq: die auf transparentem hintergrund lagen
09:41:47 xq: Source SVG: 12225
09:41:47 xq: Optimized SVG: 7037
09:41:47 xq: Final TVG: 2069
09:41:47 xq: Compression: 29%
09:41:48 xq: :O
09:42:03 xq: ich kann das logo jetzt vollständig rendern :)
09:54:05 xq: oh fuck *rofl*
09:54:16 xq: alle meine linien sind weg! ^^
09:57:18 Schrompf joined the channel
10:09:52 Schrompf: hm. alphablend ist zwar ne einstellbare funktion, aber der klassiker ist doch src * srcAlpha + dst * (1 - srcAlpha). dstAlpha kommt in der Formel nicht vor, außer halt beim blenden des alphakanals
10:10:18 Schrompf: und dafür will man zumeist ne andere formel haben als klassisch blend
10:11:25 xq: genau
10:11:39 xq: aber:
10:11:50 xq: blende mal 100% weiß auf 100% schwarz mit 50% alpha
10:12:05 xq: ohne ziel-alpha passts, nämlich 50% grau
10:12:19 xq: wenn das schwarz jetzt aber auch 100% alpha hat, darf es keinerlei einfluss auf das weiß haben
10:12:35 xq: weil es ja komplett durchsichtig ist
10:13:59 Schrompf: das ist ein interessanter ansatz, aber ich zweifle daran, dass man das problem wirklich lösen muss
10:14:08 xq: ja, muss man
10:14:20 Schrompf: nö, alle GPUs rendern halt einfach aufs Schwarz drauf
10:14:20 xq: https://mq32.de/public/efa173b1c25bac144a9e1185aa4114508c2889bc.png
10:14:24 xq: kennst du das artefakt?
10:14:24 Schrompf: wenn das deine clear color ist
10:14:41 Schrompf: nö. was genau meinst du?
10:14:47 xq: den weißen rand
10:14:54 xq: clear color ist 0% alpha
10:15:02 Schrompf: und schwarz?
10:15:36 xq: yep
10:16:54 xq: das klappt aber auch nur genau einmal
10:17:05 xq: rendere zwei halbtransparente kreise übereinander
10:17:09 xq: zum beispiel für nen venn-diagramm
10:18:33 Schrompf: und woher kommt dann das weiß? das kann ja nur aus dem source-color kommen?
10:18:42 xq: genau
10:18:46 xq: die war in dem fall weiß
10:18:58 xq: und das darf überhaupt keine rolle spielen, wenn source color = 0% alpha
10:19:05 Schrompf: also kommt genau raus, was rauskommen soll?
10:19:22 Schrompf: na aber anscheinend ist dort srcAlpha nicht 0%
10:19:35 Schrompf: das ist doch der eigentliche bug, nicht das alphablending, was dann mit den zahlen arbeitet
10:19:55 xq: nein, tut es nicht
10:21:49 xq: offtopic: https://www.shadertoy.com/view/MlKGWK
10:21:50 xq: <3
10:39:18 xq: Schrompf: https://www.shadertoy.com/view/fltSR7
10:39:31 xq: der hintergrund ist 100% alpha
10:45:32 Schrompf: "korrekt" ist halt irgendwie albern. wenn ich 50% alpha das eine und dann 50% alpha das andere rendere, dann erwarte ich links.
10:45:58 Schrompf: aber für nen logo ist das wohl irgendwie doof.
10:46:49 xq: Schrompf: denk dran, du siehst hier kein alpha am ende
10:47:00 xq: das finale bild hat nicht 100% deckung
10:48:59 Schrompf: du sagst, als ob das irgendwas erklären würde
10:49:19 Schrompf: bin off, "sudo ifdown"
11:08:48 joeydee: Und da ist sie wieder zwischen den Zeilen versteckt, die fehlende Information, von der wir anfangs nichts ahnen konnten ...
11:12:38 xq: hm?
11:13:33 xq: welche information hat dir gefehlt?
11:16:16 joeydee: Du hattest versucht, den Alpha-Wert Alpha-zu-blenden, richtig? Wir hatten es vom Blending der Farbkomponenten.
11:16:25 xq: ne
11:16:34 xq: farben auf non-opaque farben zu blenden
11:16:42 xq: also "background = (0,0,0,0.5)"
11:16:51 joeydee: genau.
11:16:52 xq: und dann darauf ein (1,0,0,0.5) zu blenden
11:17:29 xq: der punkt ist, dass da am ende ein (1.0, 0,0, X) rauskommen muss, da es keine hintergrundfarbe gibt
11:17:33 joeydee: und du erwartest, das im Ergebnis ein korrekter Alphawert erscheint. Das heißt, du möchtest den Alpha-Anteil bis zum Ende korrekt mitblenden.
11:18:02 xq: ich erwarte vorallem, dass es eben keine farbverfälschung durch unsichtbare farben gibt
11:18:12 joeydee: Also effektiv gesehen, das Bild pixelcachen können, um es später auf einen bis dato noch unbekannten Hintergrund korrekt blenden zu können.
11:18:35 xq: genau
11:18:53 xq: halt einfach die TVG in eine Bitmap wandeln, die nachher exakt gleich aussieht
11:19:40 joeydee: Was Schrompf diskutiert hatte (und ich hätte): wenn man den Hintergrund kennt, kann man das Lerp-Blending der Reihenfolge nach durchziehen. Das ist was anderes. Die Farben werden dabei ja fertig gemischt.
11:20:07 joeydee: Optisch im Ergebnis aber dasselbe.
11:20:12 xq: ja
11:21:02 xq: sorry für die verwirrung
11:23:55 joeydee: Und sei dir bewusst, dass man hierzu auch mit premultiplied alpha arbeiten kann, was die Verwirrung noch perfekter macht ;)
11:24:26 xq: oh boi
11:24:27 xq: stimmt
11:24:34 xq: aber das ignorier ich immer brav
11:24:40 xq: das verwirrt sowieso alle
11:24:43 xq: und macht weniger gute bilder
11:26:15 xq: so
11:26:18 xq: habe dinge gefixed
11:26:24 xq: meine bilder haben jetzt wieder linien und gradienten
11:26:27 xq: auch im anti-alias mode
11:26:27 xq: :D
11:28:04 xq: aber jetzt muss ich wohl den ganzen quark in die library statt ins tool schieben
11:28:15 xq: ansonsten muss ich den ganzen blend- und scaling-kacke in jedem tool machen :D
11:28:49 xq: https://github.com/MasterQ32/tvg/raw/master/examples/everything.png
11:28:54 xq: jetzt auch die testgrafik ohne aliasing :)
11:45:49 xq: bin langsam echt happy :)
11:46:12 Schrompf joined the channel
11:47:27 Schrompf: re
11:55:10 Schrompf: hübsches bild, xq, scheint ein fortschritt zu sein. aber die formen ohne den dunkelroten outline haben fehlfarben in den randpixeln
11:55:18 Schrompf: da bin ich ziemlich sicher
11:57:38 xq: good point
12:24:03 xq: witzig
12:24:13 xq: ich guck mir grade das blending an
12:24:18 xq: über weiß drüber blenden gibt schwarze kanten
12:24:56 xq: das ist eigentlich das, was ich grade vermeiden will
12:25:05 xq: die farbe sollte konstant bleiben, nur der alpha sich ändern
12:25:30 xq: ah fuck
12:25:35 xq: ich seh mein problem
12:26:05 xq: ich blende die farben auf der gammakurve
12:30:05 Schrompf: gamma machen, sieht dann aber doof aus
12:30:28 xq: genau
12:30:56 Schrompf: antialiasing ist aber wirklich ein problembürger - im idealfall macht man es nach der Gamma Correction
12:33:45 xq: hm
12:33:51 xq: warum ist der ganze scheiß so kacke? :D
12:40:26 Schrompf: die scheiße ist stinkender kackmist
12:41:44 xq: yep
12:41:45 xq: https://mq32.de/public/bc6f892485f565262b234367309405bc13855e68.png
12:41:51 xq: ich verkack das supersampling
12:41:59 xq: problem ist, dass ich werte mit 0 alpha in den color average mit reinziehe
12:42:03 xq: was definitiv falsch ist
12:42:48 xq: die farben tragen im finalen sample ja unterschiedlich stark bei
12:43:22 Schrompf: ernstgemeinte empfehlung: mach premultiplied alpha
12:43:34 Schrompf: da hast du das problem nicht
12:44:30 xq: und was geb ich final als PNG-File aus?
12:45:07 xq: so, muss jetzt aber mal los o/
12:45:36 Schrompf: das farbergebnis wie bisher auch. premultiplied alpha ändert doch nur den srcValue beim AlphaBlending
12:46:10 Schrompf: du könntest zum ausprobieren schlimmstenfalls einfach die 16 samples premultiplien und veränderst sonst erstmal gar nix
12:47:16 Schrompf: beispiel: du hast 8 samples weiß (1.0, 50%) und 8 samples nichts (0.0, 0%)
12:47:31 Schrompf: premultiplied macht daraus (0.5, 50%) und (0.0, 0%)
12:48:17 Schrompf: 8x das eine, 8x das andere, schlicht addieren und durch 16 geteilt ergibt (0.25, 25%)
12:48:34 Schrompf: das ist jetzt dein premultiplied source alpha für's blending
12:52:17 xq: und wie komm ich dann wieder zurück auf unpremultiplied? 0.25 / 25%?
12:54:17 Schrompf: gar nicht, du nimmst es einfach für dein blending
12:54:28 Schrompf: aber ja, schlimmstenfalls unmultiplieen
12:55:54 xq: Schrompf: mein output ist nen PNG/TGA-File
12:56:30 Schrompf: und wie verwendest du das dann?
12:56:47 Schrompf: für'n bildbetrachter: ja, musst du un-premultiplien
12:56:59 Schrompf: für jeden eigenen zweck: render halt mit premultiplied
12:57:33 Schrompf: fasst ja nur das "srcValue * srcAlpha" zu einem Term zusammen und ermöglicht damit viel mehr Freiheiten beim Blenden
12:58:13 xq: dementsprechend hab ich keine kontrolle über das finale blending
12:58:13 xq: aber das 'durch alpha teilen' ist korrekt für unmultiply?
12:58:13 xq: Schrompf: kein plan, in gimp angucken, auf ner website einbinden, auf OpenGK werfen, ...
12:58:13 xq: *GL
12:58:27 Schrompf: wobei ich bei Splatter das immer erst beim Texturlesen premultiplied habe. das war schwer, dem grafiker beizubringen, wie man das gleich premultiplied authort
12:59:10 Schrompf: "auf OpenGL werfen" ist halt der UseCase, wo Du lieber OpenGL auf Premultiplied umbaust
12:59:22 Schrompf: Gimp kriegste so schnell nicht geändert, das gebe ich zu :-)
12:59:33 xq: jo, aber das ist nur ein anwendungsfall von tausendene
12:59:50 xq: die meisten leute wollen wohl einfach ne datei zum angucken
12:59:58 Schrompf: ja, unmultiply durch division, und du musst dir plötzlich nen standardwert ausdenken für alpha == 0
13:00:12 xq: ich brauch den kram zur konverter-verifikation
13:03:27 Schrompf: mach pixel mit Alpha 0% bitte grell-lila oder so
13:03:53 Schrompf: als test für alle, die das ahnungslos gefiltert upscalen
13:09:11 xq: Schrompf: Klingt gut
14:29:38 xq: so
14:29:47 xq: psychotherapiesitzumh vorbei
14:30:01 Schrompf: fühlst du dich besser?
14:30:36 Schrompf: von einer wird noch nicht groß was passieren, vermute ich, aber angeblich fühlt man sich irgendwie bereichert inspiriert, wenn man eine Gute hatte
14:36:30 xq: grundlegend tuts gut, sich dinge von der seele zur reden
14:36:37 xq: und nächstes mal werden wir rollenspiel machen
14:36:43 xq: und eine spritzung "spielen"
14:38:11 xq: bin gespannt, wie das wird
14:41:44 Schrompf: viel erfolg
14:41:47 xq: danke
14:41:52 xq: ich probier jetzt mal premult au
14:41:54 xq: *aus
14:43:30 Schrompf: Guuuut. Lass die Hoffnung durch Dich strömen. SPÜRE IHRE MACHT.
14:44:10 xq: oh yes
14:44:14 xq: minimaler jitter
14:47:43 xq: Lhttps://mq32.de/public/87244d8b9c92171d1fd812e05176349de1e90cdc.png
14:47:45 xq: https://mq32.de/public/87244d8b9c92171d1fd812e05176349de1e90cdc.png
14:47:47 xq: kritische meinung?
14:48:29 Schrompf: ich bin neidisch
14:48:39 Schrompf: sieht für mich perfekt antialiased aus
14:48:46 xq: top
14:49:00 xq: so erwarte ich das von vektorgrafik :D
14:49:10 xq: jetzt fehlt nur noch so ein klitzekleines scheißdetail D
14:49:19 xq: die linienstärke in den pfaden unten ist falsch
14:50:34 Schrompf: das hab ich natürlich sofort gesehen, aber ich wollte nix sagen
14:50:53 xq: genau :D
14:51:31 Schrompf: aber stimmt, jetzt wo du es sagst: die auf schwarzem grund wirken ein pxl breiter als die auf weißem grund. das ist doch unmöglich?
14:51:48 xq: das mein ich gar nicht mal
14:51:53 Schrompf: sondern?
14:52:07 xq: die lininestärke ist im rendering überall gleich
14:52:14 xq: ich hab aber ne kodierbare linienstärke in pfaden
14:52:22 xq: aber danke für den hinweis
14:52:25 Schrompf: das ist pfade
14:53:12 xq: yep
15:06:52 xq: das wird aber eine implementierung für einen anderen ag