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

Aktuelle Zeit: Di Jul 08, 2025 19:00

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



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Displayliste wird falsch gerendert
BeitragVerfasst: Mo Nov 14, 2011 17:24 
Offline
DGL Member

Registriert: Fr Nov 11, 2011 20:15
Beiträge: 8
Programmiersprache: Java
Hi,

ich versuche eine Displaylist zu erstellen. Wenn ich diese dann aber render, scheint ein Stück der Pyramide zu fehlen (links im Bild), und Normalen werden nicht verwendet.

GL_CULL_FACE ist aktiviert, daran liegt es aber nicht.

Erstellen der Displaylist aus den Buffern
Code:
  1.  
  2. public int buildDisplayList(GL2 gl){
  3.     int id = gl.glGenLists(1);
  4.    
  5.     gl.glNewList(id,GL2.GL_COMPILE);
  6.         gl.glBegin(GL2.GL_TRIANGLES);
  7.        
  8.             //gl.glVertex3fv(vertexBuffer); //zeigt garnichts an
  9.             int v = 0;
  10.             for (; v < numVertices; v++)
  11.                 gl.glVertex3f(vertexBuffer.get(), vertexBuffer.get(), vertexBuffer.get());
  12.            
  13.             if(useTexture)
  14.             for (v = 0; v < numVertices; v++)
  15.                 gl.glTexCoord2f(textureBuffer.get(), textureBuffer.get());
  16.            
  17.             if(useNormals)
  18.             for (v = 0; v < numVertices; v++)
  19.                 gl.glNormal3f(normalBuffer.get(), normalBuffer.get(), normalBuffer.get());
  20.            
  21.         gl.glEnd();
  22.     gl.glEndList();
  23.    
  24.     vertexBuffer.rewind();
  25.     if(useTexture)
  26.         textureBuffer.rewind();
  27.     if(useNormals)
  28.         normalBuffer.rewind();
  29.    
  30.     return id;
  31. }
  32.  


rendern
Code:
  1.  
  2. public void display(final GLAutoDrawable drawable) {
  3.  
  4.     GL2 gl = drawable.getGL().getGL2();
  5.     //...
  6.     gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, lightPositionBuffer);
  7.  
  8.     gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
  9.     gl.glLoadIdentity();
  10.    
  11.     gl.glEnable(GL2.GL_LIGHTING);
  12.    
  13.     gl.glCallList(blockList);
  14.     gl.glTranslatef(1, 0, 1);
  15.     gl.glCallList(pyramideList);
  16. }
  17.  


Wenn ich aber die Buffer mit glDrawArrays rendere, dann wird alles richtig angezeigt (rechts im Bild.)

Vielen Dank,

Felix


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


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Nov 14, 2011 17:36 
Offline
DGL Member

Registriert: Di Aug 09, 2011 07:33
Beiträge: 163
Programmiersprache: C/C++
Du kannst auch Sachen die über glDrawArrays geredert wurden in eine Displaylist packen.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Nov 14, 2011 23:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

kein Wunder, glTexCoord2f und glNormal3f müssen vor glVertex3f gesetzt werden.

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Nov 15, 2011 17:25 
Offline
DGL Member

Registriert: Fr Nov 11, 2011 20:15
Beiträge: 8
Programmiersprache: Java
Vielen dank!

Hatte ich total vergessen, dass man die Reihenflolge beachten muss...
Hab es jetzt aber mit glDrawArrays gemacht


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 » Einsteiger-Fragen


Wer ist online?

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