Bei folgen Code wird ein Dreieck in eine Textur gerendert. Welche auch funktioniert. Da ich ich mit glViewport die Koordinaten halbiere, erscheint das Dreieck in einer Ecke einer Würfelfläche.
Code:
procedure TForm1.RenderScene;
begin
// Dreieck auf Textur rendern
glClearColor(0.0,1.0,0.0,1.0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
Bei folgenden Code kommen 2 Dreiecke auf der Fläche, aber leider flackert die Textur zwischendurch. Was noch komisch ist, wieso muss ich ein '-' eingeben ?
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
mathias hat geschrieben:
Bei folgenden Code kommen 2 Dreiecke auf der Fläche, aber leider flackert die Textur zwischendurch. Was noch komisch ist, wieso muss ich ein '-' eingeben ?
glCopyTexImage2D kopiert einen Bereich aus deinen READ_BUFFER und erzeugt daraus neue Texturdaten fuer deine gebundene Textur. Das siehst du daran, das du zum Beispiel deine Textur groesser oder kleiner machen kannst. Es ist in diesen Sinne also nichts anderes als glTexImage2D. Nur das dein Zeiger eben anders ist.
Das Lazarus-Icon ist der alte Inhalt der Textur, das Schiff ist der neue Inhalt, der gerendert wird. Das Schiff ist ein Rechteck mit einer Textur, welche ich als Background benutze.
Das komische dabei, wen ich den Würfel angucke, je näher die Pixel sind, desto deutlicher wird da Schiff. Wen ich alternativ des Lazarus-Zeichens, eine komplett weisse Fläche mache, sieht das ganze wie im Nebel aus.
Was noch interessant ist, wen ich das Fenster verkleinere, dann verschwindet das Schiff ganz.
Ein Grafik-Bug kann das nicht sein, da auf meinem 2. PC mit Linux der gleiche Fehler auftritt.
Code:
procedure THauptForm.Timer1Timer(Sender:TObject);
const
TexWidth:integer=1024;
TexHeight:integer=1024;
begin
glClearColor(1.0,1.0,0.0,1.0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Benutzt du Mipmapping? Wenn ja, dann hängen evtl. noch die Mipmaps der alten Textur im VRAM, weil keine neuen erzeugt wurden. Das würde den Übergang erklären, weil die GPU von einer auf die nächste Mipmap-Stufe fadet.
Mitglieder in diesem Forum: 0 Mitglieder und 36 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.