我正在尝试在基于 Java AWT 的应用程序中使用 JOGL。
我是 OpenGL 的新手,所以我从一个经典的绘制三角形示例开始。
我正在使用 OpenGL ES 2.0。
在网上看了几个教程并花了很多时间在我的代码上倾泻而下,我不知道为什么我的其他可编译和可运行的程序(即没有直接抛出异常)除了清晰的颜色之外没有绘制任何东西。
顶点数据、着色器代码和 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 乘以这些。但是我正在看的教程对任何矩阵都没有做任何事情并且仍然绘制一个三角形。我只是没有得到我所缺少的东西,希望一双有更多经验的新眼睛可以提供帮助。
谢谢。