LWJGL: Licht und GL_LINES funktioniert nicht

Friedhelm

Bekanntes Mitglied
Ich versuche in einer 3D Welt für den Boden ein Gitternetz mit 3D-Linien zu zeichnen inkl. Licht (siehe Code).

Aber das Licht (ist vor den Objekten im 3D-Raum platziert) funktioniert bei den Linien irgendwie nicht richtig. Habe das Gefühl, dass die Linien nicht richtig beleuchtet werden.

Hinzu kommt, wenn ich (// * Rotieren *, siehe letzter Code) für das Gitternetz verwende, bleibt das Licht einwandfrei auf den 3D Objekten, aber auf dem Gitternetz rotiert das Licht nach hinten, obwohl es ja vorne steht(siehe Bild).


Auf ein 3D-Objekt fällt das Licht korrekt, aber die Linien interessiert das nicht.

Blöd ist auch, dass die Linien nicht rot sind, sondern gelb.


Hat jemand ein Tip oder ein kurzes Linien-Beispiel?


Code:
FloatBuffer redDiffuse = (FloatBuffer) BufferUtils.createFloatBuffer(4).put(new float[] { 1.0f, 1.0f, 1.0f, 1.0f }).flip();
FloatBuffer redPos 	= (FloatBuffer) BufferUtils.createFloatBuffer(4).put(new float[] { 0.0f, 5.0f, 10.0f, 1.0f }).flip();

// GL_DIFFUSE, GL_AMBIENT, GL_SPECULAR

GL11.glLight(GL11.GL_LIGHT0,GL11.GL_DIFFUSE, redDiffuse);
GL11.glLight(GL11.GL_LIGHT0,GL11.GL_POSITION, redPos);


Code:
gl.glPushMatrix();	
		
GL11.glDisable(GL11.GL_TEXTURE_2D); 		
GL11.glEnable(GL11.GL_COLOR_MATERIAL); 
GL11.glColorMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE);	
		
		
FloatBuffer mat_solid 	= (FloatBuffer) BufferUtils.createFloatBuffer(4).put(new float[] { 0.75f, 0.0f, 0.0f, 1.0f }).flip();
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE, mat_solid);
			
GL11.glLineWidth(1.0f); 

GL11.glBegin(GL11.GL_LINES); 		
GL11.glVertex3f( ax, ay, az); 
GL11.glVertex3f( bx, by, bz); 
GL11.glEnd(); 

gl.glPopMatrix();


Code:
GL11.glDisable(GL11.GL_TEXTURE_2D); 		
GL11.glEnable(GL11.GL_COLOR_MATERIAL); 
GL11.glColorMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE);	
		
		
FloatBuffer mat_solid 	= (FloatBuffer) BufferUtils.createFloatBuffer(4).put(new float[] { 0.75f, 0.0f, 0.0f, 1.0f }).flip();
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE, mat_solid);
			
GL11.glLineWidth(1.0f); 

// * Rotieren *
rotGitter += .001;
gl.glRotatef(0.0f,1f,0f,0f);
gl.glRotatef(rotGitter,0f,1f,0f);
gl.glRotatef(0.0f,0f,0f,1f); 

GL11.glBegin(GL11.GL_LINES); 		
GL11.glVertex3f( ax, ay, az); 
GL11.glVertex3f( bx, by, bz); 
GL11.glEnd(); 

gl.glPopMatrix();
 

Anhänge

  • test.jpg
    test.jpg
    150,8 KB · Aufrufe: 51
Zuletzt bearbeitet:

Friedhelm

Bekanntes Mitglied
Kann es sein das es bei einfachen Linien an den fehlenden Normalen scheitert und die Linie gar nicht richtig beleuchtet werden können?

Ok, eigentlich brauche ich die Linien gar nicht zu beleuchten, aber mich interessiert das Problem einfach, und natürlich die Lösung :)
 

Marco13

Top Contributor
Kann es sein das es bei einfachen Linien an den fehlenden Normalen scheitert und die Linie gar nicht richtig beleuchtet werden können?

Ohne den weiteren Code nachvollzogen zu haben: Auch Linien brauchen für die Beleuchtungsberechnung Normalen für ihre Vertices. Dürfte hier recht einfach sein: Die sind wohl alle (0,0,1)....
(Aber beim Überfliegen: Du zeichest doch hoffentlich ALLE Linien zwischen dem glBegin und dem glEnd...?)
 

Friedhelm

Bekanntes Mitglied
Ohne den weiteren Code nachvollzogen zu haben: Auch Linien brauchen für die Beleuchtungsberechnung Normalen für ihre Vertices. Dürfte hier recht einfach sein: Die sind wohl alle (0,0,1)....

Danke, müsste das dann so aussehen?:

