OpenGL-Examples
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
- Tutorials
- References
Included Libraries
- glfw 3.3
- glad 2
- glm 0.9.9.8
- imgui v1.78
- json 3.9.1
- stb
- tinyobjloader v1.0.6
- tinygltf v2.4.0 [Not Used Yet]
License
MIT License