diff --git a/zadanie-4/circle_vs.glsl b/zadanie-4/circle_vs.glsl index e300ae1..026cdc8 100644 --- a/zadanie-4/circle_vs.glsl +++ b/zadanie-4/circle_vs.glsl @@ -1,10 +1,10 @@ #version 330 core -layout (location = 0) in vec2 aPos; +layout (location = 0) in vec3 aPos; uniform mat4 model; uniform mat4 view; uniform mat4 projection; void main() { - gl_Position = projection * view * model * vec4(aPos, 0.0, 1.0); + gl_Position = projection * view * model * vec4(aPos, 1.0); } diff --git a/zadanie-4/main.cpp b/zadanie-4/main.cpp index f1a5538..87384a1 100644 --- a/zadanie-4/main.cpp +++ b/zadanie-4/main.cpp @@ -56,14 +56,18 @@ GLuint bezierVAO, bezierVBO; GLuint sphereVAO, sphereVBO, sphereEBO; std::vector controlPoints = { - glm::vec3(-1.0f, 0.0f, 0.0f), - glm::vec3(-0.5f, 5.0f, 0.0f), - glm::vec3(0.5f, -5.0f, 0.0f), - glm::vec3(1.0f, 3.0f, 0.0f) + glm::vec3(-1.0f, -1.0f, 0.0f), + glm::vec3(-0.5f, 4.0f, 0.0f), + glm::vec3(0.5f, -6.0f, 0.0f), + glm::vec3(1.0f, 2.0f, 0.0f) }; float easingFn(float t) { - return pow(t, 3); +// return 1 - pow(1 - t, 3); + return t < 0.5 + ? (1 - pow(1 - 2*t, 3)) / 2 + : (pow(2*t - 1, 3) + 1) / 2; + } glm::vec3 cubicBezier(const glm::vec3& P0, const glm::vec3& P1, const glm::vec3& P2, const glm::vec3& P3, float t) {