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

Aktuelle Zeit: Fr Jul 18, 2025 23:19

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: 'Nachglühen' realisieren?
BeitragVerfasst: So Apr 29, 2007 17:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Hallo!

Ihr kennt doch den Effekt: Wenn man im dunkeln mit einer Taschenlampe (oder noch lustiger: mit nem Laserpointer) 'rumfuchtelt', sehen die Augen Streifen.

Wie kann man sowas möglichst einfach (shaderfrei) realisieren?

Irgendwie müsste man doch dafür den FrontBuffer mit dem neu gerenderten vermischen, richtig? Ich hab schon etwas mit glAccum rumprobiert, aber es war entweder alles schwarz oder alles weiß...

Irgendwelche Ideen, die für mich als einer der Shader nur vom Hörensagen kennt brauchbar wären?

Danke,
Martok

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 29, 2007 19:05 
Offline
Ernährungsberater
Benutzeravatar

Registriert: Sa Jan 01, 2005 17:11
Beiträge: 2068
Programmiersprache: C++
Motion Blur?

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 30, 2007 00:15 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Im Prinzip ja, aber.... ;)

Ich habe eine 'Projektionstafel' auf die ich mit einem 'Strahl' schieße. Dieser Algo ist zwar schön einfach, aber die Wand verdeckt alles was drunter passiert...

Ich hab mal ein Bild von oben gemacht, sonst hat man diese Perpektive nicht ;)

Werde ich wohl doch die Endpunkte der letzten n Strahlen speichern und dort Punkte anzeigen....


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 30, 2007 06:07 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
"Render to Texture" und dann kannste viel einfacher, solche effekte machen.
Auch ohne shader, wobei du mit Shader definitiv die besseren Ergebnisse erzielst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Apr 30, 2007 08:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Du solltest 2 renderpass nehmen, erster ist der laser und da nutzt du auch dem Buffer zum motion blur.
Der 2. Pass wird deine Wand mit dem geblendet mit dem ersten Pass.
So hast du deine Wand und die Lichtquellen Brennen sich halt ins Auge ein.

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 01, 2007 00:35 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
TAK2004 hat geschrieben:
Du solltest 2 renderpass nehmen, erster ist der laser und da nutzt du auch dem Buffer zum motion blur.
Der 2. Pass wird deine Wand mit dem geblendet mit dem ersten Pass.
So hast du deine Wand und die Lichtquellen Brennen sich halt ins Auge ein.

Stimmt. Sieht sogar ganz schick aus.
Dann hab ich aber festgestellt, dass sich doch gar nicht der Strahl einbrennt, sondern der Punkt am Ende. Also alles umgebaut, Ringpuffer für die letzten Punkte und los gehts ;) Sieht so aus wie ich will, jetzt fehlt nur noch der Rest...

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 01, 2007 17:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Faszinierend. *Augenbraue hochzieht*

Warum kann OpenGL hier ein LineStipple machen, obwohl ich es explizit deaktiviert habe?

Falls einer den Code braucht:
(Es wird der Ringpuffer Lastrays[] gezeichnet. InvalidVector ist (NAN,NAN,NAN,NAN) und heißt 'Laser war aus'.Tritt aber im Beispiel nicht auf. )
Code:
  1.   procedure RenderOld;
  2.   var
  3.     i, rc: integer;
  4.     procedure RayEnd(v: TVector);
  5.     begin
  6.       inc(rc);
  7.       if VectorEquals(v,InvalidVector) then begin
  8.         glEnd;
  9.         glBegin(GL_LINES);
  10.       end else begin
  11.         glColor4f(1, 0, 0, 1 / rc);
  12.         glVertex3fv(@v);
  13.       end;
  14.     end;
  15.  
  16.   begin
  17.     rc := 0;
  18.     glPushMatrix;
  19.       Cam;
  20.       glBlendFunc(GL_SRC_ALPHA, GL_ONE);
  21.       glEnable(GL_BLEND);
  22.       glDisable(GL_LINE_STIPPLE);  //als Test, ändert aber nix
  23.       glEnable(GL_LINE_SMOOTH);
  24.       glLineWidth(5);
  25.         glBegin(GL_LINES);
  26.           for i := raypos - 1 downto low(lastrays) do
  27.             RayEnd(lastRays[i]);
  28.           for i := High(lastrays) downto raypos do
  29.             RayEnd(lastRays[i]);
  30.         glEnd;
  31.       glLineWidth(1);
  32.       glDisable(GL_LINE_SMOOTH);
  33.       glDisable(GL_BLEND);
  34.     glPopMatrix;
  35.   end;


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
Gott sei Dank bin ich Atheist!


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


Wer ist online?

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