OpenGL Homeworks of “Computer Graphics II” Course – Spring 2021-2022

Hello computer graphics masters!

In this post, I will write about the three OpenGL homeworks Oğuz Hoca and I have prepared for the course Computer Graphics II, and showcase my implementations as videos.

Homework 1 – Surface Rendering

This first homework is about rendering a wavy flag animation by implementing and querying the Bezier surface equation in OpenGL. The end product of this homework is an OpenGL program which:

  • Renders an animated and textured flag on the screen,
  • Shows the specular shading effect of a point light on the animated flag,
  • Includes user interaction capabilities with keyboard buttons.

In the video below, I talk about the homework details and show my implementation’s visual:

We have also held a Waving Flag Competition in class, to which I have joined with my “As Bayraklari As As As! Dayı” implementation:

Homework 2 – Cubemaps

The second homework is about Cubemaps in OpenGL. Using cubemaps, environment mapping and reflection capabilities are implemented. The end product is an OpenGL program which: (i) provides user interaction capabilities with keyboard and mouse buttons, and (ii) renders a scene composition that includes the items listed below:

  • A textured skybox environment,
  • A reflective (mirror) object that is placed into the center of the scene and rotates around the vertical axis,
  • One or more diffuse objects that rotate around the center object in such a way that their reflections are visible on the center object.

Here is the video of my implementation of the second homework:

Homework 3 – Terrain Rendering

The last homework is about rendering a terrain that is generated via the Geometry Shader of OpenGL. The heights of the terrain grid are set by querying the Perlin Noise function. The end product of this assignment is an OpenGL program which: (i) provides user interaction capabilities with keyboard and mouse buttons, and (ii) renders a scene which includes the items listed below:

  • A generated terrain where its heights are calculated using Perlin noise, and colors are determined by the heights.
  • The camera travels on the generated terrain as if it was a car.

Here is the video of my implementation of the last homework with some music (big shoutout to r/outrun):

The song playing in the video is Synth City from Martin Roth. Here is the Spotify link:

That’s all folks!

This was the first semester of this course being opened after years of break. As the class, we have learnt many advanced and exciting things about Computer Graphics and had really good fun with our OpenGL implementations throughout the semester.

Hope you also had informative fun reading this blog post & watching the videos!

See you in the next posts!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.