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

thilo5

Frischling

  • »thilo5« ist der Autor dieses Themas

Beiträge: 12

Beruf: Schüler

  • Private Nachricht senden

1

09.03.2015, 14:31

Verständnisproblem bei Pixelshadern

Hallo zusammen,

ich habe folgendes Problem: Bisher dachte ich, das Pixel Shader für jeden Pixel der Textur eines Objekts aufgerufen werden. Allerdings funktionieren diese Shader ja auch ganz ohne Textur, und darum ist mir nun nicht ganz klar mit was für "Pixeln" die Shader arbeiten ?(

Vielen Dank für eure Hilfe!

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

2

09.03.2015, 14:45

Mit den Pixeln auf dem Bildschirm, vereinfacht gesagt. Und das müssen nicht die Texel(!) der Eingabetextur sein. Es kann ja auch sein das sich 100 Texel der Textur auf einem Pixel der Ausgabe tummeln.

Also richtiger wäre es zu sagen: Der Pixelshader wird für jeden Pixel im Zielframebuffer aufgerufen. Oder mehrmals wenn Antialiasing im Spiel ist.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

thilo5

Frischling

  • »thilo5« ist der Autor dieses Themas

Beiträge: 12

Beruf: Schüler

  • Private Nachricht senden

3

09.03.2015, 14:51

Vielen Dank für die schnelle Antwort! Jetzt verstehe ich warum der Shader auch ohne Textur funktioniert :thumbsup:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

09.03.2015, 15:12

Genau, der PixelShader wird für jeden Pixel eines Dreiecks aufgerufen, um dessen Farbe zu bestimmen. Es ist also genau anders rum wie du gedacht hast; der PixelShader kann z.B. eine Textur auslesen, um die Farbe zu bestimmen, kann aber auch irgendwas komplett anderes machen...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

09.03.2015, 15:28

Oder mehrmals wenn Antialiasing im Spiel ist.

Bei MSAA ("normales Anti-Aliasing") wird der Pixel-Shader nur einmal aufgerufen. Bei SSAA (langsam!) mehrfach.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

09.03.2015, 17:30

@Bambi: Nein, das ist falsch ("Pixel-Shader arbeiten auf Geometrie").
Pixel-Shader arbeiten auf Fragmenten. Daraus kann später ein Pixel werden, muss aber nicht.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

09.03.2015, 17:32

Du hast geschrieben, dass Pixel-Shader auf Geometrie arbeiten.

thilo5

Frischling

  • »thilo5« ist der Autor dieses Themas

Beiträge: 12

Beruf: Schüler

  • Private Nachricht senden

8

09.03.2015, 18:59

Danke für die Antworten, ich glaube ich habe das jetzt halbwegs verstanden. 8)

Werbeanzeige