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

Volker_Neff

Treue Seele

  • »Volker_Neff« ist der Autor dieses Themas

Beiträge: 249

Wohnort: Hamburg

  • Private Nachricht senden

1

04.12.2013, 12:45

[SDL] Read Pixel from Texture

Guten Tag,

ich suche eine Möglichkeit einen bestimmten Pixel aus einer SDL2 Texture zu lesen.

Ich danke euch schon einmal

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

04.12.2013, 13:58

Wozu?
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]

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

04.12.2013, 14:13

Du kannst dir mit SDL_LockTexture einen Pixel Bereich holen:
wiki.libsdl.org/SDL_LockTexture
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

04.12.2013, 14:23

Nicht immer gleich antworten. Erstmal die Motive in Frage stellen ;) Aus Texturen lesen ist nämlich keine gute Idee für die Performance und meist lässt es sich anders viel sinnvoller lösen als irgendwelche Werte aus dem Grafik-Speicher lesen zu wollen.
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]

Volker_Neff

Treue Seele

  • »Volker_Neff« ist der Autor dieses Themas

Beiträge: 249

Wohnort: Hamburg

  • Private Nachricht senden

5

04.12.2013, 14:45

Gut ich möchte die Pixel auslesen um zu gucken ob sie transperent sind um sie dann für eine Pixel genaue Colision zu nutzen. Habe ich da total den falschen ansatz?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

04.12.2013, 14:50

Ja. In der Tat. Genau das dachte ich mir nämlich schon. Für so eine Operation sollte man auf keinen Fall anfangen Daten von der GPU lesen zu wollen. Bau Dir vor dem Upload an die GPU (also bevor die Textur erzeugt wird) aus Deinem Bild eine CollisionMap und halte die auf der CPU.
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]

Volker_Neff

Treue Seele

  • »Volker_Neff« ist der Autor dieses Themas

Beiträge: 249

Wohnort: Hamburg

  • Private Nachricht senden

7

04.12.2013, 15:02

Gut auf die GPU wollte ich garnicht zugreifen. Meine Idee war halt das ich erst mit hilfe einer normalen einfachen Colisions erkennung gucke ob die Objetkte über einander liegen. Falls das der Fall ist wollte ich nun gucken was für Pixel über einander liegen. Natürlich alles vorm rendern, warum sollte die Texture dann schon im GPU-Speicher liegen?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

04.12.2013, 15:03

Weil eine Texture eben im GPU-Speicher liegt.
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]

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

04.12.2013, 15:37

Hol dir die Daten einmal am Anfang beim Laden und packe sie ggf. in ein Bit-Array.

10

04.12.2013, 15:39

Behalte einfach die SDL_Surface aus der du die Textur erstellst. Die Surface enthält einen Zeiger auf alle Bildpixel. Zur Untersuchung der Pixel kannst du so vorgehen: www.sdltutorials.com/sdl-per-pixel-collision

Werbeanzeige