Code:
for(int x=-size;x<=size;x+=4) {

	GL11.glBegin(GL11.GL_LINES); 		
	GL11.glNormal3f(0.0f, 0.0f, 1.0f);
	GL11.glVertex3f( x, 0, -size); 
	GL11.glVertex3f( x, 0, size); 
	GL11.glEnd();
}

for(int z=-size;z<=size;z+=4) {

	GL11.glBegin(GL11.GL_LINES); 		
	GL11.glNormal3f(0.0f, 0.0f, 1.0f);
	GL11.glVertex3f( -size, 0, z); 
	GL11.glVertex3f( size, 0, z); 
	GL11.glEnd();
}

(Aber beim Überfliegen: Du zeichest doch hoffentlich ALLE Linien zwischen dem glBegin und dem glEnd...?)

Ja.


Was ist mit dem Lichtcode? Das scheint auf die Linien keinen besonderen Eindruck zu machen.

Wie würdest Du eine Linie im 3D Raum zeichnen und das Licht dazu einstellen?
 
G

Guest2

Gast
Moin,

ich habe nie versucht GL_LINES zu beleuchten, insofern bin ich mir noch nicht mal sicher, ob da mit der Fixed Function Pipeline überhaupt vernünftige Ergebnisse zu erwarten wären. Hinzu kommt, dass so wie die Szene oben wohl angeordnet ist, eine per Vertex Beleuchtung imho ohnehin keine sinnvollen Ergebnisse bringen kann.

Wenn man die Linien unbedingt beleuchten möchte, könnte man vielleicht versuchen die Fläche über Quads aufzubauen und mit glPolygonMode nur die Kanten zu zeichnen, eventuell könnte die Beleuchtung dann einigermaßen funktionieren.

Eine andere Alternative wäre das über Shader zu regeln. Dann könnte man nicht nur per Fragment beleuchten, sondern gleichzeitig auch noch "die" Normale bestimmen.



Vermutlich meint Marco das ehr so:

Code:
GL11.glBegin(GL11.GL_LINES);
for(int x=-size;x<=size;x+=4) {
	GL11.glVertex3f( x, 0, -size); 
	GL11.glVertex3f( x, 0, size); 
}
GL11.glEnd();

Das wäre schon besser, allerdings gehört in eine ernsthafte Anwendung überhaupt kein glBegin.

Viele Grüße,
Fancy
 

Marco13

Top Contributor
ich habe nie versucht GL_LINES zu beleuchten, insofern bin ich mir noch nicht mal sicher, ob da mit der Fixed Function Pipeline überhaupt vernünftige Ergebnisse zu erwarten wären.

Hmja, bestenfalls das, was man mit Gouraud Shading eben so bekommt.

