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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

41

19.01.2012, 22:47

Naja, ich nehm mal an du willst was in eine Textur rendern? Statt Pixel aus dem Framebuffer zu kopieren, verwend ein Frame Buffer Object um direkt in deine Textur zu rendern ;)

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

42

19.01.2012, 22:49

Ah, soweit bin ich gar nicht. FBO's sind also der schnellste Weg, so etwas anzustellen? (mal abgesehen von Shadern).

edit: Ich hab da doch nochmal ein Problem/Frage: Wenn ich nun das Subimage erstelle und versuche zu zeichnen klappt das ja. Versuche ich nun auch das Original Bild zu zeichnen, sehe ich nicht das Originalbild sondern quasi den Teil der skalierten Original Textur, den ich gerade "ausgeschnitten" habe: http://imageshack.us/photo/my-images/585/strangeg.png/
Dazu kommt noch, dass die Texturen nach wenigen Sekunden verschwinden und ich ein weißes Fenster habe, obwohl ich sie eig. in jedem Frame neu zeichne. Habe auch bereits die "bind" Methoden gelogt, die werden regelmäßig aufgerufen und binden die korrekten Texturen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Architekt« (19.01.2012, 23:24)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

43

20.01.2012, 15:22

Ah, soweit bin ich gar nicht. FBO's sind also der schnellste Weg, so etwas anzustellen? (mal abgesehen von Shadern).

Ja. (Shader sind kein Ersatz für FBOs)

edit: Ich hab da doch nochmal ein Problem/Frage: Wenn ich nun das Subimage erstelle und versuche zu zeichnen klappt das ja. Versuche ich nun auch das Original Bild zu zeichnen, sehe ich nicht das Originalbild sondern quasi den Teil der skalierten Original Textur, den ich gerade "ausgeschnitten" habe: http://imageshack.us/photo/my-images/585/strangeg.png/
Dazu kommt noch, dass die Texturen nach wenigen Sekunden verschwinden und ich ein weißes Fenster habe, obwohl ich sie eig. in jedem Frame neu zeichne. Habe auch bereits die "bind" Methoden gelogt, die werden regelmäßig aufgerufen und binden die korrekten Texturen.

Merkwürdig, zeig vielleicht mal wie der relevante Code nun aussieht.

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

44

20.01.2012, 16:34

Der relevante Code ist dieser: http://www.rswhite.de/code/index.php?q=8…cba82ac97791b2b
Und der Output dieser: http://imageshack.us/photo/my-images/18/doublestrange.png/

Ich denke mal ich muss irgendwie den Viewport wieder runter skalieren?

Ich werde mir als nächstes direkt mal FBO's angucken, aber das hier würde ich erstmal gerne hinbekommen. :) Bis ich mich an Shader wage sollte noch ein Weilchen dauern.
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

45

20.01.2012, 16:40

Ich verstehe nicht so ganz wofür diese merkwürdigen Berechnungen mit Deinen Prozentwerten dienen sollen.
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

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

46

20.01.2012, 17:24

Du meinst:

Zitat


const float percent_x = cast(float)(vp_w) / this._width;
const float percent_y = cast(float)(vp_h) / this._height;

// ...

cast(uint)(rect.get_x() * percent_x), cast(uint)(rect.get_y() * percent_y),
?

Nun ja, möchte ich auf meiner Grafik die Sub Textur von z.B. Position 25|25 bis 80|80 haben, dann muss ich ja umrechnen, da ich ja die Grafik über die gesamte Größe des Fenster gestreckt habe.
Also muss ich nun statt ab 25, ab (400 / 80) = 5 * 25 = 125 anfangen, "auszuschneiden". Scheint ja auch soweit zu klappen. Andernfalls gab es komische Begebenheiten.
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

47

20.01.2012, 17:39

Du streckst noch immer die Textur über das gesamte Fenster? Ja wieso das denn? Das war nur um Dir zu zeigen, dass Deine Koordinaten beim Kopieren nicht stimmen und deswegen Dein Ergebnis schwarz war.
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

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

48

20.01.2012, 17:49

Oh, ich dachte das wäre das normale verfahren. o_O
Das wird dann wohl auch erklären, wieso meine Original Textur so komisch skaliert aussieht.

edit: Moment, wie soll ich denn dann verfahren? Wenn ich den Viewport nicht angebe, wird die Textur normal gezeichnet, ansonsten (bisher) über das gesamten Fenster. Muss/Soll ich nun wie zuvor den Viewport auf die Größe des Textur einstellen oder es ohne versuchen?
Versuche ich es ohne wie hier, bekomme ich diesen Output zu sehen: http://imageshack.us/photo/my-images/220/weiesquadrat.png/
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Architekt« (20.01.2012, 18:40)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

49

20.01.2012, 18:39

"Das normale Verfahren" ist gar nicht definierbar, da noch immer nicht klar ist welchen Use-Case Du eigentlich mit Deinem Code erfüllen willst.
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

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

50

20.01.2012, 18:41

Siehe edit und ich möchte nach wie vor eine Sub Textur erhalten die ich dann eigenständig benutzen kann. Original Textur und Sub Textur sollen aber beide noch normal benutzbar und zu zeichnen sein.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige