我试图找到我在代码中出错的地方。我正在使用JOGL。
我想在给定对象中制作两个VBO,一个用于顶点,另一个用于索引。
init(GLAutoDrawable glAutoDrawable)
函数内没有错误,但display(GLAutoDrawable glAutoDrawable)
在运行程序时没有显示我的对象。
我在哪里弄错了?谢谢你的帮助。
我的代码:
public class Test1 implements GLEventListener {
private int program;
IntBuffer vao = IntBuffer.allocate(1);
private IntBuffer buffers = IntBuffer.allocate(2);
private float[] vertices = {
-0.853250f, -0.136293f, -0.188932f,
-0.129650f, 0.416492f, 0.336788f,
-1.129635f, 0.416492f, 0.661708f,
-1.747674f, 0.416492f, -0.188932f,
-1.129635f, 0.416492f, -1.039572f,
-0.129650f, 0.416492f, -0.714652f,
-0.576865f, 1.310922f, 0.661708f,
-1.576849f, 1.310922f, 0.336788f,
-1.576849f, 1.310922f, -0.714652f,
-0.576865f, 1.310922f, -1.039572f,
0.041175f, 1.310922f, -0.188932f,
-0.853250f, 1.863707f, -0.188932f
};
答案 0 :(得分:1)
有很多错误。
gluPerspective
旨在与Fixed-Function-Pipeline一起使用。使用可编程着色器时无效。您需要在顶点着色器中为投影矩阵放置一个制服,并手动将该矩阵传递给GL。ByteBuffer.allocateDirect(sizeInBytes);
,其返回ByteBuffer
,然后可以使用IntBuffer
和{{1}转换为FloatBuffer
或asFloatBuffer
}}。