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

Aktuelle Zeit: Fr Jul 18, 2025 12:42

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Mai 18, 2006 15:40 
Offline
DGL Member

Registriert: So Mai 07, 2006 10:44
Beiträge: 4
Hallo ihr lieben Leute, ich habe ein Problem, mit dem ich einfach nicht weiterkomme.

Ich habe größtenteils die Anweisungen aus den Tutorials zu Texturen und Renderpasses benutzt, trotzdem funktioniert es nicht.
Ich hatte (als Einstieg) eigentlich nur vor, einige Szenen zu rendern und sie dann zusammen zu blenden. Aber schon eine einzige Szene will nicht wirklich. Ich hab hier mal die entscheidenden Stellen meines Progs rausgeschrieben:

var
pTexData: Pointer;
RedTexture: gluInt;

begin

//Entscheidendes aus dem SetupGL
glOrtho(-512,512,-384,384,0,1000);
glEnable(GL_TEXTURE_2D);

//Soeicherreservierung?
GetMem(pTexData, 1024*768*3);
glGenTextures(1, @RedTexture);
glBindTexture(GL_TEXTURE_2D, RedTexture);
glTexImage2D(GL_TEXTURE_2D, 0, 3, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, pTexData);
FreeMem(pTexData);

Render; // Meine Render-Funktion

glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, 1024, 768, 0);

glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(-512,-384,1);
glTexCoord2f(1,0);
glVertex3f(512,-384,1);
glTexCoord2f(1,1);
glVertex3f(512,384,1);
glTexCoord2f(0,1);
glVertex3f(-512,384,1);
glEnd;

glDisable(GL_TEXTURE_2D);
swapBuffers(DC);

Wo ist jetzt das Problem? Mir kommt die Speicherreservierung spanisch vor, aber ich habe sie so aus dem Tutorial. Außerdem überlege ich, ob ich das glEnable(GL_TEXTURE_2D); umstellen muss. Aber wie?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 18, 2006 17:01 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Zuersteinmal Hallo bei DGL. ;)

Geht denn die Szene an sich? Also wenn du nur renderst und nicht versuchst die Szene in eine Textur zu schreiben?

Wenn dem so ist, solltest du sicher stellen, dass du nicht in jedem Frame immer wieder Speicher reservierst. Du kannst die Textur die du dir einmal gebaut hast, ja immer wieder überschreiben. (Jedenfalls glaub ich das ;) )

Dein Orthomodus sieht seltsam aus. Normalerweise richtet man es so ein, dass 0,0 unten links in der Ecke ist (oder oben links, je nach geschmack). Das erleichtert es z.B. bei MouseClicks die Koordinaten bestimmten Elementen zuzuordnen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Mai 18, 2006 20:23 
Offline
DGL Member

Registriert: So Sep 26, 2004 05:57
Beiträge: 190
Wohnort: Linz
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, 1024, 768, 0);

Schaut schon mal sehr suspekt aus weil 768 nicht 2^x ist, was aber erforderlich ist.

Eine etwas konkretere Fehlerbeschreibung wäre aber wahrscheinlich nicht verkehrt ... also was willst du erreichen, wie sieht es bisher aus (ganz wichtig!) und dadurch auch was hast du noch nicht erreicht?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Mai 19, 2006 16:23 
Offline
DGL Member

Registriert: So Mai 07, 2006 10:44
Beiträge: 4
Die erwünschte Ausgabe ist erst mal nur 1:1 das, was die Prozedur Render ausgibt. Blenden mach ich danach. Die Ausgabe, die ich zur Zeit kriege, ist gar keine.
Die Prozedur Render funktioniert.

Im Moment ist mein PC (von dem aus ich nicht schreibe) nicht verfügbar, ich werde als nächstes die 768 ändern und die Speicherreservierung ins Init schreiben.

Der Orthomodus ist so gewollt. Ich muss da ein Koordinatensystem abbilden, das 0/0 in der Mitte hat.

Ist ansonsten alles theoretisch richtig?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jun 05, 2006 14:30 
Offline
DGL Member

Registriert: So Mai 07, 2006 10:44
Beiträge: 4
Merkwürdigerweise habe ich das ganze hingekriegt, indem ich vor dem Texturenrendering
die Zeile
glColor3f(1,1,1);
eingefügt habe. Scheint wohl eine Art Filtering zu sein, nur wieso, weiß ich nicht ;D


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.007s | 14 Queries | GZIP : On ]