gpt4 book ai didi

opengl - glDrawElements 不使用着色器?

转载 作者:行者123 更新时间:2023-12-04 18:20:38 26 4
gpt4 key购买 nike

我的问题是我可以在不使用着色器的情况下使用 glDrawElements 吗?

我像下面这样生成我的 vbo:

    glGenBuffers(1, &vertexId_);
glBindBuffer(GL_ARRAY_BUFFER, vertexId_);
glBufferData(GL_ARRAY_BUFFER, sizeof(Vertex)*((tess.x + 1) * (tess.y + 1)), &pVertex[0].p.x, GL_STATIC_DRAW);


glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid *) vOffset_);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid *) nOffset_);
glEnableVertexAttribArray(2);
glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), (GLvoid *) tOffset_);

glGenBuffers(1, &indexId_);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexId_);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned short)*idxCount_, &pIndices[0], GL_STATIC_DRAW);

glBindVertexArray(0);

所以问题是我可以只使用 glDrawElements 而不绑定(bind)任何着色器来绘制吗?我正在使用 GL 4.0

最佳答案

OpenGL 4.0 中没有固定的管道,您需要着色器来告诉您如何处理您发送到 GPU 的数据(顶点)。

有很多关于如何开始使用着色器的资源,例如这个:http://nehe.gamedev.net/article/glsl_an_introduction/25007/

编辑:正如其他人在下面指出的那样,这并不完全正确。您可以使用兼容性配置文件并使用固定管道(如果支持)。 http://www.opengl.org/registry/doc/glspec40.compatibility.20100311.pdf

关于opengl - glDrawElements 不使用着色器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com