在有关 OpenGL 3.0+ 的教程中,我们这样创建顶点数组对象和顶点缓冲区对象:
\n\nGLuint VAO, VBO; \nglGenVertexArrays(1, &VAO);\nglGenBuffers(1, &VBO);\nglBindVertexArray(VAO);\nglBindBuffer(GL_ARRAY_BUFFER, VBO);\nRun Code Online (Sandbox Code Playgroud)\n\n这里,VAO 是一个unsigned int( GLuint),我们传递 a\xcc\xb6 \xcc\xb6r\xcc\xb6e\xcc\xb6f\xcc\xb6e\xcc\xb6r\xcc\xb6e\xcc\xb6n\xcc\xb6c\xcc\ xb6e\xcc\xb6 是它在函数中的地址glGenVertexArray。但是,根据文档,函数的第二个参数应该是( )数组 。VBO 和. 我不明白为什么上面的代码适用于这样的参数。unsigned intGLuint*glGenBuffers
我尝试用此代码替换上面的代码(并在代码中的其他地方进行必要的修改):
\n\nGLuint VAO[1];\nGLuint VBO[1];\nglGenVertexArrays(1, VAO);\nglGenBuffers(1, VBO);\nglBindVertexArray(VAO[1]);\nglBindBuffer(GL_ARRAY_BUFFER, VBO[1]);\nRun Code Online (Sandbox Code Playgroud)\n\n它编译并执行,但我得到了意想不到的行为:我的纹理矩形使用第一个语法渲染,但不使用第二个语法渲染。我也不明白为什么会发生这种情况。
\n\n编辑:谢谢。如上所述,第二个代码中存在索引错误。
\n我还是Python的初学者,我想知道为什么:
dict = {}
dict[0] = '123'
a = 0
if dict["{}".format(a)]["{}".format(a)] == '1':
print('True')
Run Code Online (Sandbox Code Playgroud)
给我一个关键错误'0'但不是这个:
dict = {}
dict[0] = '123'
if dict[0][0] == '1':
print('True')
Run Code Online (Sandbox Code Playgroud)
提前致谢.