问题描述
我最近决定开始学习OpenGL,并给自己写了一本有关OpenGL Core 3.3的书。这本书通常是关于C ++的。
因此,在寻找了一点之后,我发现了一种语言更好的库,该语言提供了几乎相同的功能: lwjgl 。
我按照本书的步骤进行操作,并将C ++语法转换为java语法,直到实际绘制某些东西为止,它一直起作用。
在那里,无论我对代码进行了什么更改,JVM都一直崩溃。经过一些调试后,我发现调用 checkVid() {
let obj = {
user_id: this.user_id
}
this.db.getVideos2().then((dbVids) => {
alert("DB Vid Count: " + dbVids.length)
this.auth.getVideos(obj).subscribe((apiVids) => {
alert("Api Vid Count: " + apiVids.videos.length)
if (dbVids.length < apiVids.videos.length) {
alert("Not Equal")
this.syncVids();
} else {
alert("Videos is equal")
}
})
})
或glVertexAttribPointer
时JVM崩溃了。
我是OpenGL的新手,我认为这个问题对于经验丰富的人来说一定很愚蠢,但是:我需要对这段代码进行什么更改?
glDrawArrays
我将非常感谢我能提供的任何帮助,如果您需要更多信息/需要查看更多我的代码,请告诉我。预先感谢
解决方法
在指定顶点属性之前,必须将顶点缓冲区对象绑定到目标GL_ARRAY_BUFFER
:
glBindBuffer(GL_ARRAY_BUFFER,VBO);
glVertexAttribPointer(0,3,GL_FLOAT,false,12,0);
调用glVertexAttribPointer
时,当前绑定到 ARRAY_BUFFER 目标的缓冲区对象与属性(索引)相关联,并且对该缓冲区对象的引用存储在以下对象的状态向量中Vertex Array Object。