Compilable和Runnable JOGL应用程序不绘制三角形

时间:2014-05-09 16:06:56

标签: java awt opengl-es-2.0 jogl glsles

我试图在基于Java AWT的应用程序中使用JOGL。

我是OpenGL的新手,所以我从经典的绘制三角形示例开始。

我正在使用OpenGL ES 2.0。

在网上查看了几个教程&花了好几个小时倾盆而过在我的代码中,我不知道为什么我的其他可编辑的& runnable程序(即没有直接抛出异常)不会绘制除了清晰颜色以外的任何东西。

顶点数据,着色器代码和gl设置过程都来自教程。

顶点着色器代码:

#version 100
attribute vec3 vPosition;
void main()
{
    gl_Position = vec4(vPosition,1.0);
}

片段着色器代码:

#version 100
precision mediump float;
void main()
{
    gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}

顶点数据:

float[] vertexPositions =
{
    0.0f, 0.5f, 0.0f,
    -0.5f, -0.5f, 0.0f,
    0.5f, -0.5f, 0.0f
};

FloatBuffer lBuffer = CommonFuncs.getFloatBuffer( 1024 );
lBuffer.put( vertexPositions );

我设置了' vPosition'像这样:

初始化:

theRenderer.glBindAttribLocation( theProgram, 0, "vPosition" );

显示:

theRenderer.glUseProgram( theProgram );
theRenderer.glVertexAttribPointer( 0, 3, GL.GL_FLOAT, false, 0, lBuffer );
theRenderer.glEnableVertexAttribArray( 0 );
theRenderer.glDrawArrays( GL.GL_TRIANGLES, 0, 3 );
theRenderer.glDisableVertexAttribArray( 0 );
theRenderer.glUseProgram( 0 );
然而,除了我指定的青色蓝色,我在屏幕上看不到任何内容。先前在'显示'。

中调用

我尝试过各种不同的配置,试图指定一个模型视图&投影矩阵,并将vPosition乘以那些。但我所看到的教程并没有对任何矩阵做任何事情。仍画一个三角形。我只是没有得到我所缺少的东西。希望一双具有更多经验的新眼睛可以提供帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

这确实是一个问题,因为没有调用lBuffer.flip() - 祸就是我:谢谢@Reto Koradi发现我的简单错误 - 一双新鲜的眼睛完成了这个伎俩:)