Open Clonk und Post-Processing

Mal an die OC-Entwickler unter uns:
Kann man in Open Clonk das gerenderte nochmal bearbeiten, bevor es ausgegeben wird? (Und ist das dann wirklich Clientside und wird nicht synchronisiert?!)
Um zB. sowas hier zu ermöglichen:
http://jsfiddle.net/esteewhy/5ht3b/6/

Generell könnte man damit auch ziemlich nette Hitze / Feuereffekte erzielen. Ginge vergleichbares mit der Engine von OC? Wäre ein erheblicher Mehrwert. Aber keine Ahnung wie das so technisch ausschaut bei OC. Aber hey, ihr habt ja immerhin schon Shader für Materialien reingehauen.

Ja, es gibt schon Shader. Die Landschaft wird mit Shadern gezeichnet und auch fuer die Objekte die Beleuchtung berechnet. Du kannst auch die Shader im Szenario ueberladen und eigene Effekte einbauen,

Das würde aber trotzdem noch ein bisschen mehr brauchen.
Um das was Gecko haben will zu schaffen, müsste man den gesamten Bildschirm erstmal in einen Framebuffer rendern (am besten ohne GUI?) und dann dadrauf nochmal Shader erlauben.

Was was eigentlich gehen sollte, wären große Objekte, (zB Nebel), die dann irgendwelche coolen Shaderdinge tun

Man munkelt ja, Materialien könnten bereits einen Custom-Shader haben, aber ich habs nicht dokumentiert gesehen :expressionless:

Die Landschaft als ganzes ja. Einzelne Materialien nein.

Ersteres trifft eher das, was ich mir vorgestellt habe. Ist das ein heftiger Aufwand sowas zu implementieren? Dein Gedankengang mit dem GUI zeigt ja, dass man schon mal verschiedene "Ebenen" bräuchte. Und dann frag ich mich auch wie lange das ganze noch performant bleibt?

>Ist das ein heftiger Aufwand sowas zu implementieren?


Nö, denke nicht. Das ist ja ein Standardproblem und ich schätze der größte Teil der Arbeit ist es, das Zeug in die jetzige Architektur einzubauen.

Gerade wegen dem Planesetup (und weil die GUI jetzt eh engineseitig ist) ginge es auch relativ problemlos, bestimmte Ebenen (GUI etc.) erst spaeter zu zeichnen. (Das gibt es ja alles schon und wird schon so gemacht!)

Ja bitte. Ich will endlich Bloom haben :frowning:

>Um zB. sowas hier zu ermöglichen:


PS:
Mir ist grad aufgefallen, dass du noch mehr willst - du willst ja nicht nur das gesehene nochmal bearbeiten, sondern du willst zur gleichen Zeit auch noch Informationen über die Landschaft haben (z.B: Wo ist Wasser?). Das ist wohl wieder ein Stück schwieriger.

Was evtl. deutlich leichter (oder schon machbar?) ist, wäre zB einen neuen Feuerpartikel zu machen, der einfach alles hinter sich verwischt. Dazu braucht man ja kein Postprocessing.
Echtes Postprocessing des ganzen Bildschirms bräuchtest du eher, wenn du zB Cell-Shading mit reinbringen willst - oder alles sepia-farben haben willst, wenn der Clonk wenig HP hat. Beides auch evtl. interessant aber ein anderer Anwendungsfall.

Für Wasser wäre das aber evtl etwas mehr Aufwand, weil du dann tatsächlich wissen musst WO Wasser ist.

> Mir ist grad aufgefallen, dass du noch mehr willst - du willst ja nicht nur das gesehene nochmal bearbeiten, sondern du willst zur gleichen Zeit auch noch Informationen über die Landschaft haben (z.B: Wo ist Wasser?). Das ist wohl wieder ein Stück schwieriger.


Man kann dem Post-Processing Shader ja erlauben auf die Landschaftstextur zuzugreifen.

> oder alles sepia-farben haben willst, wenn der Clonk wenig HP hat.


Das kann man doch einfach im normalen Pixel-Shader machen, ohne erst alles in einen Framebuffer zu rendern?

>Das kann man doch einfach im normalen Pixel-Shader machen, ohne erst alles in einen Framebuffer zu rendern?


Stimmt!