Ich schreibe einen Spiel- und Karteneditor mit Java und jMonkeyEngine. Im Karteneditor habe ich einen Pinsel mit Drahtgitterkugel gemacht. Mein Problem ist: Ich möchte es überall sichtbar machen, also möchte ich die Farbe des Pixels "hinter" diesem Pinsel invertieren. Ich wollte es mit Fragment Shader (GLSL) machen, aber ich weiß nicht, wie ich die Farbe dieses Pixels erhalten soll.
10
Antworten:
Der schnelle und einfache Weg, dies zu tun, besteht darin, die Standard-Mischungsgleichung mit den folgenden Parametern zu verwenden:
Wenn
src
es sich um die Quellfarbe (die Farbe Ihres neuen Objekts) unddst
die Zielfarbe (die Farbe im Framebuffer) handelt, wird die neue Farbe wie folgt berechnet:Sie müssen also nur einstellen
src = 1
, dh. weiß, und Sie erhalten inverses Video. Der GLSL-Fragment-Shader lautet:quelle