LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler

TheCreeper202

Bekanntes Mitglied
Hallo!

Nach langer Zeit habe ich mal wieder ein Problem:

Ich habe ein Mesh in VBO's gespeichert aber es wird nicht gerendert! (Die render-Methode wird schon aufgerufen.) Die VBO's sind als Vertex Shader Attribute gegeben und werden mit den folgenden Shadern gerendert:
Vertex Shader:
Code:
attribute vec4 dn_Vertex;
attribute vec4 dn_Color;

varying vec4 color;

void main() {
    gl_Position = gl_ModelViewProjectionMatrix * dn_Vertex;
    color = dn_Color;
}

Fragment Shader:
Code:
varying vec4 color;

void main() {
    gl_FragColor = color;
}

Mesh Renderer:
Java:
package denomination.client.shapes;

import java.nio.FloatBuffer;
import java.nio.IntBuffer;

import org.lwjgl.BufferUtils;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GL20;

import denomination.client.Shader;
import denomination.client.util.Renderable;
import denomination.common.shapes.Mesh;
import denomination.common.shapes.MeshIndex;
import denomination.common.util.Vertex;

public class MeshRenderer implements Renderable {

	private int vertexBuffer;
	private int normalBuffer;
	private int texCoordBuffer;
	private int colorBuffer;
	private int tangentBuffer;
	private int bitangentBuffer;
	private int indexBuffer;
	private int indexBufferSize;

	public MeshRenderer(Mesh mesh) {
		FloatBuffer buffer;
		MeshIndex[] indices = mesh.getIndices();
		Vertex[] vertices = mesh.getVertices();
		
		this.vertexBuffer = GL15.glGenBuffers();
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertexBuffer);
		buffer = BufferUtils.createFloatBuffer(vertices.length * 4);
		for (Vertex v : vertices) {
			buffer.put(new float[] {
					v.x, v.y, v.z, 1
			});
		}
		buffer.flip();
		GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_STATIC_DRAW);
		
		this.normalBuffer = GL15.glGenBuffers();
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, normalBuffer);
		buffer = BufferUtils.createFloatBuffer(vertices.length * 3);
		for (Vertex v : vertices) {
			buffer.put(new float[] {
					v.normal.x, v.normal.y, v.normal.z
			});
		}
		buffer.flip();
		GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_STATIC_DRAW);
		
		this.texCoordBuffer = GL15.glGenBuffers();
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, texCoordBuffer);
		buffer = BufferUtils.createFloatBuffer(vertices.length * 4);
		for (Vertex v : vertices) {
			buffer.put(new float[] {
					v.texCoords.x, v.texCoords.y, 0, 0
			});
		}
		buffer.flip();
		GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_STATIC_DRAW);
		
		this.colorBuffer = GL15.glGenBuffers();
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, colorBuffer);
		buffer = BufferUtils.createFloatBuffer(vertices.length * 4);
		for (Vertex v : vertices) {
			buffer.put(new float[] {
					v.color.x, v.color.y, v.color.z, v.color.w
			});
		}
		buffer.flip();
		GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_STATIC_DRAW);
		
		this.tangentBuffer = GL15.glGenBuffers();
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, tangentBuffer);
		buffer = BufferUtils.createFloatBuffer(vertices.length * 3);
		for (Vertex v : vertices) {
			buffer.put(new float[] {
					v.tangent.x, v.tangent.y, v.tangent.z
			});
		}
		buffer.flip();
		GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_STATIC_DRAW);
		
		this.bitangentBuffer = GL15.glGenBuffers();
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, bitangentBuffer);
		buffer = BufferUtils.createFloatBuffer(vertices.length * 3);
		for (Vertex v : vertices) {
			buffer.put(new float[] {
					v.bitangent.x, v.bitangent.y, v.bitangent.z
			});
		}
		buffer.flip();
		GL15.glBufferData(GL15.GL_ARRAY_BUFFER, buffer, GL15.GL_STATIC_DRAW);
		
		this.indexBuffer = GL15.glGenBuffers();
		this.indexBufferSize = indices.length * 3;
		GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, indexBuffer);
		IntBuffer index = BufferUtils.createIntBuffer(indexBufferSize);
		for (MeshIndex i : indices) {
			index.put(new int[] {
					i.x, i.y, i.z
			});
		}
		index.flip();
		GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFER, index, GL15.GL_STATIC_DRAW);
		
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
		GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
	}

	@Override
	public void render() {
		int attrib;
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Vertex");
		if (attrib >= 0) {
			GL20.glEnableVertexAttribArray(attrib);
			GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vertexBuffer);
			GL20.glVertexAttribPointer(attrib, 4, GL11.GL_FLOAT, false, 0, 0);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Normal");
		if (attrib >= 0) {
			GL20.glEnableVertexAttribArray(attrib);
			GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, normalBuffer);
			GL20.glVertexAttribPointer(attrib, 3, GL11.GL_FLOAT, false, 0, 0);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_TexCoord");
		if (attrib >= 0) {
			GL20.glEnableVertexAttribArray(attrib);
			GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, texCoordBuffer);
			GL20.glVertexAttribPointer(attrib, 4, GL11.GL_FLOAT, false, 0, 0);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Color");
		if (attrib >= 0) {
			GL20.glEnableVertexAttribArray(attrib);
			GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, colorBuffer);
			GL20.glVertexAttribPointer(attrib, 4, GL11.GL_FLOAT, false, 0, 0);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Tangent");
		if (attrib >= 0) {
			GL20.glEnableVertexAttribArray(attrib);
			GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, tangentBuffer);
			GL20.glVertexAttribPointer(attrib, 3, GL11.GL_FLOAT, false, 0, 0);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Bitangent");
		if (attrib >= 0) {
			GL20.glEnableVertexAttribArray(attrib);
			GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, bitangentBuffer);
			GL20.glVertexAttribPointer(attrib, 3, GL11.GL_FLOAT, false, 0, 0);
		}
		
		GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, indexBuffer);
		GL11.glDrawElements(GL11.GL_TRIANGLES, indexBufferSize, GL11.GL_UNSIGNED_INT, 0);
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Vertex");
		if (attrib >= 0) {
			GL20.glDisableVertexAttribArray(attrib);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Normal");
		if (attrib >= 0) {
			GL20.glDisableVertexAttribArray(attrib);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_TexCoord");
		if (attrib >= 0) {
			GL20.glDisableVertexAttribArray(attrib);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Color");
		if (attrib >= 0) {
			GL20.glDisableVertexAttribArray(attrib);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Tangent");
		if (attrib >= 0) {
			GL20.glDisableVertexAttribArray(attrib);
		}
		
		attrib = GL20.glGetAttribLocation(Shader.CURRENT, "dn_Bitangent");
		if (attrib >= 0) {
			GL20.glDisableVertexAttribArray(attrib);
		}
		
		GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
		GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
	}
}

Hat irgendwer 'ne Ahnung, wo der Fehler ist?

Danke im Voraus!

TheCreeper202
 
Ä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
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
F LWJGL: Licht und GL_LINES funktioniert nicht Spiele- und Multimedia-Programmierung 6
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