@Topic: Hat das Licht in seiner aktuellen Form denn Einfluß auf die NICHT-Lines? Ggf. mal ein Einzelnes Dreieck in die Ebene rendern, zum Vergleich..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
coolian lwjgl glfw window zeigt nur grau an Spiele- und Multimedia-Programmierung 0
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
F OpenGL (LWJGL) Shader Programmierung GLSL Spiele- und Multimedia-Programmierung 2
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
V LWJGL GUI Spiele- und Multimedia-Programmierung 1
V GUI in LWJGL 2 erstellen Spiele- und Multimedia-Programmierung 6
C GLSL Shaderprogrammierung in LWJGL 3 Spiele- und Multimedia-Programmierung 12
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
B LWJGL OpenGL SIGSEGV auf Linux (Verzweiflung :/) Spiele- und Multimedia-Programmierung 8
G LWJGL .obj .mtl loader Spiele- und Multimedia-Programmierung 3
G 2D animationen LWJGL Spiele- und Multimedia-Programmierung 0
pcfreak9000 "Allgemeine" Performance verbessern (LWJGL 2) Spiele- und Multimedia-Programmierung 2
G LWJGL Rendert nicht Spiele- und Multimedia-Programmierung 3
G lwjgl verwendung Spiele- und Multimedia-Programmierung 6
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
E LWJGL glGenVertexArrays() erzeugt doppelte IDs Spiele- und Multimedia-Programmierung 3
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
K No Lwjgl Spiele- und Multimedia-Programmierung 2
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
RalleYTN LWJGL Vignette Spiele- und Multimedia-Programmierung 2
E LWJGL Switchen zwischen gluOrtho und gluPerspective Spiele- und Multimedia-Programmierung 0
RalleYTN LWJGL Rotation Spiele- und Multimedia-Programmierung 1
C LWJGL Color Picking Textures deaktivieren Spiele- und Multimedia-Programmierung 0
K FBO Framebuffer object [LWJGL] 2D tutorial gesucht Spiele- und Multimedia-Programmierung 2
K [LWJGL] 2D Tunneler Hintergrund Spiele- und Multimedia-Programmierung 7
S LWJGL 3d-spieleentwicklung Spiele- und Multimedia-Programmierung 3
H LWJGL-Renderfail Spiele- und Multimedia-Programmierung 1
Seikuassi LWJGL - Texturen flackern Spiele- und Multimedia-Programmierung 2
Androbin LWJGL - Kollisions-Bug (Fallen) Spiele- und Multimedia-Programmierung 14
K Schiessen in 2D (LWJGL) Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
U Kann nur ein Objekt mit LWJGL rendern Spiele- und Multimedia-Programmierung 2
X LWJGL | Parent.isDisplayable() must be true | wie kann man das zu true machen? Spiele- und Multimedia-Programmierung 0
X [LWJGL] Binden von Texturen per PNG File und Texture Sheet Spiele- und Multimedia-Programmierung 1
X LWJGL - Anklick baren Button erstellen aber wie? Spiele- und Multimedia-Programmierung 6
U Quadrate anklicken LWJGL Spiele- und Multimedia-Programmierung 3
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
B LWJGL Manche Seiten werden transparent angezeigt Spiele- und Multimedia-Programmierung 2
T LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler Spiele- und Multimedia-Programmierung 0
U Komische fragmente bei LWJGL Spiele- und Multimedia-Programmierung 6
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
O LWJGL AWTGLCanvas Tiefe auf 1 beschränkt Spiele- und Multimedia-Programmierung 5
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
S [LWJGL] schwarzer Bildschrim beim rendern von .obj Model Spiele- und Multimedia-Programmierung 2
S [lwjgl] Renderbug bei mehreren Objekten Spiele- und Multimedia-Programmierung 2
R LWJGL: OpenGL Fehler - weitere Informationen auslesen möglich? Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Koordinaten invertiert. Spiele- und Multimedia-Programmierung 2
M LWJGL Text rendern Spiele- und Multimedia-Programmierung 3
B LWJGL Mauskoordinaten Spiele- und Multimedia-Programmierung 1
J LWJGL Update Schleife (Snake) Spiele- und Multimedia-Programmierung 6
B LWJGL Display.update() ist langsam Spiele- und Multimedia-Programmierung 5
R LWJGL: Performance glBegin, drawList, ... Spiele- und Multimedia-Programmierung 16
R LWJGL: Object Loader -> .obj, .c4d, ... laden Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
R LWJGL: 3D Picking Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
F LWJGL: Is undefined? Spiele- und Multimedia-Programmierung 7
F LWJGL Kamerabug Spiele- und Multimedia-Programmierung 2
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
F LWJGL Dreidimensionaler Würfel Spiele- und Multimedia-Programmierung 15
P LWJGL oder OpenGL (C++) Spiele- und Multimedia-Programmierung 7
P "Tiefe" in Objekten - LWJGL Spiele- und Multimedia-Programmierung 12
T LWJGL 3D Objekt Collision: Wie? Spiele- und Multimedia-Programmierung 11
S LWJGL Kamera Frage Spiele- und Multimedia-Programmierung 2
V Komischer Fehler in LWJGL Spiele- und Multimedia-Programmierung 18
Z lwjgl oder jogl nutzen Spiele- und Multimedia-Programmierung 9
Y LWJGL Hintergrund Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
Creylon [LWJGL] 2D Sprite Rotieren/Drehen Spiele- und Multimedia-Programmierung 6
CookieSoft LWJGL Ubuntu 12.04 Fehler Spiele- und Multimedia-Programmierung 7
E [LWJGL] Karusell, mehrere Objekte drehen sich um einen Mittelpunkt Spiele- und Multimedia-Programmierung 31
F lwjgl - Skysphere Spiele- und Multimedia-Programmierung 3
CookieSoft Slick und LWJGL Texture lag Spiele- und Multimedia-Programmierung 13
U OpenGl 1.1 (LWJGL GL11.*) und weiter? Spiele- und Multimedia-Programmierung 7
0 Grafikfehler LWJGL Spiele- und Multimedia-Programmierung 2
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
Luk10 (LWJGL) Aufwendiges Animieren von Texturen Spiele- und Multimedia-Programmierung 16
S (LWJGL) VertexBufferObjects Spiele- und Multimedia-Programmierung 20
T LWJGL Grafik meines Projektes läuft nicht korrekt auf meinem iMac Spiele- und Multimedia-Programmierung 19
B LWJGL/OpenGL rendert manche Objekte nicht Spiele- und Multimedia-Programmierung 6
H LWJGL: Fragen zum Verständnis Spiele- und Multimedia-Programmierung 7
T LWJGL Gui erstellen Spiele- und Multimedia-Programmierung 7
Kenan89 lwjgl Exception Spiele- und Multimedia-Programmierung 3
Z Anfängerfrage: Text anzeigen mit LWJGL Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben