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

Aktuelle Zeit: Fr Jul 18, 2025 08:43

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bereich dynamisch in Textur rendern?
BeitragVerfasst: Sa Mai 10, 2008 00:10 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Hallo Leute!

Ich hab mir mal das Tutorial von Lord Horazont angeschaut und wollte mal gucken, ob ich die Technik in meinen Code "portieren" kann. Ich scheitere leider bereits am "RenderToTexture".
Mich interessiert vorerst nur die Refraktionstextur, mit der würde ich gerne ein wenig spielen. Wenn ich nun versuche in die Textur zu rendern, dann wird immer das gesamte Sichtfeld hineingerendert. Ich möchte ja aber nur den Teil unter der Wasseroberfläche rendern, denn man gerade sieht. Das geschieht doch auch im Tutorial oder?

Mein Codeauschnitt hierfür:
Code:
  1.  
  2.   glMatrixMode(GL_MODELVIEW);
  3.   glPushMatrix;
  4.  
  5.   glViewport(0, 0, WaterTexSize, WaterTexSize);
  6.  
  7.   RenderEnvironment;
  8.  
  9.   glBindTexture(GL_TEXTURE_2D, Refract);
  10.   glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, WaterTexSize, WaterTexSize);
  11.   glBindTexture(GL_TEXTURE_2D, 0);
  12.  
  13.   glClear(GL_DEPTH_BUFFER_BIT or GL_COLOR_BUFFER_BIT);
  14.  
  15.   glViewport(0, 0, RenderContext.Width, RenderContext.Height);
  16.  
  17.   glMatrixMode(GL_MODELVIEW);
  18.   glPopMatrix;


Die Prozedur RenderEnvironment rendert die gesamte Umgebung aus der Sicht der Kamera - also wie sie auch normalerweise gerendert wird.
Das obiges nicht richtig sein kann, ist mir irgendwie schon bewusst :)
Nur weiß ich jetzt gar nicht, wie das im Tutorial überhaupt funktionieren kann. Wäre nett, wenn mir jemand erklären könnte, wie ich den genannten Effekt hinbekomme.

Viele Grüße!

Rüdiger


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 10, 2008 10:30 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Du hast die Clipping-Planes vergessen. Du musst eine Clipping Plane auf höhe der Wasseroberfläche einrichten, das habe ich auch ins Tut geschrieben (der Code findet sich in der DoRenderPass-Funktion über dem eigentlichen RenderToTexture-Code).

Gruß Lord Horazont

_________________
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:
BeitragVerfasst: Sa Mai 10, 2008 11:04 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
Danke für die Antwort.

Wie funktioniert das denn mit den Clipping Planes? Ich hatte mir den Wiki-Artikel dazu schon durchgelesen, aber da verstehe ich doch recht wenig, wie was wo geschnitten wird :)
Wie hieße denn z.B. die gesuchte Clippingplane für das Wasser, wenn y statt z als Höhe gibt?

Viele Grüße,
Rüdiger


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Mai 10, 2008 11:18 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Da sollte es reichen, das -1 an zweite Stelle anstatt dritte zu setzen. Genau erklären kann ich dir die Funktion der ClipPlanes auch nicht, ich bin ganz froh, dass sie bei mir Funktionieren.

Gruß Lord Horazont

_________________
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  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot] und 14 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]