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

Aktuelle Zeit: Mi Jul 16, 2025 19:26

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: GL_Points langsam?
BeitragVerfasst: Fr Feb 17, 2006 15:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
grüße,

momentan steh ich vor dem Problem, dass ich im Ortho Modus ziemlich viele Punkte malen muss.
wenn ich das aba mit gBegin(GL_POINTS) mach (800x600 px), komm ich auf ~20 fps.
und glDrawPixels versteh ich net wirklich (der will meine Arrays nich :() und weiß auch nich ob das den gewünschten Effekt hat/hätte

wie krieg ich das hin, dass es schneller geht?
ich mein selbst auf nem Canvas krieg ich ne höhere Leistung

schonma danke

mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 17, 2006 16:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 16, 2003 15:20
Beiträge: 198
Je nachdem, was die Punkte darstellen sollen, wieoft und wie sie sich ändern dürfte es evtl. schneller sein
über eine Textur zu gehen, aber das hängt wie gesagt davon ab, was du zeichnen möchtest.

_________________
Bevor du definierst, was etwas ist, versichere dich seiner Existenz.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 17, 2006 16:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Punkte sind nur ganz normale Primitive. So wie dreiecke. Und bei 800x600 hat deine Karte schon nen riesen Batzen arbeit vor sich. Es dürfte in jedem Falle schneller sein, wenn du dafür eine Textur benutzt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 17, 2006 16:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
und wie muss ich das dann machen? müsste ich die dann inne Textur render?

ich versuch jetzt nochmal nen anderen Ansatz, der mir zwar nich ganz soviel Freiheiten gibt, aber schneller sein sollte.
das mit den Punkten interessiert mich aber trotzdem ;)

mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 17, 2006 17:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
ok, hab jetzt einen anderen Ansatz
funktioniert sogar recht gut
muss ich mir aber das mit dem in die textur rendern angucken
(ich müsste immer in die gleiche Textur rendern, also immer nur "obendrauf", gibts da schon was sinnvolles?)

mfg
GSE

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 17, 2006 18:49 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
So etwas ähnliches hatten wir hier schon öfters.

Nim nen Speicherbereich 800x600x4 und Male deine Pixel rein. Transparente Pixel kannste über Alpha kontrollieren. Und das übergibst du an glTexImage2D bzw glTexSubImage2D. Als Target benutzt du GL_TEXTURE_RECTANGLE_ARB. Dann kannste das bis auf MipMaps problemlos nutzen und ist schnell.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 12:37 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
danke, funktioniert einwandfrei
zumindest fast ;) ne 800x600 Textur macht beim kopieren per glCopyTexImage2D Probleme (fps ~ 2) aber das kann ich verkraften

und dank dem Renderpass Tutorial von Phobeus ließ sich das sogar erstaunlich leicht umsetzen :)

wieder mal gemerkt, dass das ein tolles Forum is
krieg direkt wieder Lust wieder mehr mit OpenGL zu machen ^^

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 13:05 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Okay. Ich weiß zwar nicht wie du auf RenderToTexture kommst. Ich hatte den Clientseitigen Weg vorgeschlagen also ne Textur im Speicher zu erzeugen und die dann hochladen. Aber wenns funktioniert solls mir recht sein. ;-)

Zu der Geschwindigkeit. Ich denke mal du wirst auch mit GL_POINTS arbeiten, oder? Na ja. Dadurch wird es auch nicht wesentlich schneller. Wenn du Texturen kopieren willst solltest du darauf achten, dass 800x600 keine gültige Textur ist außer OpenGL 2.0 oder NPOT werden unterstützt. Dann solltest du aber MipMaps deaktivieren, da diese Probleme machen und Langsamer sind. Weil ehrlich gesagt finde ich 2 FPS ein bisschen extrem wenig.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 13:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
Zitat:
Okay. Ich weiß zwar nicht wie du auf RenderToTexture kommst. Ich hatte den Clientseitigen Weg vorgeschlagen also ne Textur im Speicher zu erzeugen und die dann hochladen. Aber wenns funktioniert solls mir recht sein.
nun ja, so kann ich gleich Kreise und Poylgone und solche Sachen malen ^^
außerdem müsste ich die Textur dann ja jedesmal neu im Speicher erzeugen bzw. zu OpenGL hochladen, oder?

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 19:04 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Chemnitz? Von der TU? Ich bin gerade dabei mich auf meine CompGrafik1 Prüfung vorzubereiten. Und da steht im Script, dass GL_POINTS von den verschiedenen Primitiven zusammen GL_POLYGON so ziemlich das langsamste is was geht.

Darf man fragen welchen anwendungsfall du genau hast? Linien kann man mit GL_LINES wesentlich effektiver machen als mit GL_POINTS. (glRasterPos gibts auch noch, aber ob das schnell ist !? -> DGL-Benchmark ;) )
Und Kreise kannst du mit wenigen Vertices und Linien dazwischen recht gut annähern. Also lieber finger weg von GL_POINTS.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 19:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 28, 2004 18:30
Beiträge: 25
Wohnort: Chemnitz
auf das mit der TU geh ich jetzt nich ein, zumals nich stimmt ;)

und mit Polygone meinte ich nich, dass ich die mit GL_POLYGON render, also
Zitat:
Und Kreise kannst du mit wenigen Vertices und Linien dazwischen recht gut annähern
das mach ich bereits

nun, der Anwendungsfall ist, nenn es ein malprogramm (auch wenns das nich ganz genau trifft)
ich hab nen Hintergrund und male dadrauf rum immer wieder und immer wieder drüber
hab das jetzt mit der textur gelöst und funzt einwandfrei
(ich hab lediglich eine Möglichkeit gesucht) das irgendwie darzustellen

_________________
In a world without walls and fences, who needs Windows or Gates?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 18, 2006 20:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ah. Okay. Bei einem Malprogramm ist es wohl mit RenderToTexture (PixelBuffer, PixelBufferObjects) besser. Bin davon ausgegangen, dass du so eine Art Videostreaming vor hast. Bei einem Malprogramm kommen ja nicht extrem viele Punkte auf einmal zu stande. Du könntest auch kleine Texturen auf nen Quad machen und dann da so ne Art Brushes wie bei GIMP etc.

Zum Optimieren gibt es glaube ich auch ne Methode die nur einen Teilbereich kopiert. Du musst ja nicht alles neu Kopieren, wenn sich nur ein Teil geändert hat. So zum Bandbreite sparen. ;-)

Wie oben erwähnt solltest du mal Pixelbuffer oder Pixelbufferobjects anschauen. Da kannst du mehr oder weniger auch direkt in die Textur rendern. Das wäre dann so wie wenn du in einen Buffer malst und den nicht löscht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 01:57 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich glaub im Redbook (ich erinnere mich gerade an die Zeit als wir versuchten das zu übersetzen... *schwelg* ;) ) war das Beispiel malprogram direkt erläutert (also zu mindest an manchen stellen als Beispiel herangezogen).

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 11:35 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wobei es darauf ankommt welches RedBook. Wenn es das frei verfügbare ist würde ich wohl eher davon Abstand halten. Das ist mittlerweile knapp 10 Jahre alt und so etwas von überholt. ;-) Da dürften wohl keine PixelBuffer geschweige denn PBOs vorhanden gewesen sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 19, 2006 17:05 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Tja...Rate mal welches wir übersetzen wollten ;)

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


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


Wer ist online?

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