ich schlage mich schon einige Zeit mit der Render to texture Funktion von OpenGL herum und habe viel mit Google gesucht und wenig gefunden.
Ich habe es teilweise zum laufen bekommen, aber ein paar Probleme bleiben:
1. Texturen werden nur in Grautönen in die Textur gerendert (einfarbige Polygone aber farbig - seltsam)
2. Wenn ich mit der Textur rendere, erscheint der Inhalt verkleinert und nach rechts unten versetzt auf dem Ziel-Polygon (Face)
3. Anderswo wird ständig ein Face mit irgendwelchen Texturen beschrieben, die da nicht hingehören
Der Hintergrund ist ein etwas komplizierter. Ich entwickle ein altes 3D-Spiel weiter (Descent, vielleicht kennt's der eine oder andere noch) und habe da Kameras eingebaut. Momentan wird deren Ausgabe mit glCopyTexImage2D erzeugt. Ich habe aber gelesen, Render to texture sei schneller. Das ganze ist in C geschrieben, und es existiert ein komplettes Projekt für Visual C++ 6.0 sowie eine Solution für Visual Studio .Net 2003.
Wer sich zutraut, da mit meiner Unterstützung etwas nachzuforschen, wäre meines ewigen Dankes (also mindestens 1 Jahr ) gewiss.
Wahrscheinlich ist die Lösung simpel, aber ich komme nicht drauf.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
karx11erx hat geschrieben:
Langsamer als mit ReadPixels geht es gar nicht. Das war übrigens die erste Version.
Bitte nur Beiträge, die tatsächlich dazu beitragen könnten, dass ich die Sache mit Render to texture in den Griff kriege.
Na ja. Vorschläge sind doch aber erlaubt, oder? Und das war einer. Wie du zwar selber festgestellt hast ein ziemlich langsamer aber ich fand es war einer.
Wie dem auch sei. Bei uns in den älteren Tutorials befindet sich unter "Extensions" -> "WGL_ARB_Pixel_Buffer" ein Tutorial über einen PixelBuffer. Das ist ein extra Kontext in den du renderst und den als Textur benutzen kannst.
Abgesehen von noch kaum unterstützten Extensions wie PixelBufferObjects würde ich sonst mal behaupten, dass die Methode mit dem glCopyTexImage2D schon eine der gebräuchlichsten ist. Zwar nicht unbedingt die Zeitgemäßeste aber gebräuchlich und nicht nur Windowsabhängig. Sollten also Pixel Buffer nicht unterstützt werden sollte das dein primäres Ziel sein.
Zu den Problemen die du beschrieben hast. Finde ich seltsam, dass es nur bei Texturen so ist aber bei Polygonen nicht. Also das Graue. Und sonst würde ich mal sagen, dass du uns von den betroffenen Problemen am besten mal ein Bild machst. So können wir selber mal sehen wie es ausschaut. Evlt ist es ja bloß ne Randerscheinung.
Wenn ich nach Render to texture frage, will ich keine (schlechten) Alternativ-Vorschläge.
Ich will die OpenGL-Erweiterung (ARB) Render-to-Texture korrekt zum laufen bringen, und das habe ich auch geschrieben.
Ich habe weiter geschrieben, daß ich über die prinzipiellen Mechanismen von Render to texture im Bild bin und spezifische Probleme habe, die in einem bestimmten Projekt auftreten, das man sich am besten selber anschaut, wenn man kann und will.
Da ist eigentlich kein Interpretationsspielraum mehr.
Danke für den Hinweis auf die Tutorien, ich schaue mal rein. Meine ursprüngliche Vorlage war übrigens ein Dokument das direkt von ATI stammt.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Versteh mich bitte nicht falsch aber die Sache ist ja die Folgende. DU hast ein Problem und möchtest eine Lösung haben. WIR sind die jenigen die über das entsprechende Wissen verfügen und gerne bereit sind dieses Wissen mit dir zu teilen. Dazu zählt nun mal auch der Vorschlag von Alternativlösungen oder einfach nur irgendwelchen Ideen/Theorien.
Wir sind doch alle in der Lage anständige Konversationen zu führen. Und wenn ein Beitrag nicht genau deine Frage beantworte, dann wäre "Danke aber das ist nicht das was ich suche." wohl das Beste. Schließlich solltest du immer bedenken, dass wir uneigennützig unser Wissen und unsere Zeit für deine Probleme und die der anderen investieren. Und dazu gehört von deiner Seite nun mal auch, dass du dich wenigstens ein bisschen entsprechend verhältst. Sonst kann es ganz schnell passieren, dass du mit deinem Problem alleine da stehst. Denn ich denke du würdest auch niemandem helfen der nicht den nötigen Umgangston wahrt.
PS: Noch ein Herzliches Willkommen an Board.
PPS: Hast du gerade deinen letzten Beitrag bearbeitet? Wenn ja wäre es nett wenn du einen einen kleinen Hinweis hinterlässt, dass du etwas eingefügt hast oder was du geändert hast. Also in etwas "[edit] blah blah". Das macht es für uns einfacher, wenn sie sich Beiträge vor der Nase ändern. Sonst ist man noch der Meinung man bekommt Halus.
mal vorneweg: Wenn Du solchen Wert auf Umgangsformen und korrektes Verhalten in einem Forum legst, dann führe derartige Diskussionen per PM und nicht in einem Thread, in den Sie nicht hineingehören!
Lossy eX hat geschrieben:
WIR sind die jenigen die über das entsprechende Wissen verfügen ...
Davon habe ich bis jetzt leider nichts gemerkt.
Lossy eX hat geschrieben:
Dazu zählt nun mal auch der Vorschlag von Alternativlösungen oder einfach nur irgendwelchen Ideen/Theorien.
Nein: Klare Frage -> klare Antwort!
wenn sich hier jemand nicht an Konversationsregeln gehalten hat, dann seid das Ihr zwei, also spare Dir die Belehrungen. Meine Antwort an Flash war freundlich und zweckgerichtet, ditto die an Dich.
Wenn Ihr weder in der Lage seid, wirklich zielgerichtet zu helfen, noch entsprechende Hinweise anzunehmen, dann bleibt einfach weg, denn in diesem Fall vergeudet Ihr nur Eure Zeit, auch wenn es unentgeltlich ist.
Ich bin über 40, IT-Profi (allerdings nicht Schwerpunkt 3D-Grafik), und habe bestimmt ein paar 10.000 Posts in diversen Foren gesammelt. (Das nicht um mich zu produzieren, sondern damit Du meinen Erfahrungshorizont besser einschätzen kannst). Da kann ich es nicht brauchen, wenn ich auf eine klare, gezielte Anfrage eine unpassende Antwort bekomme und mir dann noch Beschwerden anhören muss, ich hätte jemanden auf die (überempfindlichen) Zehen getreten.
Ich mache auch nicht wegen jeder Änderung an einem Post ein 'Edit', wenn die Änderung fast direkt nach Post-Erstellung erfolgt ist.
Also seid so gut, überlass diesen Thread denjenigen, die mir mit exakt meinem Problem weiterhelfen können und wollen, und weder unerwünschte Tips geben noch unpassende Moralpredigten halten.
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Zitat:
Also seid so gut, überlass diesen Thread denjenigen, die mir mit exakt meinem Problem weiterhelfen können und wollen, und weder unerwünschte Tips geben noch unpassende Moralpredigten halten.
Also.... Ich glaube kaum, nach deinem letztem Beitrag, dass jemand überhaupt versuchen will (keine Lust?), dir weiterzuhelfen.
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Bitte entschuldige vielmalst, wenn ich durch meine unqualifizierten Beiträge deine so kostbare Zeit vergeudet habe und weiterhin vergeuden werde. Es mag durchaus sein, dass ich da ein wenig empfindlich drauf reagiere aber solch eine Antivorschlagshaltung ist mir bisher noch nicht unter gekommen. Da du selber noch nicht so viel mit dem 3D-Gebiet zu tun hattest, kann ich solch eine Haltung überhaupt nicht verstehen und nachvollziehen!
Zitat:
Davon habe ich bis jetzt leider nichts gemerkt.
Ich meinte damit nicht speziell uns beide sondern die gesammte Community.
Zitat:
Nein: Klare Frage -> klare Antwort!
Zitat:
Bitte nur Beiträge, die tatsächlich dazu beitragen könnten, dass ich die Sache mit Render to texture in den Griff kriege.
Das wiederspricht sich doch. Wie sollen wir das denn bitte schön anstellen, wenn du NUR konkreten Lösungen haben möchtest! Wir kenne dein Projekt nicht. Wir wissen lediglich durch deine recht kurze Beschreibung was du machst und was nicht so ganz geht. Wenn du nur eine 100%tig konkrete Antwort haben möchtest aber nicht bereit bist dir Vorschläge oder Ideen anzuhören, dann können wir dir leider nicht helfen. Denn ich für meinen Teil habe gerade keine Glaskugel zur Hand hellseherischen Fähigkeiten habe ich auch nicht entwickelt. Anderenfalls können wir dich nur mit Randinformationen (Siehe Tutorial) versorgen. Alles andere wäre sehr ungewöhnlich. Und das solltest du als erfahrener IT-Profi selber am Besten wissen.
Was ich vorhin noch vergessen hatte. Auf delphigl.de befindet sich unter OpenGL ganz unten in der Liste ein Beispielcode der ebenfalls mit glCopyTexImage arbeitet.
PS: Ein Bild, worum ich dich gebeten habe, kam bisher auch nicht.
Das wiederspricht sich doch. Wie sollen wir das denn bitte schön anstellen, wenn du NUR konkreten Lösungen haben möchtest! Wir kenne dein Projekt nicht. Wir wissen lediglich durch deine recht kurze Beschreibung was du machst und was nicht so ganz geht. Wenn du nur eine 100%tig konkrete Antwort haben möchtest aber nicht bereit bist dir Vorschläge oder Ideen anzuhören, dann können wir dir leider nicht helfen. Denn ich für meinen Teil habe gerade keine Glaskugel zur Hand hellseherischen Fähigkeiten habe ich auch nicht entwickelt. Anderenfalls können wir dich nur mit Randinformationen (Siehe Tutorial) versorgen. Alles andere wäre sehr ungewöhnlich. Und das solltest du als erfahrener IT-Profi selber am Besten wissen.
Was ich vorhin noch vergessen hatte. Auf delphigl.de befindet sich unter OpenGL ganz unten in der Liste ein Beispielcode der ebenfalls mit glCopyTexImage arbeitet.
PS: Ein Bild, worum ich dich gebeten habe, kam bisher auch nicht.
Ich habe nicht nur die Fehlersymptome genau geschildert, sondern auch darauf hingewiesen, dass ich die Prinzipien verstanden habe, die Umgebung in der der Fehler auftritt aber komplex ist. Ergo habe ich jemanden gesucht, der bereit ist, sich mit meiner Hilfe durch dieses Projekt zu wühlen und zu schauen, wo genau ich einen Fehler gemacht habe.Das steht alles in meinem ersten Post, und impliziert dass ich Detail-Infos gebe, sobald sich jemand dazu bereitfindet. Wer das tut, dem stellen sich die Deine Fragen gar nicht mehr, und der braucht auch keine Glaskugel!
Damit hat sich Deine zitierte Antwort in vollem Umfang erledigt und es bleibt, dass Du meinen 1. Post offensichtlich gar nicht richtig verstanden hast.
Ein Bild wirst Du sehen, sobald Du die Applikation installiert und übersetzt hast und laufen lässt (alles gerne mit meiner Unterstützung).
Ich schlage vor, Du durchdenkst weitere Antworten angesichts meiner nun mehrfach gegebenen Informationen gründlich.
Mir ist übrigens bewusst, dass meine Haltung auf Euch arrogant wirkt. Das liegt aber daran, dass Euer Verhalten für mich unkonstruktiv ist, und dass Ihr das entsprechende Feedback nicht gerne hört. Besonders der Vorschlag von Flash ist in technischer Hinsicht unqualifiziert, denn wenn ich aus Performance-Gründen schon von copy texture auf render to texture umsteigen will, dann will ich doch wohl ganz bestimmt nicht mit ReadPixels anfangen!
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Zitat:
Ich schlage vor, Du durchdenkst weitere Antworten angesichts meiner nun mehrfach gegebenen Informationen gründlich.
Schon passiert.
Aber auch bei Feedback kommt es immer darauf an wie es rüberkommt. Und das kam nicht sonderlich positiv rüber. Aber genau das sollte auch dann möglich sein wenn eine Antwort nicht genau zu dem passt was du haben möchtest.
Ich kann mich irren. Aber deinen ersten Beitrag habe ich so nicht verstanden. Das klang für mich nicht so als ob du jemanden sucht der für dich dein Projekt programmiert. Aber da du in fast all deinen Beiträgen nachträglich etwas verändert hast lasse ich das einfach mal so im Raum stehen, da ich dir weder etwas unterstellen möchte noch ich mir irgendeiner Schuld bewusst bin. Ich denke mal es im interesse aller beteiligten, wenn wir diese Diskussion lassen, jeder denkt sich seinen Teil und suchen eine Lösung für deine OpenGL Probleme.
Wo wir gerade beim nächsten Problem sind. Ich denke nicht, dass du hier jemanden finden wirst, der sich freiwillig ein größeres Projekt schnappt und Fehler beseitigt oer Features einbaut. Vor allem, da dein Projekt in C++ geschrieben ist und es sich hier um eine DELPHI Community handelt. Aus genau diesem Grund wirst du wohl oder übel selber Hand anlegen müssen. Da ich mal nicht davon ausgehe, dass sich hier viele C++er (kenne so spontan nur 2) rumtreiben und die wenn dann auch alles andere als Zeit haben werden. Und so leid es mir tut aber da wirst du das Problem hier breit im Forum diskutieren müssen. Dann wirst du auch um ein Bild und Code posten nicht herum kommen. Vor allem sieh es mal so, dann kümmert sich nicht nur einer sondern gleich mehrere um dein Problem. Da hier viele nun mal ihr eigenes Spezialgebiet haben ist das durchaus nur vorteilhafter als wenn sich einer da ran setzen würde.
ich find nur, das du dich nicht über unproduktivität aufregen solltest, weil damit bist du selbst auch nur unproduktiv :)
das kostet zeit, die du deinem ziel ja nicht näher kommst. und ich find dich nicht arrogant, ich verstehe deine einstellung ... *gg*
die wern wissen wie es schnell geht, die brauchen das ja zum arbeiten ... *g*
falls sich wer nicht auskennt: bei gpgpu berechnet die GPU Daten und das Ergebniss kann zB mittels RenderToTexture fuer einen erneuten Rechenvorgang
wieder an die Shader weitergegeben werden.
ich les mir das jetzt auf jeden fall weiter durch, das is interessant.
sollte sich dein problem nicht lösen, schau ich beizeiten im gems2 nach... da is ein großer teil ueber gpgpu... ich hab nur grad keinen schimmer,
wo das buch ist.
<edit>
oh, bezüglich lösungsvorschlag. DAS ist für mich ein Lösungsvorschlag, weil ich niemandem das selbst-denken und lernen abnehmen will.
</edit>
Ich editiere meine Posts solange, bis ich damit zufrieden bin. Das kann so ca. 10 Minuten dauern.
Dass es sich hier um eine Delphi-Community handelt, habe ich gesehen. Einige Tutorien und Programmfragmente scheinen aber in C programmiert, deshalb habe ich trotzdem mal nachgefragt.
Dass ich jemanden suche, der für mich ein Programm codiert oder neue Features einbaut, ist auch wieder so eine saublöde Unterstellung und hat mit dem was ich tue und was ich gepostet habe nicht viel zu tun. Du hättest mal auf den Descent-Link in meiner Signatur klicken sollen, dann hättest Du vielleicht mehr verstanden.
So ein Theater wie das hier erlebt man wirklich nur in deutschen Foren:
Man stellt eine klar formulierte Frage.
Dann bekommt man Antworten, die überhaupt nicht passen.
Es stellt sich heraus, dass die Frage nicht gründlich gelesen und verstanden wurde.
Zum Schluss kriegt man noch Flak, weil man auf diese Art "Hilfe" (die keine ist, sie ist Zeitverschwendung) keinen Wert legt und das auch sagt.
Natürlich habt Ihr hier alles richtig gemacht, was denn sonst.
Ich bin immer wieder erstaunt, wie man für etwas, das nicht erbeten wurde und nichts taugt, noch Dankbarkeit verlangt, und sich echauffiert, wenn man stattdessen gesagt kriegt, was Sache ist.
Dankbar wäre ich für fundierte Tips und durchdachte Nachfragen gewesen, auf die ich auch hätte informativ antworten können.
Lasst man gut sein, Jungs, ich sehe mich woanders um.
EDIT:
Akira hat geschrieben:
karx11erx
ich versteh dich *g* vollkommen.
tatsächlich?!
Akira hat geschrieben:
ich find nur, das du dich nicht über unproduktivität aufregen solltest, weil damit bist du selbst auch nur unproduktiv das kostet zeit, die du deinem ziel ja nicht näher kommst. und ich find dich nicht arrogant, ich verstehe deine einstellung ... *gg*
Das stimmt, aber bei dem einen oder anderen klingelts doch mal.
die wern wissen wie es schnell geht, die brauchen das ja zum arbeiten ... *g*
falls sich wer nicht auskennt: bei gpgpu berechnet die GPU Daten und das Ergebniss kann zB mittels RenderToTexture fuer einen erneuten Rechenvorgang wieder an die Shader weitergegeben werden.
ich les mir das jetzt auf jeden fall weiter durch, das is interessant.
sollte sich dein problem nicht lösen, schau ich beizeiten im gems2 nach... da is ein großer teil ueber gpgpu... ich hab nur grad keinen schimmer, wo das buch ist.
<edit> oh, bezüglich lösungsvorschlag. DAS ist für mich ein Lösungsvorschlag, weil ich niemandem das selbst-denken und lernen abnehmen will. </edit>
Danke für den Tip. Bin ich auch schon drübergestolpert. Aber erstmal will ich render to texture zum fliegen bringen.
Registriert: Mi Jul 17, 2002 12:07 Beiträge: 976 Wohnort: Tübingen
Bin grad erst heimgekommen und dann liest man nach einem harten Schultag sowas! Ich hätte dir ehrlich gesagt schon helfen können, aber da du unsere Arbeitsweise - also auch mal Alternativen oder anderweitige Vorschläge aufzuzählen - nicht zu akzeptieren scheinst (du könntest ja auch manche Posts einfach ignorieren!), ist mir die Lust dazu vergangen. Leute wie Flash und Lossy haben sich sehr um unsere Community verdient gemacht und gerade Flash ist als Querdenker bekannt, der gerne mal ungewöhnliche/neue Ideen hat. Solche Leute (denen man trotz ihres "geringen" Alters auch einige Kompetenz zutrauen kann) so wie du zu behandeln wiederspricht meinem Bild von guter Zusammenarbeit.
Was wäre jetzt gewesen, wenn du mit ReadPixels arbeiten würdest und Flash dir Render to Texture empfohlen hätte? So kann man doch nie neue Techniken kennenlernen, wenn man gleich alles vorn vorneherein zurückweist.
_________________ "Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0." - Hal Faber Meine Homepage: http://laboda.delphigl.com
Wenn Du hier für 2 Cent Hirn investiert hättest, wäre Dir klar geworden, dass der Umkehrschluss falsch ist, denn 1. ist render to texture schneller als ReadPixels und somit vorzuziehen, und 2. kann man sich denken, dass ich von copy texture nicht auf ReadPixels gehen wollen würde.
Für mich ist es eine Zumutung und Respektlosigkeit, auf eine klare Frage nutzlose Tips zu geben, mal so schnell schnell und nebenbei, nachdem man den Post bestenfalls überflogen hat.
Sowas würde mir nie einfallen, und soviel zu "Zusammenarbeit" und "gutes Benehmen". Zu beidem gehört erstmal, dass man zuhört, und es hat nicht unbedingt mit dem Alter zu tun.
Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.