Du bist nicht angemeldet.

Werbeanzeige

1

27.01.2010, 15:05

Dynamische 2D grafiken mit C++?

Mal angenommen ich will nicht unbedingt alles mit sprites machen, sondern ruhig in Schwarz/weiß einzelne Pixel Färben. Soll ich mir dann pixelsprites anlegen und überall hinrendern, wo ich grad schwarz brauche oder gibt es dafür eine einfachere lösung?
Ich möchte das ganze für einfache Grafische ausgaben wie z.b. 2D Labyrinthe und sonstige Mathematische Aplikationen nutzen.
Wär natürlich toll, wenns auch für Spiele schnell genug ist.
Gewinnen ist, wenn man einmal mehr aufsteht, als man zu Boden geht.

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

27.01.2010, 15:12

mit der sfml kannst du bei der klasse sf::Image einzelne pixel setzen und das ganze image dann rendern. das ist aber recht umständlich.
was für 2d labyrinth schweben dir denn vor? bei normalen rechteckigen kannst du rechteckige sprites benutzen um es zu zeichnen.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Alyx

Treue Seele

Beiträge: 236

Wohnort: Hannover

Beruf: Head Of Software Development

  • Private Nachricht senden

3

27.01.2010, 15:13

In OpenGL erstellt man sich da einfach eine leere Textur und schiebt bei Veränderungen einfach die neuen Pixel-Daten via glUpdateTexture rüber und fertig ist die Maus. Wird bei Direct3D nicht anders sein.

LG
Alyx

4

27.01.2010, 15:38

naja, aber pixel für pixel klingt rechenintensiv oder?
Gewinnen ist, wenn man einmal mehr aufsteht, als man zu Boden geht.

5

27.01.2010, 15:39

Naja, du sperrst die Textur einmal, machst deine änderungen, und entperrst sie wieder.

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

27.01.2010, 15:41

ja es klingt rechenintensiv. aber was denkst du was die grafikkarte macht wenn sie ein bild berechnet? jedes pixel wird einzelnd berechnet.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

7

27.01.2010, 15:44

Naja, so ne GPU ist auch dafür ausgelegt, massenweise fast gleiche berechnungen zu erledigten. (Deswegen killt dynamic branching im Shader auch die Performance).

Daher würde ich es als nicht zu rechenintensiv einschätzen.
Oder macht die Berechnungen die CPU ?

Alyx

Treue Seele

Beiträge: 236

Wohnort: Hannover

Beruf: Head Of Software Development

  • Private Nachricht senden

8

27.01.2010, 15:49

Zitat

Soll ich mir dann pixelsprites anlegen und überall hinrendern, wo ich grad schwarz brauche oder gibt es dafür eine einfachere lösung?


... klang zumindest nicht performant, da wird das mit dem Textur aktualisieren um Faktor 100 schneller sein ;-).

LG
Alyx

idontknow

unregistriert

9

27.01.2010, 15:50

Ich glaube, wenn man nicht CUDA o.ä. einsetzt, ist es ziemlich rechenintensiv, da es afaik die CPU macht (normalerweise hat man ja ohne sachen wie CUDA keinen zugriff auf die GPU...)

NachoMan

Community-Fossil

Beiträge: 3 905

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

10

27.01.2010, 15:55

als bitmap vorzeichnen und wenn du etwas ändern musst malst du halt drüber oder änderst einzelne pixel. wir wissen ja nicht was du genau brauchst.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige