Ich mache ein Spiel in Libgdx.Libgdx Shader, der ganze Bildschirm betrifft
Die einzige Art und Weise, wie ich Shader benutze, ist, dass der Stapel die gegebenen Texturen nacheinander beeinflusst. Dies ist, was ich normalerweise in meinem Code tun:
shader = new ShaderProgram(Gdx.files.internal("shaders/shader.vert"), Gdx.files.internal("shaders/shader.frag"));
batch.setShader(shader);
Und das ist über alle der benötigten Code.
Wie auch immer, ich möchte diese Trennung zwischen Texturen nicht. Ich kann jedoch keine Möglichkeit finden, den ganzen Bildschirm gleichzeitig mit einem Shader zu beeinflussen, so wie der ganze Bildschirm nur eine große Textur hat. Für mich scheint dies der logischste Weg zu sein, einen Shader zu verwenden.
Also, weiß jemand, wie man so etwas macht?
Alle mit einer Charge zeichnen. – icarumbas
Es gibt viele verschiedene Möglichkeiten, wie Sie Shader verwenden können. Wenn Sie genau wissen, was Sie zu tun versuchen, ist es schwer zu beantworten. Machst du einen Post-Processing-Effekt, der die Farben ändert? Oder macht die Dinge verpixelt? Oder ändert die Beleuchtung oder macht Anti-Aliasing? – Tenfour04
Für die meisten Arten von Vollbild-Effekten können Sie normalerweise alles in ein Rahmenpufferobjekt zeichnen und dann die Textur des FrameBuffers mit einem speziellen Shader auf den Bildschirm zeichnen. – Tenfour04