Learning OpenGL for N-body Sims #1 - Using GLFW and C++ with Cmake

I've been wanting to write a C++ real-time N-body simulation using different methods such as CPU/GPU computation, and N-body algorithms such as the Barnes-Hut algorithm which organizes the space with an oct-tree.

For real-time visualization two main contenders are DirectX and OpenGL, I decided to go with OpenGL.

There are many different ways to use OpenGL, NeHe has an amazing set of tutorials for OpenGL, but there are some newer interfaces that can simplify developing a UI with OpenGL and use shaders etc. One tool is GLFW which provides an easy way to make a window, provide context and receive events such as keyboard and mouse commands.

As a first step, we'll make a window with a spinning colored triangle, but not use any shaders etc. yet. Besides some boilerplate setup, it's as as simple as:


// Rotate our frame of reference glLoadIdentity(); glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f); // Draw triangle
glBegin(GL_TRIANGLES);
glColor3f(1.f, 0.f, 0.f);
glVertex3f(-0.6f, -0.4f, 0.f);
glColor3f(0.f, 1.f, 0.f);
glVertex3f(0.6f, -0.4f, 0.f);
glColor3f(0.f, 0.f, 1.f);
glVertex3f(0.f, 0.6f, 0.f);
glEnd();


Spinning Triangle
Spinning triangle using OpenGL, GLFW with C++ and Cmake for compiling

Source code on Github


Popular posts from this blog

Visualizing TLE Orbital Elements with Python and matplotlib

Strawberry DNA extraction and viewing with a cheap USB Microscope

Relearning web development by writing a clicking game using React, Npm and Browserify