diff options
author | visil <workregor@mail.ru> | 2023-10-09 11:15:33 +0300 |
---|---|---|
committer | visil <workregor@mail.ru> | 2023-10-09 11:15:33 +0300 |
commit | 31066e789acad4c61b4fc68a6cdf9249b9a44299 (patch) | |
tree | 9014759bfd5dec34d719acc7beb02c220de5d393 /lesson01/main.cpp | |
parent | b210fc71438d31cb5cbc434bf9b8db4b7164e3c8 (diff) |
Знаменитый треугольник
Diffstat (limited to 'lesson01/main.cpp')
-rw-r--r-- | lesson01/main.cpp | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/lesson01/main.cpp b/lesson01/main.cpp index 647674a..1c3804d 100644 --- a/lesson01/main.cpp +++ b/lesson01/main.cpp @@ -5,19 +5,23 @@ const char *vertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" + "layout (location = 1) in vec3 aColor;\n" + "\n" + "out vec3 ourColor;\n" + "\n" "void main()\n" "{\n" - " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" + " gl_Position = vec4(aPos, 1.0);\n" + " ourColor = aColor;" "}\0"; const char *fragmentShaderSource = "#version 330 core\n" "out vec4 FragColor;\n" - "\n" - "uniform vec4 ourColor;" + "in vec3 ourColor;\n" "\n" "void main()\n" "{\n" - " FragColor = ourColor;\n" + " FragColor = vec4(ourColor, 1.0);\n" "}\0"; void framebuffer_size_callback(GLFWwindow* window, int width, int height); @@ -54,14 +58,13 @@ int main() // вершины фигуры float vertices[] = { - -0.5f, -0.5f, 0.0f, - 0.5f, -0.5f, 0.0f, - 0.5f, 0.5f, 0.0f, - -0.5f, 0.5f, 0.0f + // координаты // цвета + -0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f, }; unsigned int indices[] = { 0, 1, 2, // первый треугольник - 2, 3, 0 // второй треугольник }; @@ -139,10 +142,20 @@ int main() 3, GL_FLOAT, GL_FALSE, - 3 * sizeof(float), + 6 * sizeof(float), (void*)0 ); glEnableVertexAttribArray(0); + glVertexAttribPointer( + 1, + 3, + GL_FLOAT, + GL_FALSE, + 6 * sizeof(float), + (void*)(3* sizeof(float)) + ); + glEnableVertexAttribArray(1); + /* glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); */ while (!glfwWindowShouldClose(window)) { @@ -152,13 +165,13 @@ int main() glClear(GL_COLOR_BUFFER_BIT); // задаём uniform fragment-шейдера - float timeValue = glfwGetTime(); - float greenValue = (sin(timeValue) / 2.0f) + 0.5f; - int vertexColorLocation = glGetUniformLocation(shaderProgram, - "ourColor"); + /* float timeValue = glfwGetTime(); */ + /* float greenValue = (sin(timeValue) / 2.0f) + 0.5f; */ + /* int vertexColorLocation = glGetUniformLocation(shaderProgram, */ + /* "ourColor"); */ glUseProgram(shaderProgram); - glUniform4f(vertexColorLocation, 0.0f, greenValue, 0.0f, 1.0f); + /* glUniform4f(vertexColorLocation, 0.0f, greenValue, 0.0f, 1.0f); */ glBindVertexArray(VAO); /* glDrawArrays(GL_TRIANGLES, 0, 3); */ |