Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 18:49

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Java / LWJGL] Buffer Problem

Discussion on [Java / LWJGL] Buffer Problem within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 20
Join Date: Aug 2012
Posts: 714
Received Thanks: 1,168
[Java / LWJGL] Buffer Problem

Hallo Leute,

Ich hab ein kleines Problem mit Buffer.
Ich habe schon öfter was mit LWJGL gemacht allerdings immer nur ohne Buffer und ohne DrawElements sondern halt einfach mit glVertex2i und so.

Das Quad zeichnen tut er schon allerdings in weiß obwohl ich eigentlich Farbe definiert habe.

Erstellen der Buffers:
PHP Code:
        float[] vertices = {
                -
0.5f0.5f0f1f,    // Left top            ID: 0
                
-0.5f, -0.5f0f1f,    // Left bottom        ID: 1
                
0.5f, -0.5f0f1f,    // Right bottom        ID: 2
                
0.5f0.5f0f1f         // Right left        ID: 3
        
};
        
        
// Sending data to OpenGL requires the usage of (flipped) byte buffers
        
FloatBuffer verticesBuffer BufferUtils.createFloatBuffer(vertices.length);
        
verticesBuffer.put(vertices);
        
verticesBuffer.flip();
        
        
float[] colors = {
                
1f0f0f1f,
                
0f1f0f1f,
                
0f0f1f1f,
                
1f1f1f1f
        
};
        
        
FloatBuffer colorsBuffer BufferUtils.createFloatBuffer(colors.length);
        
colorsBuffer.put(colors);
        
colorsBuffer.flip();
        
        
byte[] indices = {
                
// Left bottom triangle
                
012,
                
// Right top triangle
                
230
        
};
        
int indicesCount indices.length;
        
ByteBuffer indicesBuffer BufferUtils.createByteBuffer(indicesCount);
        
indicesBuffer.put(indices);
        
indicesBuffer.flip();
        
        
int vaoId GL30.glGenVertexArrays();
        
GL30.glBindVertexArray(vaoId);
        
        
int vboId GL15.glGenBuffers();
        
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFERvboId);
        
GL15.glBufferData(GL15.GL_ARRAY_BUFFERverticesBufferGL15.GL_STATIC_DRAW);
        
GL20.glVertexAttribPointer(04GL11.GL_FLOATfalse00);
        
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER0);
        
        
int bufColorsId GL15.glGenBuffers();
        
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFERbufColorsId);
        
GL15.glBufferData(GL15.GL_ARRAY_BUFFERcolorsBufferGL15.GL_STATIC_DRAW);
        
GL20.glVertexAttribPointer(14GL11.GL_FLOATfalse00);
        
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER0);
        
        
GL30.glBindVertexArray(0);
        
        
int vboiId GL15.glGenBuffers();
        
GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFERvboiId);
        
GL15.glBufferData(GL15.GL_ELEMENT_ARRAY_BUFFERindicesBufferGL15.GL_STATIC_DRAW);
        
GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER0); 
Loop:
PHP Code:
        GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
        
        
GL20.glUseProgram(pId);
        
        
GL30.glBindVertexArray(vaoId);
        
GL20.glEnableVertexAttribArray(0);
        
GL20.glEnableVertexAttribArray(1);
        
        
GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFERvboiId);
        
        
GL11.glDrawElements(GL11.GL_TRIANGLESindicesCountGL11.GL_UNSIGNED_BYTE0);
        
        
GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER0);
        
GL20.glDisableVertexAttribArray(0);
        
GL20.glDisableVertexAttribArray(1);
        
GL30.glBindVertexArray(0);
        
GL20.glUseProgram(0); 
Shader Init:
PHP Code:
        vsId ShaderLoader.load("res/shaders/color_vertex.glsl"GL20.GL_VERTEX_SHADER);
        
fsId ShaderLoader.load("res/shaders/color_fragment.glsl"GL20.GL_FRAGMENT_SHADER);
        
pId GL20.glCreateProgram();
        
GL20.glAttachShader(pIdvsId);
        
GL20.glAttachShader(pIdfsId);
        
GL20.glBindAttribLocation(pId0"in_Position");
        
GL20.glBindAttribLocation(pId1"in_Color");
        
GL20.glLinkProgram(pId);
        
GL20.glValidateProgram(pId); 
color_vertex.glsl:
PHP Code:
#version 150 core

in vec4 in_Position;
in vec4 in_Color;

out vec4 pass_Color;

void main(void) {
  
gl_Position in_Position;
  
pass_Color inColor;

color_fragment.glsl:
PHP Code:
#version 150 core

in vec4 pass_Color;

out vec4 out_Color;

void main(void) {
  
out_Color pass_Color;

Wäre cool wenn jemand zufällig sieht was ich falsch mache.

Gruß,
Chuck
'ChuckNorris is offline  
Old 09/11/2013, 21:40   #2
 
elite*gold: 0
Join Date: Oct 2010
Posts: 1
Received Thanks: 0
wunder dich nicht die seite behandelt opengl unter c++. das ganze laesst sich aber recht einfach in java uebertragen. stichwort attribute. ich habe es bisher noch nicht gesehen das man ein extra color buffer erstellt.

normalerweise fuellst du deinen vertex buffer in etwa so:

{
x,y,z,r,g,b //vertex 1
x,y,z,r,g,b //vertex 2
x,y,z,r,g,b //vertex 3
}

und mit den attributen sagst du dann wie dein buffer ueberhaupt aufgebaut ist. in diesem fall eben 3 positions- und 3 farbkomponenten.
endless90 is offline  
Reply


Similar Threads Similar Threads
recompile Problem (Block.java, item.java)
04/13/2013 - Minecraft - 1 Replies
Guten Morgen liebe Com (: Ich versuche etwas neues in Minecraft.. für mich einzubauen.. neuer Block + das Item dazu, des eingepflanzt werden muss.. wie bei einer Karotte oder einer Kartoffel. Ich zeige euch den Inhalt meiner BlockOnion.java package net.minecraft.src;
Minecraft Problem org.lwjgl.... bitte helfen!
09/25/2011 - Minecraft - 32 Replies
Hallo, ich habe folgendes Problem : Immer wenn ich Minecraft starten will kommt das hier : http://img576.imageshack.us/img576/2307/sdda.jpg Und ich möchte einfach spielen, manche sagen es liegt an der Grafik Karte und am Treiber ich poste mal hier die Details falls sie weiterhelfen.Währe Nett wenn ihr dann Link's oder so mir gibt mit denen ich dann alles richten kann fürs spielen. http://img200.imageshack.us/img200/3016/sdaaaav.j pg



All times are GMT +2. The time now is 18:49.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.