Learning by doing
I've always been an advocate that errors and fails make the humans wise. The more you try and research, the more you will learn. What are you waiting for?
Graphics work on the EDK3 Engine
Graphics Programming
The EDK3 Engine is our College's test engine, which is given to the students to familiarize them with graphics programming (concretely with OpenGL and GLSL). Together with Ivan Ivanov Mandev we developed our own Project Manhattan, re-implementing the rendering API of the engine and many new features such as:
Once we had Project Manhattan almost finished I had an idea: I wanted to make something with Geometry Shaders, as I had never used them and I love to explore new posibilities.
My work ended being a kind of "Rain" (that seems snow), which is a big group of translucid rhombs shapes (that we are gpoing to name flakes). I used a Vertex Buffer Object
(VBO) to send all flakes' positions and velocities to shader, and a uniform float common to all the flakes and constantly increasing.
In the vertex shader, I use the increasing value to make a calculus and find the new Y position of the flake, with a module to return back up.
This points are used in the Geometry Shader to create the rhomb shape, and then the Fragment Shader gives this a color.
The result in our project was 1 million flakes updating in ~1ms every frame, a result that could never be achieved with other approaches. From this experience I learnt that
trying to face the same problem from different perspectives gives you a better understanding of how should it be solved (or at least which solution is slightly better than
the others).