1
所以我知道如何提供输入到着色器作为数组:的OpenGL着色器输入
GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(g_vertex_buffer_data), g_vertex_buffer_data, GL_STATIC_DRAW);
//inside loop, provide the shader a layout location
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
我将如何提供一个浮动作为输入?我已经尝试过在各地搜索谷歌,但没有很多很好的资源记录着色器(至少对于初学者)。此外,我如何使用该输入?难道仅仅是这样的:
layout(location = 0) in vec3 vertPosition //for my position
layout(location = 1/*or whatever i use*/) in float rotation
//rest of the code....
谢谢您的回答。我如何在代码中使用多个输入(来自多个地方)? (问题的第二部分,对不起,如果它不是很明显:) – 2014-11-02 21:37:38
这是第一个参数,有各种方式将其传递给着色器,一种常用的方法是交错数据,我将编辑答案。 – 2014-11-02 21:48:26
我将如何使用我的glsl中的旋转变量?它将是vec3位置布局(位置= 0)'布局(位置= 1)在vec3旋转' – 2014-11-02 22:33:02