PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : jOGL - nur Software Rendering?


Marscel
2008-12-17, 17:45:53
Ich habe hier mehrere Java-Anwendungen, die setzen auf jOGL auf (Windows XP, Nvidia Geforce 6600GT, Java 1.6).

Die Sache ist, bei ziemlich simplen Anwendungen mit wenigen Polygonen (etwa wie "glxgears") ist die Performance OK (mehrere Hundert fps), die CPU Auslastung allerdings stets 99%.

Bei komplexeren Sachen, ich hab hier etwa 140.000 Punkte, die sukzessive über primitve-Linien verbunden sind, ist die Auslastung der CPU natürlich ebenfalls 99%, die Framerate liegt bei einer recht geringen Auflösung schon nur bei 1-3 fps.

Jetzt frage ich, wird das Rendering für jOGL softwareseitig getan, ohne Mitwirkung der Grafikkarte oder liegt eine Programmschwäche vor?

Gast
2008-12-17, 17:50:24
JOGL bietet lediglich Bindings für das OpenGL Interface. Somit wird auch die Grafikkarte beim Rendern genutzt.

Trap
2008-12-17, 17:54:30
Benutzt du Displaylists, Arrays, VBAs oder sowas? 100k glVertex(...) gibt immer 1 fps.

Marscel
2008-12-17, 17:58:18
Über das Processing-Framework füttere ich die Anwendungen mit einer ganzen Menge (ja, ein Array von 140k Elementen) vertex(x,y,z)-Anweisungen, also wohl glVertex().

Problem ist, ich hab mit 3D Programmierung nicht so viel zu tun. Ich brauch nur innerhalb eines Monats ein etwas animiertes Objekt, das auf einer Heightmap aufbaut (die ist so 700x200 Pixel groß).
Was ist denn prinzipiell besser geeignet für sowas, dass es in akzeptabler Geschwindigkeit läuft?

Gast
2008-12-17, 18:02:10
Es gibt sogenannten Interleaved Arrays bzw. Compiled Vertex Arrays, welche einen Performanceboost von ~60% bewirken (im Durchschnitt).

Im RedBook steht dazu einiges drin:
http://glprogramming.com/red/

Marscel
2008-12-17, 18:27:23
Im RedBook steht dazu einiges drin:
http://glprogramming.com/red/

Gut zu wissen, muss ich aufs native jOGL-Interface zugreifen, sollte ich hinkriegen.

Also wenn wirklich die Anzahl der Vertex() aufrufe das Problem ist, scheint es mir gar nicht so abwägig, lieber die Abtastung von 1px auf 3px oder so zu senken und das etwas mit der Farbtextur zu kompensieren.

Ich guck mal, was schneller besser rennt.