OpenGL-Examples icon indicating copy to clipboard operation
OpenGL-Examples copied to clipboard

A Set of examples for using OpenGL on C++ (For Educational Purposes)

OpenGL Examples (CMP205)

This repository contains examples of how to use OpenGL with C++17. It is made for the "Computer Graphics and Man-Machine Interfacing" course (CMPN205) at Cairo University Faculty of Engineering.

IMPORTANT:

While running, make sure that the working directory is the project directory and not the build folder. This is necessary since the code expects to run in the same directory where the "assets" folder exist.

Examples

Name Source Code Documentation
Empty Window ex01_empty_window.cpp :white_check_mark:
Shader Introduction ex02_shader_introduction.cpp :white_check_mark:
Uniforms ex03_uniforms.cpp :white_check_mark:
Varyings ex04_varyings.cpp :white_check_mark:
Attributes ex05_attributes.cpp :white_check_mark:
Multiple Attributes ex06_multiple_attributes.cpp :white_check_mark:
Interleaved Attributes ex07_interleaved_attributes.cpp
Elements ex08_elements.cpp
Stream ex09_stream.cpp
Model Loading ex10_model_loading.cpp
Transformation ex11_transformation.cpp :white_check_mark:
Composition ex12_composition.cpp :white_check_mark:
Camera ex13_camera.cpp :white_check_mark:
Projection ex14_projection.cpp :white_check_mark:
Depth Testing ex15_depth_testing.cpp :white_check_mark:
Face Culling ex16_face_culling.cpp :white_check_mark:
Viewports & Scissors ex17_viewports_and_scissors.cpp
Camera Stacking ex18_camera_stacking.cpp
Ray Casting ex19_ray_casting.cpp
Scene Graphs ex20_scene_graphs.cpp :white_check_mark:
Texture ex21_texture.cpp :white_check_mark:
Texture Sampling ex22_texture_sampling.cpp :white_check_mark:
Sampler Objects ex23_sampler_objects.cpp :white_check_mark:
Displacement ex24_displacement.cpp :white_check_mark:
Blending ex25_blending.cpp :white_check_mark:
Frame Buffer ex26_frame_buffer.cpp :white_check_mark:
Postprocessing ex27_postprocessing.cpp :white_check_mark:
Multiple Render Targets ex28_multiple_render_targets.cpp
Light ex29_light.cpp :white_check_mark:
Light Array ex30_light_array.cpp :white_check_mark:
Multi-Pass Lighting ex31_light_multipass.cpp :white_check_mark:
Textured Material ex32_textured_material.cpp :white_check_mark:

Extra Resources

Included Libraries

License

MIT License