Wie funktioniert A2C (split aus: http://www.c-plusplus.de/forum/viewtopic-var-t-is-266904 )



  • Blaze schrieb:

    Es gäbe da noch eine Methode: "Alpha-To-Coverage"
    Der Nachteil besteht leider darin, dass erst ab 8x Multisampling das Ergebnis zufriedenstellend ist.

    Was hat das denn mit der Fragestellung zu tun?


  • Mod

    David_pb schrieb:

    Blaze schrieb:

    Es gäbe da noch eine Methode: "Alpha-To-Coverage"
    Der Nachteil besteht leider darin, dass erst ab 8x Multisampling das Ergebnis zufriedenstellend ist.

    Was hat das denn mit der Fragestellung zu tun?

    Alpha2coverage ist eine problemloesung. was verstehst du daran nicht?



  • rapso schrieb:

    David_pb schrieb:

    Blaze schrieb:

    Es gäbe da noch eine Methode: "Alpha-To-Coverage"
    Der Nachteil besteht leider darin, dass erst ab 8x Multisampling das Ergebnis zufriedenstellend ist.

    Was hat das denn mit der Fragestellung zu tun?

    Alpha2coverage ist eine problemloesung. was verstehst du daran nicht?

    Die Lösung! Aber vielleicht kannst du's mir ja erklären?!


  • Mod

    David_pb schrieb:

    rapso schrieb:

    David_pb schrieb:

    Blaze schrieb:

    Es gäbe da noch eine Methode: "Alpha-To-Coverage"
    Der Nachteil besteht leider darin, dass erst ab 8x Multisampling das Ergebnis zufriedenstellend ist.

    Was hat das denn mit der Fragestellung zu tun?

    Alpha2coverage ist eine problemloesung. was verstehst du daran nicht?

    Die Lösung! Aber vielleicht kannst du's mir ja erklären?!

    es gibt genug docu im netz, besonders im context zu "im Zusammenhang mit Planzen und Bäumen" z.B.

    http://en.wikipedia.org/wiki/Alpha_to_coverage schrieb:

    Alpha to coverage is a multisampling computer graphics technique useful for situations where dense foliage or grass must be rendered in a video game....

    wenn du spezifische fragen ueber A2C hast, frag nur, vielleicht kannst du dazu auch einen eigenen thread aufmachen damit wir den hier nicht vom "Ishildur" off-topic machen falls er diese loesung nicht mag. Danke.



  • Ich war bisher immer der Meinung Alpha-To-Coverage zielt speziell auf Antialiasing von "Alphatestet-Polygons" ab. Ich weiß allerdings nicht in wiefern das was mit Alphablending zu tun haben soll, auf Wiki steht z.B.:

    wiki schrieb:

    the alpha coverage mask is ANDed with the multisample mask

    wo wird da Alphablending berücksichtigt? Den Z-write für Alphawerte kann man ja auch umgehen indem man bei der Alphafunc auf irgendein Threshold testet, was allerdings auch nur für Alphatesting Sinn ergibt.


  • Mod

    David_pb schrieb:

    Ich war bisher immer der Meinung Alpha-To-Coverage zielt speziell auf Antialiasing von "Alphatestet-Polygons" ab.

    Da hast du dich nicht ganz richtig informiert, ziel ist es transparenz zu simulieren, indem man den alpha-wert auf die anzahl der sub-samples umrechnet, um so auf statistischem wege transparenz zu simulieren.
    Es ist weder alpha-test noch alpha-blending, wenn auch das resultat und implementierung von beiden etwas hat, was aber nicht verwunderlich ist wenn alle 3 ideen das gleiche ziel verfolgen.

    Ich weiß allerdings nicht in wiefern das was mit Alphablending zu tun haben soll, auf Wiki steht z.B.:

    wiki schrieb:

    the alpha coverage mask is ANDed with the multisample mask

    wo wird da Alphablending berücksichtigt?

    Du musst schon das ganze lesen um es zu verstehen; das steht ebenfalls in dem link:

    Alpha-to-coverage converts the alpha component output from the pixel shader to a coverage mask

    Den Z-write für Alphawerte kann man ja auch umgehen indem man bei der Alphafunc auf irgendein Threshold testet, was allerdings auch nur für Alphatesting Sinn ergibt.

    den z-write umgeht man indem man es beim alphablending ausschaltet. wenn du jedoch alpha2coverage einschaltest, hast du kein blending mehr im eigentlichen sinne (mutual exclusiv features), deswegen kann (und sollte man) z-write eingeschaltet lassen. das blending wird am ende durch ein resolve erzeugt.
    Du kannst es dir als simulation der realitaet vorstellen, viele atome werden uebereinander gezeichnet und am ende mappen viele davon auf einen pixel/receptor. wenn du eine ganz duene schicht von etwas hast, ist sie transparent, bei 500atomen dicke siehst du selbst durch gold noch licht durchkommen.
    Bei transparenten objekten sind die atome in einer (kristal-)formation bei der sich viele selbst ueberlagern und deswegen verdecken sie nie alle atome hinter sich. Das erreichst du dann mit der coverage mask die man zu jedem alpha-wert ausrechnet.

    eigenschaften:
    -sanfte abstufungen gegenueber alpha-test, harte gegenueber alpha-blend
    -ist mehr z-correct als alpha-blend mit ueblicher sortierung, weniger korrekt als alpha-test (wenn man pech hat, sieht man dadurch muster)
    -ist relativ teuer, weil man eben ziemlich extreme AA stufen braucht damit es brauchbar ausschaut sobald man einigermassen weiche verlaeufe haben will.

    deswegen ist der algorithmus genau richtig fuer die problemstellung. bei relativ kurzen kanten die dennoch nicht scharf aussehen sollen, reicht 4xAA oder selbst 2xAA. (Wird auch in einigen spielen verwendet). wenn man jedoch particle zeichnet, z.b. rauchwoelkchen, dann reicht selbst 32AA nicht aus (meiner persoenlichen meinung nach, nachdem ich das getestet habe).


Anmelden zum Antworten