Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Apr 24, 2024 04:30

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: So Nov 10, 2013 17:04 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
EWeiss hat geschrieben:
Bin mit meinem Latein am ende.
Offenbar nicht nur mit deinem Latein. Das Deutsch in deinem Post ist bezüglich Satzbau und Rechtschreibung auch am Ende. Sorry, für diese zynische Bemerkung, aber ich steig wirklich nicht durch.

Was ich verstanden habe:
Du willst eine ProgressBar mit OpenGL rendern, wozu du texturierte Quads mit zwei verschiedenen Texturen verwendest. Leider wird dabei unter bestimmten Umständen die falsche Textur zum Rendern verwendet??
EWeiss hat geschrieben:
Es wird also das glTexSubImage2D komplett in der Texture Position (bzw. in der zuletzt geladenen Texture) angezeigt.
Hä? Ich versteh gar nix. Ich weiß auch nicht, was eine "Texture Position" sein soll.

PS:
Ich weiß nicht wofür du die CriticalSections verwendest, nur für den Fall dass du in zwei Threads parallel renderst: Lass es sein.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: So Nov 10, 2013 17:46 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Ich konnte leider auch nicht ganz Verstehen was du jetzt wissen willst.
Du drückst dich für mich unpräzise und unverständlich aus.

Zitat:
Es wird also das glTexSubImage2D komplett in der Texture für die Position

"glTexSubImage2D" ist ein OpenGL Aufruf. Wie kann ein OpenGL-Aufruf in einer Textur sichtbar werden?
Ich dichte jetzt mal den Satz um wie ich vermute das ergemeint ist:
Die mit glTexSubImage2D an OpenGL weitergegebene Teiltexturedaten an der entsprechenden angegeben Position sehen korrekt aus.

Zitat:
Dann spare dir dein Kommentar darüber.

Es ist durchaus erlaubt, in Foren konstruktive Kriktik an der Methode des Themenerstellers zu üben. Ich vermute mal die Sektion gibt es einfach, weil die Texturdaten aus einen anderen parallelen Thread verändert werden können. Um auch selber noch ein bisschen Kritik daran zu üben... Wenn du OpenGL(Platformunabhänig) verwendest, ist es irgendwie sinnfrei gleichzeitig dazu die WinAPI(Wie der Name schon andeutet, Windowsspezifisch) zu verwenden.

Wenn du noch eine Antwort auf deine ursprüngliche Frage willst, die ich leider auch noch nicht ganz verstanden habe, solltest du nochmal richtig erklären was jetzt eigentlich dein Problem ist, ein Bild anhängen wie es momentan aussieht und wie es aussehen sollte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: So Nov 10, 2013 17:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Nur um das klarzustellen: Meine Kritik und mein Postskriptum hatten nicht zum Ziel, hier Streit anzuzetteln, sondern dir zu helfen.

EWeiss hat geschrieben:
Es wird also das glTexSubImage2D komplett in der Texture für die Position (bzw. in der zuletzt geladenen Texture) angezeigt.
OK. Ich habe jetzt verstanden, dass eine Textur und nicht die Position einer Textur gemeint war. Doch wie kann eine Funktion (glTexSubImage2D) in einer Textur angezeigt werden? Das ist ja immer noch mindestens unpräzise. Ich glaube jetzt aber trotzdem zu verstehen, was du meintest.

Hast du mal probiert, vor dem Aufruf von glTexSubImage2D glBindTexture mit der korrekten Zieltextur als Parameter aufzurufen?

____
Edit: Falls du nochmal das Problem erklären möchtest, verwende doch bitte einheitliche Namen für die Texturen - im Quelltext die gleichen wie im Fließtext (BarTexture und PeaksTexture). Das vermeidet Verwirrung.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: So Nov 10, 2013 19:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Ich sehe gerade, dass du die Multithreading-Diskussion ja neulich schon hattest. Da hat TAK2004 ja eigentlich alles wichtige gesagt.

EWeiss hat geschrieben:
Die Texture wird über einen buffer generiert wie soll ich die mit glBindTexture einbinden?

Code:
  1. glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, StretchWidth, StretchHeight,
  2.                 GL_BGRA, GL_UNSIGNED_BYTE, VisInfo^.VisBuf);

Dein Problem war doch, dass glTexSubImage2D die falsche Textur ändert? glTexSubImage2D wirkt sich immer auf die aktuell gebundene Textur aus. Deswegen solltest du sicherstellen, dass du die Textur, die du ändern willst, vorher (notfalls direkt vorher) mit glBindTexture bindest. Du bindest sie doch auch an anderer Stelle im Code, warum sollte das also nicht gehen. Oder habe ich dich wieder falsch verstanden?

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: So Nov 10, 2013 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
EWeiss hat geschrieben:
Nein meine Problem ist das die Texture von glTexSubImage2D in der zuletzt geladenen Texture gerendert wird.
Und genau diesen Satz verstehe ich nicht.

"die Texture von glTexSubImage2D" = die Textur, die beim Aufruf von glTexSubImage2D gebunden war und somit geändert wurde?
"...in der zuletzt geladenen Texture gerendert wird" -> Eine Textur wird also in eine andere (die zuletze geladene) Textur gerendert?? Wie soll das gehen? Meinst du, ein Quad mit dieser Textur wird in eine andere Textur gerendert?

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: So Nov 10, 2013 20:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Du treibst mich hier noch in die Verzweiflung...
EWeiss hat geschrieben:
Die Texture für glTexSubImage2D kann ja nicht gebunden werden da diese sich in einem Buffer befindet.. Richtig?

