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++
- Link to setting up OpenGL
- Link to OpenGL tutorial
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.
|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 8||Explore implementing Terrain, clouds, light shafts|