Skip to content

Implementations for various rendering algorithms and OpenGL with programmable shaders, written in C++ and GLSL

License

Notifications You must be signed in to change notification settings

ysyesilyurt/ComputerGraphics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComputerGraphics

Implementations for various rendering algorithms and OpenGL homework within the content of Ceng477 Course, written in C++ and GLSL. Development is done on CLion using CMake, hence one can directly import parts separately to CLion and run them in there using CMakeLists. Also Makefiles are provided for further convenience.

How do I get it?

  • Clone with submodules (since repo also includes various OpenGL libraries' repos, I've added those libraries as submodules so that anybody can get it as a bundle):
git clone --recursive git@github.com:ysyesilyurt/ComputerGraphics.git
  • Alternatively, if you didn't use --recursive option while cloning, you can type:
cd ComputerGraphics
git submodule init
git submodule update

RayTracing - Backward Rendering Pipeline

Implemented a Concurrent version of Ray Tracing Algorithm using Basic Illumination Model with Phong Shading (Ambient + Diffuse + Specular) to Render Scenes such as:

RT-1 RT-2

Rasterization - Forward Rendering Pipeline

Implemented all steps of Forward Rendering Pipeline until Fragment Pipeline (All kinds of transformation stuff + Clipping + Culling + Rasterization) to Render Scenes such as:

FRP-1 FRP-2 FRP-3

Implementation uses Backface Culling and Liang-Barsky 3D Line Clipping Algorithms for Culling and Clipping phases. Also implementation does not use a Z-Buffer and relies on the fact that, input is given back-to-front order (uses Painter's Algorithm).

Heightmap and Texture Mapping using OpenGL with Programmable Shaders

Implemented two OpenGL programs to render both flat Earth model and spherical Earth model (created not only for the Earth inputs; one may also run programs with any kind of input) using vertex and fragment shaders to display a texture image as a height map to fly through the scene interactively by processing keyboard input. Via Keyboard inputs, one can interactively fly through the scene, shift textures, increase/decrease heights of locations, modify location and altitude of the light etc. Below GIFs are sections from the outputs of those programs for Earth inputs.

Flat

flat_earth

Sphere

spherical_earth

Releases

No releases published

Packages

No packages published

Languages