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

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

1

25.03.2013, 10:31

texelFetch vs. texture2D (GLSL 1.30)

Kurze Frage zu texelFetch aus GLSL. Was ich darüber weiß ist, dass es wie texture2D Pixel Daten aus einer Texture im Shader lesen kann,
allerdings ohne Filterung, ohne automatische MIP-map Level Auswahl, ohne Texture-Koordinaten zu Indizes Konvertierung.

Klingt für mich nach ner tollen Funktion, die schneller sein müsste als texture2D, da ja hier keiner lei Konvertierung, Filterung etc. stattfindet.
Also bestens geeignet, wenn man unskalierte 2D Bilder zeichnen will, z.B. das Quad für einen Deferred Renderer, das genau so groß ist, wie die Bildschirmauflösung.

Ich habe aber sogar den Eintrag, als wenn das minimal langsamer wäre. Was bringt einem das also, außer dass man ungefiltert und per Indizes direkt auf die Pixel zugreifen kann?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

25.03.2013, 11:10

Wie du schon sagst, man kann ungefiltert auf die Pixel/Daten zugreifen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

3

25.03.2013, 11:15

Es ist nach meinem Wissen auch langsamer. Die GPU ist halt traditionell spezialisiert auf gefilterte Texturzugriffe und hat dafür eine ordentliche Portion dedizierter Schaltkreise in den Texture Units. Soweit ich weiß, implementieren alle Grafikkartenhersteller diesen ungefilterten Direktzugriff nur als Sonderfall in der Texture Unit. In den ersten D3D10-Grafikkarten war dieser Zugriff sogar drastisch langsamer, inzwischen soll es wohl akzeptable Performance erreicht haben.

Empfehlung: wenn Du sowas brauchst, stell den Sampler auf Point Sampling und nutze normale Texturzugriffe.
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

4

25.03.2013, 11:21

Empfehlung: wenn Du sowas brauchst, stell den Sampler auf Point Sampling und nutze normale Texturzugriffe.

Ja, genau so mache ich das im Moment in meinem Deferred Renderer. Dann bleibe ich wohl auch dabei.

Danke :)

Werbeanzeige