Raushan Ranjan · OpenGL & Vulkan

Computer Graphics with OpenGL & Vulkan

Complete module-wise reading material, concept notes, real-world analogies, and direct links to live code demos. Learn how GPUs work, how to write shaders, and how to build real rendering applications from scratch.

📖 Browse Modules ⚡ Code Demos 🔬 Lab Challenges 🏆 Capstone Project
15 Modules
5 Days
60+ Code Demos
25+ Lab Challenges
Quick Navigation — All 15 Modules
Course Content

Module-Wise Notes

Click any module to read detailed notes, analogies, concept diagrams, and find the matching live demo.

Day 1 · Module 1
Introduction to Graphics Programming
Foundations GPU Architecture Pipeline
  • Overview of computer graphics systems
  • GPU vs CPU: architecture and data flow
  • OpenGL, Vulkan, DirectX comparison
  • The rendering pipeline: vertex data to pixels
📖 Read Notes
⚡ Demo
Day 1 · Module 2
Getting Started with OpenGL
SetupGLFWContext
  • Setting up the OpenGL development environment
  • Understanding contexts and buffers
  • Coordinate systems and transformations
  • Drawing basic shapes and primitives
📖 Read Notes
⚡ Demo
Day 1 · Module 3
OpenGL Data Flow
VBOVAOEBO
  • Data transfer between CPU and GPU
  • Vertex Buffer Objects (VBO) and Vertex Array Objects (VAO)
  • Element Buffer Objects (EBO)
  • Framebuffer overview
📖 Read Notes
⚡ Demo
Day 2 · Module 4
Transformations and 3D Space
MVP MatrixDepth TestingCamera
  • Model, View, and Projection transformations
  • Understanding matrices in OpenGL
  • Depth testing and perspective projection
📖 Read Notes
⚡ Demo
Day 2 · Module 5
Lighting and Materials
PhongDiffuseSpecular
  • Basic lighting models (ambient, diffuse, specular)
  • Phong and Blinn-Phong shading
  • Implementing lighting with shaders
📖 Read Notes
⚡ Demo
Day 2 · Module 6
Textures and Mapping
UV MappingMipmapsSkybox
  • Loading and applying textures
  • Multi-texturing and texture filtering
  • Cube maps and skyboxes
📖 Read Notes
⚡ Demo
Day 3 · Module 7
Shaders with GLSL
GLSLInstancingGeometry
  • Introduction to GLSL
  • Vertex and fragment shader structure
  • Passing data to shaders
  • Geometry shaders and instancing
📖 Read Notes
⚡ Demo
Day 3 · Module 8
Framebuffers and Effects
FBOPost-ProcessingMSAA
  • Using framebuffers for post-processing
  • Implementing transparency and blending
  • Anti-aliasing and multisampling techniques
  • Depth and stencil buffers
📖 Read Notes
⚡ Demo
Day 3 · Module 9
Optimization and Performance
Draw CallsRenderDocMemory
  • Draw call reduction strategies
  • Efficient memory management
  • Profiling and debugging OpenGL applications
📖 Read Notes
⚡ Demo
Day 4 · Module 10
Vulkan Overview
Vulkan SDKArchitectureSPIR-V
  • Introduction to Vulkan and its architecture
  • Differences between Vulkan and OpenGL
  • Setting up the Vulkan development environment
📖 Read Notes
⚡ Demo D15
Day 4 · Module 11
Vulkan Core Concepts
DevicesCommand BuffersMemory
  • Instances, physical and logical devices
  • Queues and command buffers
  • Memory management in Vulkan
📖 Read Notes
⚡ Demo D16
Day 4 · Module 12
Rendering with Vulkan
SwapchainPipelineSync
  • Creating swap chains, pipelines, and render passes
  • Recording and submitting command buffers
  • Synchronization with semaphores and fences
📖 Read Notes
⚡ Demo D17
Day 5 · Module 13
Vulkan Compute & Advanced Rendering
GPU ComputeDescriptorsModels
  • Using Vulkan for GPU computing
  • Model loading and rendering
  • Descriptor sets and uniforms
  • Performance tuning
📖 Read Notes
⚡ Demo
Day 5 · Module 14
Integration & Cross-Platform Development
C#UnityAndroid
  • Integrating Vulkan/OpenGL with C++, C#, Unity, Android
  • Debugging and validation layers
  • Porting OpenGL code to Vulkan
📖 Read Notes
⚡ Demo
Day 5 · Module 15
Capstone Project & Review
CapstoneBest PracticesQ&A
  • Building a graphics demo using both APIs
  • Recap of key concepts
  • Q&A and best practices
📖 Read Notes
🔬 Final Lab
Environment

Software Stack

Every tool on your VM — what it is and exactly why it exists in this course.

🖥️
Visual Studio 2022 Community
Your IDE and C++ compiler. Every lab written in C++17. Industry standard for Windows graphics development.
MSVC v143 · C++17
🔨
CMake 3.28+
Build system generator. Converts your CMakeLists.txt into VS project files automatically — no manual config.
cmake --version
🪟
GLFW 3.3
Creates OS windows and OpenGL contexts. Handles keyboard, mouse, resize events. Cross-platform.
C:\libs\glfw\
🔌
GLEW 2.2
OpenGL function loader. Finds all GL functions inside the GPU driver at runtime and gives you pointers to them.
C:\libs\glew\
📐
GLM (OpenGL Mathematics)
C++ math library matching GLSL. Gives you vec3, mat4, perspective(), lookAt(). Header-only.
C:\libs\glm\
🖼️
STB Image
Single-header library to load JPG, PNG, BMP into memory. Used in Module 6 for texture loading.
stb_image.h
📦
Assimp
Open Asset Importer. Loads .obj, .fbx, .gltf 3D model files into C++ data structures for rendering.
Module 9, 13
🔺
Vulkan SDK 1.3 (LunarG)
Complete Vulkan package: headers, validation layers, SPIR-V compiler (glslc), vulkaninfo tool.
Days 4–5
🔍
RenderDoc
GPU frame debugger. Pause any frame, inspect every draw call, texture, uniform, and buffer on the GPU.
Free · From Module 7
📊
NVIDIA Nsight Graphics
Deep GPU profiler for Vulkan. Shows GPU timeline, memory bottlenecks, shader occupancy.
Modules 13–15
Module Notes