OpenGl error Validation Failed: No vertex array object bound(OpenGL错误验证失败:未绑定顶点数组对象)
问题描述
网格类不再绑定Vao,但它仍然不起作用。一切似乎都应该井然有序。我绑定了Vao,然后是VBO,我创建了着色器,但随后由于未绑定Vao而导致验证失败?多么?我做网状物的时候就把它绑起来了,永远不会解开它。我不明白这个节目。我做错了什么
public boolean create(float vertices[]) {
vCount=vertices.length/3;
//generate vao id
vao=glGenVertexArrays();
glBindVertexArray(vao);
vbo=glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vbo);
//static draw stores data in GPU
//GL_DYNAMIC_DRAW stores it in ram to be more accessible
glBufferData(GL_ARRAY_BUFFER, vertices, GL_STATIC_DRAW);//pass vertex data
/*glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glVertexAttribPointer(0, 3, GL_FLOAT, false, VERTEX_SIZE * 4, 0);
glVertexAttribPointer(1, 2, GL_FLOAT, false, VERTEX_SIZE * 4, 12);*/
glVertexAttribPointer(0,3,GL_FLOAT,false,0,0);//allocates 3 spaces for x,y,z floats
return true;
}
简单的绘制函数。
public void draw() {
glDrawArrays(GL_TRIANGLES,0,vCount);
}
我应该不需要为相机/对象转换创建缓冲区或其他东西,对吗?此方法仅初始化IS
glUniformMatrix4fv(uniOProjectionMat,true,obj);
with my shader
#version 330 core
layout(location=0) in vec3 position;
uniform mat4 worldTransform;
uniform mat4 objectTransform;
uniform mat4 projection;
void main(){
gl_Position=projection*worldTransform *
对象变换*ve4(位置,1); )
opengl
glValidateProgram
检查程序是否可以在当前推荐答案状态下执行。因为核心配置文件上下文中没有标准的顶点数组对象,所以您必须在验证程序之前绑定命名的VAO。
在程序验证之前绑定您的Vao,或者不要调用unBindVAO()
。根本不需要解绑VO。
这篇关于OpenGL错误验证失败:未绑定顶点数组对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:OpenGL错误验证失败:未绑定顶点数组对象
基础教程推荐
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01