Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Zockerknight

Frischling

  • »Zockerknight« ist der Autor dieses Themas

Beiträge: 22

Beruf: Schüler (11.Klasse)

  • Private Nachricht senden

1

11.07.2009, 09:40

GLSL auf beliebige Pixel zugreifen

Hi,

Ich arbeite zurzeit mit sfml und versuche eine Art Shader für Bewegungsunschärfe zu machen.

Hierführ will einen pixel von der normalen Position und einen Pixel von einer Position die abhängig ist von der Bewegungsrichtung jeweils zur hälfte addieren.

Aber wie gesagt, ich schaff es immer nur den standardpixel zu bekommen.

weiß jemand wie das geht und hat evtl. sogar einen kleinen Beispiel Shader?

danke im vorraus

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

11.07.2009, 10:01

Vermutlich musst du die Szene in einen Puffer rendern und den dann als Sampler an deinen Shader übergeben.

Zockerknight

Frischling

  • »Zockerknight« ist der Autor dieses Themas

Beiträge: 22

Beruf: Schüler (11.Klasse)

  • Private Nachricht senden

3

11.07.2009, 10:18

kann mir evtl. jemand ein kleines Beispiel geben, ich habs schon mit den Texturkoordinaten versucht, aber so lässt sich der shader erst gar nicht ausführen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

11.07.2009, 10:34

Wie wärs mit folgendem: Lern GLSL, dann lösen sich die meisten Starterprobleme wie von selbst!

Zockerknight

Frischling

  • »Zockerknight« ist der Autor dieses Themas

Beiträge: 22

Beruf: Schüler (11.Klasse)

  • Private Nachricht senden

5

11.07.2009, 12:07

Danke für das Tutorial, hab mich schon weitergebracht.

so sieht jetzt mein shader aus:

Quellcode

1
2
3
4
5
6
7
texture framebuffer

effect
{
    vec3 color = vec3(texture2D(framebuffer,gl_TexCoord[0].st));
    _out = vec4(color,0.0);
}


so übergeb ich die parameter in sfml
Effect.SetTexture("framebuffer",NULL);

dann führe ich den Effekt aus

Folgender Fehler:

Texture "framebuffer" not found in post-effect

sieht der Shader allerdings so aus

Quellcode

1
2
3
4
5
6
7
texture framebuffer

effect
{
    vec4 color = framebuffer(_in);
        _out = color;
}


funktioniert das ganze ohne probleme.

Alledings wenn ich statt texture uniform sampler2D benutze kommt derselbe fehler.
Laut sfml Tut ist uniform sampler2D dasselbe wie texture.

Werbeanzeige