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

Aktuelle Zeit: So Jun 09, 2024 08:25

Foren-Übersicht » English » English Programming Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Mai 24, 2009 22:24 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 01, 2003 18:59
Beiträge: 887
Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
I stumbled on some old opengl example code: http://www.opengl.org/resources/code/sa ... ed/field.c
That uses to accumulation buffer to create a depth of field effect.
Unfortunately that uses glut. After removing glut specific code an putting it inside the latest sulaco template: http://www.sulaco.co.za/opengl/template1.5.zip
i got something running. But inside the virtualbox envirionment i only get 1 fps. (no suprise).
But more anoyingly is that i get 260fps on real hardware but the screen flickers terribly like every x drawn frame is competely black.
I attched my converted code.
Who can help me to get it stable/work?
Thanks in advance.

Also what videocards are capeable of using this effect at a reasoneable fps (obviously virtual box does not count :-) )


Dateianhänge:
Dateikommentar: depth of field with accumulation buffer example
field.pas [24.97 KiB]
298-mal heruntergeladen

_________________
http://3das.noeska.com - create adventure games without programming
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Mai 25, 2009 14:58 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Ich hab mir das Programm mal angeschaut. Bei mir flackert allerdings nichts.
Trotzdem fehlt in der Schleife, die das Bild immer wieder ein bischen versetzt, zeichnet, denke ich, mindestens ein "glClear(GL_DEPTH_BUFFER_BIT)"
Zum Vergleich hab ich mal 2 Screenshots angehängt.

Zur Performance kann ich wenig konkretes sagen. Ich denke das wiederholte Zeichnen (bei dir schon 36 mal) zerrt doch schon an der Füllrate. Sicherlich ist sie damit noch nicht ausgereizt. Hinzu kommt aber noch das Summieren im Akkumulationsbuffer. Ich denke das der komplette Inhalt kopiert werden muss, so wie bei "glCopyTexImage2D" und in der Hinsicht kann ich mir schon vorstellen, das solche Frameraten normal sind.

Edit: Ich gerade nochmal ein bischen experimentiert und es scheint wirklich so das der Akkumulationspuffer recht langsam ist. Verglichen mit Blending sogar sehr.
Das wäre vielleicht eine Alternative. Problematisch könnte es nur werden, wenn man Objekte in der Szene hat, die selbst schon Blending benutzen. Und da du dein Bild immer ein bischen weiter versetzt zeichnen musst, müsste man auch den z-Buffer "initialisieren".
Also sogesehn, hilft dir Blending vielleicht doch nicht...


Dateianhänge:
ohne.JPG
ohne.JPG [ 19.21 KiB | 2681-mal betrachtet ]
mit.JPG
mit.JPG [ 17.72 KiB | 2681-mal betrachtet ]
Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » English » English Programming Forum


Wer ist online?

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