Seasons Of Code

Planet/Atmosphere Renderer using OpenGL    • Rwitaban Goswami    • Arpit Singh   

WnCC - Seasons of Code

Seasons of Code is a programme launched by WnCC along the lines of the Google Summer of Code. It provides one with an opprtunity to learn and participate in a variety of interesting projects under the mentorship of the very best in our institute.

List of Running Projects

Planet/Atmosphere Renderer using OpenGL

Planet/Atmosphere Renderer using OpenGL

Build a real time planet renderer engine.

This project is aimed towards people interested in the exciting field of Computer Graphics and Rendering, and would want to get a taste in how cutting edge Game Engines, especially the rendering part, work. The only pre-requisite for this project is some basic knowledge of C++ (very basic, not even OOP required), and of course enthu!

The aim of this project will be to ultimately build a real time engine capable of rendering a planet, complete with atmospheric scattering, terrain, light shafts, clouds and any other features that can be thought of.

Each mentee will have to first read up and get comfortable with OpenGL in C++

S/he should get familiar with the graphics pipeline, how to write GLSL shaders, how to write VBO and VAO code in OpenGL (C++), and the Modelling-Viewing-Pipeline. This is expected to take about a month.

Next the mentee will be expected to learn the basics of Shading- Gouraud, Phong, Blinn-Phong Shading. This is expected to take a week.

Next the mentee will be expected to research and find out how to implement planet specific shaders, eg atmospheric scattering shader, volumetric cloud shader etc. This is expected to take up the latter month of the project.

Tentative Project Timeline

Week Number Tasks to be Completed
Week 0 Read some basic slides on rasterization, clipping, 2D and 3D transformations
Week 1 Setting up OpenGL and the first trivial example
Week 2 Understanding Boilerplate code, graphics pipeline and what VAO, VBOs do. Play around
Week 3 Understand Modelling-Viewing-Pipeline. Play around. Build a basic interactive movable model
Week 4 Understand and implement Blinn-Phong Shading. Introduce this to the interactive model
Week 5 Research on Atmospheric Shaders
Week 6 Implement Atmospheric Shaders (single/multiple scattering). It is really preferred if multiple scattering could be implemented
Week 7 Buffer
Week 8 Explore implementing Terrain, clouds, light shafts