"Die Texture für glTexSubImage2D" = "die Texture von glTexSubImage2D", wie oben?
"da diese sich in einem Buffer befindet" = da sie der Farbpuffer des FBOs ist, in das gerade gerendert wird?
Wenn der Satz so gemeint war, würde ich zustimmen.

Beim Rest verstehe ich den Zusammenhang leider gar nicht. Bitte erklär doch mal dein Problem Schritt für Schritt, indem du allen beteiligten Texturen Namen gibst. *seufz* Und bitte lese deinen Text nochmal gründlich durch bevor du ihn abschickst. Dafür gibt es die Vorschau-Funktion. Ich will mich ja gar nicht wie ein Compiler über jeden Vertipper beschweren, aber so viele Fehler pro Satz sind doch wirklich unnötig.

Naja, vielleicht findet sich ja auch noch ein anderes Forenmitglied, das dich besser versteht.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Mi Nov 13, 2013 12:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Zuerst @EWeiss eine Entschuldigung vom Moderatorenteam, wir haben den Thread irgendwie nicht auf dem Schirm gehabt, sonst hätte es hier früher eine Reaktion gegeben.

Dann @glAwesome: Dein Verhalten ist inakzeptabel. Diesen Umgangston wollen wir nicht auf DelphiGL sehen. Sollte es erneut dazu kommen, werden wir weitere Maßnahmen, die auch einen permanenten Ausschluss aus der Community beinhalten können, ergreifen. Sachliche, ruhige, nicht überspitzte Kritik mit klaren Formulierungen, an welcher Stelle mehr erklärung erforderlich ist, ist angebracht, aber definitiv nicht dieser Stil.

Weitere Diskussion ist hier glaube ich nicht erforderlich. Übrigens haben wir für solche Fälle auch einen „Beiträge melden” Button. Da bekommen alle Moderatoren eine E-Mail und es wird sich schnell um das Problem gekümmert. Der ist nicht nur für Spam da.

viele Grüße,
Horazont (und andere)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Do Nov 14, 2013 16:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Ach nur keine falsche Scheu. Ich z.B. hab das erst gelesen als "hat sich erledigt" schon stand :)

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Do Nov 14, 2013 18:09 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Tut mir leid, dass ich dich und du mich nicht verstanden ha(be/st). Ich verspreche dir aber, dass dies mein letzter Post in diesem Thread sein wird. Du kannst also gerne ungestört dein Problem hier schildern. :) Wie ich schon schrieb:
glAwesome hat geschrieben:
vielleicht findet sich ja auch noch ein anderes Forenmitglied, das dich besser versteht.

Schade, dass du deine Beiträge in diesem Thread überschrieben hast. So kann dir natürlich auch niemand anderes helfen. Und scheinbar führt es zu merkwürdigen Reaktionen bei der Moderation, da diese nur die Hälfte der Diskussion sieht.
Aber schnell zurück zum Thema! Ab jetzt halte ich meine Klappe.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Fr Nov 15, 2013 09:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Da muesste sich man mal deine upload methode/n anschauen, klingt sehr danach als ob du hier etwas durcheinander gebracht hast.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Fr Nov 15, 2013 14:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Genau, dein Upload-Code wäre mal interessant. Mir scheints, als ob da ein glBindTexture-Aufruf vor dem glTexImage2D Aufruf fehlen könnte.

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Fr Nov 15, 2013 18:42 
Offline
DGL Member
Benutzeravatar

Registriert: So Sep 26, 2010 12:54
Beiträge: 238
Wohnort: wieder in Berlin
Programmiersprache: Englisch
Es fehlen viele "const"s und code wiederholt sich. Das viel mir nur beim drüberscrollen schon auf...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Fr Nov 15, 2013 19:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Hi wenn ich das jetzt richtig gelesen haben dann ist
function TBASSSoVis.LoadTexture(Filename: String; var Texture: GLuint; LoadFromRes: Boolean): Boolean;

der Wert den du brauchst. Das musst du immer binden bevor du auch nur daran denkst etwas mit der Textur zu machen. Am besten du machst immer wie bei Framebuffer und packst glBindTexture(0) mit rein wenn dein Code nix mehr mit Texturen macht.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Texture Problem
BeitragVerfasst: Fr Nov 15, 2013 19:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich bin mir nicht sicher, wo genau das Verständnisproblem liegt, daher werde ich einfach mal den gesamten nötigen Ablauf beschreiben.

Beim Start des Programms, also auf keinen Fall in der Renderschleife legst du für deine dynamische Textur einen „Namen“ an, mit glGenTextures. Danach legst du die Höhe und Breite sowie das Interne Format, die du dafür verwenden möchtest, fest:
Code:
  1. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA (* oder ein anderes *), width, height, 0, GL_RGBA8, nil);

Indem du nil übergibst, sagst du OpenGL, dass du derzeit keine Daten für die Textur hast, sondern die später per glTexSubImage2D nachliefern willst.

Beim aktualisieren der dynamischen Textur machst du dann folgendes: Binden des „Namens“. glTexSubImage2D. Rendern.

grüße.

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 14 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 39 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.118s | 17 Queries | GZIP : On ]